Sistema De Transformaçao

caotic
Por caotic
em Actions e Talkactions

caotic

Afinal de contas,sou um mordomo e tanto
avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 04/03/11Posts: 1599Char no Tibia: No Have

Ao player dizer a talk ele se transforma ele ganha skills(health,mana e level) ganha looktype(Que fica permanente ao player ou seja mesma que ele mude o outfit ele continuara com o looktype da transformaçao) ganha spell e modificaçao no nome do tipo de transformaçao ele exemplo ((Dragon) Caotic) sendo que so pode usar apenas uma vez.

Resumidando tudo e uma sub-vocation.

 

4ea15ec7.jpgd76bce3f.jpg

 

 

 

Para instalo va em talkactions/scripts e crie um arquivo LUA chamado transf e coloque este script dentro:

 

 

 

function onSay(cid, words, param)

local transf = {

["Morte"] = {level = 1, type = "(Dark)", health = 2222, addlevel = 10, looktype = 300, spell = exori, addmana = 2000},

["Demon"] = {level = 1, type = "(Demonio)", health = 22622, addlevel = 20, looktype = 35, spell = exori, addmana = 1800},

["Dragon"] = {level = 1, type = "(Dragon)", health = 22622, addlevel = 20, looktype = 34, spell = exori, addmana = 1222}

 

}

 

 

if (param == nil or param == '' or param == 'lista' or param == 'list'or not transf[param]) then

local str = ""

str = str .. "Transformaçoes :\n\n"

for name, type in pairs(transf) do

str = str..name.."\n"

end

str = str .. ""

doShowTextDialog(cid, 1397, str)

return TRUE

end

 

 

local name = getCreatureName(cid)

local transflevel = transf[param].level

local transfhealth = transf[param].health

local transfaddlevel = transf[param].addlevel

local transftype = transf[param].type

local transflooktype = transf[param].looktype

local transfspell = transf[param].spell

local transfmana = transf[param].addmana

local transfparam = transf[param]

if getPlayerLevel(cid) < transflevel then

doPlayerSendCancel(cid, "Voce precisa de "..transflevel.." de level para a transformação")

return true

end

if getPlayerStorageValue(cid, 26458) == 1 then

doPlayerSendCancel(cid, "Voce ja se transformo nao pode transformar")

return true

end

setCreatureMaxHealth(cid, getCreatureMaxHealth(cid)+transfhealth)

doCreatureAddHealth(cid, getCreatureMaxHealth(cid))

doPlayerLearnInstantSpell(cid, transfspell)

doPlayerAddLevel(cid, transfaddlevel)

setCreatureMaxMana(cid, getCreatureMaxMana(cid)+transfmana)

doCreatureAddMana(cid, getCreatureMaxMana(cid))

doCreatureChangeOutfit(cid, {lookType = transflooktype})

db.executeQuery("UPDATE `players` SET `name` = '".. transftype.." "..name.."' WHERE `id` = "..getPlayerGUID(cid)..";")

setPlayerStorageValue(cid, 26458, 1)

setPlayerStorageValue(cid, 26456, transflooktype)

return true

end

 

Coloque esta tag em talkations.xml

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

 

Agora vá em CreatureScripts/scripts e crie um arquivo LUA chamado transf e coloque isto

 

 

function onThink(cid, interval)

if getPlayerStorageValue(cid, 26458) == 1 then

doCreatureChangeOutfit(cid, {lookType = getPlayerStorageValue(cid, 26456)})

return true

end

return true

end

 

 

 

Agora va em creaturescripts/creaturescripts.xml e coloque esta tag:

 

<event type="think" name="transf" event="script" value="transf.lua"/>

 

Registre o evento colocando isto em creaturescripts/scripts/ abra login.lua e coloque antes do ultimo Return:

registerCreatureEvent(cid, "transf")

Para transformar so dizer /transf(e o nome da transformaçao)

 

 

Se quiser ver a lista /transf(lista ou list ou qualquer outra palavra desde que nao seja alguma transformaçao)

 

 

Vamos apreder a adicionar novas transformaçoes:

 

 

["Morte"] = {level = 1, type = "(Dark)",health = 2222, addlevel = 10, looktype = 300, spell = exori, addmana = 2000},

 

 

 

Vermelho("Morte") --- Nome da transformaçao deve ser mantida o " "

 

Marron(1) ----- Sera necessario quanto de level para se transformar

 

Verde((Dark)) ---- O prefixo que ele ganhara e recomendavel o uso do ()

 

Cyan(2222) ----- Quanto de vida ele ganhar

 

Violet(10) ----- Quanto de level ele vai ganhar

 

Golden Rod (300) ---- Que looktype ele vai ganhar sendo que o looktype e permanente----

 

Cor Salmon(exori) --- Que spell ele vai aprender a usar

 

Plum(2000) ---- Quanto de mana ele vai ganhar----

 

 

Atençao deixe sem virgula o a ultima linha de configuraça

O looktype e permanete e sendo que a transformaçao so pode ser usado apenas uma vez uma estrategia e subir de level e fazer a transformaçao mais tarde para ganhar uma Creature.

O script tem uma storage ou seja se voce quiser fazer uma verificaçao da transformaçao para ganhar um item ou apenas aquela transformaçao passar na porta entre outros.

Deadpool

!!!
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 25/10/11Posts: 2175Gênero: MasculinoChar no Tibia: Sociopata

Parabens, Acabei De Testa Aki, não deu Nenhum Error :D REP+

Não respondo PMs solicitando suporte. Já existem seções no fórum para isto.

 

 

 

 

DICA

Utilize botão @UP, no início de seu tópico, para atualizar o destaque de seu tópico em "Tópicos Recentes" na index, fará com que mais pessoas o vejam.

SkyDangerous

Deus Kalec
avatar
Lorde
Lorde

INFOS

Grupo: LordeRegistrado: 17/01/09Posts: 2098Char no Tibia: Adra Sata

bem pensado.

 

já vi um parecido,que utilizava spells em vez de talkaction.

 

parabéns, está evoluindo.

