KI

Projeto Tutores de Scripting

Por Killua, 18 de fev. de 2014 em Archived

otserv
tibia
script
202
30.9k
dalvorsnD
24 de março de 2014 às 13:37

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

vagnhoV
24 de março de 2014 às 19:26

não consegui fazer fator não mais eu fiz o preto funcionar mais outra cor para ;/

KilluaK
24 de março de 2014 às 20:32

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.

FlaahF
25 de março de 2014 às 00:35

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/

KilluaK
25 de março de 2014 às 12:09

Te aconselho a criar um tópico na seção Pedidos e dúvidas - Scripting. Uma vez que você está procurando um script pronto.

Editado Março 25 por Killua

vagnhoV
25 de março de 2014 às 19:36

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

dalvorsnD
26 de março de 2014 às 00:48

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 ...

vagnhoV
29 de março de 2014 às 10:16

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...

dalvorsnD
31 de março de 2014 às 01:53

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

vagnhoV
31 de março de 2014 às 14:06

quando o player tomar o hit acima de 300 ele solta o efeito em volta e paraliza o player eu tinha postado o script que tem no forum mais não funciona...

JeanCristianJ
01 de abril de 2014 às 22:49

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?


dalvorsnD
02 de abril de 2014 às 00:45

 

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

JeanCristianJ
02 de abril de 2014 às 01:58

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 ?

dalvorsnD
02 de abril de 2014 às 02:07

É 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. >.<'

JeanCristianJ
02 de abril de 2014 às 12:09

edit, eu aaprendi u.u se alguem quizer algum script dificuldade facil me add skype para eu ir treinando

jean.cristian16

Editado Abril 2 por JeanCristian