da um trabalho porem nao é impossivel
Vantagem e Desvantagem System (Spell - Tibia Normal)
Por Flaah, 10 de jun. de 2015 em Scripts
info
Grupo: Cavaleiro
Registrado: 30/06/08
Posts: 173
Reputação: +31
Char no Tibia: Lady Stars Walker

info
Grupo: Barão
Registrado: 26/12/11
Posts: 201
Reputação: +18
Char no Tibia: Flaah

Pô cara.. se alguém fizesse esse sistema.. MAAANO! ![]()
Seria incrível! Sério mesmo ![]()
Se pá teria um lugar garantido no céu ![]()
E tbm no meu coração ![]()
HEHE' Vamos ficar na torcida né ![]()
local combatTable = {
--[elemento] = {
--doubleDamage = {"nome_do_monstro", vocation_id, vocation_id, "nome_do_monstro", "nome_do_monstro", etc}, --Vocações e monstros que tomarão o dobro do dano do elemento.
--halfDamage = {"nome_do_monstro", vocation_id, vocation_id, "nome_do_monstro", "nome_do_monstro", etc}, --Vocações e monstros que tomarão metade do dano do elemento.
--nilDamage = {"nome_do_monstro", vocation_id, vocation_id, "nome_do_monstro", "nome_do_monstro", etc}, --Vocações e monstros que tomarão dano nulo do elemento.
--},
[COMBAT_FIREDAMAGE] = {
doubleDamage = {"Rat", "Morgaroth", 5},
halfDamage = {"Orshabaal", 3},
nilDamage = {},
},
}
function onStatsChange(cid, attacker, type, combat, value)
local cTable = combatTable[combat]
if cTable and type == STATSCHANGE_HEALTHLOSS then
local d, h, n, check, newValue = cTable.doubleDamage, cTable.halfDamage, cTable.nilDamage, isPlayer(cid) and getPlayerVocation(cid) or getCreatureName(cid), 0
if isInArray(d, check) then
newValue = math.floor(value * 2)
elseif isInArray(h, check) then
newValue = math.floor(value / 2)
return false
elseif isInArray(n, check) then
return false
end
if newValue ~= 0 then
doCreatureAddHealth(cid, -newValue)
doSendAnimatedText(getThingPos(cid), newValue, 215)
return false
end
end
return true
end
function onLogin(cid)
registerCreatureEvent(cid, "advantageSystem")
return true
end
<event type="login" name="advantageLogin" event="script" value="nome_do_arquivo.lua"/>
<event type="statschange" name="advantageSystem" event="script" value="nome_do_arquivo.lua"/>
Editado Junho 11 por zipter98
info
Grupo: Visconde
Registrado: 11/04/12
Posts: 328
Reputação: +7
Char no Tibia: ADM MiHawk

tem como vc dar um exemplo zipter? na parte do "Nome_do_monstro"?
Eu havia deixado um exemplo no código:
[COMBAT_FIREDAMAGE] = {
doubleDamage = {"Rat", "Morgaroth", 5},
halfDamage = {"Orshabaal", 3},
nilDamage = {},
},
Editado Junho 10 por zipter98
info
Grupo: Barão
Registrado: 26/12/11
Posts: 201
Reputação: +18
Char no Tibia: Flaah

Mano n foi :c
Ele n altera o dano da spell (damage) ![]()
Meu server é 8.54 [0.3.6pl1]
Erros? Configurou o código corretamente?
info
Grupo: Barão
Registrado: 26/12/11
Posts: 201
Reputação: +18
Char no Tibia: Flaah

Nenhum erro, só troquei o nome do Rat para Treino. Coloquei o script no creature (Correto?) e registrei no meu login.lua (Mais depois vi que ja vem registrado no próprio script, então retirei o registro no meu login.lua, mesmo assim n pegou) :c
Na verdade se tem que adaptar essa funçao dentro do seu exp.lua., e outra se se usa servidor de pokemon sei la mais e mais básico pegar os parâmetros de defesa attack do pokemon etc...
info
Grupo: Barão
Registrado: 26/12/11
Posts: 201
Reputação: +18
Char no Tibia: Flaah