Me segui lá (:

 

b906.png

http://ageofwar.servegame.com/

IP: ageofwar.servegame.com

TIBIA: 10.78

GLOBAL PERFECT CUSTOM

x0wner

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 27/12/11Posts: 11

Um belo script, mas preciso de uma ajuda extra para implementar esse sistema de transformação em meu servidor 8,0.

Eu não consigo editá-lo, se possivel e não incomodo eu gostaria muito de sua ajuda.

REP + desde já !

caotic

Afinal de contas,sou um mordomo e tanto
avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 04/03/11Posts: 1599Char no Tibia: No Have

Claro que eu te ajudo mais o scripts foi realizado para facil ediçao e não tem segredo e super facil.

brunouchihakiller

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 01/12/11Posts: 18Char no Tibia: BuK

Gostaria que se possível, teria como pra no lugar do Look Type, colocar Outfits diferentes para cada Sex.. Exemplo Se for Male Outfit = 1, se For Female Outfit=2...

caotic

Afinal de contas,sou um mordomo e tanto
avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 04/03/11Posts: 1599Char no Tibia: No Have

Opa nao tem problema

 

 

 

function onSay(cid, words, param)

local transf = {

["Morte"] = {level = 1, type = "(Dark)", health = 2222, addlevel = 10, looktypemale = 300, spell = exori, addmana = 2000, looktypefemale = 300},

["Demon"] = {level = 1, type = "(Demonio)", health = 22622, addlevel = 20, looktypemale = 35, spell = exori, addmana = 1800, looktypefemale = 300},

["Dragon"] = {level = 1, type = "(Dragon)", health = 22622, addlevel = 20, looktypemale = 34, spell = exori, addmana = 1222, looktypefemale = 300}

 

}

 

 

if (param == nil or param == '' or param == 'lista' or param == 'list'or not transf[param]) then

local str = ""

str = str .. "Transformaçoes :\n\n"

for name, type in pairs(transf) do

str = str..name.."\n"

end

str = str .. ""

doShowTextDialog(cid, 1397, str)

return TRUE

end

 

 

local name = getCreatureName(cid)

local transflevel = transf[param].level

local transfhealth = transf[param].health

local transfaddlevel = transf[param].addlevel

local transftype = transf[param].type

local transflooktypem = transf[param].looktypemale

local transflooktypef = transf[param].looktypefemale

local transfspell = transf[param].spell

local transfmana = transf[param].addmana

local transfparam = transf[param]

 

if getPlayerLevel(cid) < transflevel then

doPlayerSendCancel(cid, "Voce precisa de "..transflevel.." de level para a transformação")

return true

end

if getPlayerStorageValue(cid, 26458) == 1 then

doPlayerSendCancel(cid, "Voce ja se transformo nao pode transformar")

return true

end

setCreatureMaxHealth(cid, getCreatureMaxHealth(cid)+transfhealth)

doCreatureAddHealth(cid, getCreatureMaxHealth(cid))

doPlayerLearnInstantSpell(cid, transfspell)

doPlayerAddLevel(cid, transfaddlevel)

setCreatureMaxMana(cid, getCreatureMaxMana(cid)+transfmana)

doCreatureAddMana(cid, getCreatureMaxMana(cid))

doCreatureChangeOutfit(cid, {lookType = transflooktype})

db.executeQuery("UPDATE `players` SET `name` = '".. transftype.." "..name.."' WHERE `id` = "..getPlayerGUID(cid)..";")

setPlayerStorageValue(cid, 26458, 1)

setPlayerStorageValue(cid, 26456, transflooktype)

if getPlayerSex(cid) == 0 then

doCreatureChangeOutfit(cid, {lookType = transflooktypef})

return true

end

if getPlayerSex(cid) == 1 then

doCreatureChangeOutfit(cid, {lookType = transflooktypem})

return true

end

return true

end

Vodkart

Sumus Validus
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 21/05/10Posts: 3406Gênero: Masculino

caotic porque não abriu só uma tabela e usou and?

exemplo:

 

look = {34,36} -- aqui na tabela

 

 

e trocava essas linhas todas:

if getPlayerSex(cid) == 0 then
doCreatureChangeOutfit(cid, {lookType = transflooktypef})
return true
end
if getPlayerSex(cid) == 1 then
doCreatureChangeOutfit(cid, {lookType = transflooktypem})
return true
end

 

 

por essa:

 

doCreatureChangeOutfit(cid, {lookType = getPlayerSex(cid) == 0 and look[1] or look[2]})

bossisg.png

Subwat

GAUCHO MACHO
avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 27/07/09Posts: 1516Char no Tibia: Gean Riot

belo script mano, vejo que você está progredindo bastante, sucesso pra ti!

vlw até a proxima =)

Entrem Server online desde o dia 22/02/2013 Monster 24HORAS dedicado!

IP: monster24h.com

PROTOCOL:8.60

PORT:7171

 

RATES:

Exp: 9999x~10x

Skills:800x

Magic:200x

Loot:2x

Pvp-e Advanced: 1.1x Ao matar players de level semelhante.

 

Accounts Pelo Account Manager!

caotic

Afinal de contas,sou um mordomo e tanto
avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 04/03/11Posts: 1599Char no Tibia: No Have

ai Vokdart não lembrava desta possibilidade

 

Vlw

 

Em questão da tabela eu ia abrir apenas uma so que ia confundir nosso amigo resolvi abrir duas msn.

brunouchihakiller

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 01/12/11Posts: 18Char no Tibia: BuK

Vlw, muito obrigado ae, já resolveu meu problema.. REP + mdr.gif

