Ir para conteúdo

[NPC] [release] Reseter Npc


noobinhu

Posts Recomendados

Um script muito simples de se fazer, disse até a lógica de como faz ele, ninguém quis fazer, tá ae então... 20 min de trabalho.

 

XML:

<?xml version="1.0"?>

<npc name="Reseter" script="data/npc/scripts/reseter.lua" walkinterval="0" floorchange="0">

<health now="100" max="100"/>

<look type="133" head="10" body="122" legs="19" feet="10"/>

<parameters>

<parameter key="message_greet" value="Hello, |PLAYERNAME|. I can 'reset' your level. If you want to see how many resets you have, say 'quant'."/>

</parameters>

</npc>

 

LUA (reseter.lua):

-- SCRIPT FEITO POR YUNIE

-- config

minlevel = 10 -- level para resetar

price = 5000

newlevel = 1 -- level após reset

newexp = 0 -- nova experiencia após reset

-- end config

 

function addReset(cid)

resets = getResets(cid)

setPlayerStorageValue(cid,36874,resets+1)

return true

end

 

function getResets(cid)

resets = getPlayerStorageValue(cid,36874)

if resets < 0 then

resets = 0

end

return resets

end

 

 

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, 'reset') then

selfSay('Do you want to reset your character level? Your character will be logged off if you confirm. You must pay '..price..' gold coins to reset.', cid)

talkState[talkUser] = 1

elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then

if getPlayerMoney(cid) < price then

selfSay('You must pay '..price..' gold coins to reset.', cid)

elseif getPlayerLevel(cid) < minlevel then

selfSay('You must be at least level '.. minlevel ..' to reset.', cid)

else

doPlayerRemoveMoney(cid,price)

addReset(cid)

playerid = getPlayerGUID(cid)

doRemoveCreature(cid)

db.executeQuery("UPDATE `players` SET `level`="..newlevel..",`experience`="..newexp.." WHERE `players`.`id`= ".. playerid .."")

end

talkState[talkUser] = 0

elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then

talkState[talkUser] = 0

selfSay('Ok.', cid)

elseif msgcontains(msg, 'quant') then

selfSay('You have '..getResets(cid)..' reset(s).', cid)

end

 

return true

end

 

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())

Configure em negrito.

 

Foi feito e testado em TFS 0.3 ou cryingdamson.

 

Mensagens:

'reset' - resetar level

'quant' - verificar quantos resets você tem.

 

É isso...

Link para o comentário
Compartilhar em outros sites

  • Respostas 30
  • Created
  • Última resposta

Top Posters In This Topic

Credo...

 

Que simples ahuahuhua

 

Parei na epoca errada e não aprendi uns 200 comandos hehe

 

Obrigado por postar no forum

Acho que você ajudo uns 10 nego por ai...

 

Agora só falta eles prestar + atenção =x

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

é o preço total e ele só reseta o level, ou seja, o cara chega level 300 aí começa ficar dificil de upar, ele reseta, continuando com a mesma mana/hp só que agora level 1 com 0 de experiência... tornando o up muito mais rápido e fácil, cansando menos tal

Link para o comentário
Compartilhar em outros sites

Noobinhu,

 

Seria possivel mudar, ao enves do NPC pedir GOLD pedir uma moeda especifica do servidor desejado?

Se puder dar uma resposta, agradeço!

 

Atenciosamente,

Fogo.

Link para o comentário
Compartilhar em outros sites

@all

O noobinhu deu a faca e o queijo para vocês

Vocês ainda querem que ele corte e de na boca ?

 

O problema da devasão do forum é que ao inves dos membros procurarem aprender com scripts realmente muito bons

è ficar pedindo que ele modifique coisas simples, que se vocês leem-se os tutoriais aprenderiam facilmente.

 

Como eu sempre digo na epoca que os "vovos" do forum aprendemos LUA (ou quase) não tinha nem metade da qualidade de tutoriais e os membros tops jogavam scripts e não explicavam...

Link para o comentário
Compartilhar em outros sites

dahoraa seu npc nobinhu, oou bem que voce podia fazer um tutorial de db que nao acho nenhum nen nos forums gringos, e estou tendo um poco de dificuldade em usar os comandos de db

 

iria ajudar muita gente :smile_positivo:

Link para o comentário
Compartilhar em outros sites

Credo...

 

Que simples ahuahuhua

 

Parei na epoca errada e não aprendi uns 200 comandos hehe

 

Obrigado por postar no forum

Acho que você ajudo uns 10 nego por ai...

 

Agora só falta eles prestar + atenção =x

 

mesma coisa pra mim, eu sou limitado ao que LUA me da, e não consigo acessar e modificar dentro de database e tal

Link para o comentário
Compartilhar em outros sites

as funções mais basicas de db como: db.executeQuery ou db.getResult eo ja manjo mais queria ficar bom mesmo niso ae pa faze umas ideia loca ae ee aproposito ja estou passando o npc do nobinhu o Merchant para as novas funções :smile_positivo:

 

mas seria muitoo bom um tutorial siim =D

Link para o comentário
Compartilhar em outros sites


×
×
  • Criar Novo...