Alamxd
Membro
-
Registro em
-
Última visita
Histórico de Curtidas
-
Alamxd deu reputação a Guilherme. em Critical Skill SystemOlá, fiz um singelo complemento ao script!
É uma simples talkaction que retorna ao player qual sua porcentagem atual de crítico:
talkactions.xml:
<talkaction words="!critical" event="script" value="critinfo.lua"/> Crie um arquivo em talkactions/scripts chamado critinfo.lua e adicione:
function onSay(cid, words, param, channel) local config = { levelscrit = 100 * 0.3, --- leveis que terão storagecrit = 48913 -- storage que será verificado } doPlayerSendTextMessage(cid,MESSAGE_FIRST,"Your current critical rate is: ["..(getPlayerStorageValue(cid, config.storagecrit)*0.3).."% of "..config.levelscrit.."%].") return true end
MESSAGE_FIRST no código, é o tipo/cor da mensagem que será exibida ao player, as opções estão disponíveis no arquivo constant.lua na pasta lib, no meu as opções são as seguintes:
MESSAGE_FIRST = 18 MESSAGE_STATUS_CONSOLE_RED = MESSAGE_FIRST MESSAGE_EVENT_ORANGE = 19 MESSAGE_STATUS_CONSOLE_ORANGE = 20 MESSAGE_STATUS_WARNING = 21 MESSAGE_EVENT_ADVANCE = 22 MESSAGE_EVENT_DEFAULT = 23 MESSAGE_STATUS_DEFAULT = 24 MESSAGE_INFO_DESCR = 25 MESSAGE_STATUS_SMALL = 26 MESSAGE_STATUS_CONSOLE_BLUE = 27 MESSAGE_LAST = MESSAGE_STATUS_CONSOLE_BLUE Você pode substituir o MESSAGE_FIRST por um desses valores a sua escolha.
Obrigado pelo sistema, Lobão!
-
Alamxd deu reputação a xWhiteWolf em Critical Skill SystemFala 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
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.
-
Alamxd deu reputação a xWhiteWolf em Dodge System 8.54+Ae galera do TK, uns caras ficaram me mandando PM pedindo esse sistema aqui.. aparentemente tem em algum server e eles queriam replicar o sistema no OT deles. Não sei como funciona no outro server mas no script que eu fiz vai funcionar assim:
Serão 100 livros que você poderá comprar de um npc específico, cada livro te dá 1 ponto a mais na skill Dodge e isso acarreta em 0.3% de chance a mais de desviar de um golpe e tomar só 50% de dano. Infelizmente eu nunca joguei no servidor que foi o pioneiro desse sistema (na vdd eu nem sei qual é) então eu não fiz igual o deles, na realidade o meu só funciona ao perder vida então se o mago usar utamo vita acabou os dodge's dele. Outra coisa importante é que o player tem uma chance rara de dar Dodge no Dodge, ou seja, levando 1/4 do dano. Só vai funcionar para ataques de criaturas, tanto melee quanto spells, ou seja, se o cara passar no fogo não tem chance dele desviar do dano
Sem mais delongas, vamos ao script:
Crie um arquivo chamado dodge.lua na pasta creaturescripts\scripts e coloque isso dentro dele:
agora adicione essa linha no creaturescripts.xml:
<event type="statschange" name="dodge" event="script" value="dodge.lua"/> em creaturescripts\scripts\login.lua adicione isso antes do ultimo return true:
registerCreatureEvent(cid, "dodge") if getPlayerStorageValue(cid, 48902) == -1 then setPlayerStorageValue(cid, 48902, 0) end agora vá em actions.xml e adicione essa linha aqui:
<action itemid="1950" script="dodgebook.lua"/> note que vc pode mudar o ID do livro a hora que vc quiser.
em items.xml, procure o item com o ID que vc irá utilizar e deixe ele assim:
<item id="1950" article="a" name="Skill Book [DODGE]"> <attribute key="weight" value="1300" /> </item> agora crie um arquivo chamado dodgebook em actions\scripts e coloque isso dentro dele: