Ir para conteúdo
  • 0

jefersonzc

Pergunta

Galera, seguinte, tô criando um npc que vende bless, aol e premium scroll, tudo junto (mas sem o sistema de trade, apenas por palavras).

A parte do scroll e do aol tão funcionando de boa, mas a parte da bless tá me matando. Já li e testei um monte de dicas aki do fórum mas nada me ajudou. Acho que o erro está no doPlayerAddBlessing. Segue meu Script:

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, 'premium')) then
		selfSay('You must pay 30000 gps for a premium scroll. Is it ok for you?', cid)
		talkState[talkUser] = 1
	elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
		if(doPlayerRemoveMoney(cid, 30000) == TRUE) then
			doPlayerAddItem(cid, 16101)
			selfSay('Enjoy it!', cid)
		else
			selfSay('Sorry, you dont have enough money.', cid)
		end
		talkState[talkUser] = 0
		
		
	elseif(msgcontains(msg, 'aol')) then
		selfSay('It will coust 10000 gps. Is it ok for you?', cid)
		talkState[talkUser] = 2
	elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 2) then
		if(doPlayerRemoveMoney(cid, 10000) == TRUE) then
			doPlayerAddItem(cid, 2173)
			selfSay('Here you are!', cid)
		else
			selfSay('Sorry, you dont have enough money.', cid)
		end
		talkState[talkUser] = 0
		
		
	elseif(msgcontains(msg, 'bless')) then
		selfSay('I can give you all blesseings for an amount of 10000. Is it ok for you?', cid)
		talkState[talkUser] = 3
	elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 3) then
		if(doPlayerRemoveMoney(cid, 10000) == TRUE) then
			doPlayerAddBlessing(cid, 1)
			doPlayerAddBlessing(cid, 2)
			doPlayerAddBlessing(cid, 3)
			doPlayerAddBlessing(cid, 4)
			doPlayerAddBlessing(cid, 5)
			selfSay('You are now blessed!', cid)
			doSendMagicEffect(getPlayerPosition(cid), 49)
		else
			selfSay('Sorry, you dont have enough money.', cid)
		end
		talkState[talkUser] = 0
		
		
	elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then
		talkState[talkUser] = 0
		selfSay('Ok then.', cid)
	end	

	return true
end

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

O erro é o segunte:

o npc, desconta a grana, fala a mensagem, manda o magic effect, mas sempre que eu morro pra testar, perco a bag.

 

Obs.: No console não é mostrado nenhum erro

 

 

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


Aff gente, perdoem-me pela minha noobisse, eu martelei a cabeça o dia todo com esse script. Então, apenas fiz o post e de repente tive um insight.

 

O problema estava no config.lua wacko.png Agora ta certo:

 

blessings = true
blessingOnlyPremium = true
Perdão pelo post, acabou sendo desnecessário.
Editado por jefersonzc
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

×
×
  • Criar Novo...