luisfelipinho15 22 Postado Abril 9, 2011 Share Postado Abril 9, 2011 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 More sharing options...
meubk 257 Postado Abril 9, 2011 Share Postado Abril 9, 2011 (editado) 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 Abril 9, 2011 por xotservx Link para o comentário Compartilhar em outros sites More sharing options...
luisfelipinho15 22 Postado Abril 10, 2011 Autor Share Postado Abril 10, 2011 (editado) 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 Abril 10, 2011 por TheDevilZ Link para o comentário Compartilhar em outros sites More sharing options...
johann07 4 Postado Abril 10, 2011 Share Postado Abril 10, 2011 muito bom esse scripts para serves com area vip pois coloca o npc na area vip e so os vips podem troca de nome e tals bem interesante! vo testa no meu ot ake Link para o comentário Compartilhar em outros sites More sharing options...
luisfelipinho15 22 Postado Abril 15, 2011 Autor Share Postado Abril 15, 2011 AFFZ pelo jeito ninguem vai ajuda. Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados