Você quer fazer igual na PxG? Porque, pelo menos no caso deles, o que altera a cor do Kecleon não é a spell propriamente dita, e sim o elemento dela.
Ou me enganei e você quer apenas uma magia específica para isso?
Por Developer Berg, 22 de dez. de 2015 em Scripts
Você quer fazer igual na PxG? Porque, pelo menos no caso deles, o que altera a cor do Kecleon não é a spell propriamente dita, e sim o elemento dela.
Ou me enganei e você quer apenas uma magia específica para isso?
info
Grupo: Conde
Registrado: 12/04/15
Posts: 655
Reputação: +65
Gênero: Masculino
Char no Tibia: Developer Berg

Você quer fazer igual na PxG? Porque, pelo menos no caso deles, o que altera a cor do Kecleon não é a spell propriamente dita, e sim o elemento dela.
Ou me enganei e você quer apenas uma magia específica para isso?
sim zipter, exatamente como na pxg, esqueci de por isso no comentário, isso, pelo elemento.
info
Grupo: Herói
Registrado: 14/02/14
Posts: 341
Reputação: +285
Gênero: Masculino
Char no Tibia: Night Wolf

o texto não condiz em nada com o gif e com seu segundo comentário.
Se decide, vai ser aleatoriamente ou ele vai pegar o tipo de combat que ele é atacado e mudar de cor?
info
Grupo: Conde
Registrado: 12/04/15
Posts: 655
Reputação: +65
Gênero: Masculino
Char no Tibia: Developer Berg

o texto não condiz em nada com o gif e com seu segundo comentário.
Se decide, vai ser aleatoriamente ou ele vai pegar o tipo de combat que ele é atacado e mudar de cor?
vai pelo tipo de combat que ele pegar
info
Grupo: Herói
Registrado: 25/10/11
Posts: 2.2k
Reputação: +862
Gênero: Masculino
Char no Tibia: Sociopata

A spell funciona assim. Se ele receber dano de fire, o pokémon mudar a cor para amarelo, e recebe menos dano do tipo fire.
info
Grupo: Conde
Registrado: 12/04/15
Posts: 655
Reputação: +65
Gênero: Masculino
Char no Tibia: Developer Berg

A spell funciona assim. Se ele receber dano de fire, o pokémon mudar a cor para amarelo, e recebe menos dano do tipo fire.
sim, exatamente assim, sendo que quero para base do exaioros/ kpdo, e ela n contem source ![]()
O sistema de vantagem/desvantagem é escrito em Lua ou C++? Se for a primeira opção, então é possível fazer isso com alterações apenas em uma arquivo (localizado em data/creaturescripts/scripts com callback onStatsChange). Caso encontre-o, por gentileza, poste-o aqui para podermos te ajudar.
Entretanto, se for escrito nas sources, lamento.
info
Grupo: Herói
Registrado: 25/10/11
Posts: 2.2k
Reputação: +862
Gênero: Masculino
Char no Tibia: Sociopata

Kpdo é em lua. (Lib) vários arquivos, e o creaurescript.
info
Grupo: Conde
Registrado: 12/04/15
Posts: 655
Reputação: +65
Gênero: Masculino
Char no Tibia: Developer Berg

