Ir para conteúdo
  • 0

Npc


KUNGLOW

Pergunta

Preciso de um NPC de task diferente!

 

 

15:59 Ariatus [302]: Oi

15:59 Arthas: Olá Ariatus. Meu nome é Arthas, sou caçador de dragões.

15:59 Ariatus [302]: dragoes

15:59 Arthas: Eu caço vários tipos, como dragon, dragon lord, hydra, frost dragon, dragon guardian, thunder dragon e demodras. Você quer me ajudar a caçar um deles? Qual?

16:00 Ariatus [302]: dragon

16:00 Arthas: Ótimo! Você precisa matar pelo menos 1500 dragons em um prazo de 1 semana para te dar recompensa. Aceita?

16:00 Ariatus [302]: dragon lord

16:00 Arthas: Ótimo! Você precisa matar pelo menos 600 dragons lord em um prazo de 1 semana para te dar recompensa. Aceita?

16:00 Ariatus [302]: hydra

16:00 Arthas: Ótimo! Você precisa matar pelo menos 240 hydras em um prazo de 1 semana para te dar recompensa. Aceita?

16:00 Ariatus [302]: frost dragon

16:00 Arthas: Ótimo! Você precisa matar pelo menos 600 frost dragons em um prazo de 1 semana para te dar recompensa. Aceita?

16:00 Ariatus [302]: dragon guardian

16:00 Arthas: Ótimo! Você precisa matar pelo menos 1000 dragon guardians em um prazo de 1 semana para te dar recompensa. Aceita?

16:00 Ariatus [302]: demodras

16:00 Arthas: Ótimo! Você precisa matar pelo menos 600 demodras em um prazo de 1 semana para te dar recompensa. Aceita?

16:00 Ariatus [302]: thunder dragon

16:00 Arthas: Ótimo! Você precisa matar pelo menos 1200 thunder dragons em um prazo de 1 semana para te dar recompensa. Aceita?

16:01 Ariatus [302]: sim

16:01 Arthas: Você já pode começar a matar thunder dragons. Volte aqui quando matar 1200 thunder dragons para ser recompensado. O prazo é até 29/06/2012 16:01:00.

 

Ele da um prazo de 1 semana para cada task. E o player pode pegar todas se ele quiser 1 só de cada e ao cumprir ele entrega para o npc recebendo XP!.

E ao player aceita a task ao ele matar um exemplo uma hydra aparece pra ele a msg:

16:09 [Hydra Task] 1/240.

ao ele finalizar

16:09 [Hydra Task] finalizada.

 

Exemplo, depois de terminar a task ele vai poder voltar a fazer de novo se ele não conseguir fazer a task naquele prazo a sua contagem é zerada e ele tem que pegar a task novamente.

 

Quem me ajudar leva REP++

 

Desculpa pelo double post. Postei no topico errado.

 

#Up olhem ai pra mim galerinha.

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

9 respostass a esta questão

Posts Recomendados

  • 0

cara, não que eu vá fazer seu pedido mas você tem que explicar melhor seus pedidos, com o máximo de detalhes possível, porque imagina alguém te entrega um pedido e depois ter que ficar fazendo alterações? vai ficar chato tanto para quem teve o trabalho de atender quanto para quem pede, os dois irão perder tempo.

 

Exemplo, depois de terminar a task ele vai poder voltar a fazer de novo? se ele não conseguir fazer a task naquele prazo a sua contagem é zerada? entendeu zé.

Link para o comentário
Compartilhar em outros sites

  • 0

Eu pedi pois tenho um servidor com todos os npcs do RadBR de minha autoria mais esse da task não estou conseguindo ja fiz de tudo até deletei o npc, mais não consigo

 

@Vodkart, coloquei tudo na descrição do tópico conforme dito por você.

 

Obrigado pela sua atenção.

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

  • 0

pqp velho, que script chato de fazer, ele não é difícil, só é bem chatinho msm ¬¬

 

 

Mods:

