Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Eae galera blza? 

 

Preciso de uma ajudinha rapidinha aqui, sei que vocês são so caras do script.

 

então, possuo um script de npc que faz trocas de Tokens por alguns items, porém, o npc não está perguntando para o player se ele deseja realmente trocar, quando o player fala o nome do item, o npc já troca na hora, sem ao mesmo informar ao player a quantidade de tokens necessarios para a troca

 

Gostaria que o procedimento seja assim:

 

NPC: Eu vendo demon helmet, boots of haste

Player: boots of haste

NPC: O item boots of haste custa 10 tokens, deseja trocar?

Player: Yes

NPC: Troca efetuada! ( e então entregar o item, avá)

 

NOTA: Se o player não tiver a quantidade de tokens necessária, informar ao player e não realizar a troca.

 

Aguardo, obrigado!

 

 

codigo:

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
 
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
 
local t = {
		tokens = 5468, -- id of tokens
		items = {
		[1] = {"boots of haste", 10, 2195},
		[2] = {"demon helmet", 10, 2493},
		[3] = {"frozen starlight", 10, 2361},
		[4] = {"spellbook of dark mysteries", 10, 8918},
		[5] = {"royal crossbow", 10, 8851}
	}
}
 
function creatureSayCallback(cid, type, msg)
imsexyandiknowit,s = 0, ""
for i = 1, #t.items do
    imsexyandiknowit = imsexyandiknowit + 1
    s = s .. "{" ..t.items[i][1].. "}" 
    b = i == #t.items and "." or i == (#t.items-1) and " and " or ", "
    s = s .. b
end
if msgcontains(msg, 'trade') then
	npcHandler:say("You can change your tokens for: " .. s .."", cid)
end 
for i = 1, #t.items do
	if msgcontains(msg, t.items[i][1]) then
		if doPlayerRemoveItem(cid, t.tokens, t.items[i][2]) then
			doPlayerAddItem(cid, t.items[i][3], 1)
			npcHandler:say("Aqui tienes tu " .. t.items[i][1] .. "!", cid)
		else
			npcHandler:say("You don't have enough tokens!", cid)
		end
	end
end
return true
end
npcHandler:setCallback(CALLBACK_GREET, greetCallback)
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

Link para o post
Compartilhar em outros sites

Fiz correndo aqui no trampo, q jah ta quase na hora de eu pegar minhas mercedes para ir para casa... testa ae!!

além do mais estou meio enferrunado na linguagem e o cara q fez este script fez com algumas coisas diferentes q costumo usar!! porém eu tentei :P...

mais qqr coisa apenas retorne ae que eu arrumo!!

 

ajudei? REP +...

 

local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
 
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
 
local t = {
		tokens = 5468, -- id of tokens
		items = {
		[1] = {"boots of haste", 10, 2195},
		[2] = {"demon helmet", 10, 2493},
		[3] = {"frozen starlight", 10, 2361},
		[4] = {"spellbook of dark mysteries", 10, 8918},
		[5] = {"royal crossbow", 10, 8851}
	}
}
 
function creatureSayCallback(cid, type, msg)
imsexyandiknowit,s = 0, ""
for i = 1, #t.items do
    imsexyandiknowit = imsexyandiknowit + 1
    s = s .. "{" ..t.items[i][1].. "}" 
    b = i == #t.items and "." or i == (#t.items-1) and " and " or ", "
    s = s .. b
end
if msgcontains(msg, 'trade') then
	npcHandler:say("You can change your tokens for: " .. s .."", cid)
end 
for i = 1, #t.items do
	if msgcontains(msg, t.items[i][1]) then
		npcHandler:say("Este item custa " .. t.items[i][2] .."tokens, deseja trocar?", cid)
		if msgcontains(mag, 'yes') then
			if doPlayerRemoveItem(cid, t.tokens, t.items[i][2]) then
				doPlayerAddItem(cid, t.items[i][3], 1)
				npcHandler:say("Aqui tienes tu " .. t.items[i][1] .. "!", cid)
			else
				npcHandler:say("You don't have enough tokens!", cid)
			end
		else
			npcHandler:say("Nao?, Okay muito obrigado", cid)
	end
