Ir para conteúdo

[TalkAction] [8.50]animal Transformation


rockstar96

Posts Recomendados

Fiz esse script baseado no Tiger Transform do Colex, vi um post de um carinha que pediu pra atualizar...bom, fiz em talkaction ;)

 

Em data/talkactions/scripts crie um arquivo chamado transform.lua e coloque isto:

function onSay(cid, words, param)
local config = {
outfit = {lookType = 125},
time = 60,
mana = 50,
effect = CONST_ME_MAGIC_GREEN,
vocs = {1,2,3,4,5,6,7,8},
}
if getCreatureMana(cid) >= config.mana then
	if isInArray(config.vocs, getPlayerVocation(cid)) then
		doSetCreatureOutfit(cid, config.outfit, config.time * 1000)
		doSendMagicEffect(getThingPos(cid), config.effect)
                       doCreatureAddMana(cid, -config.mana)
		doChangeSpeed(cid, getCreatureSpeed(cid) * 2)
		addEvent(doChangeSpeed, config.time * 1000, cid, getCreatureSpeed(cid)/2)
	else
		doPlayerSendCancel(cid, "Vocação errada.")
		doSendMagicEffect(getThingPos(cid), 2)
	end
else
	doPlayerSendCancel(cid, "Você precisa de "..config.mana.." mana.")
	doSendMagicEffect(getThingPos(cid), 2)
end
return true
end

 

Legenda:

•outfit = ID do outfit que será transformado

•time = Tempo, em segundos

•mana = Mana necessária

•effect = Efeito da magia

•vocs = IDs das vocações que podem usar a magia

 

E agora, em data/talkactions/talkactions.xml, coloque:

<talkaction words="!transform" event="script" value="transform.lua"/>

 

Legenda:

•words = Palavras para fazer a magia.

 

 

Simples, agora fale !transform e você terá sua velocidade dobrada pelo tempo descrito ali, e ficará com a velocidade descrita ali x)

 

 

Caso queiram alguma modificação, avisem.

Editado por iRockStar
Link para o comentário
Compartilhar em outros sites

BravHart, o jogador fala as palavras que ele configurar, seu outfit é mudado por x tempo e sua velocidade é dobrada pelo x tempo.

 

Obs.: Post número 300, eu floodo muito \o/

 

Hmm, eu nem trouxe pro XTibia, eu criei...uhasuash :~

 

Agora tenho 2 estrelinhas pop pegael

Editado por iRockStar
Link para o comentário
Compartilhar em outros sites

Nada complexo, mas ta bom.

 

Alguns erros (usei o tfs 0.3.5):

words="Tiger Transform": não tava aceitando com espaço, e ele diferencia T de t.

if getCreatureMana(cid) >= config.mana then...: você verificou a mana, mas não retirou do player.

addEvent(doChangeSpeed, config.time * 1000, cid, getCreatureSpeed(cid)/2): caso o player deslogue da erro, não atrapalha, mas é um erro (Creature not found).

function onSay(cid, words, param)...: O player pode usar várias vezes aumentando mais ainda a velocidade.

 

Deve ser só isso.

 

Sugestões, já que o script é muito simples, caso queira complementar:

Colocar as transformações de acordo com a vocação

Fazer com que o player possa escolher a transformação (transform "tiger)

Aumentar ou diminuir skills

Link para o comentário
Compartilhar em outros sites

Já corrigi, obrigado kydrai.

Eu fiz esse script só porque vi um post, logo mais eu posto um melhor, do jeito que você disse, é que os trabalhos da minha equipe também me ocupam tempo x.x

Link para o comentário
Compartilhar em outros sites

  • 4 months later...

Cara, que inutilidade.

 

Primeiramente, se você utiliza a mana e NÃO utiliza parâmetros, PRA QUE fazer por talkaction?

 

Refiz seu script, retirei coisas inúteis e o fiz em spell.

 

-- by iRockStar // edited and remaked by Kazz
local CONFIG = { OUTFIT = 125, -- outfit do monstro
	TIME = 60, -- tempo de duração em segundos
	EFFECT = CONST_ME_MAGIC_GREEN,
	STORAGE = 1234 -- no caso do player dar logout
        }

function onCastSpell(cid, var)
doSetCreatureOutfit(cid, {lookType = CONFIG.OUTFIT}, CONFIG.TIME * 1000)
doSendMagicEffect(getPlayerPosition(cid), CONFIG.EFFECT)
doChangeSpeed(cid, (getCreatureSpeed(cid) * 2))
setPlayerStorageValue(cid, CONFIG.STORAGE, os.time())
addEvent(doChangeSpeed, CONFIG.time * 1000, cid, (getCreatureSpeed(cid) / 2))
addEvent(setPlayerStorageValue, CONFIG.time * 1000, cid, CONFIG.STORAGE, 0)
return TRUE
end

 

<instant name="Animal Transform" words="!transform" lvl="1" mana="50" prem="0" exhaustion="1000" needlearn="0" event="script" value="animal_transform.lua">
<vocation name="Sorcerer"/><vocation name="Druid"/><vocation name="Paladin"/><vocation name="Knight"/>
</instant>

 

Cara, eu sei.. realmente é muito complexo usar o sistema de spells do tibia, realmente é melhor fazer por talkactions, neah? =X

 

 

Outra coisa, o lixo do seu script ta com um bug OBVIO, que só de olhar já da pra perceber..

 

Se o player logar ANTES desses 60 segundos, seu speed não volta ao normal.. Ou seja, um player usa e dá logout em seguida, volta 1 minuto depois.. pronto, está com seu speed bugado!

 

Como isso também é MUITOOOOO complexo de fazer.. vou lhe ajudar! Ta vendo na config que tem um STORAGE? Pois é, esse cara vai ajudar a arrumar esse bug.. Olha só!

 

OBS: Ahhh, tirei algumas coisas inúteis no config.

 

 

Adicione no login.lua (creaturescripts)

local STORAGE = 1234 -- no caso do player dar logout

if (getPlayerStorageValue(cid, STORAGE) < os.time() and getPlayerStorageValue(cid, STORAGE) ~= 0) then
doChangeSpeed(cid, (getCreatureSpeed(cid) / 2))
setPlayerStorageValue(cid, STORAGE, 0)
end

 

Prontinho, temos um bug corrigido! Legal não? =)

 

 

Um abraco, Kazz! =)

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...