Postado Setembro 7, 2020 4 anos Em 28/06/2014 em 11:16, xWhiteWolf disse: Fala galera do TK, criei esse anelzinho pra servers que procuram inovar.. bom, oque ele faz??Simples, ele torna o usuário invisível.aff, mas já existe o stealth ring que faz isso!Sim mas dessa vez eu digo invisível mesmo, nenhum monstro ou players conseguirá te ver.que lixo, assim qualquer player vai poder ficar invisível e passar no meio dos monstros e players.. vai estragar o serverAí é que vc se engana porque o anel vem uma maldição, quem usar ele vai perdendo 3% de vida por segundo (ajustável) e só vai estragar o server se vc sair distribuindo o anel pra todos os players hahaO anel em si possui duas versões, na primeira ele retira 3% de vida por segundo, na segunda ele adiciona uma condição que te deixa perdendo uma quantidade fixa de vida, CONTUDO, na segunda versão aparece uma poça de sangue cada vez que toma o dano então dá pros players te pegarem caso vc coloque o anel e resolva fugir kkkkkVou chamar aqui de versão 1 e 2 respectivamente. OBS: ISSO É EM MOVEMENTS! 1ª versão (sem sangue mas que tira 3% de vida por segundo): local invisible = createConditionObject(CONDITION_GAMEMASTER, -1, false, GAMEMASTER_INVISIBLE) local outfit = createConditionObject(CONDITION_INVISIBLE, -1, false) local percent = 3 local tempo = 1 -- em segundos function onEquip(cid, item, slot) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "By using this ring you will become fully invisible and lose health over time because of it's curse.") function lifesteal(cid) steal = addEvent(lifesteal, 1000*tempo, cid) if isCreature(cid) then doSendAnimatedText(getCreaturePos(cid), "-"..math.floor((getCreatureMaxHealth(cid) * (percent/100))), 144, cid) doCreatureAddHealth(cid, -math.floor(getCreatureMaxHealth(cid) * (percent/100))) end end lifesteal(cid) doAddCondition(cid, invisible) doAddCondition(cid, outfit) doSendMagicEffect(getCreaturePos(cid), 12) return true end function onDeEquip(cid, item, slot) doTransformItem(item.uid, 2165) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You're no longer receiving the special bonus..") stopEvent(steal) doRemoveCondition(cid, CONDITION_INVISIBLE) doSendMagicEffect(getCreaturePos(cid), 12) doRemoveCondition(cid, CONDITION_GAMEMASTER, GAMEMASTER_INVISIBLE) return true end 2ª versão (a cada 1,5 segundos ele te tira um dano configurado e deixa uma poça de sangue embaixo de vc facilitando que te identifiquem mesmo estando invisivel): local invisible = createConditionObject(CONDITION_GAMEMASTER, -1, false, GAMEMASTER_INVISIBLE) local outfit = createConditionObject(CONDITION_INVISIBLE, -1, false) local condition = createConditionObject(CONDITION_PHYSICAL) setConditionParam(condition, CONDITION_PARAM_DELAYED, TRUE) addDamageCondition(condition, -1, 1500, -500) function onEquip(cid, item, slot) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "By using this ring you will become fully invisible and lose health over time because of it's curse.") doAddCondition(cid, condition) doAddCondition(cid, invisible) doAddCondition(cid, outfit) doSendMagicEffect(getCreaturePos(cid), 12) return true end function onDeEquip(cid, item, slot) doTransformItem(item.uid, 2165) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You're no longer receiving the special bonus..") doRemoveCondition(cid, CONDITION_PHYSICAL) doRemoveCondition(cid, CONDITION_INVISIBLE) doSendMagicEffect(getCreaturePos(cid), 12) doRemoveCondition(cid, CONDITION_GAMEMASTER, GAMEMASTER_INVISIBLE) return true end Agora edite no items.xml o stealth ring pra que ele seja infinito: <item id="2202" article="a" name="stealth ring"> <attribute key="weight" value="100" /> <attribute key="slotType" value="ring" /> <attribute key="transformDeEquipTo" value="2165" /> </item> e em movements.xml adicione essas linhas: <movevent type="Equip" itemid="2202" slot="ring" event="script" value="stealth.lua"/> <movevent type="DeEquip" itemid="2202" slot="ring" event="script" value="stealth.lua"/> Editando: Na primeira versão vc pode alterar as seguintes coisas que estão em colorido: local invisible = createConditionObject(CONDITION_GAMEMASTER, -1, false, GAMEMASTER_INVISIBLE) local outfit = createConditionObject(CONDITION_INVISIBLE, -1, false) local percent = 3 local tempo = 1 -- em segundos em vermelho é o tempo que dura a invisibilidade... -1 é infinito em azul é a porcentagem de vida que perde por tempo em verde é o tempo em que se perde vida.. nesse caso a cada 1 segundo perde 3% Na segunda versão vc pode editar as mesmas coisas do primeiro só que o tempo e o dano pelo tempo estão na condition: local condition = createConditionObject(CONDITION_PHYSICAL) setConditionParam(condition, CONDITION_PARAM_DELAYED, TRUE) addDamageCondition(condition, -1, 1500, -500) em vermelho é o numero de vezes que vai tirar vida. Mais uma vez -1 significa infinito (infinito até remover o anel) em azul é o dano que vc toma a cada tempo (lembre-se de deixar sempre um - na frente se não ele vai adicionar vida) em verde é o tempo em que se perde vida.. nesse caso a cada 1 segundo e meio retira 500 de vida Bom, é isso.. um script simples mas que vai ajudar muita gente pelo fato de usar conditions não tão comuns e de uma forma diferente haha Meu rei, seria possível colocar alguma função (ou sei lá como chama) que impossibilita o player de usar qualquer meio de cura (poção, spell, etc) enquanto estiver usando o anel? ~~ [show Off] Lolksky ~~
Postado Setembro 14, 2020 4 anos Autor Em 07/09/2020 em 23:15, lolksky disse: Meu rei, seria possível colocar alguma função (ou sei lá como chama) que impossibilita o player de usar qualquer meio de cura (poção, spell, etc) enquanto estiver usando o anel? sim, com duas modificações: 1) coloca pra ao equipar o ring setar um storage no jogador como 1 e quando remover, setar esse storage para 0 2) vc pode fazer um creaturescripts onStatsChange que verifica se o tipo de combat é Healing e se o storage for 1 vc só dá return false (pra impedir que o cara conclua essa modificação de stats) Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá! "Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda (obg ao @Beeny por fazer essa linda sign <3)
Postado Março 15, 2021 4 anos To tentando usar o script só com a parte de lifeSteal. Comentei o restante do código que não é necessária. Mas ainda assim, quando desequipa o ring, o soptEvent(steal) não funciona, e o player continua tomando dano até morrer. Conseguiu encontrar alguma solução? -- local invisible = createConditionObject(CONDITION_GAMEMASTER, -1, false, GAMEMASTER_INVISIBLE) -- local outfit = createConditionObject(CONDITION_INVISIBLE, -1, false) local percent = 3 local tempo = 5 -- em segundos function onEquip(cid, item, slot) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "I told you not to wear this ring..") function lifesteal(cid) steal = addEvent(lifesteal, 1000 * tempo, cid) if isCreature(cid) then doSendAnimatedText(getCreaturePos(cid), "-" .. math.floor((getCreatureMaxHealth(cid) * (percent / 100))), 144, cid) doCreatureAddHealth(cid, -math.floor(getCreatureMaxHealth(cid) * (percent / 100))) end end lifesteal(cid) -- doAddCondition(cid, invisible) -- doAddCondition(cid, outfit) doSendMagicEffect(getCreaturePos(cid), 12) return true end function onDeEquip(cid, item, slot) doTransformItem(item.uid, 2121) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You're no longer cursed.") stopEvent(steal) -- doRemoveCondition(cid, CONDITION_INVISIBLE) doSendMagicEffect(getCreaturePos(cid), 12) -- doRemoveCondition(cid, CONDITION_GAMEMASTER, GAMEMASTER_INVISIBLE) return true end
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.