end
return true
end
npcHandler:setCallback(CALLBACK_GREET, greetCallback)
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
Editado por Carinhah (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Removido! 

Editado por GiovaniRodrigo (veja o histórico de edições)
Spoiler

local config = {
	delrey = getPlayerCarValue(cid, DELREY),
	cigarro = getPlayerCancer(cid, DERBY),
	prostituta = getPlayerAIDS(cid, cracuda),
	tresOitao = getPlayerRevorvi(cid, 38)
}

if(delrey == "Ligado" and cigarro == "Aceso" and prostituta == "No Colo" and tresOitao == "Carregado") then
	doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Começou o fim de semana. #PAS")
end

 

Link para o post
Compartilhar em outros sites

Ainda não está respondendo o Hi

Editado por lucas502 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Cara eu reescrevi o script de outra forma, nao tenho como testar ele porque estou fazendo td no meu serviço...

testa ae e ve se funciona, se funcionar bom, se nao funcionar avisa que arrumo os erros... pelo teste de mesa rapido que fiz antes do chefe chegar o script irá rodar tranquilo!!

 

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, 'trade') or msgcontains(msg, 'changer')) then
		selfSay('Voce pode trocar seus tokens por: boots of haste, Demon Helmet, Frozen Starlight, Spellbook of Dark Mysteries, Royal Crossbow!', cid)
		talkState[talkUser] = 1
	elseif(talkState[talkUser] == 1) then
		if(msgcontains(msg, 'boots of haste')) then
			selfSay('Boots of Haste custa 10 tokens, aceita trocar??', cid)
			if(msgcontains(msg, 'yes')) then		
				if(doPlayerRemoveItem(cid, 5468, 10)) then
					doPlayerAddItem(cid, 2195, 1)
					selfSay('Here you are.', cid)
				else
					selfSay('Sorry, you don\'t have enough tokens.', cid)
				end
			elseif(msgcontains(msg, 'no'))
				selfSay('Okay then.', cid)
			end
		elseif(msgcontains(msg, 'demon helmet')) then
			selfSay('Demon Helmet custa 10 tokens, aceita trocar??', cid)
			if(msgcontains(msg, 'yes')) then		
				if(doPlayerRemoveItem(cid, 5468, 10)) then
					doPlayerAddItem(cid, 2493, 1)
					selfSay('Here you are.', cid)
				else
					selfSay('Sorry, you don\'t have enough tokens.', cid)
				end
			elseif(msgcontains(msg, 'no'))
				selfSay('Okay then.', cid)
			end
		elseif(msgcontains(msg, 'frozen starlight')) then
			selfSay('Frozen Starlight custa 10 tokens, aceita trocar??', cid)
			if(msgcontains(msg, 'yes')) then		
				if(doPlayerRemoveItem(cid, 5468, 10)) then
					doPlayerAddItem(cid, 2361, 1)
					selfSay('Here you are.', cid)
				else
					selfSay('Sorry, you don\'t have enough tokens.', cid)
				end
			elseif(msgcontains(msg, 'no'))
				selfSay('Okay then.', cid)
			end
		elseif(msgcontains('spellbook of dark mysteries', cid)) then
			selfSay('Spellbook of Dark Mysteries custa 10 tokens, aceita trocar??', cid)
			if(msgcontains(msg, 'yes') then		
				if(doPlayerRemoveItem(cid, 5468, 10)) then
					doPlayerAddItem(cid, 8918, 1)
					selfSay('Here you are.', cid)
				else
					selfSay('Sorry, you don\'t have enough tokens.', cid)
				end
			elseif(msgcontains(msg, 'no'))
				selfSay('Okay then.', cid)
			end
		elseif(msgcontains(msg, 'royal crossbow')) then
			selfSay('Royal Rrossbow custa 10 tokens, aceita trocar??', cid)
			if(msgcontains(msg, 'yes')) then		
				if(doPlayerRemoveItem(cid, 5468, 10)) then
					doPlayerAddItem(cid, 8918, 1)
					selfSay('Here you are.', cid)
				else
					selfSay('Sorry, you don\'t have enough tokens.', cid)
				end
			elseif(msgcontains(msg, 'no'))
				selfSay('Okay then.', cid)
			end
		else
			selfSay('Sorry, you don\'t have the tokens.', cid)
		end
		talkState[talkUser] = 0
	elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser])) then
		talkState[talkUser] = 0
		selfSay('Ok then.', cid)
	end

	return true
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
Editado por Carinhah (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Puxa vida, ele não tá respondendo o hi ainda...

 

 
[13:35:41.695] [Error - NpcScript Interface]
[13:35:41.695] (Unknown script file)
[13:35:41.695] Description:
[13:35:41.695] attempt to call a nil value
[13:35:41.695] stack traceback:
 
 
Que hora tu chega do trab? Precisando resolver isso logo =\
Editado por lucas502 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo