-
Total de itens
91 -
Registro em
-
Última visita
Tudo que Dark-X postou
-
Para de ficar floodando coisa errada,isso nao ta certo,nunca da certo ,ae pra voce botar em cima do seu erro voce posta outro topico,as coisas que voce postou aqui tao tudo errada! Para de postar tutorial errado ou eu vo ter que reportar! Obrigado Dark-X
-
Tutorial de Actions Em primero lugar vamos criar um Script Passo a Passo para acustumar. Crie um arquivo.lua na sua pasta de scripts chamado mineaction e siga os passos abaixo - > Bom , Aconselho sempre começar sua action com: CODE function onUse(cid, item, frompos, item2, topos) Depois com os famosos "Ifs" função "Se" CODE if item.uid == 3000 then Aqui no caso acontecerá alguma coisa se o item que tem a UniqueId 3000 for usado ! (UniqueIds são IDs unicas , que só se pode ter 1 no mapa e podem ser facilmente colocadas com qualquer map editor [botão Direito , Properties , e teremos actionID e UniqueID]) Bom apos o if item.uid == 3000 then Temos que colocar as funções desejadas. No caso temos as funções : CODE * doChangeTypeItem * doCreateItem * doDecayItem * doPlayerAddHealth * doPlayerAddItem * doPlayerAddMana * doPlayerAddSkillTry * doPlayerFeed * doPlayerRemoveItem * doPlayerRemoveMoney * doPlayerSay * doPlayerSendCancel * doPlayerSendTextMessage * doPlayerSetMasterPos * doPlayerSetVocation * doRemoveItem * doSendMagicEffect * doSetItemActionId * doSetItemSpecialDescription * doSetItemText * doShowTextWindow * doSendAnimatedText * doSummonCreature * doTeleportThing * doTransformItem * getItemRWInfo * getPlayerAccess * getPlayerFood * getPlayerGuildId * getPlayerHealth * getPlayerLevel * getPlayerMagLevel * getPlayerMana * getPlayerMasterPos * getPlayerName * getPlayerPosition * getPlayerSkill * getPlayerStorageValue * getPlayerVocation * getThingfromPos * getTilePzInfo * setPlayerStorageValue Não falaremos de Todas mas é bom conhece-las .. Então pule uma linha para colocarmos as funções . [No Primeiro exemplo aqui colocarei uma action de Sumonar um determinado Montro.] Bom adicione CODE doSummonCreature("Demon",topos) Isso fará que quando eu usar o Item que tem a UID 3000 seja sumonado um monstro na frente do player Adicione uma linha abaixo de doSummon o efeito magico : CODE doSendMagicEffect(topos,14) Pronto quando o Demon for sumonado agora haverá um efeito magico. agora adicione isto no final CODE elsedoPlayerSendCancel(cid,"Sorry, not possible.")endreturn 1end Sua action terminada deve estar assim : CODE function onUse(cid, item, frompos, item2, topos)if item.uid == 3002 thendoSummonCreature("Demon",topos)doSendMagicEffect(topos,14)elsedoPlayerSendCancel(cid,"Sorry, not possible.")endreturn 1end No caso Else significa Mais e Else IF que tambem é muito usado ( não agora ) mais se end é o chamado fim que é usado no fim dos scripts sempre que finaliza alguma coisa. Agora vamos abrir o map editor criar uma statua e adicionar a UniqueID 3000 e abrir tambem a action.xml e adicionar : <action uniqueid="3000" script="mineaction.lua" /> Se tudo deu certo é porque você esta seguindo nosso tuto normalmente! Agora encinarei um pouco outros comandos para então voltar a pratica ! Os mais famosos e usados são : CODE doPlayerAddMana(cid,100) Neste caso adiciona 100 de mana ao player que usar o item que esta destacado na action !doPlayerAddHealth(cid,100) Mesmo que o acima mas neste caso adiciona life !doPlayerFeed(cid,120) Adiciona Digamos.. food ao player neste caso o player subirá life e mana por 120 seconds.doPlayerSay(cid,"Hicks",2) Força o player a dizer uma mensagem usado em cachaça e em mana fluid.doPlayerAddItem(cid,2400,1) É usado em quests no caso adiciona um item do id 2400 que eh uma Magic Sword.doPlayerRemoveMoney(cid,100) Tira dinheiro do player , no caso ali 100 gps.doPlayerSendTextMessage(cid,2,"Tutorial") Aparece uma mensagem no screnn(tela) do player, no caso ali Tutorial.doSendMagicEffect(topos,2) Ele é u famoso efeito magicodoSummonCreature("Dragon",topos) Ali sumona um dragon na posição do item usado ! Ele pode ser usado pra sumonar em determinada coordenada exemplo :doSummonCreature("Dragon", {x=138, y=281, z=8}) Esspecial Alavancas de Mil maneiras 1 - Removendo pedras - Vejam o Ex: CODE function onUse(cid, item, frompos, item2, topos)gatepos = {x=181, y=135, z=11, stackpos=1}getgate = getThingfromPos(gatepos)if item.uid == 3002 and item.itemid == 2711 and getgate.itemid == 1822 thendoRemoveItem(getgate.uid,1)doTransformItem(item.uid,item.itemid+1)elseif item.uid == 3002 and item.itemid == 2712 and getgate.itemid == 0 thendoCreateItem(1822,1,gatepos)doTransformItem(item.uid,item.itemid-1)elsedoPlayerSendCancel(cid,"Sorry, not possible.")endreturn 1end Neste caso vamos esclarecer tudo 3002 o UID da alavanca (não precisa ser necessariamente alavanca mas este exemplo é alavanca) GatePos , é a posição da pedra , parede , estatua ou outra coisa que esteja bloqueando o caminho 1822 é o ID da pedra , parede ... 2711 o ID da alavanca Bom ?!? Sim Otimo Mas podemos editar este exemplo para fazer varias coisas ex: Acordar monstros que estavam transformados em Pedra ... Muita gente deve estar pensando" hã?!? oq isso tem haver?" Olhem só se adicionarmos CODE doSummonCreature("Gargoyle", {x=181, y=135, z=11})doSendMagicEffect(topos,14) Abaixo do doremoveitem teremos isso basta apenas trocar o ID da pedra para 2015 que é o id da estatua Viram é só usar a criatividade de vocês wink.gif - Alavancas Sumonando Monstros e colocando Hole No Lugar de uma quest Vamos ver mais uma vez o exemplo CODE function onUse(cid, item, frompos, item2, topos)gatepos = {x=181, y=135, z=11, stackpos=1}getgate = getThingfromPos(gatepos)if item.uid == 3002 and item.itemid == 2711 and getgate.itemid == 1822 thendoRemoveItem(getgate.uid,1)doTransformItem(item.uid,item.itemid+1)elseif item.uid == 3002 and item.itemid == 2712 and getgate.itemid == 0 thendoCreateItem(1822,1,gatepos)doTransformItem(item.uid,item.itemid-1)elsedoPlayerSendCancel(cid,"Sorry, not possible.")endreturn 1end Vamos Pensar o que podemos fazer ... Que tal se nós adicionarmos após o doRemoveItem isso : CODE doSummonCreature("Dragon", {x=190, y=135, z=11})doSummonCreature("Dragon", {x=187, y=139, z=11})doSummonCreature("Dragon", {x=184, y=133, z=11})doCreateItem(409,1,gatepos) Neste caso , vai sumonar 3 Dragons e aparecer um Hole é com para ser usado em Quests wink.gif [409 é o id da hole] Viram como é facil? É só usar a criatividade ! Bom agora acho que vocês entenderam como usar as alavancas ... Vamos Falar de Runas e MFs Este exemplo do Joao será nossa Base: CODE -- New MF rune by Joao Paulo 3.0 version --function onUse(cid, item, frompos, item2, topos)playerpos = {x=topos.x, y=topos.y, z=topos.z, stackpos=253} player = getThingfromPos(playerpos)ml = getPlayerMagLevel(cid)lvl = getPlayerLevel(cid)formula = math.random(((lvl+ml)*2)-(lvl-ml))if item2.itemid == 1 and ml >= 2 thendoSendMagicEffect(playerpos,1)doPlayerAddMana(player.uid,formula)doPlayerSay(player.uid,"Ahhhhhh",2)if item.type > 1 then doChangeTypeItem(item.uid,item.type-1) else doRemoveItem(item.uid,1) end endif item2.itemid == 1 and ml <= 1 thendoSendMagicEffect(frompos,2)doPlayerSendCancel(cid,"You dont Have Magic Level to use this rune.")endif item2.itemid >= 2 thendoPlayerSendCancel(cid,"You can only use this rune in you or in players.")doSendMagicEffect(frompos,2)endreturn 1end Ai logo você ve que não é tão dificil assim ... Se vocês testarem essa versão verão que upa MTTTTT mana de Mages Oque podemos fazer bom eu não gosto de formulas retire a formula e o getplayerlvl E coloque CODE doPlayerAddMana(cid,100) no lugar do antigo doPlayerAddMana Com isso você pode reparar que toda hora vai upar 100 de mana.. Agora vamos fazer uma runa baseada na do Joao passo a passo : Essa primera runa será pelas actions depois vou encinar uma pela pasta spells. Bom vamos começar igual o exemplo dele: CODE function onUse(cid, item, frompos, item2, topos)playerpos = {x=topos.x, y=topos.y, z=topos.z, stackpos=253} player = getThingfromPos(playerpos) Isso mostra as funções a serem usadas e a posição do Player Vamos pular uma linha e colocar : CODE ml = getPlayerMagLevel(cid)if item2.itemid == 1 and ml >= 2 then Bom isso pega o ML da pessoa para saber se ela tem o Magic necessario para usar. CODE doPlayerAddHealth(player.uid,100)doSendMagicEffect(playerpos,1)doPlayerAddMana(player.uid,100)doPlayerSay(player.uid,"This Potion Are Mud",2)Bom com isso adicionará 100 de life e 100 de mana ao player e força ele a dizer This Potion Are MudCODEif item.type > 1 then doChangeTypeItem(item.uid,item.type-1) else doRemoveItem(item.uid,1) end end Isso remove 1 carga CODE if item2.itemid == 1 and ml <= 1 thendoSendMagicEffect(frompos,2)doPlayerSendCancel(cid,"You dont Have Magic Level to use this rune.") Isso mostra qual ML necessario para usar a LMF (Life mana fluid) CODE endif item2.itemid >= 2 thendoPlayerSendCancel(cid,"You can only use this rune in you or in players.")doSendMagicEffect(frompos,2)endreturn 1end Finalizando oque acontece quando erra o player e o end. Viram ? Se quiserem fazer runas de adicionar equipes ou senão de teleport como nesse exemplo : CODE function onUse(cid, item, frompos, item2, topos)if item2.itemid == 0 then doPlayerSendCancel(cid,"Sorry, not possible.")else if getPlayerAccess(cid) == 3 then playerpos = getPlayerPosition(cid) doTeleportThing(cid,topos) doSendMagicEffect(playerpos,2) doSendMagicEffect(topos,10) else doPlayerSendCancel(cid,"You are not allowed to use this rune.") endendreturn 1end Ou senão o item : CODE doPlayerAddItem(cid,2400,1) É muito facil é apenas adicionar as funções cool.gif Agora vou falar sobre quests laugh.gif CODE if item.uid == (uniqueid que você quer) then queststatus = getPlayerStorageValue(cid,[aconselho colocar a uniqueid]) if queststatus == -1 then if getPlayerLevel(cid) >= (level necessario) then doPlayerSendTextMessage(cid,22,"You have found Tutorial Rox Item.") doPlayerAddItem(cid,(Id Do Item),[Quantidade]) setPlayerStorageValue(cid,(uid),1) else doPlayerSendTextMessage(cid,22,"You need level 20 to get prize.") end else doPlayerSendTextMessage(cid,22,"It is empty.") end Adicione isso na chest.lua Bom agora edite conforma esta acima só que sem os {} [] () Se você não usa YourOts - Baixe YourOts (Brincadera a parte) Ignore o passo acima Vamos ver um exemplo CODE function onUse(cid, item, frompos, item2, topos)if item.uid == (UID) thenqueststatus = getPlayerStorageValue(cid,[uID])if queststatus == -1 or queststatus == 0 thendoPlayerSendTextMessage(cid,22,"You have found an Tutorial Rox.")doSendMagicEffect(topos,12)coins_uid = doPlayerAddItem(cid,[iD Do Item],{Quantidade})setPlayerStorageValue(cid,[uID],1)elsedoPlayerSendTextMessage(cid,22,"This chest is empty.")endelseif item.uid == [uID] thenqueststatus = getPlayerStorageValue(cid,[uID])if queststatus == -1 or queststatus == 0 thendoPlayerSendTextMessage(cid,22,"You have found a Tutorial.")doSendMagicEffect(topos,12)coins_uid = doPlayerAddItem(cid,[iD do Item],{quantidade})setPlayerStorageValue(cid,[uID],1)elsedoPlayerSendTextMessage(cid,22,"This chest is empty.")endelsereturn 0endreturn 1end É só substituir colocando os IDs sem os [] {} () Editando LvLDoors Bom antes de mais nada temos que adicionar isso no actions.xml CODE <action itemid="1627" script="lvldoor.lua"/><action itemid="1629" script="lvldoor.lua"/><action itemid="1645" script="lvldoor.lua"/><action itemid="1647" script="lvldoor.lua"/><action itemid="1659" script="lvldoor.lua"/><action itemid="1661" script="lvldoor.lua"/><action itemid="1668" script="lvldoor.lua"/><action itemid="1677" script="lvldoor.lua"/> Essas são as portas mais usadas , quem usa outras pode adicionar facilmente assim: CODE <action itemid="ID Da Porta" script="lvldoor.lua"/> Bom com sua porta add vamos ao script CODE function onUse(cid, item, frompos, item2, topos)doorpos = {x=frompos.x, y=frompos.y, z=frompos.z}playerpos = getPlayerPosition(cid)playerlevel = getPlayerLevel(cid)--shadowtempleif item.itemid == 1629 and doorpos.x == 265 and doorpos.y == 118 and doorpos.z == 8 thenif playerlevel > 29 thendoTeleportThing(cid,doorpos)elseif playerlevel < 30 thendoPlayerSendTextMessage(cid,22,"You need to be level 30 or higher.")end--DOMSelseif item.itemid == 1627 and doorpos.x == 133 and doorpos.y == 250 and doorpos.z == 8 thenif playerlevel > 39 thendoTeleportThing(cid,doorpos)elseif playerlevel < 40 thendoPlayerSendTextMessage(cid,22,"You need to be level 40 or higher.")endendreturn 1end Explicando : Ali temos 2 portas os ids são 1627 e 1629 a seguir dos IDS temos as coodernadas o lvl 39 then + que 39 ou seja apenas 40 pra cima doTeleportthing(cid,doorpos) isso é a posição da door ou seja vai teleporta o player para dentro da porta Facil não? Edite sua porta você mesmo e mude o ID e as coordenadas - Picks System CODE function onUse(cid, item, frompos, item2, topos)tilepos = {x=topos.x, y=topos.y, z=topos.z}if item2.itemid == 0 thenreturn 0endif item2.itemid == 782 and tilepos.x == 56 and tilepos.y == 49 and tilepos.z == 8 thenplayer1pos = {x=56, y=50, z=8, stackpos=253}player1 = getThingfromPos(player1pos)if player1.itemid > 0 thennplayer1pos = {x=56, y=49, z=9}doSendMagicEffect(player1pos,2)doTeleportThing(player1.uid,nplayer1pos)doSendMagicEffect(nplayer1pos,10)elsedoSendMagicEffect(frompos,2)doPlayerSendCancel(cid,"You are not in the right place!")endendreturn 1end Explicando o código: Agora la em and tilepos.x == 56 and tilepos.y == 49 and tilepos.z == 8 Ai eh as cordenadas do xaozinhu q vc irá usar a pick para ser teleportado. Tamo quase la! Em if item2.itemid == 782 Este 782 eh o id da tile (o xaumzinhu) q vc colocou na coordenada q a pick devera ser usada. Para dar um toke a+ eu puiz la em doPlayerSendCancel(cid,"You are not in the right place!") esta mensagem se a mula do cara usa a pick e naum estiver no lugar certo q vc colocou. OBS: tilepos = {x=topos.x, y=topos.y, z=topos.z} n mexe ai pq se naum vai dar erro! Agora entendendo e execuntando by Skoll Isso é o pick system tem gente que não sabe nem oq é pick eh aquele intrumento que usamos para fazer buracos no chão , nesta aula que você teve retirada de um tuto do thotth com autorização dele é claro ele encinou como executar essa magnifica action , é a primeira vez que trabalhamos com o item2 em nossas aulas , o item2 é aquele segundo item do use with ( ex - eu dou use em uma rope e depois na tile de subir no caso a tile de subir é o item2) ele é utilizado em boa parte das actions ai você pergunta em não vi um "item1" lá ai que entra a code do actions.xml. CODE <action itemid="3394" script="pick.lua" /> Em actions gerais (eu gosto de chamar assim) você deve sempre colocar o id do item que da o use na actions.xml CODE Em actions gerais (eu gosto de chamar assim) você deve sempre colocar o id do item que da o use na actions.xml E por utimo como colokar o temple do player clikando tipo dando use na estatua e nasce senpre la ex CODE newpos = {x=20, y=20, z=7}doPlayerSetMasterPos(cid,newpos) e so add isso num lugar kalker de um script c vc leu tudo vai saber como e que faiz flw Tutorial:By Skoll Adaptado por:Dark-X Obrigado Dark-X
-
Demorei 3 horas lendo minha vista meio embaçada .mais isso nao tem nada a ver com o casa,cara seu tuto ta muito rox,mais tipo arruma ae o que o colex falo porque aqui nao ta dando certo e pode ser isso ae que o colex ta mensionando ae em cima. Da um olhada la ;D Obrigado Dark-X
-
Humm muito bom,mas eu tenho uma duvida Don,se a pessoa criar mais de uma acc para participar do palpite,ele tera varias chance de ganhar,intao fica meio que injusto para os outros participante do concurso que nao estao fazendo issu.Na minha opniao voces deviam colocar o nome do char para a onde a p.a iria se no caso ele ganhase a p.a ja ia automaticamente. Obrigado Dark-X
-
Muita gente falando que o XTibia ta evoluindo,isso e verdade,mas pode percebe que estao falando isso pela P.a que sera dada ao vencedor.Isto e apenas uma prova do que as pessoas pensao relmente sobre o Xtibia,muitos estao aqui para poder pegar um cargo maior e ser uma "autoridade" no Xtibia ou ganhar premios como essa p.a que sera dada! Realmente existe pessoas ganaciosas em todos os lugares @Topic Cara que rox eu nao tinha a tabelinha da copa,vo copiar e botar no bloco de notas pra mim ir acompanhado! Todos estao falando que o grupo da morte e o da argentina,mas na minha opniao o grupo da morte e o do Brasil,nao vai ser facil para o Brasil passar pelo japao que esta em uma otima fase,pela croacia que te uma marcaçao bastante tença e pela australia que tem o kewell que joga muito. Flowz
-
Cara issu para um bom scripter e moleza,mas porem para que nao sabe fazer e uma otima tutorial! Agora eu te pergunto tu sabe criar quest de npc? Depois que eu almoçar eu vo fazer um tuto completo de como criar quest de npc. Flowz
-
Cara se voce que falar com o colex,manda uma mp pra ele e pede o que voce quer,mais no forum que nao tem nada a ver e meio dificil dele te encontrar. Edita issu ae,porque os moderador vao pensar que e flood. @Tutorial Cara muito bom,mas se eu quizer mudar ele pra 7.5 ou pra 7.4 tem geito? Se tiver da a soluçao! Porque eu to tentando aqui e nao to consiguindo mano,sera que e porque aqui e bugado sei la!? Flowz
-
huhu consigui em 2 2 minutos kara eu num consigo neme 1 minuto o0 eu so anormal Flowz
-
Cara ficou um pouco dificil de enteder eu nunca vi essa palavra na minha vida,Modo Table, mais no geral,pelo o que eu entendi foi bom ;] Flowz
-
Deixe Seu Server Online 24 Horas!, Acabe com os problemas do Auto-Restarter Com esta técnica, não irá aparecer mensagem de erro entende? irá apenas cair e rapidamente voltar o ot... realmente muito útil pra qm qr deixar o OT 24horas on com Auto-Restarter e tem q ficar no PC... fechando as janelinhas de erro . E ai pessoal eu estava mexendo na net atras de um NPC e vi um topco em um forum q tinha esse tutorial e grassas e esse tuto meu servidor pod ficar 24h online sem akeles erros chatissimos q acabao com os OTS. Então começando: Mesmo que voce tenha um reestarter sempre da akele errozinho que trava seu OTServ, para tirar akele errinho que enche o sako aki vai a resposta: Entre no painel de controles/sistema/avançados/relatorio de erros/escolher programa/adicionar/procurar Agora ache seu OTServ.exe e ponha lá e de OK Pronto Nao inviara + ralatorio de erros Mas ainda tera a possibilidade de aparecer erros criticos ai seja mais radical Mande desativar o relatorio de erros e dismarque o "notificar-me quando ocorrerem erros criticos" na pagina do ralatorio de erros Esse tutorial creio que vai ajudar mta gente ~Agora crie seu Auto-restarter~ aew pessoal... vo ensina a faze seu proprio Auto-Restarter.. isso mesmo.. akele q qndo seu server fecha ele volta sozinho x)~ Vamos começar Vow da um exemplo aki do MEU Auto-restarter.bat: CODE@echo off title OTserv Auto-restarter echo ========================================= echo --- OTserv Restarter --- echo --- Por: Fvox --- echo ========================================= echo :begin OTserv.exe echo echo ========================================= echo --- O Sever caiu, volta ja ja --- echo ========================================= echo goto begin :goto begin Agora faça o seu: 1°)Abra um bloco de notas 2°) escreva nele (Naum esqueça de tirar o "CODE" se vc for Copiar e colar): CODE@echo off title OTserv Auto-restarter echo ========================================= echo --- OTserv Auto-Restarter --- echo --- Por: Seu nick aki --- echo ========================================= echo :begin Nome do Executavel.exe echo echo ========================================= echo --- Mensagem de quando o server cai--- echo ========================================= echo goto begin :goto begin Agora eh soh renomeia as coisas q eu colokei la tpw: Por: Seu nick aki Nome do executavel.exe (Exemplo: OTserv.exe) Mensagem de quando o server cai (Exemplo: o Server caiu.. volta ja) 3°) depois de ter feito salve o seu bloco de notas o arquivo.bat (Exemplo: Auto-Restarter.bat) 4°)Abra seu server e divirta-se pq ja acabo xDDDD - - - - - - - - - - - - - - - - - - - - - - - - - - - - Agora sempre q seu server cair ele vai cair direto... e o Auto-Restarter o abrirá normalmente!!! Espero q eu tenha ajudado alguem neh!!! vlw pessoal! Dark-X
-
Criando 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. --armas quest-- <action uniqueid="3000" script="armas.lua" /> <action uniqueid="3001" script="armas.lua" /> <action uniqueid="3002" script="armas.lua" /> --end armas quest-- É isso aí... espero que ajude! By Dark-X
-
boa veo eu peguei aki pra bota no meu deu ;D fiko rox Flows
-
vlw colex na proxima eu boto quote ;D
-
Qual Melhor Skill Pra Knight Axe,club,sword
tópico respondeu ao Achilles 182 de Dark-X em Notícias e Discussões - Tibia Global
Cara so muito mais club Usadores de club vivem na busca eterna pelo tao sonha thunder hammer ;D eu sonho em um dia ter um rox Flows -
bom ta meio dificil de intender mais ta bom ;D flows
-
HAIEUHAiuahiaehIUHAE KARA VC TEM UMA IMAGINAÇAO ROX ;D flows
-
crie um leveldoor.lua e dentro coloke function onUse(cid, item, frompos, item2, topos) doorpos = {x=frompos.x, y=frompos.y, z=frompos.z} playerpos = getPlayerPosition(cid) playerlevel = getPlayerLevel(cid) --entrada cave if item.itemid == 1460 and doorpos.x == 103 and doorpos.y == 275 and doorpos.z == 8 then if playerlevel > 29 then doTeleportThing(cid,doorpos) elseif playerlevel < 30 then doPlayerSendTextMessage(cid,22,"Voce Precisa ter level 30 ou maior para passar.") end end return 1 end 1460 signifika o ID Da parede q usei q eh akela da imagem q mostrei doorpos.x == 103 and doorpos.y == 275 and doorpos.z == 8 eh a cordenada da parede if playerlevel > 29 ai mostra se o player for maior de level 29 ele passa elseif playerlevel < 30 aki eh se ele for menor de level 30 nao passa e aparece a tal mensagem.. Depois vc vai em actions.xml e addciona issu: <action itemid="1460" script="leveldoor.lua" / Pronto ae agora vc testa ela poem ela la ondi vc quer e gogo quest
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.