O sistema de vantagem/desvantagem é escrito em Lua ou C++? Se for a primeira opção, então é possível fazer isso com alterações apenas em uma arquivo (localizado em data/creaturescripts/scripts com callback onStatsChange). Caso encontre-o, por gentileza, poste-o aqui para podermos te ajudar.
Entretanto, se for escrito nas sources, lamento.
eu achei esse " onStatsChange " em uma script chamada exp.lua no creaturescripts.
local expcond = createConditionObject(CONDITION_INFIGHT)
setConditionParam(expcond, CONDITION_PARAM_TICKS, 4500)
function isPlayerSummon(cid, uid)
if getCreatureMaster(uid) == cid then
return TRUE
end
return FALSE
end
function onStatsChange(cid, attacker, enps, combatee, value)
if enps == STATSCHANGE_HEALTHGAIN then
if isCreature(attacker) then
return false
end
return true
end
if not isCreature(attacker) then
return true
end
if enps == STATSCHANGE_HEALTHLOSS then
if getPlayerStorageValue(cid, 34) >= 1 then
if combatee ~= COMBAT_PHYSICALDAMAGE then
if isCreature(attacker) then
doSendMagicEffect(getThingPos(cid), 135)
doSendMagicEffect(getThingPos(attacker), 3)
doSendAnimatedText(getThingPos(cid), "REFLECT", 215)
setPlayerStorageValue(cid, 34, 0)
doSendAnimatedText(getThingPos(attacker), -value, 191)
doCreatureAddHealth(attacker, -value)
return false
end
end
end
if not isSummon(attacker) then
return false
end
if getPlayerStorageValue(cid, 17) >= 4 then
local dono = getCreatureMaster(attacker)
if not string.find(getPlayerStorageValue(cid,200), getCreatureName(dono)) then
setPlayerStorageValue(cid, 200, getPlayerStorageValue(cid, 200)..""..getCreatureName(dono)..", ")
end
doMonsterSetTarget(cid, attacker)
end
if getPlayerStorageValue(attacker, 8) >= 1 and combatee == COMBAT_PHYSICALDAMAGE then
return false
end
local nickshiny = getCreatureName(cid)
if isShiny(nickshiny) then
nickshiny = nickshiny:gsub("Shiny ", "")
end
if isStrong(nickshiny) then
nickshiny = nickshiny:gsub("Strong ", "")
end
local x = getCombatByType(nickshiny,combatee)
if not x then
return false
end
local cor = COLOR_PSYCHIC
if combatee == PSYCHICDAMAGE then
cor = COLOR_PSYCHIC
elseif combatee == GRASSDAMAGE then
cor = COLOR_GRASS
elseif combatee == FIREDAMAGE then
cor = COLOR_FIRE2
elseif combatee == WATERDAMAGE then
cor = COLOR_WATER
elseif combatee == ICEDAMAGE then
cor = COLOR_ICE
elseif combatee == NORMALDAMAGE then
cor = COLOR_NORMAL
elseif combatee == FLYDAMAGE then
cor = COLOR_FLYING
elseif combatee == GHOSTDAMAGE then
cor = COLOR_GHOST
elseif combatee == GROUNDDAMAGE then
cor = COLOR_GROUND
elseif combatee == ELECTRICDAMAGE then
cor = COLOR_ELECTRIC
elseif combatee == ROCKDAMAGE then
cor = COLOR_ROCK
elseif combatee == BUGDAMAGE then
cor = COLOR_BUG
elseif combatee == FIGHTDAMAGE then
cor = COLOR_FIGHTING
elseif combatee == DRAGONDAMAGE then
cor = COLOR_DRAGON
elseif combatee == POISONDAMAGE then
cor = COLOR_POISON
elseif combatee == DARKDAMAGE then
cor = COLOR_DARK
elseif combatee == STEELDAMAGE then
cor = COLOR_STEEL
else
cor = getPokemonRace(cid)
end
if isSummon(attacker) then
local fisico = getPlayerStorageValue(attacker,3499)
if getPlayerStorageValue(cid, 4) >= 1 or isStrong(getCreatureName(cid)) then
local finalista = math.floor((value/2)*x)+fisico
doSendAnimatedText(getThingPos(cid),finalista,cor)
doMoveHealth(getCreatureMaster(attacker),finalista,cid)
return false
else
local finalista = math.floor(value*x)+fisico
doSendAnimatedText(getThingPos(cid),finalista,cor)
doMoveHealth(getCreatureMaster(attacker),finalista,cid)
return false
end
end
end
end
É, parece que o cálculo do dano baseado em vantagem e desvantagem é escrito nas sources. Neste arquivo seria possível alterar a cor do Kecleon, mas a resistência ao elemento não seria viável, visto que o elemento primário dele é levado em consideração na fórmula em C++.
A não ser que as funções getCombatByType e doMoveHealth façam mais do que o nome sugere. Sem o código delas, entretanto, não tenho como tirar conclusões.
Editado Dezembro 23 por zipter98
info
Grupo: Conde
Registrado: 12/04/15
Posts: 655
Reputação: +65
Gênero: Masculino
Char no Tibia: Developer Berg

