Morfeusinho 0 #1 Postado 21 Novembro, 2009 (editado) 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. Editado 22 Novembro, 2009 por Morfeusinho correção de português Compartilhar este post Link para o post
Gpwjhlkdcf 21 #2 Postado 24 Novembro, 2009 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 #3 Postado 24 Novembro, 2009 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 #4 Postado 29 Novembro, 2009 Tem como postar ele pra 8.50? D= Compartilhar este post Link para o post
Portland 0 #5 Postado 29 Novembro, 2009 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 #6 Postado 30 Novembro, 2009 seria interessante, mas não sei como fazer não, eu apenas trouxe para cá.. Compartilhar este post Link para o post
Đααи 0 #7 Postado 30 Novembro, 2009 Boa maninho ^^ Vai ajudar a muitos que , npc funcionando 100% . eu dei umas editadas nele xD , lvl 10 pra reseta é estranho ._. xD Compartilhar este post Link para o post
diovanird 0 #8 Postado 1 Dezembro, 2009 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 #9 Postado 2 Dezembro, 2009 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 #10 Postado 6 Dezembro, 2009 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 #11 Postado 7 Dezembro, 2009 Uia... ta trazendo um pouco de Mu pro tibia xD Compartilhar este post Link para o post
xXHiroshiXx 0 #12 Postado 8 Dezembro, 2009 muito bom gostei vo usar no meu server... Compartilhar este post Link para o post
Cenora13 0 #13 Postado 11 Dezembro, 2009 Ficou massa, tenta por pra 8.10 ae :3 Compartilhar este post Link para o post
Limaozinho 0 #14 Postado 11 Dezembro, 2009 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 #15 Postado 12 Dezembro, 2009 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 #16 Postado 13 Dezembro, 2009 Muito bom esse npc, mas prefiro vc escrever !reset... Compartilhar este post Link para o post
lukioloko 0 #17 Postado 16 Dezembro, 2009 eu adorei botei no meu projeto do mapaglobal Compartilhar este post Link para o post
Morfeusinho 0 #18 Postado 19 Dezembro, 2009 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 #19 Postado 23 Dezembro, 2009 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 #20 Postado 23 Dezembro, 2009 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