Postado Janeiro 19, 2015 10 anos Outro script que vou liberar para agradecer ao TK. Esse script faz com que o dano do target vá se dividindo e espalhando entre os monstros, um chain. Imagem: Script: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatFormula(combat, COMBAT_FORMULA_SKILL, 1, 0, 1, 0) local shock = createConditionObject(CONDITION_CHANNELMUTEDTICKS) setConditionParam(shock, CONDITION_PARAM_TICKS, 990) function onUseWeapon(cid, var) if getPlayerVocation(cid) == 4 then local target = getCreatureTarget(cid) local tpos = getCreaturePosition(target) local cfg = { min = ((getPlayerLevel(cid)*0.1) + (getPlayerMagLevel(cid)*1.1) + (getPlayerSkill(cid, 2)*0.1)), max = ((getPlayerLevel(cid)*0.1) + (getPlayerMagLevel(cid)*1.2) + (getPlayerSkill(cid, 2)*0.2)), storage = 15002, maximo = 32 } setPlayerStorageValue(cid, cfg.storage, 2) local dano = math.random(cfg.min, cfg.max) local function doChainEffect(pos) for k = -1, 1 do for j = -1, 1 do local c = Creature(getTopCreature({x=pos.x+j, y=pos.y+k, z=pos.z}).uid) or 0 if c ~= 0 and c ~= Creature(cid) and not c:getCondition(CONDITION_CHANNELMUTEDTICKS) then local m = getPlayerStorageValue(cid, cfg.storage) if (dano/m) >= 1 and m <= cfg.maximo then if c == Creature(getTopCreature(tpos).uid) then doTargetCombatHealth(cid, c, COMBAT_ENERGYDAMAGE, -dano, -dano, CONST_ME_PURPLEENERGY) else doTargetCombatHealth(cid, c, COMBAT_ENERGYDAMAGE, -(dano/m), -(dano/m), CONST_ME_PURPLEENERGY) end c:addCondition(shock, true) addEvent(function() setPlayerStorageValue(cid, cfg.storage, m*2) doChainEffect(c:getPosition()) end, 1) end end end end end doChainEffect(tpos) end return doCombat(cid, combat, var) end Ali em máximo é quantos targets o chain vai pegar antes de parar, porém a contagem aqui é diferente; para cada monstro afetado ele dobra a contagem. Ou seja, 5 monstros é igual a: 1, 2, 4, 6, 12. Lembrando que 5 monstros é 5 de cada lado. 10x10 se preferir. Storage é a storage usada. Min e max são as formulas de dano. Em weapons.xml: TFS 1.0: <melee id="2413" unproperly="1" function="default" script="nome.lua"> <- É só por essa tag na arma desejada <vocation name="Knight"/> <vocation name="Elite Knight" showInDescription="0"/> </melee> Outro TFS: <melee id="2413" unproperly="1" function="default" event="script" value="nome.lua"> <- É só por essa tag na arma desejada <vocation name="Knight"/> <vocation name="Elite Knight" showInDescription="0"/> </melee> Modificação e redistribuição é permitida dentro do TK, com meus créditos. Lembrando que o script pode estar mal feito, eu não sabia programar direito na época, por isso conto com a ajuda de todos para melhorar o script. Provavelmente só funciona em TFS 1.0 para cima. Editado Janeiro 22, 2015 10 anos por mateusak (veja o histórico de edições) Não se esqueça de dar REP+ para quem te ajudou e caso seja a solução marcar como melhor resposta! NÃO CLIQUE AQUI! NEM AQUI! ________________________________________________________________________________________________________________________________________________________________________________________________________________________ “A imaginação é mais importante que o conhecimento.” Albert Einstein
Postado Janeiro 19, 2015 10 anos Legal, mas peço para que você formate melhor o seu tópico. Dê ao menos um exemplo de instalação, há membros que não sabem como aplicar em seus servidores. E se possível, forneça algumas imagens para que eles entendam de forma mais clara, como é o script em uso. Você têm 48 horas para modificar o seu post, ou, ele será movido para a lixeira. The corrupt fear us. The honest support us. The heroic join us.
Postado Janeiro 21, 2015 10 anos Ficou muito bom, parabéns. Seu tópico foi aprovado e movido para a seção correta. Você também recebeu 1 ponto de reputação positiva por compartilhar isto conosco. Aguardamos por mais conteúdos assim The corrupt fear us. The honest support us. The heroic join us.
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.