Ir para conteúdo

Sistema De Transformaçao


caotic

Posts Recomendados

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.

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

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á !

Link para o comentário
Compartilhar em outros sites

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

Link para o comentário
Compartilhar em outros sites

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]})

Link para o comentário
Compartilhar em outros sites

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.

Link para o comentário
Compartilhar em outros sites

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

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

×
×
  • Criar Novo...