Ir para conteúdo

Projeto Tutores de Scripting


Killua

Posts Recomendados

as cores devem somar + 19 exemplo 0 + vai para o 19 e volta para o 0 acontece que a cor numero 114 e algumas outras elas tem que voltar - 19 e não ta acontecendo isso, seria todas as cores.. me diz como edita 1 que eu consigo fazer as outras (:

ah, quer igual pra todas, entao e melhor passar o n e o fator, dai só multiplicar o fator por -1 toda vez, dai soma n com fator, a noite to de volta, vai tentando ai se nao conseguir me fala

Link para o comentário
Compartilhar em outros sites

Tipo assim, vagnho:


function setOutfit(cid, count, interval)
    if type(count) == "number" and type(interval) == "number" then
        doPlayerSetStorageValue(cid, 2912919, count * -1)
        local outfit = getCreatureOutfit(cid)
        local number = getPlayerStorageValue(cid, 2912919)
        outfit.lookHead = outfit.lookHead + number
        outfit.lookBody = outfit.lookBody + number
        outfit.lookLegs = outfit.lookLegs + number
        outfit.lookFeet = outfit.lookFeet + number
        doCreatureChangeOutfit(cid, outfit)
        addEvent(setOutfit, cid, count, interval)
        return true
    end
    return false
end

E pra usar assim:


setOutfit(cid, 19, 1000)

Isso é só um exemplo, eu não testei.

Link para o comentário
Compartilhar em outros sites

To criando um poketibia do zero, sem base alguma, e com isso preciso de 1 script basico, que seria:

Como faço pra que quando o pokemon do player for usar spell de area, não hit o player e não deixe ele com skul..

 

Obrigado pela atenção ,o/

Link para o comentário
Compartilhar em outros sites

To criando um poketibia do zero, sem base alguma, e com isso preciso de 1 script basico, que seria:

 

Como faço pra que quando o pokemon do player for usar spell de area, não hit o player e não deixe ele com skul..

 

Obrigado pela atenção ,o/

A creature script onStatsChange e a que controla a perda/ganha de mana/health. Ao dar return false, voce anula a perda de dano, logo basta voce fazer os ifs certos e retornar false para a callback, dai cancela o dano. Porem tem mais uma coisa, para executar a creature script, as criaturas que usaram ela deverao ser registradas, se forem players e so registrar no login.lua, porem se forem monstros, tem que ser feito o registro no xml de cada um. No seu caso um no login lua ja basta, pois que sofre a perda ou ganha de dano nesse caso sao os players

Killua este que tu postou acima não faz nada..

me diga que tu nao colocou a funçao sozinha no script de actions ...

Link para o comentário
Compartilhar em outros sites

Na verdade eu ponhei em creaturescripts, mano me ensina eu não sei onde vai cada coisa eu chuto hsuuhasuhashusuha


local SQUARE1X1 = {
{1, 1, 1},
{1, 3, 1},
{1, 1, 1}
}

local min, max = 200, 220
local armor_id = 7897
local chance = 100

function onStatsChange(cid, attacker, type, combat, value)
if not isPlayer(cid) then
return true
end

if value >= 1 and type == STATSCHANGE_HEALTHLOSS then
if getPlayerSlotItem(cid, CONST_SLOT_ARMOR).itemid == armor_id then
local random = math.random(100)
if random <= chance then
doAreaCombatHealth(cid, COMBAT_ICEDAMAGE, getCreaturePosition(cid), SQUARE1X1, min, max, CONST_ME_ICEATTACK)
return true
end
end
end

return true
end

 

esse script mano ta fazendo o efeito no player que está usando a armor, acho que é por causa do getCreaturePosition mas quando eu removo não acontece mais nada...

Link para o comentário
Compartilhar em outros sites

Na verdade eu ponhei em creaturescripts, mano me ensina eu não sei onde vai cada coisa eu chuto hsuuhasuhashusuha

local SQUARE1X1 = {

{1, 1, 1},

{1, 3, 1},

{1, 1, 1}

}

 

local min, max = 200, 220

local armor_id = 7897

local chance = 100

 

function onStatsChange(cid, attacker, type, combat, value)

if not isPlayer(cid) then

return true

end

 

if value >= 1 and type == STATSCHANGE_HEALTHLOSS then

if getPlayerSlotItem(cid, CONST_SLOT_ARMOR).itemid == armor_id then

local random = math.random(100)

if random <= chance then

doAreaCombatHealth(cid, COMBAT_ICEDAMAGE, getCreaturePosition(cid), SQUARE1X1, min, max, CONST_ME_ICEATTACK)

return true

end

end

end

 

return true

end

 

esse script mano ta fazendo o efeito no player que está usando a armor, acho que é por causa do getCreaturePosition mas quando eu removo não acontece mais nada...

"quando removo" se refere ao armor?

se sim, é OBVIO que vai parar, tu quer que faça um efeito quando esta equipado com uma determinada armor, quando tira ela, o efeito deve parar ne

Link para o comentário
Compartilhar em outros sites

um cara falo isso olha


ñ sei se vc manja de scripts mais se manja, faça o seguinte, abra o groups.xml dentro da pasta (data/xml), crie um grupo com nome pokemon e altere as flags igual a de players normais, depois crie um outro grupo com noattackplayer e coloque o frags de q n pode ser atacado..


agora no creaturescript crie um arquivo para q qndo ele "sumonar o pokemon" ele vire grupo noattackplayer e registre o summon como pokemon, e se o pokemon morrer ou voltar pra ball o player volta ao grupo certo...


eu fiz tudo certo, só nao sei criar o script para fazer essa funçao '-' alguem poderia me ajudar?


Link para o comentário
Compartilhar em outros sites

 

um cara falo isso olha

ñ sei se vc manja de scripts mais se manja, faça o seguinte, abra o groups.xml dentro da pasta (data/xml), crie um grupo com nome pokemon e altere as flags igual a de players normais, depois crie um outro grupo com noattackplayer e coloque o frags de q n pode ser atacado..

agora no creaturescript crie um arquivo para q qndo ele "sumonar o pokemon" ele vire grupo noattackplayer e registre o summon como pokemon, e se o pokemon morrer ou voltar pra ball o player volta ao grupo certo...

eu fiz tudo certo, só nao sei criar o script para fazer essa funçao '-' alguem poderia me ajudar?

 

o que faz o summon é uma action, goback, então e lá que deve fazer isso, mas se nao me engano nao sao todas as flags que ajustam logo que troca de group nao, tem algumas que so relogando pra fazer efeito

geralmente os poketibias usam as creature scripts de combat para fazer isso; no onattack fazendo trocar o target; no statschange nao ferindo players se tiver summon e etc

Link para o comentário
Compartilhar em outros sites

isso mesmo dalvorsn é isso mesmo que eu quero, meu tibia é normal, mais quero essa funçao que vc falo, to tentando o dia inteiro e nao consigo, vc nao tem ideia de como isso vai mudar a palavra tibia no meu ot, vai abrir uma porta muito grande pro meu servidor, tem como me ajudar a criar? se puder passar skype ou falar por private seria mt bom?


1 exemplo utevo res, eu faço 1 monstro certo? um demon... dai vou caçar na hunt de frost dragon, mais eles tem atack de area, o poder vai acerta em mim e no meu demon, queria que acerta-se só no meu demon,, quando meu demon morre-se dai eu voltaria ao normal e os hits me acertariam tambem, é possivel vc me passar um topico que me explica como fazer isso ?

Link para o comentário
Compartilhar em outros sites

É só você usar as callbacks:

 

            onTarget(cid, target) -- essa é ativada quando é setada target
            onCombat(cid, target) -- sempre que houver algum combat, essa callback e chamada
            onAttack(cid, target) -- quando inicia-se atack essa callback é chamada
            onCast(cid, target) -- quando usa-se uma spell essa callback e chamada
            onAreaCombat(cid, tileItem, tilePosition, isAggressive) -- quando se usa combat em area essa é chamada
            onStatsChange(cid, attacker, type, combat, value) -- quando há perda/ganha de mana/hp essa callback é chamada

p

Todo o sistema de combat pode ser controlado por essas callbacks, tudo está ai, é so fazer os devidos scripts em cada evento fazendo as condicionais como preferir

Exemplo, no onstatschange verifica se o cid tem summon, se sim retorna false para callback anulando a perda de hp/mana

E assim por diante

 

E cara, voce não parece ter entendido o intuito do tópico, aqui é para quem quer APRENDER e não para quem quer pronto. >.<'

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...