Ir para conteúdo
  • 0

[Correção] Poke Kill Event


Duhisback

Pergunta

Pessoal instalei esse script no meu servidor de poketibia ele está funcionando 50% como que está funcionando...

ele inicia o evento e fala

20:18 [Poke Kill Event] O evento comecou e vai durar 8 minuto. O monstro sorteado foi Rattata! Quem matar mais deles ate o fim sera o vencedor!

ai eu vou e mato um pokemon mais não aparece a mensagem de contagem de quantos pokemons eu matei e depois de acabar o tempo aparece a mensagem

20:26 [Poke Kill Event] O evento terminou e nao houve nenhum vencedor.

tá ai o script para que alguém possa min ajudar ficarei muito agradecido se alguém min ajudar

Obs: meu tfs é 1.0

em data/creaturescripts/scripts:

Spoiler

function onKill(cid, target, lastHit)
if isPlayer(cid) and isMonster(target) then
    if getCreatureMaster(target) ~= nil then
        return true
    end
local name = getGlobalStorageValue(19211)
    if string.lower(getCreatureName(target)) == string.lower(name) then
        doPlayerSetStorageValue(cid, 18210, getPlayerStorageValue(cid, 18210) + 1)
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "[Monster Hunter Event] Voce ja matou "..getPlayerStorageValue(cid, 18210).." "..name.."s! Continue matando para ser o vencedor!")
    end
end
    return true
end

function onLogin(cid)
if getGlobalStorageValue(19211) == 0 then
doPlayerSetStorageValue(cid, 18210, 0)
end
registerCreatureEvent(cid, "MonsterHunter")
return true
end

 

Em data/creaturescripts/creaturescripts.xml:

Spoiler

<event type="kill" name="MonsterHunter" event="script" value="kill.lua"/>

<event type="login" name="MonsterHunterl" event="script" value="kill.lua"/>

 

Em data/globalevents/scripts:

Spoiler

-- Monster Hunter Event feito por Killua, um fórum que não merece ser citado.com

local monsters = {"Rattata"} -- Monstros que podem ser sorteados
local time_min, max = 5, 10 -- Em minutos
local premios, gold = {{2160, 3}, {2145, 1}}, 10000 -- {id do item, quantidade} que o jogador ganha e quantia de gold

function winMonsterEvent()
local max_sto, winner = 0, 0
local monster = getGlobalStorageValue(19211)
for _, pid in pairs(getPlayersOnline()) do
local sto = getPlayerStorageValue(pid, 18210)
if sto > max_sto then
max_sto = sto
winner = pid
end
end
if isPlayer(winner) then
local artigo = getPlayerSex(winner) == 0 and "A jogadora" or "O jogador"
doBroadcastMessage(artigo.." "..getCreatureName(winner).." matou "..getPlayerStorageValue(winner, 18210).." "..monster.."s e venceu o evento, parabens!")
for _, prize in pairs(premios) do
doPlayerAddItem(winner, prize[1], prize[2])
end
doPlayerAddMoney(winner, gold)
else
doBroadcastMessage("[Poke Kill Event] O evento terminou e nao houve nenhum vencedor.")
end
setGlobalStorageValue(19211, 0)
end


function onTimer(interval, lastExecution, thinkInterval)
local random = math.random(1, #monsters)
local time = math.random(time_min, max)
for _, pid in pairs(getPlayersOnline()) do
doPlayerSetStorageValue(pid, 18210, 0)
end
setGlobalStorageValue(19211, monsters[random])
doBroadcastMessage("[Poke Kill Event] O evento comecou e vai durar "..time.." minuto. O monstro sorteado foi "..monsters[random].."! Quem matar mais deles ate o fim sera o vencedor!")
addEvent(winMonsterEvent, time*1000*60)
return true
end

 

Em data/globalevents/globalevents.xml:

Spoiler

<globalevent name="pokekill" time="20:34" event="script" value="kill.lua"/>

 

Editado por Night Wolf
seu título estava horrivel. Coloque algo que dê pra identificar seu tópico somente pelo título.
Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

Substitua o seu script que tá em data/creaturescripts/scripts
 Por esse, e veja se resolve o problema ao matar o monstro. Se não resolver, veja o que aparece na distro quando vc mata o monstro do evento:

function onKill(cid, target, lastHit)if isPlayer(cid) and isMonster(target) then    if getCreatureMaster(target) ~= nil then        return true    endlocal name = getGlobalStorageValue(19211)    if tostring(string.lower(getCreatureName(target))) == tostring(string.lower(name)) then        doPlayerSetStorageValue(cid, 18210, getPlayerStorageValue(cid, 18210) + 1)        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "[Monster Hunter Event] Voce ja matou "..getPlayerStorageValue(cid, 18210).." "..name.."s! Continue matando para ser o vencedor!")    else	print('target: '..string.lower(getCreatureName(target))..'')	print('name: '..string.lower(name)..'')	endend    return trueendfunction onLogin(cid)if getGlobalStorageValue(19211) == 0 thendoPlayerSetStorageValue(cid, 18210, 0)endregisterCreatureEvent(cid, "MonsterHunter")return trueend




Mande o resultado.

Link para o comentário
Compartilhar em outros sites

  • 0
5 horas atrás, danihcv disse:

