Ir para conteúdo
  • Cadastre-se

[Ajuda] Fire storm event , zombie event e battle ground


Posts Recomendados

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 por Klauguns (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

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 .

Link para o post
Compartilhar em outros sites

@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 .

Link para o post
Compartilhar em outros sites

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 .

Posso fazer um remake pra você se você quiser, sobre os outros erros.. vou ver aqui se tenho os sistemas citados.

Link para o post
Compartilhar em outros sites

sobre o zombie, vai na pasta data/lib, abra o arquivo zombie_event.lua e adicione isto caso não tenha :

function kickPlayerFromZombiesArea(cid)
    doSendMagicEffect(getThingPosition(cid), CONST_ME_TELEPORT)
    doTeleportThing(cid, ZE_kickPosition, true)
    doSendMagicEffect(getThingPosition(cid), CONST_ME_TELEPORT)
    setPlayerZombiesEventStatus(cid, 0)
end

depois verifica o arquivo onattack.lua na pasta data/creaturescripts/zombie e se não tiver esse comando no começo do script, você adiciona :

kickPlayerFromZombiesArea(cid)

os arquivos estão renomeados assim aqui na minha pasta, talvez ai esteja diferente.

Link para o post
Compartilhar em outros sites

sobre o zombie, vai na pasta data/lib, abra o arquivo zombie_event.lua e adicione isto caso não tenha :

function kickPlayerFromZombiesArea(cid)
    doSendMagicEffect(getThingPosition(cid), CONST_ME_TELEPORT)
    doTeleportThing(cid, ZE_kickPosition, true)
    doSendMagicEffect(getThingPosition(cid), CONST_ME_TELEPORT)
    setPlayerZombiesEventStatus(cid, 0)
end

depois verifica o arquivo onattack.lua na pasta data/creaturescripts/zombie e se não tiver esse comando no começo do script, você adiciona :

kickPlayerFromZombiesArea(cid)

os arquivos estão renomeados assim aqui na minha pasta, talvez ai esteja diferente.

Meu brother obrigado por tentar me ajudar mas na pasta lib não contem o arquivo zombie :(

Link para o post
Compartilhar em outros sites

Meu brother obrigado por tentar me ajudar mas na pasta lib não contem o arquivo zombie :(

mas você abriu o arquivo e checou se tem aquela função? aquela função serve pra teleportar o player após ser tocado.

Link para o post
Compartilhar em outros sites

mas você abriu o arquivo e checou se tem aquela função? aquela função serve pra teleportar o player após ser tocado.

Olhei novamente aki brother e vi que meu systema é diferente ou esta faltando algo , vou remover os script que esta e colocar outro mais complexo .. vlw e rep + pela tentativa :D

Link para o post
Compartilhar em outros sites

Olhei novamente aki brother e vi que meu systema é diferente ou esta faltando algo , vou remover os script que esta e colocar outro mais complexo .. vlw e rep + pela tentativa :D

tranquilo, boa sorte ai na busca rs,

Link para o post
Compartilhar em outros sites

Oloco gente,tem até moderador aqui e ninguem reportou que o tópico ta seção erada ainda? PQP!

Mas blz como sempre faço,ja fiz o procedimento correto.

 

 

EDIT

 

 

ViitinG  leu minha mente na hora,rs

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

As vezes acontece da equipe não ver que o tópico está na área errada,para isso serve o botão de Relatar para Equipe,quando você ver algum tópico no lugar errado,basta relatar e os membros da equipe verão que há um tópico em área errada e por fim irão mover o tópico para área correta.

Obrigado por relatar! ;)

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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo