Ir para conteúdo

[Pedido] Npc..


drakylucas

Posts Recomendados

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:

hi
npc: olá |PLAYERNAME|, blablabla
bola
npc: você deseja uma bola?
[b]yes
npc: pronto.[/b]
[b]no
npc: ok, nao vo da a bola![/b]
bye
npc: good bye, |PLAYERNAME|.

 

tipo só faz assim que eu modifico aki em ksa tudo certim...

eu ateh consegui fazer mais por exemplo chega nessa hora:

npc: você deseja uma bola?

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

Link para o comentário
Compartilhar em outros sites

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())

Link para o comentário
Compartilhar em outros sites

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 por Vodkart
Link para o comentário
Compartilhar em outros sites

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

Link para o comentário
Compartilhar em outros sites

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"

Link para o comentário
Compartilhar em outros sites

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 por DrakyLucas
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...