What's new

-Tibia 7.60 TibiaFun.pl START 17:00 SOBOTA 25.04.2015

Status
Not open for further replies.

tibiafunz

User
Joined
Sep 1, 2013
Messages
26
Reaction score
0
TibiaFun.pl START 17:00 SOBOTA 25.04.2015​
Zapraszamy na now? edycje serwera TibiaFun.

IP: tibiafun.pl
Acc Maker:

screen1.JPG

screen2.JPG

screen3.JPG

screen4.JPG

screen5.JPG

screen6.JPG

screen7.JPG

screen8.JPG


FIRST HUNTING ROOMS ON TIBIA 7.6
screen10.JPG


ZOMBIE EVENT
screen11.JPG


EVENT ISLAND
screen12.JPG



Informacje:​
-Server Restart: 22.00
-Drop Rate: 3x
-Frags to Red Skull: 5
-Frags to Ban: 9 (1 day)
-Red Skull Time: 4h
-Frag Time: 1h

screen9.JPG

Team TibiaFun & 2015. All rights reserved.
 

Raa

Senior User
Joined
Aug 9, 2009
Messages
715
Reaction score
50
Age
29
Odp: TibiaFun.pl START 17:00 SOBOTA 25.04.2015

FIRST HUNTING ROOMS ON TIBIA 7.6
Mia?em to na swoim OTSie pod 7.6 : /


Code:
zArenas=10

function getSwitchMonster(cid,arenaID, topos)
	local movePos=0
	if(arenaID % 2 == 1) then
		movePos=-2
	else
		movePos=2
	end
	local mPosition={x=topos.x+movePos, y=topos.y, z=topos.z, stackpos=253}
	arenacreature = getThingfromPos(mPosition)		
	if (arenacreature.itemid > 0) then
		if isMonster(arenacreature.uid) == 1 then
			return getCreatureName(arenacreature.uid)
		end
	end
	return "";
end
function onUse(cid, item, frompos, item2, topos)
	if item.itemid == 1945 then	
		doTransformItem(item.uid,1946)	
	else
 		doTransformItem(item.uid,1945)	
	end	
	if exhaustion.make(cid, 8864, 1)==0 then
		doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF);
		return 1
	end
	local arenaID=item.actionid-5300
	local arena=arenas[arenaID]
	local monsterName=getSwitchMonster(cid, arenaID, topos)
	doSummonCreature(monsterName,{x=math.random(arena.pos1.x,arena.pos2.x), y=math.random(arena.pos1.y,arena.pos2.y),z=zArenas})
	doSendMagicEffect(getPlayerPosition(cid), math.random(1,24));
	return 1
end

Code:
zArenas=10
function removeAllMonstersOnArenaa(arenaid)

	for zakresx = arenas[arenaid].pos1.x, arenas[arenaid].pos2.x do
		for zakresy = arenas[arenaid].pos1.y, arenas[arenaid].pos2.y  do
			arenaArea = {x=zakresx, y=zakresy, z=zArenas, stackpos=253}
			arenacreature = getThingfromPos(arenaArea)				
			if (arenacreature.itemid > 0) then
				if isMonster(arenacreature.uid) == 1 then
					doRemoveCreature(arenacreature.uid)
				end
			end
		end			
	end

end
messages=
{
	[1]="Arena aktualnie zajeta.",
	[2]="Musisz doladowac czas, by skorzystac z areny.",
	[3]="Witamy na arenie."
	
}

function onUse(cid, item, frompos, item2, topos)
	local arenaID=item.actionid-5200
	local arena=arenas[arenaID]
	if isAnyPlayerInArea(arena.pos1, arena.pos2) == 1 then 
		doPlayerSendCancel(cid,messages[1])
		return 1
	end
	if getPlayerTimeArenas(cid)<=0 then
		doPlayerSendCancel(cid,messages[2])
		return 1
	end
	removeAllMonstersOnArenaa(arenaID)
	doTeleportThing(cid,arena.centerpos)
	
	doPlayerSendTextMessage(cid,19,messages[3])
	doSendMagicEffect(getPlayerPosition(cid),10)
	if item.itemid == 1945 then	
		doTransformItem(item.uid,1946)	
	else
 		doTransformItem(item.uid,1945)	
	end		
	return 1
end