Como disse esse pedido de sistema é pra otserver de tibia comum ou poketibia começado do zero, sem nenhuma base ou derivado (PDA ou PD).
Editado Junho 11 por Flaah
Ops, esqueci de mencionar que o evento também deve ser registrado no arquivo .XML do monstro:
<script>
<event name="advantageSystem"/>
</script>
Também fiz uma alteração no código. Se a cor do dano depender do elemento, use este código:
local config = {
combatTable = {
--[elemento] = {
--doubleDamage = {"nome_do_monstro", vocation_id, vocation_id, "nome_do_monstro", "nome_do_monstro", etc}, --Vocações e monstros que tomarão o dobro do dano do elemento.
--halfDamage = {"nome_do_monstro", vocation_id, vocation_id, "nome_do_monstro", "nome_do_monstro", etc}, --Vocações e monstros que tomarão metade do dano do elemento.
--nilDamage = {"nome_do_monstro", vocation_id, vocation_id, "nome_do_monstro", "nome_do_monstro", etc}, --Vocações e monstros que tomarão dano nulo do elemento.
--},
[COMBAT_FIREDAMAGE] = {
doubleDamage = {"Rat", "Morgaroth", 5},
halfDamage = {"Orshabaal", 3},
nilDamage = {},
},
},
colors = {
--[combat] = cor,
[COMBAT_FIREDAMAGE] = COLOR_RED,
--etc,
},
}
function onStatsChange(cid, attacker, type, combat, value)
local cTable = config.combatTable[combat]
if cTable and type == STATSCHANGE_HEALTHLOSS then
local d, h, n, check, newValue = cTable.doubleDamage, cTable.halfDamage, cTable.nilDamage, isPlayer(cid) and getPlayerVocation(cid) or getCreatureName(cid), 0
if isInArray(d, check) then
newValue = math.floor(value * 2)
elseif isInArray(h, check) then
newValue = math.floor(value / 2)
elseif isInArray(n, check) then
return false
end
if newValue ~= 0 then
doCreatureAddHealth(cid, -newValue)
doSendAnimatedText(getThingPos(cid), newValue, config.colors[combat] or 215)
return false
end
end
return true
end
function onLogin(cid)
registerCreatureEvent(cid, "advantageSystem")
return true
end
Editado Junho 11 por zipter98
info
Grupo: Barão
Registrado: 26/12/11
Posts: 201
Reputação: +18
Char no Tibia: Flaah

Quase perfeito, só que o sistema não hita o monstro. ![]()
A script só faz:
Aparece a cor do HIT
Dobrar o hit da spell, cortar pela metade o hit da spell e nula o hit da spell.
PS: Já registrei no .xml do monstro. ![]()
Editado Junho 11 por Flaah
Estranho, aqui funcionou perfeitamente ![]()
Mas enfim, fiz uma edição em ambos os códigos que enviei anteriormente para tentar corrigir seu erro. Peço que teste o que mais lhe agrada e informe o resultado.
info
Grupo: Barão
Registrado: 26/12/11
Posts: 201
Reputação: +18
Char no Tibia: Flaah

Cara... sem palavras!
VC É S-E-N-S-A-C-I-O-N-A-L!
LIKE ![]()
Sabe o que eu disse antes sobre um local especial no céu?! Meus parabéns vc ganhou kkk' ![]()
![]()
Obrigado por tudo cara, vc é 10! ![]()
Muuuito obrigado mesmo, TE AMO ![]()
Obs Básico: Sabe aonde coloca o numero da vocation? Edita lá porq aqui pegou com " " entre os números ![]()
Vlw amigo e pessoal do XTibia, bjks e podem finalizar o tópico ![]()
Editado Junho 11 por Flaah






info
Grupo: Barão
Registrado: 26/12/11
Posts: 201
Reputação: +18
Char no Tibia: Flaah
Bem sempre rezei a Deus por esse script, já tentei fazer e nada.. foi um fracasso total..
Agora estou aqui, humildemente tentando realizar um pequeno mais simbólico sonho, não só meu e sim de todos que querem fazer um belo RPG ou PokeTibia
[COMBAT_FIREDAMAGE] = {Bulbasaur, Ivysaur, Venusaur},
[COMBAT_ENERGYDAMAGE] = {Sorcerer, Druid, Paladin},
E assim por diante.
Bem é isso.. Obrigado pela atenção, boa noite
Editado Junho 10 por Flaah