Ir para conteúdo

Npc Troca De Nome


luisfelipinho15

Posts Recomendados

Queria um npc do tipo que se falava hi change name dai escolhia um nome dai o npc iria retirar 5 vip diamonds que no meu ot o id do item é 2145 se possivel agradeço.

desculpem o jeito do topico mais to apressadao pq jaja vo por dedicado e talz.

Link para o comentário
Compartilhar em outros sites

xml:

 

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Name Changer" script="nome do arquivo.lua" walkinterval="2000" floorchange="0">
   <health now="100" max="100"/>
   <look type="128" head="17" body="54" legs="114" feet="0" addons="2"/>
   <parameters>
       <parameter key="message_greet" value="Ola, diga {change} para trocar seu nome."/>
   </parameters>
</npc>

 

script:

 

local configs = {
max = 14, -- tamanho maximo do nome
invalid = {"!", ".", ",", "@", "#", "GOD", "ADM"}, -- caracters invalidos
diamondid = 2145, -- id do diamante
count = 5 -- tantos de diamond que precisa
}

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

   if msgcontains(msg, 'change') and talkState ~= 1 then

	c = configs
	if getPlayerItemCount(cid, c.diamondid) < c.count then
		return selfSay('Voce precisa pelo menos de '..c.count.." "..getItemNameById(c.diamondid).." para trocar seu nome.", cid)
	end
	talkState = 1

elseif talkState == 1 and msg ~= "" then

	for _,d in pairs(c.invalid) do
		if string.find(msg, d) then
			return selfSay('Caracters invalidos não são permitidos.')
		end
	end

	if string.len(msg) > c.max then
		return selfSay('Você ultrapasou o limite de caracters.')
	end

	doPlayerRemoveItem(cid, c.diamondid, c.count)
	db.executeQuery("UPDATE `players` SET `name` = '"..msg.."' WHERE `id` = "..getPlayerGUID(cid)..";")
	doPlayerSendTextMessage(cid, 25, "Você será relogado em 5 segundos.")
	addEvent(doRemoveCreature, 5*1000, cid)

end

return true
end

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

 

configure o xml como kiser, e o npc tbem na tabela:

 

local configs = {
max = 14, -- tamanho maximo do nome
invalid = {"!", ".", ",", "@", "#", "GOD", "ADM"}, -- caracters invalidos
diamondid = 2145, -- id do diamante
count = 5 -- tantos de diamond que precisa
}

 

 

qualker erro mi diga pq ñ testei.

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

Tipo eu falo hi dai falo change ele nao fala nada fika queto dai se eu falo tipo The Devilz fala contem characters invalidos e talz

eu nao entendi pq aconteceu isso e nao da nenhum erro no console.

 

~~EDIT~~

Esqueçi de falar que se eu tiver sem diamond ele fala que precisa de diamond.

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

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...