brunouchihakiller

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 01/12/11Posts: 18Char no Tibia: BuK

Nao teria como configurar essa talkaction para também dar vocação (ou trocar a vocation) ? Ai sim ficaria perfeito.

caotic

Afinal de contas,sou um mordomo e tanto
avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 04/03/11Posts: 1599Char no Tibia: No Have

Prontinho coloquei vocaçao e so alterar a vocaçao pelo voc = e o id da voc~çao.

 

 

function onSay(cid, words, param)

local transf = {

["Morte"] = {level = 1, type = "(Dark)", health = 2222, addlevel = 10, looktypemale = 300, spell = exori, addmana = 2000, looktypefemale = 300, voc = 10},

["Demon"] = {level = 1, type = "(Demonio)", health = 22622, addlevel = 20, looktypemale = 35, spell = exori, addmana = 1800, looktypefemale = 300, voc = 6},

["Dragon"] = {level = 1, type = "(Dragon)", health = 22622, addlevel = 20, looktypemale = 34, spell = exori, addmana = 1222, looktypefemale = 300, voc = 8}

 

}

 

 

if (param == nil or param == '' or param == 'lista' or param == 'list'or not transf[param]) then

local str = ""

str = str .. "Transformaçoes :\n\n"

for name, type in pairs(transf) do

str = str..name.."\n"

end

str = str .. ""

doShowTextDialog(cid, 1397, str)

return TRUE

end

 

 

local name = getCreatureName(cid)

local transflevel = transf[param].level

local transfvoc = transf[param].voc

local transfhealth = transf[param].health

local transfaddlevel = transf[param].addlevel

local transftype = transf[param].type

local transflooktypem = transf[param].looktypemale

local transflooktypef = transf[param].looktypefemale

local transfspell = transf[param].spell

local transfmana = transf[param].addmana

local transfparam = transf[param]

 

if getPlayerLevel(cid) < transflevel then

doPlayerSendCancel(cid, "Voce precisa de "..transflevel.." de level para a transformação")

return true

end

if getPlayerStorageValue(cid, 26458) == 1 then

doPlayerSendCancel(cid, "Voce ja se transformo nao pode transformar")

return true

end

setCreatureMaxHealth(cid, getCreatureMaxHealth(cid)+transfhealth)

doCreatureAddHealth(cid, getCreatureMaxHealth(cid))

doPlayerLearnInstantSpell(cid, transfspell)

doPlayerAddLevel(cid, transfaddlevel)

doPlayerSetVocation(cid, transfvoc)

setCreatureMaxMana(cid, getCreatureMaxMana(cid)+transfmana)

doCreatureAddMana(cid, getCreatureMaxMana(cid))

doCreatureChangeOutfit(cid, {lookType = transflooktype})

db.executeQuery("UPDATE `players` SET `name` = '".. transftype.." "..name.."' WHERE `id` = "..getPlayerGUID(cid)..";")

setPlayerStorageValue(cid, 26458, 1)

setPlayerStorageValue(cid, 26456, transflooktype)

if getPlayerSex(cid) == 0 then

doCreatureChangeOutfit(cid, {lookType = transflooktypef})

return true

end

if getPlayerSex(cid) == 1 then

doCreatureChangeOutfit(cid, {lookType = transflooktypem})

return true

end

return true

end

zProtico

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 19/06/12Posts: 3Char no Tibia: Kina Rushador

@Muito Bom Mano

REP+---------------------------------------------------------------

JulioNakanishi

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 14/12/10Posts: 63Char no Tibia: Naoteinteressa

Cara poderia me ajudar ? tipo, eu queria esse script mais com duração, ex: eu uso o /transf Dragon, ai transforma em dragon por 10 minutos, dps volta o outfit e nome normal, tem como fazer isso?

Está procurando um servidor inovador?

Clique aqui!

Cadastrado: 14/12/2010