É, parece que o cálculo do dano baseado em vantagem e desvantagem é escrito nas sources. Neste arquivo seria possível alterar a cor do Kecleon, mas a resistência ao elemento não seria viável, visto que o elemento primário dele é levado em consideração na fórmula em C++.
A não ser que as funções getCombatByType e doMoveHealth façam mais do que o nome sugere. Sem o código delas, entretanto, não tenho como tirar conclusões.
zipter, n achei essas funções que vc citou, só achi nessa script do exp que postei, n precisa ter diferença de dano por tipo do combat n, só preciso que a spell seja que ele troque de cor de acordo com o tipo de combat, n precisa ter a diferença de dano n rs, já que n tem source o server.
info
Grupo: Herói
Registrado: 14/02/14
Posts: 341
Reputação: +285
Gênero: Masculino
Char no Tibia: Night Wolf

faz statsChange, uma tabela com cor de outfit e tipo de combat (dá pra extrair o combat pela statschange).
Se a cor do outfit for a cor da resistencia, dá return false e cria outro combat mais fraco (cuidado com stackoverflow aqui pq ele vai tentar fazer isso tendendo a infinito). Do contrário, seta a cor do outfit como sendo a referente ao combat. Fim.
Sem acesso ao sistema de vantagem e desvantagem é simplesmente impossível aplicar esta resistência de elementos do Kecleon.
Entretanto, a troca da cor da outfit é bem simples e consiste num pequeno bloco de código.
Tabela de configuração:
local Kecleon_config = {
--[combat] = {lookBody = xxx, lookHead = xxx, lookLegs = xxx, lookFeet = xxx},
}
Recomendo colocá-la fora do callback.
Depois, abaixo de:
if not x then
return false
end
coloque:
if nickshiny == "Kecleon" then
local color = Kecleon_config[combatee]
if color then
color.lookType = getCreatureOutfit(cid).lookType
doSetCreatureOutfit(cid, color, -1)
end
end
info
Grupo: Conde
Registrado: 12/04/15
Posts: 655
Reputação: +65
Gênero: Masculino
Char no Tibia: Developer Berg

Sem acesso ao sistema de vantagem e desvantagem é simplesmente impossível aplicar esta resistência de elementos do Kecleon.
Entretanto, a troca da cor da outfit é bem simples e consiste num pequeno bloco de código.
Tabela de configuração:
local Kecleon_config = { --[combat] = {lookBody = xxx, lookHead = xxx, lookLegs = xxx, lookFeet = xxx}, }Recomendo colocá-la fora do callback.
Depois, abaixo de:
if not x then return false endcoloque:
if nickshiny == "Kecleon" then local color = Kecleon_config[combatee] if color then color.lookType = getCreatureOutfit(cid).lookType doSetCreatureOutfit(cid, color, -1) end end
em qual script eu colocaria esses códigos ?
info
Grupo: Conde
Registrado: 12/04/15
Posts: 655
Reputação: +65
Gênero: Masculino
Char no Tibia: Developer Berg
Olá Galerinha Do Xtibia.
queria pedir a ajuda de vcs, para criar uma script de spell para meu poketibia.
a spell funciona assim, queria que ao usar essa spell, o meu pokemon mudasse a cor da outfit aleatoriamente, a sprite já esta configurada e sem cor para mudar de cor qual quer hora que quiser, só falta a script da spell para mudar quando usar a spell.
o motivo deu querer essa spell é pq tem um pokemon chamado " kecleon " ele é um pokemon camaleão.
A Base Que Estou Usando É A Base Do Exaioros/Kpdo.