Code:
function onUse(cid, item, fromPosition, itemEx, toPosition)
	local tim=900
	addPlayerTimeArenas(cid, tim)
	doPlayerSendTextMessage(cid, 22, "Dodales: "..parseTime(tim)..". Aktualnie masz: "..parseTime(getPlayerTimeArenas(cid), false, 2))
	
	doRemoveItem(item.uid, 1)
	doSendMagicEffect(getPlayerPosition(cid), math.random(1,24));
	return TRUE;
end

Code:
arenas=
{
	[1]={centerpos={x=2387, y=2360, z=10}, pos1={x=2384, y=2356, z=10}, pos2={x=2390, y=2364, z=10}},
	[2]={centerpos={x=2404, y=2360, z=10}, pos1={x=2402, y=2356, z=10}, pos2={x=2408, y=2364, z=10}},
	[3]={centerpos={x=2387, y=2372, z=10}, pos1={x=2384, y=2368, z=10}, pos2={x=2390, y=2376, z=10}},
	[4]={centerpos={x=2404, y=2372, z=10}, pos1={x=2402, y=2368, z=10}, pos2={x=2408, y=2376, z=10}},
	[5]={centerpos={x=2387, y=2384, z=10}, pos1={x=2384, y=2380, z=10}, pos2={x=2390, y=2388, z=10}},
	[6]={centerpos={x=2404, y=2384, z=10}, pos1={x=2402, y=2380, z=10}, pos2={x=2408, y=2388, z=10}},
	[7]={centerpos={x=2387, y=2396, z=10}, pos1={x=2384, y=2392, z=10}, pos2={x=2390, y=2400, z=10}},
	[8]={centerpos={x=2404, y=2396, z=10}, pos1={x=2402, y=2392, z=10}, pos2={x=2408, y=2400, z=10}},
	[9]={centerpos={x=2387, y=2408, z=10}, pos1={x=2384, y=2404, z=10}, pos2={x=2390, y=2412, z=10}},
	[10]={centerpos={x=2404, y=2408, z=10}, pos1={x=2402, y=2404, z=10}, pos2={x=2408, y=2412, z=10}}

}
globalArenas=
{
	[1]={pos1={x=2384, y=2356, z=10}, pos2={x=2390, y=2412, z=10}},
	[2]={pos1={x=2402, y=2356, z=10}, pos2={x=2408, y=2412, z=10}}
}
ARENAS_TIME=5300

function getPlayerTimeArenas(cid)
	return getPlayerStorageValue(cid, ARENAS_TIME)
end

function parseTime(secs, full, language)
	local langTab=
	{
		[1]={hours={basic="hour", single="", plural="s", plural2="s"}, 
			minutes={basic="minute", single="", plural="s", plural2="s"},
			seconds={basic="second", single="", plural="s", plural2="s"}},
		[2]={hours={basic="godzin", single="a", plural="y", plural2=""}, 
			minutes={basic="minut", single="a", plural="y", plural2=""},
			seconds={basic="sekund", single="a", plural="y", plural2=""}}
	}
	
	local function getPlural(timetype, count)
		if count==0 then
			return timetype.basic
		end
		if count<20 and count>9 then
			return timetype.basic..timetype.plural2
		end
		local count2= count - ((math.floor(count/10))*10)
		if count2<=1 then
			count2=count
		end
		if count2>4 then
			return timetype.basic..timetype.plural2
		elseif count2>1 then
			return timetype.basic..timetype.plural
		else
			return timetype.basic..timetype.single
		end
	end
	if secs==0 then
		return "0 "..langTab[language].seconds.basic
	end
	if full==nil then
		full=false
	end
	if language==nil then
		language=2
	end

	
	local text = ""
	local hours = math.ceil(secs / 3600) - 1
	local minutes = math.ceil(((secs - (3600 * hours))) / 60) - 1
	if minutes == 60 then
		minutes = 0
		hours = hours + 1
	end
	local seconds = secs - (3600 * hours + minutes*60)
	if seconds == 60 then
		seconds = 0
		minutes = minutes + 1
	end
	local begin = false
	if hours>0 or full==true then
		begin=true
		text=text..hours.." "..getPlural(langTab[language].hours, hours)
	end
	if minutes>0 or full==true then
		if begin then
			text=text.." "
		end
		text=text..minutes.." "..getPlural(langTab[language].minutes, minutes)
		begin=true
	end
	if seconds>0 or full==true then
		if begin then
			text=text.." "
		end
		--text=text.." " and begin==true or text..""
		text=text..seconds.." "..getPlural(langTab[language].seconds, seconds)
	end

	return text
