Postado Janeiro 28, 2015 10 anos Eu tenho um ot de war que utiliza um sistema de gems que adicionam HP/MP permanentemente ao personagem que é bem legal, mas tem um problema com ele.. o pessoal stacka mana e hp até o infinito sem ter como perder ela, e com isso eu tive a ideia de colocar um script que ao morrer, você perder uma certa % de HP/MANA dependendo de sua vocação, mas como eu não sei fazer.. venho aqui pedir a vocês, ele seria assim: Druid e sorcerers perderem 5% da sua mana maxima ao morrer. Knights perderem 5% do seu HP maxima ao morrer. Paladins perderem 3% do seu HP maxima e 3% da sua mana ao morrer. O level inicial do meu server é 130, então eu gostaria que essas penalidades parassem de ser aplicadas ao chegar no HP/MP original desse level Editado Janeiro 28, 2015 10 anos por Murilosky (veja o histórico de edições)
Postado Janeiro 28, 2015 10 anos local config = { ["Mages"] = { vocs = {1, 5, 2, 6}, lose = { ["hp"] = 0, -- Nao perde health ["mp"] = 5, -- Perde 5% de mana } }, ["Knight"] = { vocs = {4, 8}, lose = { ["hp"] = 5, -- Perde 5% de health ["mp"] = 0, -- Nao perde mana } }, ["Paladin"] = { vocs = {3, 7}, lose = { ["hp"] = 3, -- Perde 3% de health ["mp"] = 3, -- Perde 4% de mana } } } function onDeath(cid, corpse, deathList) local voc = getPlayerVocation(cid) for index, info in pairs(config) do if isInArray(info.vocs, voc) then -- Da uma estudada em for.. if info.lose["mp"] > 0 then setCreatureMaxMana(cid, getCreatureMaxHealth(cid) * (1 - info.lose["mp"] / 100)) doCreatureAddMana(cid, 1) doCreatureAddMana(cid, -1) end if info.lose["hp"] > 0 then setCreatureMaxHealth(cid, getCreatureMaxHealth(cid) * (1 - info.lose["hp"] / 100)) doCreatureAddHealth(cid, 1) doCreatureAddHealth(cid, -1) end break end end return true end <event type="death" name="Perda" event="script" value="Arquivo.lua"/> tem que registrar .. registerCreatureEvent(cid, "Perda") Editado Janeiro 28, 2015 10 anos por Caronte (veja o histórico de edições) Se quiser sua dúvida tirada, mande PM com os links, e não com a dúvida (outros podem ter a mesma dúvida, e o fórum serve para ser usado). Tópicos: [FAQ] BBCODE [LIB] Constant [RME] Administrando bordas. [TALK] Broadcast Editável. [TALK] Sugest. [TALK] Checkpoint. [MOVE] Pântano pegajoso. [ACTION] Piggy Bank. (Cassino). [GLOBAL] Uptime Ad. [C0DE] Consertando 'Invalid Password' [PROGRAM] Quest Maker
Postado Janeiro 28, 2015 10 anos Eu tenho um ot de war que utiliza um sistema de gems que adicionam HP/MP permanentemente ao personagem que é bem legal, mas tem um problema com ele.. o pessoal stacka mana e hp até o infinito sem ter como perder ela, e com isso eu tive a ideia de colocar um script que ao morrer, você perder uma certa % de HP/MANA dependendo de sua vocação, mas como eu não sei fazer.. venho aqui pedir a vocês, ele seria assim: Druid e sorcerers perderem 5% da sua mana maxima ao morrer. Knights perderem 5% do seu HP maxima ao morrer. Paladins perderem 3% do seu HP maxima e 3% da sua mana ao morrer. O level inicial do meu server é 130, então eu gostaria que essas penalidades parassem de ser aplicadas ao chegar no HP/MP original desse level Como você não informou o hp/mana do level 130, fiz somente assim: Crie um arquivo com o nome deathpercent.lua function onDeath(cid, corpse, deathList) if not isPlayer(cid) then return true end local config = { mages = {1, 5, 2, 6}, pallys = {3, 7}, knights = {4, 8}, } if isInArray(config.mages, getPlayerVocation(cid)) then setCreatureMaxMana(cid, getPlayerMaxMana(cid) - (getPlayerMaxMana(cid)*0.5)) elseif isInArray(config.pallys, getPlayerVocation(cid)) then setCreatureMaxHealth(cid, getCreatureMaxHealth(cid) - (getCreatureMaxHealth(cid)*0.3)) setCreatureMaxMana(cid, getPlayerMaxMana(cid) - (getPlayerMaxMana(cid)*0.3)) elseif isInArray(config.knights, getPlayerVocation(cid)) then setCreatureMaxHealth(cid, getCreatureMaxHealth(cid) - (getCreatureMaxHealth(cid)*0.5)) end return true end Tag: <event type="death" name="DeathPercent" event="script" value="deathpercent.lua"/> No login.lua: registerCreatureEvent(cid, 'DeathPercent') Editado Janeiro 28, 2015 10 anos por Snowsz (veja o histórico de edições) _ .-'` `} _./) / } .'o \ | } '.___.'`.\ {` /`\_/ , `. } ME DA UMA NOZ! \=' .-' _`\ { `'`;/ `, } _\ @ ; } /__`;-...'--' Cluck!
Postado Janeiro 28, 2015 10 anos Autor Eu só tive tempo de olhar o tópico agora, esqueci de postar o HP/MP das vocações mesmo, perdão. Aqui vai: Paladin: 1405 HP 1255 MP Knight: 2015 HP 645 MP Sorcerer: 795 HP 3695 MP Druid: 795 HP 3695 MP Como ficaria o script? desculpas novamente pela falta de atenção. Editado Janeiro 28, 2015 10 anos por Murilosky (veja o histórico de edições)
Postado Janeiro 28, 2015 10 anos Eu só tive tempo de olhar o tópico agora, esqueci de postar o HP/MP das vocações mesmo, perdão. Aqui vai: Paladin: 1405 HP 1255 MP Knight: 2015 HP 645 MP Sorcerer: 795 HP 3695 MP Druid: 795 HP 3695 MP Como ficaria o script? desculpas novamente pela falta de atenção. Funciona sem saber o hp. Se quiser sua dúvida tirada, mande PM com os links, e não com a dúvida (outros podem ter a mesma dúvida, e o fórum serve para ser usado). Tópicos: [FAQ] BBCODE [LIB] Constant [RME] Administrando bordas. [TALK] Broadcast Editável. [TALK] Sugest. [TALK] Checkpoint. [MOVE] Pântano pegajoso. [ACTION] Piggy Bank. (Cassino). [GLOBAL] Uptime Ad. [C0DE] Consertando 'Invalid Password' [PROGRAM] Quest Maker
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.