NO

[NPC] [release] Reseter Npc

Por noobinhu, 26 de mai. de 2009 em NPCs, monsters e raids

script
31
8.8k
noobinhuN
26 de maio de 2009 às 22:13

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...

jacknightJ
26 de maio de 2009 às 22:27

Perguntas a cada 10 lvl custa 5k ?

 

e qual lvl pode resetar ? eu nao entendi esse systema :S

 

 

devee ser bem legal poderia explicar ?

satan666S
26 de maio de 2009 às 23:15

e cara pra voce e facim pra min que estou começando e dificil...

tenho uma pergunta esse npc reseta tudo?

melee.

lvl.

maglvl...

 

tipo o cara começa de novo do zero so que com as mesma ekips?

tibiaa4eT
27 de maio de 2009 às 02:33

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 Maio 27 por tibiaa4e

noobinhuN
27 de maio de 2009 às 12:32

é 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

FogoF
30 de maio de 2009 às 00:31

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.

30 de maio de 2009 às 18:19

nossa essa foi super incrivel

 

 

 

esse eu uso certeza!

 

Obrigado!

 

 

//Cya~

tibiaa4eT
31 de maio de 2009 às 23:33

@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...

noobinhuN
01 de junho de 2009 às 20:20

relaxa vei, se acostuma e o melhor é ignorar comentários do tipo ;p

tozinho123T
01 de junho de 2009 às 23:20

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:

tibiaa4eT
01 de junho de 2009 às 23:27

Eh seria legal

 

Eu entedi esse comando

Eh SQl e lembra uma coisa do Delphi...

 

+ seria legal mesmo um tutorial ou um link das funções...

02 de junho de 2009 às 13:37
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

noobinhuN
02 de junho de 2009 às 15:38

lib dessa class

http://otfans.net/showthread.php?p=1224613

 

depois eu faço um tutorial dela, quem conhece a class do php para mysqli sabe usar essa feita pelo Colandus.

02 de junho de 2009 às 19:02

Muito bom, queria saber mesmo que nem o RADBR ;p

tozinho123T
02 de junho de 2009 às 22:31

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