Ir para conteúdo

Npc Que So Funciona Sem Batle


coyotestark

Posts Recomendados

ola alguem poderia me dar uma força?

estou precisando de um script de npc da que tenham os seguints requisitos

se o jogador estiver com battle nao diga que ele tem que esperar o batle sair

que peça um storage X (vai em um lugar pegar este storage)

que verifique se a pessoa tem, se nao tiver deixar trexho para eu colocar o que a pessoa deve fazer;

que insira um storage X2 ( nescessario para uma proxima quest)

e que verifique se o player tiver o storage ele diga que a pessoa nao pode fazer aquela quest

 

exemplo de dialogo:

NPC: ola viajante posso ajuda-lo em algo?

Player: Quest

NPC: entao que quer entrar no castelo da perdição?

Player: yes

 

NPC: Resposta positiva se tiver o que é nescessario.

Pode seguir (Entra numa porta com storage que vou colocar)

resposta que nao tem storage x1( me traga tal coisa)

Resposta caso ja tenha feito esta parte (Storage X2) Nao quero ver sua cara feia pora ki novamente.

Resposta caso player esteja com fight( Apenas os que nao tenham sangue nas mals poderam entrar)

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

Cara, eu até posso fazer o
NPC
pra você, mas a explicação esta um pouco
confusa
. Poderia criar um
diálogo
que você gostaria que eu coloca-se no NPC. Facilitaria o meu trabalho.

 

Abraços !!
:smile_positivo:

Link para o comentário
Compartilhar em outros sites

olha o texto nao eh muito importante pq eu sei editar isso. mas seria +- assim

 

[player]hi

[NPC] Ola em que posso ajuda-lo

[Player] Quest

[NPC]Entao voce que entrar no castelo das almas perdidas?

[NPC]Yes

 

 

 

ai vem para fazer a quest eu preciso de um (123456)[sTG 1]

E que caso eu tenha esse requesito [storage 123456]receber o comando setplayerstorage (654321)[sTG 2]

Este storage vai ser exigido em outra quest

 

e lembrando que tem que ter uma confirmação de storage, para a quest nao ser feita duas vezes

 

[Player] Yes

[NPC]Sinto muito mas voce nao podera entrar sem permissao da arvore ancian [nao tenho STG 1]

[NPG]Voce ja teve sua chance seu porco ganancioso [ja falei com ele e tentei fazer a quest novamente [sTG 2]

 

cmo funciona a quest vou ate um lugar libero retiro uma arvore do caminho clicando nela, dai ao fazer isso recebo um storage que vai ser nescessario para poder falar com NPC, dai este NPc me dara um nove storage para fazer a segunda parte da quest num utro lugar.

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

nem testei

 

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 storage1,storage2 = 123456,654321

if(msgcontains(msg, 'quest') or msgcontains(msg, 'QUEST')) then
selfSay('Entao voce que entrar no castelo das almas perdidas? {yes}', cid)
talkState[talkUser] = 1
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
if getCreatureCondition(cid, CONDITION_INFIGHT) == TRUE then
selfSay('você não pode estar com battle!', cid)
talkState[talkUser] = 0
elseif getPlayerStorageValue(cid,storage1) <= 0 then
selfSay('Sinto muito mas voce nao podera entrar sem permissao da arvore ancian!.', cid)
talkState[talkUser] = 0
elseif getPlayerStorageValue(cid,storage2) >= 1 then
selfSay('Voce ja teve sua chance seu porco ganancioso!.', cid)
talkState[talkUser] = 0
end
setPlayerStorageValue(cid,storage2,1)
selfSay('Pode seguir sua jornada guerreiro!', cid)
doSendMagicEffect(getPlayerPosition(cid), 2)
end
return TRUE
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

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

Haaa muintissimop obrigado vodkart por me ajudar mais uma vez, e ao lek por me dar atenção tambem

em contribuição postarei um skin nicaw para otserv de bleach

 

vou testar e falo se funfo

 

ai lek ele ta falando todas as frazes juntas depoos de eu dizer yes

 

10:45 saga: Entao voce que entrar no castelo das almas perdidas? yes

10:45 Master [7]: yes

10:45 saga: Voce ja teve sua chance seu porco ganancioso!.

10:45 saga: Pode seguir sua jornada guerreiro!

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

lol

 

tenta assim então:

 

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 storage1,storage2 = 123456,654321

if(msgcontains(msg, 'quest') or msgcontains(msg, 'QUEST')) then
selfSay('Entao voce que entrar no castelo das almas perdidas? {yes}', cid)
talkState[talkUser] = 1
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
if getCreatureCondition(cid, CONDITION_INFIGHT) == TRUE then
return selfSay('você não pode estar com battle!', cid)
elseif getPlayerStorageValue(cid,storage1) <= 0 then
return selfSay('Sinto muito mas voce nao podera entrar sem permissao da arvore ancian!.', cid)
elseif getPlayerStorageValue(cid,storage2) >= 1 then
return selfSay('Voce ja teve sua chance seu porco ganancioso!.', cid)
end
setPlayerStorageValue(cid,storage2,1)
selfSay('Pode seguir sua jornada guerreiro!', cid)
doSendMagicEffect(getPlayerPosition(cid), 2)
elseif msg == "no" and talkState[talkUser] >= 1 then  
selfSay("Then not", 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

×
×
  • Criar Novo...