Ir para conteúdo
  • 0

[Ajuda] Com script NPC + Global


KarlKalvin

Pergunta

Eaê pessoal :D... Tô aqui para pedir uma ajudinha a vocês com meu sistema aqui... que é o seguinte, vejam esses scripts

 

NPC.Lua

 

 

 

local keywordHandler = KeywordHandler:new()

local npcHandler = NpcHandler:new(keywordHandler)

NpcSystem.parseParameters(npcHandler)

local talkState = {}

function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end

function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end

function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end

function onThink() npcHandler:onThink() end

 

function creatureSayCallback(cid, type, msg)

if(not npcHandler:isFocused(cid)) then

return false

end

 

local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

local pos = {x = 525, y = 708, z = 8}

 

if ((os.date("%H") == "23") or (os.date("%H") == "14")) then

if msgcontains(msg, 'torneio') then

selfSay("Então... você é um treinador e quer participar do torneiro, para participar vai custar 3TD.", cid)

talkState[talkUser] = 1

end

else

selfSay("O evento ainda não começou.", cid)

end

---------------------------------------------------------

if (msgcontains(msg, "yes") or msgcontains(msg, "sim")) and talkState[talkUser] == 1 then

doPlayerAddItem(cid, 5957, 1) == TRUE then

doTeleportThing(cid, pos) == TRUE then

doPlayerRemoveItem(cid, 2160, 3) == TRUE then

selfSay("Obrigado e boa sorte.", cid)

elseif (msgcontains(msg, "no") or msgcontains(msg, "nao")) and talkState[talkUser] == 1 then

selfSay("Ok, até a próxima '..getCreatureName(cid)..'.", cid)

talkState[talkUser] = 0

end

end

 

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())

 

 

 

Corrigem-me.. player vai falar com o npc para ir ao evento, o evento começa um as 14:00 outro as 23:00, vai adicionar um item, e move-lo para posição, eu quero que o player só pode falar/conversar com o player se tiver 10 minutos antes do evento, se der menos que isso, o NPC vai falar que não está na hora ainda... e se passar do horario do evento, o npc fala a mesma coisa.

 

Evento.lua - GlobalActions

 

 

 

 

local config = {

ingresso_id = 5957,

dias_evento = {1, 2, 3, 4, 5, 6, 7}, -- 1 -> Domingo; 2-> Segunda; 3 -> Terça ... 7 -> Sábado

 

pos1 = {x = 518, y = 702, z = 8},

pos2 = {x = 532, y = 714, z = 8},

 

pos_evento = {x = 519, y = 677, z = 8},

}

 

function onTimer(interval)

if isInArray(config.dias_evento, os.date("*t").wday) then

for x = 0, config.pos2.x - config.pos1.x do

for y = 0, config.pos2.y - config.pos1.y do

local pos = {x = config.pos1.x + x, y = config.pos1.y + y, z = config.pos1.z}

local cid = getTopCreature(pos).uid

if isPlayer(cid) and doPlayerRemoveItem(cid, config.ingresso_id, 1) then

doTeleportThing(cid, config.pos_evento)

end

end

end

end

 

return true

end

 

 

 

Esse script é a base, quando chegar nos tempos como falei a cima, os players de tal posição seram movidos para posição de evento...

 

Oque tá faltando que eu quero é...

 

Todos poderam se matar...

O Ultimo que sobrar, será teleportado para o templo

O ultimo irá ganhar alguns itens

E aparece-rá uma mensagem no global, dizendo quem ganhou, e que horas será o proximo torneio.

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

3 respostass a esta questão

Posts Recomendados

×
×
  • Criar Novo...