Substitua o seu script que tá em data/creaturescripts/scripts

 Por esse, e veja se resolve o problema ao matar o monstro. Se não resolver, veja o que aparece na distro quando vc mata o monstro do evento:

function onKill(cid, target, lastHit)if isPlayer(cid) and isMonster(target) then    if getCreatureMaster(target) ~= nil then        return true    endlocal name = getGlobalStorageValue(19211)    if tostring(string.lower(getCreatureName(target))) == tostring(string.lower(name)) then        doPlayerSetStorageValue(cid, 18210, getPlayerStorageValue(cid, 18210) + 1)        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "[Monster Hunter Event] Voce ja matou "..getPlayerStorageValue(cid, 18210).." "..name.."s! Continue matando para ser o vencedor!")    else	print('target: '..string.lower(getCreatureName(target))..'')	print('name: '..string.lower(name)..'')	endend    return trueendfunction onLogin(cid)if getGlobalStorageValue(19211) == 0 thendoPlayerSetStorageValue(cid, 18210, 0)endregisterCreatureEvent(cid, "MonsterHunter")return trueend

 

 

 

Mande o resultado.

Olá amigo fiz do jeito que você pediu e não deu certo ainda

matei o bicho e não fez a contagem

No Server log apareceu

06:57 [Poke Kill Event] O evento terminou e nao houve nenhum vencedor.

Na Distro

[16/04/2016 06:49:00] > Broadcasted message: "[Poke Kill Event] O evento comecou e vai durar 8 minuto. O monstro sorteado foi Rattata! Quem matar mais deles ate o fim sera o vencedor!".
[16/04/2016 06:57:00] > Broadcasted message: "[Poke Kill Event] O evento terminou e nao houve nenhum vencedor.".

 

Link para o comentário
Compartilhar em outros sites

  • 0

Hm... Vê se no seu (data\creaturescripts\scripts) login.lua tem o seguinte:

registerCreatureEvent(cid, "MonsterHunterl")

Se não tiver, adicione isso aí antes do ultimo return true do login.lua.

Link para o comentário
Compartilhar em outros sites

  • 0
2 horas atrás, danihcv disse:

Hm... Vê se no seu (data\creaturescripts\scripts) login.lua tem o seguinte:

registerCreatureEvent(cid, "MonsterHunterl")

Se não tiver, adicione isso aí antes do ultimo return true do login.lua.

do mesmo jeito @danihcv

Editado por Eduzinhonho
Link para o comentário
Compartilhar em outros sites

  • 0

Substitua isso:

Citar
if getCreatureMaster(target) ~= nil then        return true    end

 

Por isso:

Citar

if isPlayer(getCreatureMaster(target)) then return true end

 

Link para o comentário
Compartilhar em outros sites

  • 0
54 minutos atrás, Poccnn disse:

Substitua isso:

 

Por isso:

 

Olá @Poccnn fiz o que você pediu e mesmo assim ficou igual antes não apareceu a msg "você já matou x monstros" e dai finaliza o evento e fala q n tem vencedor

 

Esse script meu tá de rosca não sei o que está acontecendo affs

Link para o comentário
Compartilhar em outros sites

  • 0
10 horas atrás, danihcv disse:

Só pra tirar a duvida... Vc reiniciou o server (fechar e abrir a distro) pra garantir que todas as modificações sejam aplicadas in game?

Sim todas as vezes cara você poderia min ajudar através do Skype se poder? se não pode blz por aqui tbm serve

Editado por Eduzinhonho
Link para o comentário
Compartilhar em outros sites

  • 0
9 minutos atrás, danihcv disse:

@Eduzinhonho, eu ñ dou suporte fora do fórum... ;(:

E também ñ to entendendo o que tá dando errado... :thinking:

entendo, cara lembrando que meu tfs é 1.0 tipo ele não está fazendo a contagem não mais está iniciando e finalizando normal só está dando problema na contagem dos monstros e meu serv é 8.54 poketibia

Link para o comentário
Compartilhar em outros sites

  • 0

Eu uso tfs 0.3.6 versão 8.54 (tibia) e nele storages não inserção strings, apenas numeros podem ser inseridos em stores.

Verifica se ao pegar a store ele está realmente retornando o nome do monstro.

Link para o comentário
Compartilhar em outros sites

  • 0
3 horas atrás, Poccnn disse:

Eu uso tfs 0.3.6 versão 8.54 (tibia) e nele storages não inserção strings, apenas numeros podem ser inseridos em stores.

Verifica se ao pegar a store ele está realmente retornando o nome do monstro.

poderia mandar pv pra nós tentar arrumar isso?

Link para o comentário
Compartilhar em outros sites

  • 0

Abaixo dessa parte do código:

Citar
local name = getGlobalStorageValue(19211)

 

Adiciona isso:

Citar

print (type (name) == "string" and name or type (name) == "number" and name or type (name))

 

Agora quando for executado esse script, irá imprimir no console o valor de name, então você saberá o que à store está retornando. 

Link para o comentário
Compartilhar em outros sites

  • 0
22 minutos atrás, Poccnn disse:

Abaixo dessa parte do código:

 

Adiciona isso:

 

Agora quando for executado esse script, irá imprimir no console o valor de name, então você saberá o que à store está retornando. 

pegou n acho que vou desistir mano

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...