retirado
- Fórum
- xTibia - Notícias e Suporte
- Soluções
- Archived
- [Pedido] Npc..
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino

Editado Setembro 25 por Vodkart
info
Grupo: Visconde
Registrado: 12/09/10
Posts: 416
Reputação: +160
Char no Tibia: Draky Lucas

nao funcionou...
16:05 [Pokeland]Lucas [101]: darkness ball 16:05 Color: you need change you pokeball for darknessball? 16:05 [Pokeland]Lucas [101]: bye 16:05 Color: Good bye, [Pokeland]Lucas! 16:05 [Pokeland]Lucas [101]: hi 16:05 Color: Hello [Pokeland]Lucas, I am sell and buy coins! 16:05 [Pokeland]Lucas [101]: yes 16:05 Color: Please put ball with pokémon and say again.
cara tipo o npc eu sei fazer o problema é que ele se eu digo bye e hi dinovo ele nao volta ao inicio.. ele volta aonde ele tinha parado e eu gostaria que voltasse ao talkstate 0....
plz ajeita =d
olha meu npc como fico mais msmo assim nao volta
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
if(msgcontains(msg, 'darkness ball') or msgcontains(msg, 'DARKNESS BALL')) then
selfSay('you need change you pokeball for darknessball? ', cid)
talkState[talkUser] = 1
elseif (msgcontains(msg, 'yes') or msgcontains(msg, 'yes') and talkState[talkUser] == 1 ) then
local item = getPlayerSlotItem(cid,8).itemid
if item == nil then
selfSay('put your ball in correct slot and execute this action again!', cid)
talkState[talkUser] = 0
end
if item == 2128 or item == 2654 then
if doPlayerRemoveMoney(cid,350000) then
doTransformItem(getPlayerSlotItem(cid,8).uid,2650)
selfSay('you ball changed.', cid)
talkState[talkUser] = 0
else
selfSay('you need 350 dollars.', cid)
talkState[talkUser] = 0
end
else
selfSay('Please put ball with pokémon and say again.', cid)
talkState[talkUser] = 0
end
elseif msg == "no" and talkState[talkUser] == 1 then
selfSay("ok, fale dinovo mais tarde", cid)
talkState[talkUser] = 0
npcHandler:releaseFocus(cid)
end
return TRUE
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino

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
if(msgcontains(msg, 'darkness ball') or msgcontains(msg, 'DARKNESS BALL')) then
selfSay('you need change you pokeball for darknessball? ', cid)
talkState[talkUser] = 1
elseif msgcontains(msg, 'yes') and talkState[talkUser] == 1 then
local item = getPlayerSlotItem(cid,8).itemid
if item == nil then
if item == 2128 or item == 2654 then
if doPlayerRemoveMoney(cid,350000) then
doTransformItem(getPlayerSlotItem(cid,8).uid,2650)
selfSay('you ball changed.', cid)
talkState[talkUser] = 0
else
selfSay('you need 350 dollars.', cid)
talkState[talkUser] = 0
end
else
selfSay('Please put ball with pokémon and say again.', cid)
talkState[talkUser] = 0
end
else
selfSay('put your ball in correct slot and execute this action again!', cid)
talkState[talkUser] = 0
end
elseif msg == "no" and talkState[talkUser] >= 1 then
selfSay("ok, fale dinovo mais tarde", cid)
talkState[talkUser] = 0
npcHandler:releaseFocus(cid)
end
return TRUE
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
obs: eu testei aquele npc que eu fiz e funfo de boa olha
17:32 Alfredo: Ola Vodkart. eu tenho um bola a lhe oferecer. 17:32 Vodkart [150]: bola 17:32 Alfredo: você deseja uma bola? yes 17:32 Vodkart [150]: yes 17:32 Alfredo: Pronto aqui está sua bola!
xD
Editado Setembro 25 por Vodkart
info
Grupo: Campones
Registrado: 04/09/10
Posts: 9
Reputação: 0
Char no Tibia: Pino Walker

