Por caotic, 28 de ago. de 2012 em Mods, funções e outros
info
Grupo: Infante
Registrado: 04/03/11
Posts: 1.6k
Reputação: +393
Char no Tibia: No Have
Este um sistema rpg foi um pedido de um colega.
E um sistema muito simples e facil de ser editado.
A verdade e que ele e apenas um exemplar para que com ele seja criado alguns scripts como(title que so passa x group,portas,talkactions e etc...)
O sistema e basicamente isto:
O player mata "x" criaturas ai dependendo ele ganha um novo group com ele ganha bonus de mana,level e exp.
Alem de que ganha um group ele ganha um frase de efeito que pode ser visto no look.
Eu fiz as funçoes para verificar o group.
Deixei alguns exemplos.
Tomaras que gostem
Va la em lib e crie um arquivo LUA chamado point e coloque isto
local groups = { [4] = {bonusexp = 1, group = "Servo", bonuslevel = 4, bonusmana = 10, frase = "Estou partindo para aventuras"}, [10] = {bonusexp = 60, group = "Experiente Servo", bonuslevel = 8, bonusmana = 20, frase = "Sempre Continuando"}, [20] = {bonusexp = 80, group = "Camponês", bonuslevel = 6, bonusmana = 80, frase = "Vamos!!!!"}, [30] = {bonusexp = 1, group = "Caponês Evoluido", bonuslevel = 1, bonusmana = 120, frase = "Lets GO!!!"}, [40] = {bonusexp = 1, group = "Cavalheiro", bonuslevel = 3, bonusmana = 180, frase = "Cavalheiro de Honra"}, [60] = {bonusexp = 1, group = "Cavalheiro Aventureiro", bonuslevel = 7, bonusmana = 10, frase = "Buscando aventuras Maiores"}, [80] = {bonusexp = 1, group = "Honrado Cavalheiro", bonuslevel = 10, bonusmana = 10, frase = "Sempre Buscando Ajudar"}, [100] = {bonusexp = 1, group = "Lutador", bonuslevel = 4, bonusmana = 10, frase = "A luta e minha fonte de energia"}, [140] = {bonusexp = 1, group = "Cavalheiro Lutador", bonuslevel = 2, bonusmana = 10, frase = "A minha luta e a melhor!!"}, [150] = {bonusexp = 1, group = "Cavalheiro Evoluido", bonuslevel = 3, bonusmana = 10, frase = "Sempre Buscando Evoluir"}, [180] = {bonusexp = 1, group = "Principe Aventureiro", bonuslevel = 5, bonusmana = 10, frase = "A beleza de um Principe e sua força"}, [200] = {bonusexp = 1, group = "Principe Lutador", bonuslevel = 4, bonusmana = 10, frase = "Sou um Principe que busca a luta a minha inspiração"}, [210] = {bonusexp = 1, group = "Principe Descobridor", bonuslevel = 2, bonusmana = 10, frase = "Redescobrindo o Mundo com olhos de Principes"}, [260] = {bonusexp = 1, group = "Principe Superior", bonuslevel = 4, bonusmana = 10, frase = "Ajoelhesse a minha força"}, [280] = {bonusexp = 1, group = "Eterno Principe", bonuslevel = 4, bonusmana = 10, frase = "Um eterno Principe"}, [300] = {bonusexp = 1, group = "Rei Lutador", bonuslevel = 6, bonusmana = 10, frase = "A Luta e Minha Coroa"}, [340] = {bonusexp = 1, group = "Rei Aventureiro", bonuslevel = 21, bonusmana = 10, frase = "O meu reinado se expande"}, [380] = {bonusexp = 1, group = "Rei Eterno", bonuslevel = 2, bonusmana = 10, frase = "Eterno Rei"}, [400] = {bonusexp = 1, group = "Imperador", bonuslevel = 11, bonusmana = 10, frase = "Sou Pai de Todos"}, [430] = {bonusexp = 1, group = "Lord", bonuslevel = 4, bonusmana = 10, frase = "A minha força e insuperavel"}, [480] = {bonusexp = 187, group = "Imperador Lord", bonuslevel = 877, bonusmana = 10, frase = "O Rei dos Duelos"}, [500] = {bonusexp = 1, group = "Semi Deus", bonuslevel = 100, bonusmana = 122, frase = "A procura da força de um Deus"}, [600] = {bonusexp = 1, group = "Semi Deus Aventureiro", bonuslevel = 212, bonusmana = 10, frase = "Um Aventureiro com Poderes de Deuses"}, [700] = {bonusexp = 1, group = "Semi Deus Lutador", bonuslevel = 4, bonusmana = 10, frase = "A luta de um Deus"}, [800] = {bonusexp = 1, group = "Semi Deus Honrado", bonuslevel = 4, bonusmana = 10, frase = "Ninguem supera um Deus Honrado"}, [900] = {bonusexp = 1, group = "Evoluido Semi Deus", bonuslevel = 200, bonusmana = 10, frase = "O meu Poder so foi possivel pela minha dedicação"}, [1000] = {bonusexp = 4000, group = "Deus", bonuslevel = 400, bonusmana = 1920, frase = "Superior,Maior,Poderoso,Insuperavel Simplismente um Deus"} } function doAddWinner(cid, quant) setPlayerStorageValue(cid, 82922, getPlayerStorageValue(cid, 82922)+quant) end function doAddLoser(cid, quant) setPlayerStorageValue(cid, 82922, getPlayerStorageValue(cid, 82922)-quant) end function getPlayerPoints(cid) return getPlayerStorageValue(cid, 82922) end function setPlayerGroupByPoint(cid) local points = getPlayerPoints(cid) local point = tonumber(points) if groups[point] then local grouplevel = groups[point].bonuslevel local groupmana = groups[point].bonusmana local groupexp = groups[point].bonusexp local groupfrase = groups[point].frase local groupclass = groups[point].group doPlayerAddLevel(cid, grouplevel) setCreatureMaxMana(cid, getCreatureMaxMana(cid)+groupmana) doCreatureAddMana(cid, getCreatureMaxMana(cid)) doPlayerAddExp(cid, groupexp) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Parabens "..getPlayerName(cid).." você subiu de group para "..groupclass.."") setPlayerStorageValue(cid, 82924, groupclass) setPlayerStorageValue(cid, 82926, groupfrase) end end function getPlayerGroup(cid) return getPlayerStorageValue(cid, 82924) end function getPlayerGroupFrase(cid) return getPlayerStorageValue(cid, 82926) end function doSetFirstGroup(cid) if getPlayerStorageValue(cid, 82821) == -1 then setPlayerStorageValue(cid, 82924, "Morador") setPlayerStorageValue(cid, 82926, "Procurando o Verdadeiro Poder") setPlayerStorageValue(cid, 82821, 1) end end function doSendMsgLookGroup(cid) str = ""..getPlayerName(cid).." Level "..getPlayerLevel(cid).."\n Grupo "..getPlayerGroup(cid).."\n Points Winner ("..getPlayerPoints(cid)..")\n "..getPlayerGroupFrase(cid).."" doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, str) end
local groups = {
[4] = {bonusexp = 1, group = "Servo", bonuslevel = 4, bonusmana = 10, frase = "Estou partindo para aventuras"},
[10] = {bonusexp = 60, group = "Experiente Servo", bonuslevel = 8, bonusmana = 20, frase = "Sempre Continuando"},
[20] = {bonusexp = 80, group = "Camponês", bonuslevel = 6, bonusmana = 80, frase = "Vamos!!!!"},
[30] = {bonusexp = 1, group = "Caponês Evoluido", bonuslevel = 1, bonusmana = 120, frase = "Lets GO!!!"},
[40] = {bonusexp = 1, group = "Cavalheiro", bonuslevel = 3, bonusmana = 180, frase = "Cavalheiro de Honra"},
[60] = {bonusexp = 1, group = "Cavalheiro Aventureiro", bonuslevel = 7, bonusmana = 10, frase = "Buscando aventuras Maiores"},
[80] = {bonusexp = 1, group = "Honrado Cavalheiro", bonuslevel = 10, bonusmana = 10, frase = "Sempre Buscando Ajudar"},
[100] = {bonusexp = 1, group = "Lutador", bonuslevel = 4, bonusmana = 10, frase = "A luta e minha fonte de energia"},
[140] = {bonusexp = 1, group = "Cavalheiro Lutador", bonuslevel = 2, bonusmana = 10, frase = "A minha luta e a melhor!!"},
[150] = {bonusexp = 1, group = "Cavalheiro Evoluido", bonuslevel = 3, bonusmana = 10, frase = "Sempre Buscando Evoluir"},
[180] = {bonusexp = 1, group = "Principe Aventureiro", bonuslevel = 5, bonusmana = 10, frase = "A beleza de um Principe e sua força"},
[200] = {bonusexp = 1, group = "Principe Lutador", bonuslevel = 4, bonusmana = 10, frase = "Sou um Principe que busca a luta a minha inspiração"},
[210] = {bonusexp = 1, group = "Principe Descobridor", bonuslevel = 2, bonusmana = 10, frase = "Redescobrindo o Mundo com olhos de Principes"},
[260] = {bonusexp = 1, group = "Principe Superior", bonuslevel = 4, bonusmana = 10, frase = "Ajoelhesse a minha força"},
[280] = {bonusexp = 1, group = "Eterno Principe", bonuslevel = 4, bonusmana = 10, frase = "Um eterno Principe"},
[300] = {bonusexp = 1, group = "Rei Lutador", bonuslevel = 6, bonusmana = 10, frase = "A Luta e Minha Coroa"},
[340] = {bonusexp = 1, group = "Rei Aventureiro", bonuslevel = 21, bonusmana = 10, frase = "O meu reinado se expande"},
[380] = {bonusexp = 1, group = "Rei Eterno", bonuslevel = 2, bonusmana = 10, frase = "Eterno Rei"},
[400] = {bonusexp = 1, group = "Imperador", bonuslevel = 11, bonusmana = 10, frase = "Sou Pai de Todos"},
[430] = {bonusexp = 1, group = "Lord", bonuslevel = 4, bonusmana = 10, frase = "A minha força e insuperavel"},
[480] = {bonusexp = 187, group = "Imperador Lord", bonuslevel = 877, bonusmana = 10, frase = "O Rei dos Duelos"},
[500] = {bonusexp = 1, group = "Semi Deus", bonuslevel = 100, bonusmana = 122, frase = "A procura da força de um Deus"},
[600] = {bonusexp = 1, group = "Semi Deus Aventureiro", bonuslevel = 212, bonusmana = 10, frase = "Um Aventureiro com Poderes de Deuses"},
[700] = {bonusexp = 1, group = "Semi Deus Lutador", bonuslevel = 4, bonusmana = 10, frase = "A luta de um Deus"},
[800] = {bonusexp = 1, group = "Semi Deus Honrado", bonuslevel = 4, bonusmana = 10, frase = "Ninguem supera um Deus Honrado"},
[900] = {bonusexp = 1, group = "Evoluido Semi Deus", bonuslevel = 200, bonusmana = 10, frase = "O meu Poder so foi possivel pela minha dedicação"},
[1000] = {bonusexp = 4000, group = "Deus", bonuslevel = 400, bonusmana = 1920, frase = "Superior,Maior,Poderoso,Insuperavel Simplismente um Deus"}
}
function doAddWinner(cid, quant)
setPlayerStorageValue(cid, 82922, getPlayerStorageValue(cid, 82922)+quant)
end
function doAddLoser(cid, quant)
setPlayerStorageValue(cid, 82922, getPlayerStorageValue(cid, 82922)-quant)
function getPlayerPoints(cid)
return getPlayerStorageValue(cid, 82922)
function setPlayerGroupByPoint(cid)
local points = getPlayerPoints(cid)
local point = tonumber(points)
if groups[point] then
local grouplevel = groups[point].bonuslevel
local groupmana = groups[point].bonusmana
local groupexp = groups[point].bonusexp
local groupfrase = groups[point].frase
local groupclass = groups[point].group
doPlayerAddLevel(cid, grouplevel)
setCreatureMaxMana(cid, getCreatureMaxMana(cid)+groupmana)
doCreatureAddMana(cid, getCreatureMaxMana(cid))
doPlayerAddExp(cid, groupexp)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Parabens "..getPlayerName(cid).." você subiu de group para "..groupclass.."")
setPlayerStorageValue(cid, 82924, groupclass)
setPlayerStorageValue(cid, 82926, groupfrase)
function getPlayerGroup(cid)
return getPlayerStorageValue(cid, 82924)
function getPlayerGroupFrase(cid)
return getPlayerStorageValue(cid, 82926)
function doSetFirstGroup(cid)
if getPlayerStorageValue(cid, 82821) == -1 then
setPlayerStorageValue(cid, 82924, "Morador")
setPlayerStorageValue(cid, 82926, "Procurando o Verdadeiro Poder")
setPlayerStorageValue(cid, 82821, 1)
function doSendMsgLookGroup(cid)
str = ""..getPlayerName(cid).." Level "..getPlayerLevel(cid).."\n Grupo "..getPlayerGroup(cid).."\n Points Winner ("..getPlayerPoints(cid)..")\n "..getPlayerGroupFrase(cid)..""
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, str)
Agora vai la em creaturescripts/scripts e crie um arquivo Lua chamado point.
function onKill(cid, target, lastHit) local point = 1 ----Quantos pontos ele ganha por matar uma creature doAddWinner(cid, point) setPlayerGroupByPoint(cid) return true end
function onKill(cid, target, lastHit)
local point = 1 ----Quantos pontos ele ganha por matar uma creature
doAddWinner(cid, point)
setPlayerGroupByPoint(cid)
return true
Na mesma Pasta crie um arquivo Lua Look e coloque isto:
function onLook(cid, thing, position, lookDistance) if isPlayer(thing.uid) then doSendMsgLookGroup(cid) return false end return true end
function onLook(cid, thing, position, lookDistance)
if isPlayer(thing.uid) then
doSendMsgLookGroup(cid)
return false
Na mesma pasta crie um arquivo chamado onegroup.lua
function onLogin(cid) doSetFirstGroup(cid) return true end
function onLogin(cid)
doSetFirstGroup(cid)
Coloca as tags em creaturescripts.xml
<event type="look" name="plook" event="script" value="look.lua"/> <event type="kill" name="point" event="script" value="point.lua"/> <event type="login" name="group" event="script" value="onegroup.lua"/>
Registra o evento em login.lua.
registerCreatureEvent(cid, "point") registerCreatureEvent(cid, "group") registerCreatureEvent(cid, "plook")
registerCreatureEvent(cid, "point")
registerCreatureEvent(cid, "group")
registerCreatureEvent(cid, "plook")
Vamos agora a alguns exemplos
Title so para Deus passar:
function onStepIn(cid, item, position, fromPosition) local group = "Deus" if getPlayerGroup(cid) ~= group then doTeleportThing(cid, fromPosition, true) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não e "..group.."") doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE) return TRUE end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Seja Bem Vindo "..group.."") return TRUE end
function onStepIn(cid, item, position, fromPosition)
local group = "Deus"
if getPlayerGroup(cid) ~= group then
doTeleportThing(cid, fromPosition, true)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não e "..group.."")
doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE)
return TRUE
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Seja Bem Vindo "..group.."")
Teleport para tal grupo como no exemplo Semi Deus
function onUse(cid, item, pos, item2, topos) local group = "Semi Deus" if getPlayerGroup(cid) == group then local tele = {x=100, y=40, z=7} doTeleportThing(cid, tele) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_MAGIC_RED) return true end return true end
function onUse(cid, item, pos, item2, topos)
local group = "Semi Deus"
if getPlayerGroup(cid) == group then
local tele = {x=100, y=40, z=7}
doTeleportThing(cid, tele)
doSendMagicEffect(getPlayerPosition(cid), CONST_ME_MAGIC_RED)
Logo estarei postando novos scripts dos Points Groups fique atento.
Grupo: Marquês
Registrado: 02/08/12
Posts: 1k
Reputação: +234
Char no Tibia: Maurolkit
Bem legal o sistema, mais coloca local GROUPS para não afetar outros script's
e também em code fica mais fácil de lêr
info
Grupo: Infante
Registrado: 04/03/11
Posts: 1.6k
Reputação: +393
Char no Tibia: No Have
Este um sistema rpg foi um pedido de um colega.
E um sistema muito simples e facil de ser editado.
A verdade e que ele e apenas um exemplar para que com ele seja criado alguns scripts como(title que so passa x group,portas,talkactions e etc...)
O sistema e basicamente isto:
O player mata "x" criaturas ai dependendo ele ganha um novo group com ele ganha bonus de mana,level e exp.
Alem de que ganha um group ele ganha um frase de efeito que pode ser visto no look.
Eu fiz as funçoes para verificar o group.
Deixei alguns exemplos.
Tomaras que gostem
Va la em lib e crie um arquivo LUA chamado point e coloque isto
Agora vai la em creaturescripts/scripts e crie um arquivo Lua chamado point.
Na mesma Pasta crie um arquivo Lua Look e coloque isto:
Na mesma pasta crie um arquivo chamado onegroup.lua
Coloca as tags em creaturescripts.xml
Registra o evento em login.lua.
Vamos agora a alguns exemplos
Title so para Deus passar:
Teleport para tal grupo como no exemplo Semi Deus
Logo estarei postando novos scripts dos Points Groups fique atento.