Ir para conteúdo
Entre para seguir isso  
Morfeusinho

Npc de reset O.o

Recommended Posts

Morfeusinho    0
Morfeusinho

Bom pessoal estou eu aqui trazendo um script de meu OT ele é bem legal até.

Informações.

Autor:YUNIE

Nome:NPC Reseter.

Versão:Testado em versão 8.52(Ainda nbão testei em outras versões)

O npc reseta o level, do char, deixando com o mesmo life e skills magic level..., ele também diz quantos resets o personagem tem. É bastante legal em alguns otservers...

Bom.. Vamos lá

 

Vá em "data\npc" copie um arquivo ".xml" Abra ele com um bloco de notas e substitua tudo o que estiver dentro por:

 

[spoiler=NPC]

<?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="Ola, |PLAYERNAME|. Eu posso {resetar} seu level, ou posso lhe informar quantos {resets} seu char possui."/>

</parameters>

</npc>

 

informações:

nome do npc

 

Agora vá para "\data\npc\scripts" copie um arquivo ".lua" qualquer abra ele com um bloco de notas e substitua tudo o que tiver dentro por:

 

[spoiler=Script]

-- SCRIPT FEITO POR YUNIE

-- config

minlevel = 10 -- level para resetar

price = 5000

newlevel = 8 -- level após reset

newexp = 6400 -- 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, 'resetar') then

selfSay('Voce aceita o reset? se voce confirmar tera que deslogar para que o reset tenha efeito. voce tera que pagar a quantia de '..price..' GP para o 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('Voce precisa ter no minimo level '.. minlevel ..' para o 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('Yes, cid)

elseif msgcontains(msg, 'resets') then

selfSay('Voce tem '..getResets(cid)..' reset(s).', cid)

end

 

return true

end

 

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())

 

 

Level para usar o reset

valor a pagar pelo reset

Level que ficara o personagem após o reset

Experiencia que o personagem irá ficar após o reset

 

Ta ai o Script espero que gostem xD, se ja tem algum NPC asism pesso que excluam este tópico.:bye:

Editado por Morfeusinho
correção de português

Compartilhar este post


Link para o post
Gpwjhlkdcf    21
Gpwjhlkdcf

Tópico Aprovado e Movido para Scripting > Scripts Prontos > NPCs.

 

Padrão de Qualidade: OK

 

Créditos OK, obrigado pela contribuição! :)

Compartilhar este post


Link para o post
lucas-appr2    0
lucas-appr2

Cara eu precisava de um Talkaction !reset mais em vez de simplismente resetar ele guardar no banco de dados(no caso Mysql) 1 Reset, 2 Reset's...

Igual a esse(A parte do site eu monto)

http://sv1.radbr.com/sv1/info.php?act=highscores

Compartilhar este post


Link para o post
brunogay    0
brunogay

Tem como postar ele pra 8.50? D=

Compartilhar este post


Link para o post
Portland    0
Portland

queria um jeito de almentar atack também, pq quando reseta seu lvl volta então o char fica fraco denovo...

tinha que ter um jeito de soltar magia nova depois de um certo reset ou comprar armas novas depois de um certo reset. xD

Compartilhar este post


Link para o post
Morfeusinho    0
Morfeusinho

seria interessante, mas não sei como fazer não, eu apenas trouxe para cá..

Compartilhar este post


Link para o post
Đααи    0
Đααи

Boa maninho ^^

Vai ajudar a muitos que :D , npc funcionando 100% . eu dei umas editadas nele xD , lvl 10 pra reseta é estranho ._. xD

Compartilhar este post


Link para o post
diovanird    0
diovanird

No 8.5 ESSE NPC PEGA?

PQ NO MEU OT NAO TA DANDO NAO

SE TIVER UM PRA 8.5 AI ME PASSA PLZ

TO PRECISANU MTO

Compartilhar este post


Link para o post
Leozinkzzz    0
Leozinkzzz

gostei muito no npc, vou testa ele aqui dai digo ci é bom mesmo.

 

Edited: Kra vlw mesmo tava precisando de um npc desse geito ^^

Compartilhar este post


Link para o post
Portland    0
Portland
queria um jeito de almentar atack também, pq quando reseta seu lvl volta então o char fica fraco denovo...

tinha que ter um jeito de soltar magia nova depois de um certo reset ou comprar armas novas depois de um certo reset. xD

 

Consegui, depois de muito tempo...

http://forums.otserv.com.br/f179/sistema-de-reset-itens-por-reset-122632/

da uma olhadinha ai, com isso o char almenta atack tbm com os reset...

n só a defesa!

 

(Y)

Compartilhar este post


Link para o post
feliperaio    0
feliperaio

Uia... ta trazendo um pouco de Mu pro tibia xD

Compartilhar este post


Link para o post
xXHiroshiXx    0
xXHiroshiXx

muito bom gostei vo usar no meu server...

Compartilhar este post


Link para o post
Cenora13    0
Cenora13

Ficou massa, tenta por pra 8.10 ae :3

Compartilhar este post


Link para o post
Limaozinho    0
Limaozinho

Gostei muitoo, estava precisando de um desse mesmo pra server de xp alto é ótimo xD

 

Só modifiquei o level ali que o personagem precisar pra resetar xD, mais ficou excelente, bom trabalho.

Compartilhar este post


Link para o post
Rafael2009    0
Rafael2009

Ola, gostei dessa ideia, tem um pequeno erro no script espero que arrume, quem quiser deixarei o que esta certo aki:

 

-- SCRIPT FEITO POR YUNIE

-- config

minlevel = 20 -- level para resetar

price = 5000

newlevel = 10 -- level após reset

newexp = 9300 -- 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, 'resetar') then

selfSay('Voce aceita o reset? se voce confirmar tera que deslogar para que o reset tenha efeito. voce tera que pagar a quantia de '..price..' GP para o 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('Voce precisa ter no minimo level '.. minlevel ..' para o 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('Yes', cid)

elseif msgcontains(msg, 'resets') then

selfSay('Voce tem '..getResets(cid)..' reset(s).', cid)

end

 

return true

end

 

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())

Ele funfa em 8.5 sim e em versoes anteriores que tenham database, irei editar esse script para o NPC andar, ele soh fica parado, ai coloco aki denovo OK.

Compartilhar este post


Link para o post
god guizao    0
god guizao

Muito bom esse npc, mas prefiro vc escrever !reset...

Compartilhar este post


Link para o post
lukioloko    0
lukioloko

eu adorei botei no meu projeto do mapaglobal

Compartilhar este post


Link para o post
Morfeusinho    0
Morfeusinho
Ola, gostei dessa ideia, tem um pequeno erro no script espero que arrume, quem quiser deixarei o que esta certo aki:

qual erro que você encontrou?

e para o npc andar tem que mecher no xml dele...

exemplo:

[spoiler=xml do npc]

<npc name="Morfeusinho" script="data/npc/scripts/reset.lua" access="3" lookdir="2" walkinterval="2000">

 

Compartilhar este post


Link para o post
Australupteco    0
Australupteco

Morfeusinho...Bom pra kct esse npc to usando amarradão aqui no serv

 

se voce puder me add no msn pq eu preciso tirar uma duvida agradeço

 

[email protected]

 

Flw's

Compartilhar este post


Link para o post
#Allow    0
#Allow

eu acho desnecessário

mas tem gnt que precisa

 

Testado e aprovado... <num tinha o q fazer fui lá e usei>

shuauhsa

 

Legal ;P

Compartilhar este post


Link para o post
Entre para seguir isso  
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×