olha meu topico vodkart por faavor velho. faz mais de uma semana..
http://www.xtibia.com/forum/topic/141362-nova-vocationcom-spell/
info
Grupo: Visconde
Registrado: 12/09/10
Posts: 416
Reputação: +160
Char no Tibia: Draky Lucas

vodkart vc nao ta intendendo
funcionar ele funciona normal
o problema é que quando eu do bye ou saiu da tela ele nao volta ao talk_state 0...........
dae se eu falar hi
darkness ball
bye
hi
yes
funciona.. e nao é pa isso ocorrer.. é pa funciona só se for tudo uma vez sem dar bye no meio.....
intendeu agora???
thx
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino

aqui no meu funciona olhe:
20:19 Alfredo: Ola Vodkart. eu tenho um bola a lhe oferecer. 20:19 Vodkart [150]: ball 20:19 Alfredo: you need change you pokeball for darknessball? 20:19 Vodkart [150]: bye 20:19 Alfredo: Good bye, Vodkart! 20:19 Vodkart [150]: hi 20:19 Alfredo: Ola Vodkart. eu tenho um bola a lhe oferecer. 20:19 Vodkart [150]: yes 20:20 Vodkart [150]: yes 20:20 Vodkart [150]: yes
a diferença que de "draken ball" eu coloquei só "ball"
info
Grupo: Visconde
Registrado: 12/09/10
Posts: 416
Reputação: +160
Char no Tibia: Draky Lucas

peguei lib ors npc original do tfs e msmo assim se eu do bye e hi dinovo ele continua...
ow to com uma duvida..
pq qnd eu uso doTransformItem num npc da crash server?
peguei a base assim olha:
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
-- Conversa Jogador/NPC
if(msgcontains(msg, 'list')) then
selfSay('Eu troco pelas balls: {darkness ball}, {love ball} por 350 dollars cada.', cid)
elseif(msgcontains(msg, 'darkness ball')) then
selfSay('Voc\ê quer comprar Ultrax Cometta Hat por 350 dollars?', cid)
talkState[talkUser] = 1
-- Confirmação da Compra
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
if(doPlayerRemoveMoney(cid, 350000) == true) then
selfSay('Obrigado por comprar!', cid)
talkState[talkUser] = 0
else
selfSay('Voc\ê n\ão tem 350 dollars.', cid)
talkState[talkUser] = 0
end
end
return TRUE
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
se eu dexo assim da erro:
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
-- Conversa Jogador/NPC
if(msgcontains(msg, 'list')) then
selfSay('Eu troco pelas balls: {darkness ball}, {love ball} por 350 dollars cada.', cid)
elseif(msgcontains(msg, 'darkness ball')) then
selfSay('Voc\ê quer comprar Ultrax Cometta Hat por 350 dollars?', cid)
talkState[talkUser] = 1
-- Confirmação da Compra
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
if(doPlayerRemoveMoney(cid, 350000) == true) then
doTransformItem(getPlayerSlotItem(cid,8).uid,2650)
selfSay('Obrigado por comprar!', cid)
talkState[talkUser] = 0
else
selfSay('Voc\ê n\ão tem 350 dollars.', cid)
talkState[talkUser] = 0
end
end
return TRUE
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
plz help.. =d
Editado Setembro 26 por DrakyLucas



info
Grupo: Visconde
Registrado: 12/09/10
Posts: 416
Reputação: +160
Char no Tibia: Draky Lucas
iae galerinha do xtibia..
tipo gente eu to tentando faze npc aki mais nao ta dando mto certo... entao vou recorrer ao xtibia..
tipo alguem pode fazer um npc simples pa mim e dps eu modifico como eu kero ake?
faz um com umas 5 ou 6 falas..
versao: 8.54 - tfs 0.3.6 crying danson...
dados:
nao é de venda..
faz tipo o player falar:
tipo só faz assim que eu modifico aki em ksa tudo certim...
eu ateh consegui fazer mais por exemplo chega nessa hora:
e eu digito bye, qnd dou hi dinovo ele volta nessa msma hora e eu gostaria que voltasse ao inicio do script =/
alguem ajuda plz =d
THX