Ir para conteúdo

Featured Replies

Postado

Desculpa reviver o topico pois estou tentando por esse script por skill quanto maior o skill ele terar mais chance de dar critical, segue um pouco do codigo que modifiquei sei que tem erro se puder ajudar.

 

 

local SKILL_ID = 5 -- id do skill...
 
local skills = {
    {min = 10, max = 20, chance = 1}, -- chance em % de dar Critical...
    {min = 21, max = 30, chance = 2},
    {min = 31, max = 40, chance = 3},
    {min = 41, max = 50, chance = 4},
    {min = 51, max = 60, chance = 5},
    {min = 61, max = 70, chance = 6},
    {min = 71, max = 80, chance = 7},
	{min = 81, max = 90, chance = 8},
    {min = 91, max = 100, chance = 9},
    {min = 101, max = 110, chance = 10},
	{min = 111, max = 120, chance = 15},
	{min = 121, max = 130, chance = 20},
    {min = 131, max = 140, chance = 30},
	{min = 141, max = math.huge, chance = 50}
}
 
function onStatsChange(cid, attacker, type, combat, value)
    local COLOR_ID = 200 -- cor do texto
    local MAGIC_EFFECT = 7 -- id do magic effect 
 if isPlayer(attacker) and (not (attacker == cid)) and (type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS)  then
    for _, tudo in pairs(skills) do
        if getPlayerSkillLevel(cid, SKILL_ID) >= tudo.min and getPlayerSkillLevel(cid, SKILL_ID) <= tudo.max then
            local chancex = math.random(1, 100)
            if chancex <= tudo.chance then
                    doSendMagicEffect(getCreaturePosition(cid), MAGIC_EFFECT)
					doTargetCombatHealth(attacker, cid, combat, -dano, -dano, 255)
					doSendAnimatedText(getCreaturePos(attacker), "CRITICAL!!", 144)

            end
        end
    end
    return true