<?xml version="1.0" encoding="UTF-8"?>  
<mod name="Kung Task" version="1.0" author="Vodkart" contact="xtibia.com" enabled="yes">  
<config name="kung_func"><![CDATA[
kungtask = {
["dragon"] = {storages = {620001,630001}, count = 1500,exp = 1000},
["dragon lord"] = {storages = {620002,630002}, count = 600, exp = 2000},
["hydra"] = {storages = {620003,630003}, count = 240, exp = 3000},
["frost dragon"] = {storages = {620004,630004} ,count = 600, exp = 4000},
["dragon guardian"] = {storages = {620005,630005} ,count = 1000, exp = 5000},
["demondras"] = {storages = {620006,630006} ,count = 600, exp = 6000},
["thunder dragon"] = {storages = {620007,630007} ,count = 1000, exp = 7000}
}
function ZerarTask(cid)
for var, ret in pairs(kungtask) do
if getPlayerStorageValue(cid, ret.storages[2]) ~= -1 and getPlayerStorageValue(cid,ret.storages[1]) <= os.time() then
setPlayerStorageValue(cid, ret.storages[2], -1)
setPlayerStorageValue(cid, ret.storages[1], -1)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You not have completed the task of "..var.." in the request time and it was zeroed")
end
end
end
]]></config>
<event type="login" name="KungRegister" event="script"><![CDATA[
function onLogin(cid)
registerCreatureEvent(cid, "KillingKung")
return true
end]]></event>	  
<event type="kill" name="KillingKung" event="script"><![CDATA[
domodlib('kung_func')
function onKill(cid, target)
if(isMonster(target) == TRUE) then
local n = getCreatureName(target)
local name_monster = kungtask[string.lower(n)]
if(name_monster and getPlayerStorageValue(cid,name_monster.storages[1]) >= os.time()) then
local contagem = getPlayerStorageValue(cid, name_monster.storages[2])
if contagem > name_monster.count then return true end
setPlayerStorageValue(cid, name_monster.storages[2], contagem+1)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, ""..((contagem+1) < name_monster.count and "["..n.." Task] "..(contagem+1).."/"..name_monster.count or "["..n.." Task] Finaliza")..".")
end
end
return true
end]]></event>
<globalevent name="ZerarTask" interval="60" event="script"><![CDATA[
domodlib('kung_func')
function onThink(interval, lastExecution)
local on = getPlayersOnline()
if #on > 0 then
for i = 1, #on do
ZerarTask(on[i])
end
end
return true
end]]></globalevent>
</mod>

 

 

Npc:

 

domodlib('kung_func')
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 msg = string.lower(msg)
local days = 7
if isInArray({"task","mission", "missão"}, msg) then
npcHandler:say("Me diga o nome do monstro que você deseja fazer a task!", cid)
talkState[talkUser] = 1
elseif talkState[talkUser] == 1 then
if kungtask[msg] then
if getPlayerStorageValue(cid, kungtask[msg].storages[1]) == -1 then
stor,name,count,stor2 = kungtask[msg].storages[1],msg,kungtask[msg].count,kungtask[msg].storages[2]
npcHandler:say("Ótimo! Você precisa matar pelo menos "..count.." "..name.." em um prazo de "..days.." dias para te dar recompensa. Aceita? {yes}", cid)
talkState[talkUser] = 2
else
npcHandler:say("Você já está participando desta task.", cid)
talkState[talkUser] = 1
end
else
npcHandler:say("digite o nome certo do monstro.", cid)
talkState[talkUser] = 1
end
elseif (msgcontains(msg, 'yes') and talkState[talkUser] == 2) then
setPlayerStorageValue(cid, stor, os.time()+days*86400)
setPlayerStorageValue(cid, stor2, 0)
npcHandler:say("Você já pode começar a matar "..name..". Volte aqui quando matar "..count.." "..name.." para ser recompensado. O prazo é até "..os.date("%d %B %Y %X", getPlayerStorageValue(cid,stor))..".", cid)
talkState[talkUser] = 0
elseif isInArray({"entregar","receber", "recompensa"}, msg) then
for var, ret in pairs(kungtask) do
if getPlayerStorageValue(cid,ret.storages[1]) >= os.time() and getPlayerStorageValue(cid,ret.storages[2]) >= ret.count then
doPlayerAddExp(cid, ret.exp)
setPlayerStorageValue(cid, ret.storages[2], -1)
setPlayerStorageValue(cid, ret.storages[1], -1)
return npcHandler:say("Obrigado! você recebeu "..ret.exp.." de experience por ter terminado a task do "..var, cid)
else
return npcHandler:say("Desculpe, mas você não terminou nenhuma missão.", cid)
end
end
elseif isInArray({"no","nao"}, msg)  then  
selfSay("tudo bem então.", cid)  
talkState[talkUser] = 0  
npcHandler:releaseFocus(cid)  
end
return TRUE
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

no npc vc fala:

 

hi

task

NOME DA TASK

 

e pra receber a recompensa vc fala

 

hi

entregar

e o npc vai entregar a recompensa da task que ele TERMINOU para o player

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

  • 0

Acabei de formatar o PC e vou testar so vou baixar o net.~ e irei testar.

 

Uma dúvida se eu quiser criar mais NPCs deste modo é so copiar o aqrquivo renomear e mudar oq?

 

Mais de um npc para a mesma função? porque se você for criar um npc novo com monstros diferentes e tal, teria que criar uma tabela diferente e modificar o nome da tabble no npc tbm, ai pede para alguém mais experiente fazer pra vc

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...