end

function setPlayerTimeArenas(cid, tim)
	setPlayerStorageValue(cid, ARENAS_TIME, tim)
end
function addPlayerTimeArenas(cid, tim)
	setPlayerStorageValue(cid, ARENAS_TIME, getPlayerStorageValue(cid, ARENAS_TIME)+tim)
end
function removePlayerTimeArenas(cid, tim)
	setPlayerStorageValue(cid, ARENAS_TIME, getPlayerStorageValue(cid, ARENAS_TIME)-tim)
end

function isPlayerInArenaGlobal(cid)
	local ppos=getPlayerPosition(cid)
	for i=1,#globalArenas do
		if isInRange(ppos, globalArenas[i].pos1, globalArenas[i].pos2) == 1 then
			return TRUE
		end
	end
	return FALSE
end
function isAnyPlayerInArea(pos1, pos2)
	for zakresx = pos1.x,pos2.x do
		for zakresy = pos1.y,pos2.y do
		    local pos = {x=zakresx,y=zakresy,z=pos1.z}
		    local creature = getTopCreature(pos)
			if creature.uid > 0 then
				if (isPlayer(creature.uid) == 1) then
					return 1
				end	
			end
		end
	end
	return 0
end	

function isAnyMonsterInArea(pos1, pos2)
	for zakresx = pos1.x,pos2.x do
		for zakresy = pos1.y,pos2.y do
		    local pos = {x=zakresx,y=zakresy,z=pos1.z}
		    local creature = getTopCreature(pos)
			if creature.uid > 0 then
				if (isMonster(creature.uid) == 1) then
					return 1
				end	
			end
		end
	end
	return 0
end	

function isPlayerInArea(cid, pos1, pos2)
	for zakresx = pos1.x,pos2.x do
		for zakresy = pos1.y,pos2.y do
		    local pos = {x=zakresx,y=zakresy,z=pos1.z}
		    local creature = getTopCreature(pos)
			if creature.uid > 0 then
				if (creature.uid == cid) then
					return 1
				end	
			end
		end
	end
	return 0
end

Code:
function onSay(cid, words, param)
	doPlayerSendTextMessage(cid, 22, "Pozostaly czas: "..parseTime(getPlayerTimeArenas(cid), false, 2))
end

Tak jakby kto? chcia?.
 
Last edited:

tibiafunz

User
Joined
Sep 1, 2013
Messages
26
Reaction score
0
Odp: TibiaFun.pl START 17:00 SOBOTA 25.04.2015

@up
No dzi?ki za udost?pnienie kodu, lecz pomyli?e? hunting roomy z arena monster?w.
Jest to troch? podobne, lecz to nie to samo.
Wi?cej ->

@topic
Takiego systemu na 7.6 nie ma na innym ni? na moim serwerze 7.6 :>
Zapraszam do gry ju? w sobot? o 17:00, je?eli jeszcze nie widzia?e? jak ten system dzia?a b?dziesz mia? okazj? go zobaczy? :p
 
Last edited:

#NOOB

Senior User
Joined
May 25, 2014
Messages
901
Reaction score
89
Odp: TibiaFun.pl START 17:00 SOBOTA 25.04.2015

Ten hunting room to nic nadzwyczajnego zeby sie dlatego rejestrowac u was. Wchodzisz i respi ci potwory. Normalnie szok najlepszy programista tego nie napisze bo za slabe umiejetnosci ma.

A co do serwa to nie polece. Temat oklepany (tibia-fun jest nudny), mapa kiepska, 100% botow i do tego pewnie serwer zniknie szybciej niz sie pojawi.

Ale jak kogos jara bot 24/7 to zapraszam.
 

Raa

Senior User
Joined
Aug 9, 2009
Messages
715
Reaction score
50
Age
29
Odp: TibiaFun.pl START 17:00 SOBOTA 25.04.2015

To? to jest praktycznie to samo, r??ni si? tym, ?e jeden pokoj - jeden monster, i zamiast d?wigni jest kratka.
Dla gracza raczej moje rozwi?zanie bardziej by przypadlo do gustu.
 
Status
Not open for further replies.
Top