end
end

 

  • 8 months later...
  • Respostas 79
  • Visualizações 26.8k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • agora dá --[[Critical System By Night Wolf]] local lvlcrit = 48913 local multiplier = 1.5 local efeito = 2 --- efeito que vai sair do player/criatura que tomar o crítico function onStatsChange(cid

  • sim, a chance do critical é definida por um storage: if (getPlayerStorageValue(attacker, lvlcrit)*3) >= math.random (0,1000) Se o valor do storage * 3 for igual ou maior que um numero aleatorio e

  • Galera, vieram me informar que em algumas versões do TFS, ele está diminuindo o dano ou mantendo o mesmo dano em players e só aumentando em monstros.. bom, eu refiz o script e agr vc pode configurar u

Posted Images

Postado
  • Autor
  Em 12/04/2017 em 00:22, Semideus disse:

Como eu criaria essa função getCriticalLevel, dessa forma aí ? 

e Wolf, atualmente já existem scripts melhores para tfs 1.2 de dogde e critico ?

getCriticalLevel é só um getPlayerStorageValue kkk ela tem que retornar o storage do critical. Pra 1.2 tem sistemas melhores sim, é só procurar. Os meus são focados em 0.4/0.36

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

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Postado
  • Autor
  Em 12/04/2017 em 03:35, Semideus disse:

Lembre de algum Wolf ? eu procurei hoje a tarde, achei um que só funciona PVP , tanto o critico quanto o dodge, e o dodge buga o char de um jeito que nenhum monstro consegue acertar.

tem um pra tfs 1.2 na otland mt bem feito, nos tfs atuais o dodge e o critical funcionam de maneira mt melhor que nas antigas.

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

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

  • 1 year later...
Postado
  Em 17/06/2014 em 10:32, xWhiteWolf disse:

Fala galera do TK, vejo que tem bastante gente procurando esse sisteminha que é praticamente igual ao dodge system, então eu decidi fazer visto que na realidade era só mudar 3 linhas kkkk em todo caso ta aí pra quem quiser:

creaturescripts.xml:


 <!-- CRITICAL SYSTEM -->
   <event type="statschange" name="critical" event="script" value="critical.lua"/>

creaturescripts\scripts\login.lua:


--- CRITICAL SYSTEM ----
registerCreatureEvent(cid, "critical")
if getPlayerStorageValue(cid, 48913) == -1 then
        setPlayerStorageValue(cid, 48913, 0) 
    end 

creaturescritps\scripts\critical.lua:


--[[Critical System
-------------------------  By Night Wolf]]


local lvlcrit = 48913
local multiplier = 1.5


function onStatsChange(cid, attacker, type, combat, value)
if isPlayer(attacker) and (not (attacker == cid)) and (type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS)  then
if (getPlayerStorageValue(attacker, lvlcrit)*3) >= math.random (0,1000) then
dano = math.ceil(value*(multiplier))
doTargetCombatHealth(attacker, cid, combat, -dano, -dano, 255)
doSendAnimatedText(getCreaturePos(attacker), "CRITICAL!!", 144)
return false
end
end
return true
end

lvlcrit é o storage que fica salvo o seu level de critical e multiplier é o multiplicador do dano para ataques críticos.. nesse caso um ataque critico vai ser 1,5 vezes maior doque um ataque normal (50% maior)


Agora em actions.xml adicione:


<action itemid="1294" script="criticalrock.lua"/>

e em actions\scripts\criticalrock.lua adicione:


--- CRITICAL System by Night Wolf
   
  local config = {
   effectonuse = 14, -- efeito que sai
   levelscrit = 100,  --- leveis que terão
   storagecrit = 48913 -- storage que será verificado
   }
   
function onUse(cid, item, frompos, item2, topos)
    if getPlayerStorageValue(cid, config.storagecrit) < config.levelscrit then
   doRemoveItem(item.uid, 1)
doSendMagicEffect(topos,config.effectonuse)
doPlayerSendTextMessage(cid,22,"You've Leveled your Critical Skill to ["..(getPlayerStorageValue(cid, config.storagecrit)+1).."/"..config.levelscrit.."].")
setPlayerStorageValue(cid, config.storagecrit, getPlayerStorageValue(cid, config.storagecrit)+1)
elseif getPlayerStorageValue(cid, config.storagecrit) >= config.levelscrit then
doPlayerSendTextMessage(cid,22,"You've already reached the MAX level of Critical Skill.\nCongratulations!!!!")
    return 0
    end
return 1
end

Feito isso tá pronto, pra editar o item que dá a skill de critical vc edita no actions.xml mesmo:
<action itemid="1294"   << ID do item que será usado pra dar a skill.
A config tá bem simples:
effectonuse = 14, -- efeito que sai
   levelscrit = 100,  --- leveis que terão 
   storagecrit = 48913 -- storage que será verificado.

Lembrando que cada pedra utilizada dará 0,3% a mais de chance.. 10 pedras dão 3% de chance de dar critico a cada ataque e 100 pedras (NIVEL MÁXIMO PADRÃO) dará 30% de chance de dar crítico em cada ataque.
Espero que vcs gostem, qualquer coisa deixem os comentários aqui.

Obs: aqui tá uma foto

 

Conteúdo Oculto



Note que esse script só funciona em players, se vc quiser que funcione em monstros você vai ter que abrir um por um todos os monstros do server e colocar essa tag aqui: 


<script>
<event name="critical"/>
</script>

coloque antes de  </monster>

Minha dica: coloquem apenas no Trainer pra que o player consiga ver que ele tem o critical e quanto ele tira e deixem avisado que o sistema só vai funcionar em players. 

base TFS 0.4

 

Funcionou 99%

porem to com esse erro no Training

pode me ajudar?

image.thumb.png.6992258e1d8d3fe539e0fea83e7b546d.png

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.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo