Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Olá, bom muitos vieram pedindo esse script e vou ajudar a vocês de como criar um NPC QUE MUDA NOME DO JOGADOR!

 

Vamos lá primeiro passo abra a pasta data/npcs. crie um arquivo chamado Kemi Change Nick.xml

 

  Mostrar conteúdo oculto
<?xml version="1.0" encoding="UTF-8"?>
<npc name="Kemi Change Nick" script="renamer.lua" walkinterval="0" floorchange="0">
<health now="150" max="150"/>
<look type="145" head="114" body="119" legs="114" feet="114" corpse="2212" addons="3"/>
    <parameters>
<parameter key="message_greet" value="Ola |PLAYERNAME|. Para mudar seu nome diga {nome} nao coloque nick muito grande ou ira bugar."/>
    </parameters>
</npc>

 

Agora abra a pasta scripts . Data/npc/scripts e crie um arquivo chamado renamer.lua

  Mostrar conteúdo oculto

local keywordHandler = KeywordHandler:new()


local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talk = {}
local name = {}

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 onPlayerEndTrade(cid) npcHandler:onPlayerEndTrade(cid) end
function onPlayerCloseChannel(cid) npcHandler:onPlayerCloseChannel(cid) end

function creatureGreetCallback(cid)
talk[cid] = 0
name[cid] = ''
return true
end

local chars = {' ', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'}

RET_VALID = 1
RET_EXISTS = 2
RET_INVALID = 3

local function validName(name)
if getPlayerGUIDByName(name) ~= nil then
return RET_EXISTS
end

for i = 1, name:len() do
if not(isInArray(chars, name:sub(i,i))) then
return RET_INVALID
end
end
return RET_VALID
end

local function getValid(name, opt)
local function tchelper(first, rest)
return first:upper()..rest:lower()
end

return opt and name:gsub("(%a)([%w_']*)", tchelper) or name:gsub("^%l", string.upper)
end

local config = {
type = 'item', -- or 'item'
money = 0, -- = 1cc
everyFirstLetterCapital = false
}

function messageDefaultCallback(cid, type, msg)
if not(npcHandler:isFocused(cid)) then
return false
end

if msgcontains(msg, "nome") and talk[cid] == 0 then
selfSay("Qual deve ser o seu novo nome?", cid)
talk[cid] = 1
elseif talk[cid] == 1 then
local v = getValid(msg:lower(), config.everyFirstLetterCapital)
local ret = validName(v)
if ret == RET_VALID then
selfSay("Então você quer '" .. v .. "' Para ser seu novo nome por " .. (config.type == "money" and (config.money .. " gold") or (config.item[2] .. ' ' .. (config.item[2] > 1 and getItemPluralNameById(config.item[1]) or getItemNameById(config.item[1])))) .. "?", cid)
talk[cid], name[cid] = 2, v
else
if ret == RET_INVALID then
selfSay(msg .. " não é um nome válido. Qual deve ser o seu novo nome?", cid)
elseif ret == RET_EXISTS then
selfSay(msg .. " já existe. Qual deve ser o seu novo nome?", cid)
end
end
elseif talk[cid] == 2 then
if msgcontains(msg, "yes") then
if (config.type == 'money' and doPlayerRemoveMoney(cid, config.money)) or (config.type ~= 'money' and doPlayerRemoveItem(cid, config.item[1], config.item[2])) then
local curName = getPlayerName(cid)
doRemoveCreature(cid)
db.executeQuery("UPDATE players SET name = '"..name[cid].."' WHERE name = '"..curName.."';")
else
selfSay("Você não tem " .. (config.type == "money" and (config.money .. " gold") or (config.item[2] .. ' ' .. (config.item[2] > 1 and getItemPluralNameById(config.item[1]) or getItemNameById(config.item[1])))) .. "!", cid)
talk[cid] = 0
end
else
selfSay("Não estou disponível no momento, talvez mais tarde.", cid)
talk[cid] = 0
end
end


return true
end

npcHandler:setMessage(MESSAGE_FAREWELL, "tchau.")
npcHandler:setMessage(MESSAGE_WALKAWAY, "Vá embora")
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, messageDefaultCallback)
npcHandler:setCallback(CALLBACK_FAREWELL, creatureFarewell)
npcHandler:setCallback(CALLBACK_CREATURE_DISAPPEAR, creatureFarewell)
npcHandler:setCallback(CALLBACK_GREET, creatureGreetCallback)
npcHandler:addModule(FocusModule:new())

 

Pronto o npc ja irá estar funcionando, lembrando que ele cobra 100 crystal coins para mudar o nome.

Caso queira colocar outro equipamento para cobrar.

 

SUBSTITUA:

  Mostrar conteúdo oculto

item = {

2160, 100}, -- itemid, itemcount

POR:

  Mostrar conteúdo oculto

item = {

9971, 100}, -- itemid, itemcount

Editado por Japoneeiiz (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • Respostas 10
  • Created
  • Última resposta

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Olá, bom muitos vieram pedindo esse script e vou ajudar a vocês de como criar um NPC QUE MUDA NOME DO JOGADOR!   Vamos lá primeiro passo abra a pasta data/npcs. crie um arquivo chamado Kemi Change Nick.xml     Agora abra a pasta scripts . Data/npc/scripts e crie um arquivo chamado renamer.lua   Pronto o npc ja irá estar funcionando, lembrando que ele cobra 100 crystal coins para mudar o nome. Caso queira colocar outro equipamento para cobrar.   SUBSTITUA: POR:

Ja vi um NPC parecido, acho bem bacana mas não muito rpg, obrigado por compartilhar

Legal, irei testar! Funciona em todas versões do TFS? Reputado.

Legal, irei testar! Funciona em todas versões do TFS?

Reputado.

YDmXTU2.png

 

Entenda tudo sobre VPS, DEDICADOS & HOSPEDAGENS. => Clique aqui

Global Full Download 10.9x - TFS 1.2/FERUMBRAS/KRAILOS. => Clique aqui

 

Muitos querem aquilo que você tem, 
mas vão desistir quando souberem o preço que você pagou.

 

skype-favicon.png lu.lukinha

message-16.png absolute@lnetworks.com.br

Link para o post
Compartilhar em outros sites
  Em 15/07/2014 em 17:09, Absolute disse:

Legal, irei testar! Funciona em todas versões do TFS?

Reputado.

Expand   Mostrar mais  

Se não me engano sim foi testado no 0.4 e 0.3.7

Link para o post
Compartilhar em outros sites

Esse script é para trocar o nome do player?

 

parabens pelo script

 

REP+

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

Meus Contatos!

 

Minhas Funções:

 

  Mostrar conteúdo oculto

               Skype: TsplayerT

         Facebook: TakaFukushii

          YouTube: ADoseDupla

           Twitter: @_Splayer_

 

 

 

 

 

 

 

                             Mapper:▓▓▓▓▓▓▓▓▓▓ 97%

     Programmer:▓▓▓▓▓▒▒▒▒▒ 45%

             Scripter:▓▓▓▓▓▓▓▓▓▒ 83%

              Spriter:▓▓▓▓▓▓▒▒▒▒ 57%

    Gamemaster:▓▓▓▓▓▓▓▓▓▓ 99%

        Ot Creator:▓▓▓▓▓▓▓▒▒▒71%

Ot Client Maker:▓▓▓▓▓▓▓▒▒▒74%

 

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.

  • Estatísticas dos Fóruns

    96840
    Tópicos
    519576
    Posts



×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo