Histórico de Curtidas
-
Omaximo recebeu reputação de kain em Criando QuestsCriando Quest
Muitas pessoas ainda nao sabem ou se confundem ao criar um bau de quest, esse tutorial aqui vai ensinar direitinho como criar um.
Este tutorial é dividido em 4 passos.
Criando Quest
-Passo 1 - Script.lua
crie um arquivo.lua novo, ele deve ficar localizado na pasta data/actions/scripts e escreva isto nele:
function onUse(cid, item, frompos, item2, topos)
if item.uid == X then
queststatus = getPlayerStorageValue(cid,Y)
if queststatus == -1 or queststatus == 0 then
doPlayerSendTextMessage(cid,22,"Você achou um(a) Z")
item_uid = doPlayerAddItem(cid,ID,Q)
setPlayerStorageValue(cid,Y,1)
else
doPlayerSendTextMessage(cid,22,"O baú está vazio.")
end
else
return 0
end
return 1
end
Passo 2 - Configurando o Script.lua
Note que no script acima tem algumas variaveis: "X", "Y", "Z", Q e ""ID"
e em um bau de quest isso é que tem que ser configuravel... vou ensinar agora o que deve ser substituidos por essas letras e como fazer:
2.a - Configurando X
Esta variavel devera ser substituida por um numero maior que 1000, vc vai selecionar este numero pelo seu MAP EDITOR. Abra seu editor, va no bau onde fica localizada a quest entao clique com o botao direito no item e selecione PROPRIEDADES.
Vai apareçer 2 opções: Action ID e Unique ID, unique id é o que nos interessa...
entao onde tem unique id vc seleciona um numero a seu gosto.. como EXEMPLO vamos usar 2000.
2.b - Configurando Y
Esta variavel é chamada de DATA KEY e é o codigo que diz se o player fez ou nao esta quest.
ESTE NUMERO É A IDENTIDADE DA QUEST, SE 2 QUESTS TIVEREM A MESMA DATA KEY VAI DAR PROBLEMA NA QUEST, entao certifique-se que nenhuma outra quest/action possui este numero que vc vai escolher...
*Dica: Eu aconselho a usar o mesmo numero do uniqueid por uma questao de organização até.
Seguindo a dica entao vamos usar neste exemplo o numero 2000.
PS: este numero apareçe 2x no script, lembre-se de por ele corretamente nos 2 lugares, este numero nao precisa ser igual ao unique id, vc pode escolher outro, eu estou colocando o mesmo numero por uma questao de praticidade.
2.c - Configurando Z
Este é o mais facil, Z sera substituido pelo nome do item que a quest da (isso é aquele texto verinho que apareçe quando vc pega um item. Neste exemplo vamos usar umaMagic Sword.
2.d - Configurando Q
Este é bem simples tambem, e é configuravel apenas quando o item é contavel como dinheiro, bolts e etc... quando o ITEM NAO É CONTAVEL entao esta variavel fica sempre 1.
Como Magic Sword nao é um item contavel entao Q vai ser 1.
2.e - Configurando ID
Este é bem facinho de se configurar, nada mais é que o ID do item que o player vai ganhar.
Como no exemplo escolhi o item Magic Sword temos que usar o ID dela certo? smile.gif
O id da magic sworde é 2400.
PS: este id é de OT 7.4, o ID da magic sword em ot 7.5 é outro..
Passo 3 - Substituindo as Variaveis.
Voltando agora ao script, vamos substituir os valores, substituindo tudo direitinho no script vai ficar assim:
function onUse(cid, item, frompos, item2, topos)
if item.uid == 2000 then
queststatus = getPlayerStorageValue(cid,2000)
if queststatus == -1 or queststatus == 0 then
doPlayerSendTextMessage(cid,22,"Você achou um(a) Magic Sword")
item_uid = doPlayerAddItem(cid,2400,1)
setPlayerStorageValue(cid,2000,1)
else
doPlayerSendTextMessage(cid,22,"O baú está vazio.")
end
else
return 0
end
return 1
end
Esta quase acabando!!!
Passo 4 - Adicionando o Script.lua nos Actions.
Antes de tudo lembre-se que o seu arquivo ate agora nao tem nome, como este bau da uma magic sword como item, entao vamos por o nome dele de MagicSwordQuest.
Agora va no actions.xml e abra em bloco de notas, e adicione isto la:
<action uniqueid="2000" script="MagicSwordQuest.lua" />
Salve e Feche.
Pronto, sua quest foi criada com sucessso!!!
Passo 5 - Como fazer quest de escolha (OPCIONAL)
Agora para quem quier aprender como faz baus estilo o da annihilator, 2 baus ou mais, e vc só pode pegar um item, irei ensinar agora.
é bem simples, vou tentar explicar como funfa e vou postar exemplo.
nao tem o script inicial postado aqui? pronto, se for 2 baus vc junta 2 scripts em um só, se for 4, 4 scripts em um só, sendo que quando se faz isso se adiciona else antes dos outros if.
vou fazer um exemplo com 3 baus ok? smile.gif
vamos lá.
function onUse(cid, item, frompos, item2, topos)
if item.uid == X¹ then --primeiro bau--
queststatus = getPlayerStorageValue(cid,Y)
if queststatus == -1 or queststatus == 0 then
doPlayerSendTextMessage(cid,22,"Você achou um(a) Z¹")
item_uid = doPlayerAddItem(cid,ID¹,Q)
setPlayerStorageValue(cid,Y,1)
else
doPlayerSendTextMessage(cid,22,"O baú está vazio.")
end
elseif item.uid == X² then --segundo bau--
queststatus = getPlayerStorageValue(cid,Y)
if queststatus == -1 or queststatus == 0 then
doPlayerSendTextMessage(cid,22,"Você achou um(a) Z²")
item_uid = doPlayerAddItem(cid,ID²,Q)
setPlayerStorageValue(cid,Y,1)
else
doPlayerSendTextMessage(cid,22,"O baú está vazio.")
end
elseif item.uid == X³ then --terceiro bau--
queststatus = getPlayerStorageValue(cid,Y)
if queststatus == -1 or queststatus == 0 then
doPlayerSendTextMessage(cid,22,"Você achou um(a) Z³")
item_uid = doPlayerAddItem(cid,ID³,Q)
setPlayerStorageValue(cid,Y,1)
else
doPlayerSendTextMessage(cid,22,"O baú está vazio.")
end
else
return 0
end
return 1
end
Para configurar é bem simples, é igual a um script normal, vc tem que preencher as variaves normalmente.
nota: vc vai notar uma diferença neste script, alem do elseif, vc pode ver que tem variaves diferentes assim: X¹, X² e X³.
vou ensinar como vc vai configurar.
o X é unique id, vc vai configurar como em um script normal, só que x¹ é diferente de x² que é diferente de x³.
O mesmo se aplica aos Z's, aos ID's, note que nao tem varios "Y", ou seja, o Y do primeiro bau é = ao do segundo e = ao do terceiro.
--Partindo para o exemplo pratico--
eu aconselho vc a fazer os UNIQUEIDS seguidos como no exemplo pratico.
X¹ = 3000
X² = 3001
X³ = 3002
Y = 3000.
Z¹ e ID¹ = Magic Sword (2400)
Z² e ID² = SCA (2431)
Z³ e ID³ = TH (2421)
PS: todos estes ids sao para 7.4, nao sei os de 7.5 decorados.
--Substituindo as variaveis--
fuction onUse(cid, item, frompos, item2, topos)
if item.uid == 3000 then --primeiro bau--
queststatus = getPlayerStorageValue(cid,3000)
if queststatus == -1 or queststatus == 0 then
doPlayerSendTextMessage(cid,22,"Você achou um(a) Magic Sword")
item_uid = doPlayerAddItem(cid,2400,1)
setPlayerStorageValue(cid,3000,1)
else
doPlayerSendTextMessage(cid,22,"Vc ja pegou um dos 3 items.")
end
elseif item.uid == 3001 then --segundo bau--
queststatus = getPlayerStorageValue(cid,3000)
if queststatus == -1 or queststatus == 0 then
doPlayerSendTextMessage(cid,22,"Você achou um(a) Stonecutter Axe")
item_uid = doPlayerAddItem(cid,2431,1)
setPlayerStorageValue(cid,3000,1)
else
doPlayerSendTextMessage(cid,22,"Vc ja pegou um dos 3 items.")
end
elseif item.uid == 3002 then --terceiro bau--
queststatus = getPlayerStorageValue(cid,3000)
if queststatus == -1 or queststatus == 0 then
doPlayerSendTextMessage(cid,22,"Você achou um(a) Thunder Hammer")
item_uid = doPlayerAddItem(cid,2421,1)
setPlayerStorageValue(cid,3000,1)
else
doPlayerSendTextMessage(cid,22,"Vc ja pegou um dos 3 items.")
end
else
return 0
end
return 1
end
feche, salve e escolha o nome do seu script/quest
exemplo: armas.lua
--Adicionando no actions.xml--
abra o action.xml e adicione as tags dos baus.
<action uniqueid="3000" script="armas.lua" />
<action uniqueid="3001" script="armas.lua" />
<action uniqueid="3002" script="armas.lua" />
Creditos Top Maker,omaximo
-
Omaximo recebeu reputação de uesleirodrigues em Criando Comando !rankVá em "data\talkactions\scripts" copie e cole qualquer arquivo.lua e renomei para ranks.lua e cole isto dentro:
local ranks = { ['fist'] = {0}, ['club'] = {1}, ['sword'] = {2}, ['axe'] = {3}, ['distance'] = {4}, ['shield'] = {5}, ['fish'] = {6}, ['magic'] = {7}, ['level'] = {8}, } function onSay(cid, words, param) local msg = string.lower(param) if ranks[msg] ~= nil then str = getHighscoreString((ranks[msg][1])) else str = getHighscoreString((8)) end doShowTextDialog(cid,6500, str) return TRUE end Depois vaia em talkactions.xml e adicione : <talkaction words="!rank" script="ranks.lua"/> Depois vaia em : Actions ->scripts ->crie um aquivo com este nome " highscores.lua" e coloque isto dentro: function onUse(cid, item, fromPosition, itemEx, toPosition) if(item.actionid >= 150 and item.actionid <= 158) then doShowTextDialog(cid, item.itemid, getHighscoreString((item.actionid - 150))) return TRUE end return FALSE end Vai na para pasta Mods -> e crie um aquivo com este nome "highscorebook.xml" e cole isto dentro: <?xml version="1.0" encoding="UTF-8"?> <mod name="Highscore book" version="1.0" author="Top Maker" contact="ot-serv.forumeiros.com" enabled="yes"> <action itemid="1981" event="buffer"><![CDATA[ if(item.actionid >= 150 and item.actionid <= 158) then doShowTextDialog(cid, item.itemid, getHighscoreString((item.actionid - 150))) else _result = false end ]]></action> <item id="1981" article="a" name="highscore book" override="yes"/> </mod>
-
Omaximo recebeu reputação de Bluetooth em [HOTKEYS]Utito Tempo & Utani Tempo Hur e Dacing etcs..Eai galeira vim postar uma Novas Hotkey Quase Ninguem Conheçe
Serve Para Todos Mapa que tenha Muita Mana .
Ou Xp Alta né
Para Baiak Nao Funciona Ja Testei Nao Funciono Essa hotkey é antiga ..
De Utito é
auto 200 listas 'utito' | if [$strengthtime <= 1000] say 'Utito Tempo ""
De Dancing
auto 1 listas 'Dancing' | wait 100 |turnn| wait 100 |turnw| wait 100
De Utani Tempo Hur
auto 200 if [$hasted ==0] say 'Utani Tempo Hur " -
De Soltar SD é
auto 200 attack target | sd target
De Dar Utamo Vita Sozinho é
auto 200 manashield
Apenás Isso Por Hoje
obrigado por ve o topico .
e por visitar tibia King
Bjos até +
-
Omaximo recebeu reputação de Prisco em Criando uma zona pvp.Ola, hoje vou lhes ensinar como criar uma zona pvp, no meu caso vou usar um otserv 8.0
ta certo vamos começar, entre na pasta "data\pvparenas.xml"
o meu esta assim:
<?xml version="1.0" encoding="UTF-8"?> <pvparenas> <pvparena exitx="59" exity="253" exitz="7"> <tile x="37" y="249" z="7"/> <tile x="37" y="250" z="7"/> <tile x="37" y="251" z="7"/> <tile x="37" y="252" z="7"/> <tile x="37" y="253" z="7"/> <tile x="37" y="254" z="7"/> <tile x="37" y="255" z="7"/> <tile x="37" y="256" z="7"/> </pvparena> </pvparenas> Para você criar o seu e simples olhe: <pvparena exitx="X" exity="Y" exitz="Z"> X = e a coordenada "x" de quando você morre naquela zona pvp. Y = e a coordenada "y" de quando você morre naquela zona pvp. Z = e a coordenada "z" de quando você morre naquela zona pvp. <tile x="Z" y="Y" z="Z"/> X = e a coordenada "x" da zona pvp. Y = e a coordenada "y" da zona pvp. Z = e a coordenada "z" da zona pvp. Agora e só você criar o seu: <?xml version="1.0" encoding="UTF-8"?> <pvparenas> <pvparena exitx="Z" exity="Y" exitz="Z"> <tile x="Z" y="Y" z="Z"/> <tile x="Z" y="Y" z="Z"/> <tile x="Z" y="Y" z="Z"/> <tile x="Z" y="Y" z="Z"/> </pvparena> </pvparenas>
Creditos : Leeo,Omaximo
-
Omaximo recebeu reputação de RafaSoni em Criando Comando !rankVá em "data\talkactions\scripts" copie e cole qualquer arquivo.lua e renomei para ranks.lua e cole isto dentro:
local ranks = { ['fist'] = {0}, ['club'] = {1}, ['sword'] = {2}, ['axe'] = {3}, ['distance'] = {4}, ['shield'] = {5}, ['fish'] = {6}, ['magic'] = {7}, ['level'] = {8}, } function onSay(cid, words, param) local msg = string.lower(param) if ranks[msg] ~= nil then str = getHighscoreString((ranks[msg][1])) else str = getHighscoreString((8)) end doShowTextDialog(cid,6500, str) return TRUE end Depois vaia em talkactions.xml e adicione : <talkaction words="!rank" script="ranks.lua"/> Depois vaia em : Actions ->scripts ->crie um aquivo com este nome " highscores.lua" e coloque isto dentro: function onUse(cid, item, fromPosition, itemEx, toPosition) if(item.actionid >= 150 and item.actionid <= 158) then doShowTextDialog(cid, item.itemid, getHighscoreString((item.actionid - 150))) return TRUE end return FALSE end Vai na para pasta Mods -> e crie um aquivo com este nome "highscorebook.xml" e cole isto dentro: <?xml version="1.0" encoding="UTF-8"?> <mod name="Highscore book" version="1.0" author="Top Maker" contact="ot-serv.forumeiros.com" enabled="yes"> <action itemid="1981" event="buffer"><![CDATA[ if(item.actionid >= 150 and item.actionid <= 158) then doShowTextDialog(cid, item.itemid, getHighscoreString((item.actionid - 150))) else _result = false end ]]></action> <item id="1981" article="a" name="highscore book" override="yes"/> </mod>
-
Omaximo recebeu reputação de vinicios em [HOTKEYS]Utito Tempo & Utani Tempo Hur e Dacing etcs..Eai galeira vim postar uma Novas Hotkey Quase Ninguem Conheçe
Serve Para Todos Mapa que tenha Muita Mana .
Ou Xp Alta né
Para Baiak Nao Funciona Ja Testei Nao Funciono Essa hotkey é antiga ..
De Utito é
auto 200 listas 'utito' | if [$strengthtime <= 1000] say 'Utito Tempo ""
De Dancing
auto 1 listas 'Dancing' | wait 100 |turnn| wait 100 |turnw| wait 100
De Utani Tempo Hur
auto 200 if [$hasted ==0] say 'Utani Tempo Hur " -
De Soltar SD é
auto 200 attack target | sd target
De Dar Utamo Vita Sozinho é
auto 200 manashield
Apenás Isso Por Hoje
obrigado por ve o topico .
e por visitar tibia King
Bjos até +
-
Omaximo recebeu reputação de ratichu em Gesior ACC (Last Version) - Última Versão¬¬ sinto muito mais esse gesior esta dando erro ;/
-
Omaximo deu reputação a Avuenja em Duvida Pessoaleu recomendo o o host de otserver muito bom! o vps ótimos!
-
Omaximo recebeu reputação de chapolin em [HOTKEYS]Utito Tempo & Utani Tempo Hur e Dacing etcs..Eai galeira vim postar uma Novas Hotkey Quase Ninguem Conheçe
Serve Para Todos Mapa que tenha Muita Mana .
Ou Xp Alta né
Para Baiak Nao Funciona Ja Testei Nao Funciono Essa hotkey é antiga ..
De Utito é
auto 200 listas 'utito' | if [$strengthtime <= 1000] say 'Utito Tempo ""
De Dancing
auto 1 listas 'Dancing' | wait 100 |turnn| wait 100 |turnw| wait 100
De Utani Tempo Hur
auto 200 if [$hasted ==0] say 'Utani Tempo Hur " -
De Soltar SD é
auto 200 attack target | sd target
De Dar Utamo Vita Sozinho é
auto 200 manashield
Apenás Isso Por Hoje
obrigado por ve o topico .
e por visitar tibia King
Bjos até +
-
Omaximo recebeu reputação de Vodkart em Criando Hunt De Cyclops.1° Em primeiramente os cyclops são seres que abitam cavernas.
2° Para fazer uma hunt de cyclops vamos precisar de uma base feita de montanha, depois adicionamos os ground e suas respectivas bordas:
3° Depois de adicionadas as bordas e grounds é hora de detalhar, nesse momento adicionamos as pedras, musgos, debris, etc:
4° Agora é a hora de caracterizarmos a hunt, ou seja, os últimos detalhes, como algumas caixas, e trash(lixo), você também pode botar um corpo da creature da hunt:
Creditos : Leeo,aundsoul