Postado Outubro 1, 2014 10 anos Bom pessoal primeiramente boa tarde a todos, como ja procurei em tudo quanto é lugar e não encontrei eu resolvi pedir a ajuda de vocês . O problema que estou tendo com os eventos vou citar abaixo : * Zombie event --> Resolvido , pois encontrei outro script automático pela net... * Fire storm event --> Instalei no meu servidor porém quando inicia o evento e o player diz !event join pra entrar noevento o player não é teleportado para o local do evento e o evento termina como se nenhum player estivesse participando . Script dp fire storm event o player não é teleportado para o evento apos digitar o comando !joinevent e o evento não inicia dizendo que não há players no evento . <?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=767 ,y=959,z=7}, -- position to which player is teleporting rewardID = {9693}, -- reward id which player can win (reward is random) minLevel = 1, -- 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'] = {'18:00:00'} }, minPlayers = 2, delayTime = 3.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=736,y=933,z=7}, -- left top corner of event room toPos = {x=781,y=955,z=7} -- 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> * Battle Ground --> Não tenho ainda e estou disposto a doar pelo pagseguro a quem me disponibilizar esse evento . Editado Outubro 2, 2014 10 anos por Klauguns (veja o histórico de edições)
Postado Outubro 1, 2014 10 anos Battle Ground --> Não tenho ainda e estou disposto a doar pelo pagseguro a quem me disponibilizar esse evento . Como funciona o evento? STYLLER OT 2022
Postado Outubro 1, 2014 10 anos Autor Como funciona o evento? Os players vão entrar no teleporte e aguardar a separação balanceada dos time em uma sala de espera que vai durar cerca de 15 minutos e não tem limite de players , tipo todos os players que entrarem no evento vão aguardar numa sala e quando iniciar serão automaticamente separados em 2 times um vermelho e outro preto que serão teleportados para uma area pvp o time vencedor que se manter vivo no evento vai ganha 10% de xp durante 12 horas .
Postado Outubro 1, 2014 10 anos @Klauguns, tipo battlefield com uma recompensa de xp por time? STYLLER OT 2022
Postado Outubro 1, 2014 10 anos Autor @Klauguns, tipo battlefield com uma recompensa de xp por time? Sim, eu vi um evento desse no ot global Underwar e to procurando esse evento pra implantar num Styller que to editando a um tempo .
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.