Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Aparece a mensagem que o evento vai começar, os jogadores digitam !Event Join e ficam aguardando, na hora que os jogadores são levados para o local do evento, ocorre o seguinte erro no console:

 

FIRESTORM.thumb.png.669ae5256784ec681f42e5f00787057b.png

 

Depois disso eles ficam lá dentro do local, porem não ocorre nada, nenhuma objeto ou fogo ataca eles.

O QUE PODE SER?

 

MOD:

 

Spoiler

<?xml version="1.0" encoding="UTF-8"?>
<mod name="Fire Storm Event" version="1.0" author="iFate" contact="otland.net/members/iFate/" enabled="yes">
 
    <config name="lms_config">
        <![CDATA[
           configFire = {
               storage = 8998, -- set free storage
               eventStorage = 6254, -- set free storage
               joinEventStorage = 5535, -- set free storage
               countPlayerStorage = 7373, -- set free storage
               exhaustStorage = 8387,
 
                maxPlayers = 50, -- max players in event
                teleportPos = {x=395, y=164, z=4}, -- position to which player is teleporting
                rewardID = {9693}, -- reward id which player can win (reward is random)
                minLevel = 8, -- minimum of level with which player can join to event
                days = {
                ['Monday'] = {'18:00:00'},
                ['Tuesday'] = {'18:00:00'}, 
                ['Wednesday'] = {'18:00:00'},
                ['Thursday'] = {'18:00:00'}, 
                ['Friday'] = {'18:00:00'},
                ['Saturday'] = {'18:00:00'},
                ['Sunday'] = {'20:30:00'}
                },
                minPlayers = 2,
                 
                delayTime = 1.0, -- time in which players who joined to event are teleporting to teleport position
                timeToStartEvent = 30 -- time from teleport to start event
                }
                 
                arena = {fromPos = {x=369,y=134,z=4}, -- left top corner of event room
                toPos = {x=431,y=119,z=4} -- right bottom corner of event room
           }
           
           y, x = 1, 1
       ]]>
    </config>
   
    <lib name="lms_fire_lib">
        <![CDATA[
           function doStartEvent()
               doSetStorage(configFire.joinEventStorage, -1)
               
               if configFire.minPlayers <= getStorage(configFire.countPlayerStorage) + 1 then        
                   for _, cid in ipairs(getPlayersOnline()) do
                       if getCreatureStorage(cid, configFire.storage) == 1 then
                           addEvent(doSetStorage, configFire.timeToStartEvent * 1000, configFire.eventStorage, 1)
                           doCreatureSetStorage(cid, configFire.storage, -1)
                           doCreatureSetNoMove(cid, false)
                           doRemoveCondition(cid, CONDITION_INFIGHT)
 
                           doTeleportThing(cid, configFire.teleportPos)
 
                           doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, 'Get ready, The Event will start in ' .. configFire.timeToStartEvent .. ' seconds.')
                       end
                   end
               else
                   for _, cid in ipairs(getPlayersOnline()) do
                       if getCreatureStorage(cid, configFire.storage) == 1 then
                           doCreatureSetNoMove(cid, false)
                           doRemoveCondition(cid, CONDITION_INFIGHT)
                       end
                   end
                   doBroadcastMessage('The fire storm event has not started because not enough players joined.', MESSAGE_EVENT_ADVANCE)
               end
               
               doSetStorage(configFire.countPlayerStorage, 0)
           end
       ]]>
    </lib>
 
    <talkaction words="!event" event="script">
        <![CDATA[
           domodlib("lms_config")
 
           function onSay(cid, words, param)
               local storage, playerJoined, counter = getCreatureStorage(cid, configFire.storage), {}, getStorage(configFire.countPlayerStorage)
 
               if getStorage(configFire.joinEventStorage) == 1 then
                   if(param == '') then
                       return doPlayerSendTextMessage(cid, MESSAGE_STATUS_SMALL, 'Command param required (say: "!event join" or "!event leave").')
                   end
                   
                   if configFire.minLevel ~= nil then
                       if getPlayerLevel(cid) < configFire.minLevel then
                           return doPlayerSendTextMessage(cid, MESSAGE_STATUS_SMALL, 'You cannot join The Fire Storm Event if you do not have a require level. [' .. configFire.minLevel .. ']')
                       end
                   end
                   
                   if getTileInfo(getThingPos(cid)).protection ~= true then
                       return doPlayerSendTextMessage(cid, MESSAGE_STATUS_SMALL, 'You cannot join The Fire Storm Event if you are not in a Protection Zone.')
                   end
                   
                   if exhaustion.check(cid, configFire.exhaustStorage) ~= false then
                       return doPlayerSendTextMessage(cid, MESSAGE_STATUS_SMALL, 'You must wait' .. exhaustion.get(cid, configFire.exhaustStorage) .. ' seconds.')
                   end
 
                   if param == 'join' then
                       if storage <= 0 then
                           if counter ~= configFire.maxPlayers - 1 then
                               doSetStorage(configFire.countPlayerStorage, 0)
                               for _, pid in ipairs(getPlayersOnline()) do
                                   if getCreatureStorage(pid, configFire.storage) > 0 then
                                       table.insert(playerJoined, pid)
                                       doSetStorage(configFire.countPlayerStorage, #playerJoined)
                                   end
                               end
                               local count = getStorage(configFire.countPlayerStorage)
                               doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, count == 0 and 'You are first in the fire storm event.' or count == 1 and 'There is 1 player in fire storm event.' or count > 1 and 'There are '.. count ..' players in fire storm event.')
                               doCreatureSetStorage(cid, configFire.storage, 1)
                               
                               doCreatureSetNoMove(cid, true)
                               local condition = createConditionObject(CONDITION_INFIGHT,-1)
                               
                               doAddCondition(cid, condition)
                               doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, 'You have joined the Fire Storm Event, You may not move until the Event has started please wait patiently...')
                           else
                               doPlayerSendTextMessage(cid, MESSAGE_STATUS_SMALL, 'Max players in event have been reached.')
                           end
                       else
                           doPlayerSendTextMessage(cid, MESSAGE_STATUS_SMALL, 'You already joined the Event, Wait patiently for it to start.')
                       end
                   elseif param == 'leave' then
                       if storage > 0 then
                           doCreatureSetNoMove(cid, false)
                           doRemoveCondition(cid, CONDITION_INFIGHT)
                           doCreatureSetStorage(cid, configFire.storage, -1)
                           doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, 'You have left the Fire Run Event, And you can move now.')
                       else
                           doPlayerSendTextMessage(cid, MESSAGE_STATUS_SMALL, 'You cannot leave The Fire Storm Event.')
                       end
                   end
               else
                   doPlayerSendTextMessage(cid, MESSAGE_STATUS_SMALL, 'You cannot join/leave The Fire Storm Event yet.')
               end
               
               exhaustion.set(cid, configFire.exhaustStorage, 5)
               
               return true
           end
       ]]>
    </talkaction>
   
    <talkaction words="!startfire" access="5" event="script">
        <![CDATA[
           domodlib("lms_config")
           domodlib("lms_fire_lib")
 
           function onSay(cid, words, param)
               doBroadcastMessage('Fire Storm Event will start in ' .. configFire.delayTime .. ' minutes. You can join the Fire Storm Event by using this command "!event join".', MESSAGE_EVENT_ADVANCE)
 
               for _, pid in ipairs(getPlayersOnline()) do
                   if getCreatureStorage(pid, configFire.storage) == 1 then
                       doCreatureSetStorage(pid, configFire.storage, -1)
                       doSetStorage(configFire.countPlayerStorage, 0)
                       doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid)), true)
                   end
               end
 
               doSetStorage(configFire.joinEventStorage, 1)        
               addEvent(doStartEvent, configFire.delayTime * 60 * 1000)
               return true
           end
       ]]>
    </talkaction>
 
    <event type="think" name="LMS_Event_Start" event="script">
        <![CDATA[
           domodlib("lms_config")
           domodlib("lms_fire_lib")
 
           local daysOpen = {}
           
           for k, v in pairs(configFire.days) do
               table.insert(daysOpen, k)
           end
           
           function onThink(cid, interval)
               if isInArray(daysOpen, os.date('%A')) then
                   if isInArray(configFire.days[os.date('%A')], os.date('%X', os.time())) then
                       if getStorage(configFire.joinEventStorage) ~= 1 then
                           doBroadcastMessage('Fire Storm Event will start in '.. configFire.delayTime ..' minutes. You can join the event by typing "!event join".', MESSAGE_EVENT_ADVANCE)
 
                           for _, pid in ipairs(getPlayersOnline()) do
                               if getCreatureStorage(pid, configFire.storage) == 1 then
                                   doCreatureSetStorage(pid, configFire.storage, -1)
                                   doSetStorage(configFire.countPlayerStorage, 0)
                                   doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid)), true)
                               end
                           end
 
                           doSetStorage(configFire.joinEventStorage, 1)        
                           addEvent(doStartEvent, configFire.delayTime * 60 * 1000)
                       end
                   end
               end
               return true
           end
       ]]>
    </event>
   
    <globalevent name="LMS_Event" interval="1000" event="script">
        <![CDATA[
           domodlib("lms_config")
 
           function onThink(interval, lastExecution)
               if getStorage(configFire.eventStorage) == 1 then
                   local xTable, yTable, playerTable = {}, {}, {}
 
                   for x = arena.fromPos.x, arena.toPos.x do
                       for y = arena.fromPos.y, arena.toPos.y do
                           table.insert(xTable, x)
                           table.insert(yTable, y)
 
                           local n, i = getTileInfo({x=x, y=y, z=7}).creatures, 1
                           if n ~= 0 then
                               local v = getThingfromPos({x=x, y=y, z=7, stackpos=i}).uid
                               while v ~= 0 do
                                   if isPlayer(v) then
                                       table.insert(playerTable, v)
                                       if n == #playerTable then
                                           break
                                       end
                                   end
                                   i = i + 1
                                   v = getThingfromPos({x=x, y=y, z=7, stackpos=i}).uid
                               end
                           end
                       end
                   end
 
                   if #playerTable == 1 then
                       local prize = math.random(#configFire.rewardID)
 
                       doTeleportThing(playerTable[1], getTownTemplePosition(getPlayerTown(playerTable[1])), true)
                       doPlayerAddItem(playerTable[1], configFire.rewardID[prize], 1)
                       doPlayerSendTextMessage(playerTable[1], MESSAGE_EVENT_ADVANCE, 'You win. Your reward is ' .. getItemNameById(configFire.rewardID[prize]) .. '.')
                       doBroadcastMessage('Fire Storm Event have finished. The winner is ' .. getCreatureName(playerTable[1]) .. '. Congratulations.', MESSAGE_EVENT_ADVANCE)
                       doSetStorage(configFire.eventStorage, -1)
                       
                       x, y = 1, 1
                   elseif #playerTable > 1 then
                       for a = 1, y do
                           local pos = {x=xTable[math.random(#xTable)], y=yTable[math.random(#yTable)], z=7}
 
                           for _, player in ipairs(playerTable) do
                               local pPos = getThingPos(player)
                               if pPos.x == pos.x and pPos.y == pos.y and pPos.z == pos.z then
                                   doCreatureAddHealth(player, - getCreatureMaxHealth(player))
                               end
                           end
                           doSendDistanceShoot({x = pos.x - math.random(4, 6), y = pos.y - 5, z = pos.z}, pos, CONST_ANI_FIRE)
                           
                           addEvent(doSendMagicEffect, 150, pos, CONST_ME_HITBYFIRE)
                           addEvent(doSendMagicEffect, 150, pos, CONST_ME_FIREAREA)
                       end
                       if x == 5 * y then
                           y = y + 1
                       end
                       
                       x = x + 1
                   else
                       doBroadcastMessage('No one Won the Fire Storm Event.', MESSAGE_EVENT_ADVANCE)
                       doSetStorage(configFire.eventStorage, -1)
                       x, y = 1, 1
                   end
               end            
               return true
           end
       ]]>
    </globalevent>
 
    <event type="login" name="LMS_Fire_login" event="script">
        <![CDATA[
           function onLogin(cid)
               if getCreatureStorage(cid, configFire.storage) == 1 then
                   doCreatureSetStorage(cid, configFire.storage, -1)
                   doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), true)
                   doCreatureSetNoMove(cid, false)
                   doRemoveCondition(cid, CONDITION_INFIGHT)
               end
 
               registerCreatureEvent(cid, "LMS_fire_dead")
               registerCreatureEvent(cid, "LMS_Event_Start")
               return true
           end
       ]]>
    </event>
 
    <event type="statschange" name="LMS_fire_dead" event="script">
        <![CDATA[
           domodlib("lms_config")
 
           function onStatsChange(cid, attacker, type, combat, value)
               if type == 1 and getCreatureHealth(cid) <= value then
                   if isInRange(getThingPos(cid), arena.fromPos, arena.toPos) then
                       doCreatureAddHealth(cid, - getCreatureHealth(cid) + 1)
                       doCreatureAddMana(cid, - getCreatureMana(cid))
                       doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
                       doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, 'You have lost the Fire Storm Event.')
                       return false
                   end
               end
               return true
           end
       ]]>
    </event>
</mod>
 

 

Att;

FireStorm.xml

Link para o post
Compartilhar em outros sites
Spoiler

<?xml version="1.0" encoding="UTF-8"?>
<mod name="Fire Storm Event" version="1.0" author="iFate" contact="otland.net/members/iFate/" enabled="yes">
	<config name="lms_config">
		<![CDATA[
			configFire = {
				storage = 8998, -- set free storage
				eventStorage = 6254, -- set free storage
				joinEventStorage = 5535, -- set free storage
				countPlayerStorage = 7373, -- set free storage
				exhaustStorage = 8387,
 
				maxPlayers = 50, -- max players in event
				teleportPos = {x=395, y=164, z=4}, -- position to which player is teleporting
				rewardID = {9693}, -- reward id which player can win (reward is random)
				minLevel = 8, -- minimum of level with which player can join to event
				days = {
				['Monday'] = {'18:00:00'},
				['Tuesday'] = {'18:00:00'}, 
				['Wednesday'] = {'18:00:00'},
				['Thursday'] = {'18:00:00'}, 
				['Friday'] = {'18:00:00'},
				['Saturday'] = {'18:00:00'},
				['Sunday'] = {'20:30:00'}
				},
				minPlayers = 2,
				 
				delayTime = 1.0, -- time in which players who joined to event are teleporting to teleport position
				timeToStartEvent = 30 -- time from teleport to start event
				}
				 
				arena = {fromPos = {x=369,y=134,z=4}, -- left top corner of event room
				toPos = {x=431,y=119,z=4} -- right bottom corner of event room
			}
			
			y, x = 1, 1
		]]>
	</config>
	
	<lib name="lms_fire_lib">
		<![CDATA[
			function doStartEvent()
				doSetStorage(configFire.joinEventStorage, -1)
				
				if configFire.minPlayers <= getStorage(configFire.countPlayerStorage) + 1 then		 
					for _, cid in ipairs(getPlayersOnline()) do
						if getCreatureStorage(cid, configFire.storage) == 1 then
							addEvent(doSetStorage, configFire.timeToStartEvent * 1000, configFire.eventStorage, 1)
							doCreatureSetStorage(cid, configFire.storage, -1)
							doCreatureSetNoMove(cid, false)
							doRemoveCondition(cid, CONDITION_INFIGHT)
 
							doTeleportThing(cid, configFire.teleportPos)
 
							doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, 'Get ready, The Event will start in ' .. configFire.timeToStartEvent .. ' seconds.')
						end
					end
				else
					for _, cid in ipairs(getPlayersOnline()) do
						if getCreatureStorage(cid, configFire.storage) == 1 then
							doCreatureSetNoMove(cid, false)
							doRemoveCondition(cid, CONDITION_INFIGHT)
						end
					end
					doBroadcastMessage('The fire storm event has not started because not enough players joined.', MESSAGE_EVENT_ADVANCE)
				end
				
				doSetStorage(configFire.countPlayerStorage, 0)
			end
		]]>
	</lib>
 
	<talkaction words="!event" event="script">
		<![CDATA[
			domodlib("lms_config")
			
			local condition = createConditionObject(CONDITION_INFIGHT,-1)
			
			function onSay(cid, words, param)
				local storage, playerJoined, counter = getCreatureStorage(cid, configFire.storage), {}, getStorage(configFire.countPlayerStorage)
 
				if getStorage(configFire.joinEventStorage) == 1 then
					if(param == '') then
						return doPlayerSendTextMessage(cid, MESSAGE_STATUS_SMALL, 'Command param required (say: "!event join" or "!event leave").')
					end
					
					if configFire.minLevel ~= nil then
						if getPlayerLevel(cid) < configFire.minLevel then
							return doPlayerSendTextMessage(cid, MESSAGE_STATUS_SMALL, 'You cannot join The Fire Storm Event if you do not have a require level. [' .. configFire.minLevel .. ']')
						end
					end
					
					if getTileInfo(getThingPos(cid)).protection ~= true then
						return doPlayerSendTextMessage(cid, MESSAGE_STATUS_SMALL, 'You cannot join The Fire Storm Event if you are not in a Protection Zone.')
					end
					
					if exhaustion.check(cid, configFire.exhaustStorage) ~= false then
						return doPlayerSendTextMessage(cid, MESSAGE_STATUS_SMALL, 'You must wait' .. exhaustion.get(cid, configFire.exhaustStorage) .. ' seconds.')
					end
 
					if param == 'join' then
						if storage <= 0 then
							if counter ~= configFire.maxPlayers - 1 then
								doSetStorage(configFire.countPlayerStorage, 0)
								for _, pid in ipairs(getPlayersOnline()) do
									if getCreatureStorage(pid, configFire.storage) > 0 then
										table.insert(playerJoined, pid)
										doSetStorage(configFire.countPlayerStorage, #playerJoined)
									end
								end
								local count = getStorage(configFire.countPlayerStorage)
								doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, count == 0 and 'You are first in the fire storm event.' or count == 1 and 'There is 1 player in fire storm event.' or count > 1 and 'There are '.. count ..' players in fire storm event.')
								doCreatureSetStorage(cid, configFire.storage, 1)
								
								doCreatureSetNoMove(cid, true)
								
								doAddCondition(cid, condition)
								doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, 'You have joined the Fire Storm Event, You may not move until the Event has started please wait patiently...')
							else
								doPlayerSendTextMessage(cid, MESSAGE_STATUS_SMALL, 'Max players in event have been reached.')
							end
						else
							doPlayerSendTextMessage(cid, MESSAGE_STATUS_SMALL, 'You already joined the Event, Wait patiently for it to start.')
						end
					elseif param == 'leave' then
						if storage > 0 then
							doCreatureSetNoMove(cid, false)
							doRemoveCondition(cid, CONDITION_INFIGHT)
							doCreatureSetStorage(cid, configFire.storage, -1)
							doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, 'You have left the Fire Run Event, And you can move now.')
						else
							doPlayerSendTextMessage(cid, MESSAGE_STATUS_SMALL, 'You cannot leave The Fire Storm Event.')
						end
					end
				else
					doPlayerSendTextMessage(cid, MESSAGE_STATUS_SMALL, 'You cannot join/leave The Fire Storm Event yet.')
				end
				
				exhaustion.set(cid, configFire.exhaustStorage, 5)
				
				return true
			end
		]]>
	</talkaction>
	
	<talkaction words="!startfire" access="5" event="script">
		<![CDATA[
			domodlib("lms_config")
			domodlib("lms_fire_lib")
 
			function onSay(cid, words, param)
				doBroadcastMessage('Fire Storm Event will start in ' .. configFire.delayTime .. ' minutes. You can join the Fire Storm Event by using this command "!event join".', MESSAGE_EVENT_ADVANCE)
 
				for _, pid in ipairs(getPlayersOnline()) do
					if getCreatureStorage(pid, configFire.storage) == 1 then
						doCreatureSetStorage(pid, configFire.storage, -1)
						doSetStorage(configFire.countPlayerStorage, 0)
						doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid)), true)
					end
				end
 
				doSetStorage(configFire.joinEventStorage, 1)			
				addEvent(doStartEvent, configFire.delayTime * 60 * 1000)
				return true
			end
		]]>
	</talkaction>
 
	<event type="think" name="LMS_Event_Start" event="script">
		<![CDATA[
			domodlib("lms_config")
			domodlib("lms_fire_lib")
 
			local daysOpen = {}
			
			for k, v in pairs(configFire.days) do
				table.insert(daysOpen, k)
			end
			
			function onThink(cid, interval)
				if isInArray(daysOpen, os.date('%A')) then
					if isInArray(configFire.days[os.date('%A')], os.date('%X', os.time())) then
						if getStorage(configFire.joinEventStorage) ~= 1 then
							doBroadcastMessage('Fire Storm Event will start in '.. configFire.delayTime ..' minutes. You can join the event by typing "!event join".', MESSAGE_EVENT_ADVANCE)
 
							for _, pid in ipairs(getPlayersOnline()) do
								if getCreatureStorage(pid, configFire.storage) == 1 then
									doCreatureSetStorage(pid, configFire.storage, -1)
									doSetStorage(configFire.countPlayerStorage, 0)
									doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid)), true)
								end
							end
 
							doSetStorage(configFire.joinEventStorage, 1)			
							addEvent(doStartEvent, configFire.delayTime * 60 * 1000)
						end
					end
				end
				return true
			end
		]]>
	</event>
	
	<globalevent name="LMS_Event" interval="1000" event="script">
		<![CDATA[
			domodlib("lms_config")
 
			function onThink(interval, lastExecution)
				if getStorage(configFire.eventStorage) == 1 then
					local xTable, yTable, playerTable = {}, {}, {}
 
					for x = arena.fromPos.x, arena.toPos.x do
						for y = arena.fromPos.y, arena.toPos.y do
							table.insert(xTable, x)
							table.insert(yTable, y)
 
							local n, i = getTileInfo({x=x, y=y, z=7}).creatures, 1
							if n ~= 0 then
								local v = getThingfromPos({x=x, y=y, z=7, stackpos=i}).uid
								while v ~= 0 do
									if isPlayer(v) then
										table.insert(playerTable, v)
										if n == #playerTable then
											break
										end
									end
									i = i + 1
									v = getThingfromPos({x=x, y=y, z=7, stackpos=i}).uid
								end
							end
						end
					end
 
					if #playerTable == 1 then
						local prize = math.random(#configFire.rewardID)
 
						doTeleportThing(playerTable[1], getTownTemplePosition(getPlayerTown(playerTable[1])), true)
						doPlayerAddItem(playerTable[1], configFire.rewardID[prize], 1)
						doPlayerSendTextMessage(playerTable[1], MESSAGE_EVENT_ADVANCE, 'You win. Your reward is ' .. getItemNameById(configFire.rewardID[prize]) .. '.')
						doBroadcastMessage('Fire Storm Event have finished. The winner is ' .. getCreatureName(playerTable[1]) .. '. Congratulations.', MESSAGE_EVENT_ADVANCE)
						doSetStorage(configFire.eventStorage, -1)
						
						x, y = 1, 1
					elseif #playerTable > 1 then
						for a = 1, y do
							local pos = {x=xTable[math.random(#xTable)], y=yTable[math.random(#yTable)], z=7}
 
							for _, player in ipairs(playerTable) do
								local pPos = getThingPos(player)
								if pPos.x == pos.x and pPos.y == pos.y and pPos.z == pos.z then
									doCreatureAddHealth(player, - getCreatureMaxHealth(player))
								end
							end
							doSendDistanceShoot({x = pos.x - math.random(4, 6), y = pos.y - 5, z = pos.z}, pos, CONST_ANI_FIRE)
							
							addEvent(doSendMagicEffect, 150, pos, CONST_ME_HITBYFIRE)
							addEvent(doSendMagicEffect, 150, pos, CONST_ME_FIREAREA)
						end
						if x == 5 * y then
							y = y + 1
						end
						
						x = x + 1
					else
						doBroadcastMessage('No one Won the Fire Storm Event.', MESSAGE_EVENT_ADVANCE)
						doSetStorage(configFire.eventStorage, -1)
						x, y = 1, 1
					end
				end			  
				return true
			end
		]]>
	</globalevent>
 
	<event type="login" name="LMS_Fire_login" event="script">
		<![CDATA[
			function onLogin(cid)
				if getCreatureStorage(cid, configFire.storage) == 1 then
					doCreatureSetStorage(cid, configFire.storage, -1)
					doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), true)
					doCreatureSetNoMove(cid, false)
					doRemoveCondition(cid, CONDITION_INFIGHT)
				end
 
				registerCreatureEvent(cid, "LMS_fire_dead")
				registerCreatureEvent(cid, "LMS_Event_Start")
				return true
			end
		]]>
	</event>
 
	<event type="statschange" name="LMS_fire_dead" event="script">
		<![CDATA[
			domodlib("lms_config")
 
			function onStatsChange(cid, attacker, type, combat, value)
				if type == 1 and getCreatureHealth(cid) <= value then
					if isInRange(getThingPos(cid), arena.fromPos, arena.toPos) then
						doCreatureAddHealth(cid, - getCreatureHealth(cid) + 1)
						doCreatureAddMana(cid, - getCreatureMana(cid))
						doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
						doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, 'You have lost the Fire Storm Event.')
						return false
					end
				end
				return true
			end
		]]>
	</event>
</mod>

 

 

Link para o post
Compartilhar em outros sites
17 horas atrás, MaTTch disse:
  Ocultar conteúdo


<?xml version="1.0" encoding="UTF-8"?>
<mod name="Fire Storm Event" version="1.0" author="iFate" contact="otland.net/members/iFate/" enabled="yes">
	<config name="lms_config">
		<![CDATA[
			configFire = {
				storage = 8998, -- set free storage
				eventStorage = 6254, -- set free storage
				joinEventStorage = 5535, -- set free storage
				countPlayerStorage = 7373, -- set free storage
				exhaustStorage = 8387,
 
				maxPlayers = 50, -- max players in event
				teleportPos = {x=395, y=164, z=4}, -- position to which player is teleporting
				rewardID = {9693}, -- reward id which player can win (reward is random)
				minLevel = 8, -- minimum of level with which player can join to event
				days = {
				['Monday'] = {'18:00:00'},
				['Tuesday'] = {'18:00:00'}, 
				['Wednesday'] = {'18:00:00'},
				['Thursday'] = {'18:00:00'}, 
				['Friday'] = {'18:00:00'},
				['Saturday'] = {'18:00:00'},
				['Sunday'] = {'20:30:00'}
				},
				minPlayers = 2,
				 
				delayTime = 1.0, -- time in which players who joined to event are teleporting to teleport position
				timeToStartEvent = 30 -- time from teleport to start event
				}
				 
				arena = {fromPos = {x=369,y=134,z=4}, -- left top corner of event room
				toPos = {x=431,y=119,z=4} -- right bottom corner of event room
			}
			
			y, x = 1, 1
		]]>
	</config>
	
	<lib name="lms_fire_lib">
		<![CDATA[
			function doStartEvent()
				doSetStorage(configFire.joinEventStorage, -1)
				
				if configFire.minPlayers <= getStorage(configFire.countPlayerStorage) + 1 then		 
					for _, cid in ipairs(getPlayersOnline()) do
						if getCreatureStorage(cid, configFire.storage) == 1 then
							addEvent(doSetStorage, configFire.timeToStartEvent * 1000, configFire.eventStorage, 1)
							doCreatureSetStorage(cid, configFire.storage, -1)
							doCreatureSetNoMove(cid, false)
							doRemoveCondition(cid, CONDITION_INFIGHT)
 
							doTeleportThing(cid, configFire.teleportPos)
 
							doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, 'Get ready, The Event will start in ' .. configFire.timeToStartEvent .. ' seconds.')
						end
					end
				else
					for _, cid in ipairs(getPlayersOnline()) do
						if getCreatureStorage(cid, configFire.storage) == 1 then
							doCreatureSetNoMove(cid, false)
							doRemoveCondition(cid, CONDITION_INFIGHT)
						end
					end
					doBroadcastMessage('The fire storm event has not started because not enough players joined.', MESSAGE_EVENT_ADVANCE)
				end
				
				doSetStorage(configFire.countPlayerStorage, 0)
			end
		]]>
	</lib>
 
	<talkaction words="!event" event="script">
		<![CDATA[
			domodlib("lms_config")
			
			local condition = createConditionObject(CONDITION_INFIGHT,-1)
			
			function onSay(cid, words, param)
				local storage, playerJoined, counter = getCreatureStorage(cid, configFire.storage), {}, getStorage(configFire.countPlayerStorage)
 
				if getStorage(configFire.joinEventStorage) == 1 then
					if(param == '') then
						return doPlayerSendTextMessage(cid, MESSAGE_STATUS_SMALL, 'Command param required (say: "!event join" or "!event leave").')
					end
					
					if configFire.minLevel ~= nil then
						if getPlayerLevel(cid) < configFire.minLevel then
							return doPlayerSendTextMessage(cid, MESSAGE_STATUS_SMALL, 'You cannot join The Fire Storm Event if you do not have a require level. [' .. configFire.minLevel .. ']')
						end
					end
					
					if getTileInfo(getThingPos(cid)).protection ~= true then
						return doPlayerSendTextMessage(cid, MESSAGE_STATUS_SMALL, 'You cannot join The Fire Storm Event if you are not in a Protection Zone.')
					end
					
					if exhaustion.check(cid, configFire.exhaustStorage) ~= false then
						return doPlayerSendTextMessage(cid, MESSAGE_STATUS_SMALL, 'You must wait' .. exhaustion.get(cid, configFire.exhaustStorage) .. ' seconds.')
					end
 
					if param == 'join' then
						if storage <= 0 then
							if counter ~= configFire.maxPlayers - 1 then
								doSetStorage(configFire.countPlayerStorage, 0)
								for _, pid in ipairs(getPlayersOnline()) do
									if getCreatureStorage(pid, configFire.storage) > 0 then
										table.insert(playerJoined, pid)
										doSetStorage(configFire.countPlayerStorage, #playerJoined)
									end
								end
								local count = getStorage(configFire.countPlayerStorage)
								doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, count == 0 and 'You are first in the fire storm event.' or count == 1 and 'There is 1 player in fire storm event.' or count > 1 and 'There are '.. count ..' players in fire storm event.')
								doCreatureSetStorage(cid, configFire.storage, 1)
								
								doCreatureSetNoMove(cid, true)
								
								doAddCondition(cid, condition)
								doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, 'You have joined the Fire Storm Event, You may not move until the Event has started please wait patiently...')
							else
								doPlayerSendTextMessage(cid, MESSAGE_STATUS_SMALL, 'Max players in event have been reached.')
							end
						else
							doPlayerSendTextMessage(cid, MESSAGE_STATUS_SMALL, 'You already joined the Event, Wait patiently for it to start.')
						end
					elseif param == 'leave' then
						if storage > 0 then
							doCreatureSetNoMove(cid, false)
							doRemoveCondition(cid, CONDITION_INFIGHT)
							doCreatureSetStorage(cid, configFire.storage, -1)
							doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, 'You have left the Fire Run Event, And you can move now.')
						else
							doPlayerSendTextMessage(cid, MESSAGE_STATUS_SMALL, 'You cannot leave The Fire Storm Event.')
						end
					end
				else
					doPlayerSendTextMessage(cid, MESSAGE_STATUS_SMALL, 'You cannot join/leave The Fire Storm Event yet.')
				end
				
				exhaustion.set(cid, configFire.exhaustStorage, 5)
				
				return true
			end
		]]>
	</talkaction>
	
	<talkaction words="!startfire" access="5" event="script">
		<![CDATA[
			domodlib("lms_config")
			domodlib("lms_fire_lib")
 
			function onSay(cid, words, param)
				doBroadcastMessage('Fire Storm Event will start in ' .. configFire.delayTime .. ' minutes. You can join the Fire Storm Event by using this command "!event join".', MESSAGE_EVENT_ADVANCE)
 
				for _, pid in ipairs(getPlayersOnline()) do
					if getCreatureStorage(pid, configFire.storage) == 1 then
						doCreatureSetStorage(pid, configFire.storage, -1)
						doSetStorage(configFire.countPlayerStorage, 0)
						doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid)), true)
					end
				end
 
				doSetStorage(configFire.joinEventStorage, 1)			
				addEvent(doStartEvent, configFire.delayTime * 60 * 1000)
				return true
			end
		]]>
	</talkaction>
 
	<event type="think" name="LMS_Event_Start" event="script">
		<![CDATA[
			domodlib("lms_config")
			domodlib("lms_fire_lib")
 
			local daysOpen = {}
			
			for k, v in pairs(configFire.days) do
				table.insert(daysOpen, k)
			end
			
			function onThink(cid, interval)
				if isInArray(daysOpen, os.date('%A')) then
					if isInArray(configFire.days[os.date('%A')], os.date('%X', os.time())) then
						if getStorage(configFire.joinEventStorage) ~= 1 then
							doBroadcastMessage('Fire Storm Event will start in '.. configFire.delayTime ..' minutes. You can join the event by typing "!event join".', MESSAGE_EVENT_ADVANCE)
 
							for _, pid in ipairs(getPlayersOnline()) do
								if getCreatureStorage(pid, configFire.storage) == 1 then
									doCreatureSetStorage(pid, configFire.storage, -1)
									doSetStorage(configFire.countPlayerStorage, 0)
									doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid)), true)
								end
							end
 
							doSetStorage(configFire.joinEventStorage, 1)			
							addEvent(doStartEvent, configFire.delayTime * 60 * 1000)
						end
					end
				end
				return true
			end
		]]>
	</event>
	
	<globalevent name="LMS_Event" interval="1000" event="script">
		<![CDATA[
			domodlib("lms_config")
 
			function onThink(interval, lastExecution)
				if getStorage(configFire.eventStorage) == 1 then
					local xTable, yTable, playerTable = {}, {}, {}
 
					for x = arena.fromPos.x, arena.toPos.x do
						for y = arena.fromPos.y, arena.toPos.y do
							table.insert(xTable, x)
							table.insert(yTable, y)
 
							local n, i = getTileInfo({x=x, y=y, z=7}).creatures, 1
							if n ~= 0 then
								local v = getThingfromPos({x=x, y=y, z=7, stackpos=i}).uid
								while v ~= 0 do
									if isPlayer(v) then
										table.insert(playerTable, v)
										if n == #playerTable then
											break
										end
									end
									i = i + 1
									v = getThingfromPos({x=x, y=y, z=7, stackpos=i}).uid
								end
							end
						end
					end
 
					if #playerTable == 1 then
						local prize = math.random(#configFire.rewardID)
 
						doTeleportThing(playerTable[1], getTownTemplePosition(getPlayerTown(playerTable[1])), true)
						doPlayerAddItem(playerTable[1], configFire.rewardID[prize], 1)
						doPlayerSendTextMessage(playerTable[1], MESSAGE_EVENT_ADVANCE, 'You win. Your reward is ' .. getItemNameById(configFire.rewardID[prize]) .. '.')
						doBroadcastMessage('Fire Storm Event have finished. The winner is ' .. getCreatureName(playerTable[1]) .. '. Congratulations.', MESSAGE_EVENT_ADVANCE)
						doSetStorage(configFire.eventStorage, -1)
						
						x, y = 1, 1
					elseif #playerTable > 1 then
						for a = 1, y do
							local pos = {x=xTable[math.random(#xTable)], y=yTable[math.random(#yTable)], z=7}
 
							for _, player in ipairs(playerTable) do
								local pPos = getThingPos(player)
								if pPos.x == pos.x and pPos.y == pos.y and pPos.z == pos.z then
									doCreatureAddHealth(player, - getCreatureMaxHealth(player))
								end
							end
							doSendDistanceShoot({x = pos.x - math.random(4, 6), y = pos.y - 5, z = pos.z}, pos, CONST_ANI_FIRE)
							
							addEvent(doSendMagicEffect, 150, pos, CONST_ME_HITBYFIRE)
							addEvent(doSendMagicEffect, 150, pos, CONST_ME_FIREAREA)
						end
						if x == 5 * y then
							y = y + 1
						end
						
						x = x + 1
					else
						doBroadcastMessage('No one Won the Fire Storm Event.', MESSAGE_EVENT_ADVANCE)
						doSetStorage(configFire.eventStorage, -1)
						x, y = 1, 1
					end
				end			  
				return true
			end
		]]>
	</globalevent>
 
	<event type="login" name="LMS_Fire_login" event="script">
		<![CDATA[
			function onLogin(cid)
				if getCreatureStorage(cid, configFire.storage) == 1 then
					doCreatureSetStorage(cid, configFire.storage, -1)
					doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), true)
					doCreatureSetNoMove(cid, false)
					doRemoveCondition(cid, CONDITION_INFIGHT)
				end
 
				registerCreatureEvent(cid, "LMS_fire_dead")
				registerCreatureEvent(cid, "LMS_Event_Start")
				return true
			end
		]]>
	</event>
 
	<event type="statschange" name="LMS_fire_dead" event="script">
		<![CDATA[
			domodlib("lms_config")
 
			function onStatsChange(cid, attacker, type, combat, value)
				if type == 1 and getCreatureHealth(cid) <= value then
					if isInRange(getThingPos(cid), arena.fromPos, arena.toPos) then
						doCreatureAddHealth(cid, - getCreatureHealth(cid) + 1)
						doCreatureAddMana(cid, - getCreatureMana(cid))
						doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
						doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, 'You have lost the Fire Storm Event.')
						return false
					end
				end
				return true
			end
		]]>
	</event>
</mod>

 

 

Resolveu as mensagem no distro, funciona tudo, porem quando começa não acontece nada, os fogos não começam.

Sabe oque poderia ser?

Link para o post
Compartilhar em outros sites
1 hora atrás, davidguimaraesdrum disse:

 

Resolveu as mensagem no distro, funciona tudo, porem quando começa não acontece nada, os fogos não começam.

Sabe oque poderia ser?

 

Você configurou as positions dos cantos do mapa? Superior Esquerdo e Inferior Direito?

 

arena = {fromPos = {x=369,y=134,z=4}, -- left top corner of event room
				toPos = {x=431,y=119,z=4} -- right bottom corner of event room

 

Editado por Skipper (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
22 horas atrás, Skipper disse:

 

Você configurou as positions dos cantos do mapa? Superior Esquerdo e Inferior Direito?

 


arena = {fromPos = {x=369,y=134,z=4}, -- left top corner of event room
				toPos = {x=431,y=119,z=4} -- right bottom corner of event room

 

 

ToPos estava errada, vou testa e já dou REP+!

 

 

 

Realizei o teste com as positions correta, porem nada ocorre dentro do evento, falta os fogos ou o objetivo pra atacar os players. alguma dica? 

 

59124f3e43a9d_Semttulo.thumb.png.cf0b6e02f922ab2e41a426eb7d84f00e.png

Editado por davidguimaraesdrum (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por Jaurez
      .
    • Por Cat
      Em alguns casos, o tibia 8.60 comum não abre de jeito nenhum no map editor, mesmo desmarcando check file signatures e configurando o path corretamente.
       
      Este é o client 8.60 adaptado para o Remere's Map Editor. Resolvi postar já que ele foi removido do site oficial do RME. (ficou apenas a versão para linux lá)
      Se estiver tendo problemas para abrir a versão 8.60, tente utilizar este.
                                                                                                                     
      Baixar o Tibia Client 8.60 que funciona no Remere’s Map Editor
      Essa versão do Tibia 8.60 client resolve o erro unsupported client version ou Could not locate tibia.dat and/or tibia.spr, please navigate to your tibia 8.60 installation folder.
       
      Downloads
      https://tibiaking.com/applications/core/interface/file/attachment.php?id=47333

      Scan: https://www.virustotal.com/gui/file/333e172ac49ba2028db9eb5889994509e7d2de28ebccfa428c04e86defbe15cc
       
    • Por danilo belato
      Fala Galera To Com um problema aki 
       
      quero exporta umas sprites de um server para colocar em outro 
       
      eu clico na sprites ai aparece tds a forma delas do lado de la >>
       
      ai eu clico nela e ponho a opiçao de export mais quando salvo a sprite ela n abri 
       
      aparece isso quando tento vê-la 
       
      visualização não disponível ( no formatos png e bitmap)
       
      Agora no formato idc fala que o paint n pode ler 
       
      me ajudem ae...
    • Por Vitor Bicaleto
      Galera to com o script do addon doll aqui, quando eu digito apenas "!addon" ele aparece assim: Digite novamente, algo está errado!"
      quando digito por exemplo: "!addon citizen" ele não funciona e não da nenhum erro
       
      mesma coisa acontece com o mount doll.. 
    • Por Ayron5
      Substitui uma stone no serve, deu tudo certo fora  esse  erro ajudem  Valendo  Rep+  Grato  

      Erro: data/actions/scripts/boost.lua:557: table index is nil
       [Warning - Event::loadScript] Cannot load script (data/actions/scripts/boost.lua)

      Script:
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo