-
Total de itens
301 -
Registro em
-
Última visita
Tudo que colex postou
-
vlw pelos comentarios agora ta ai a versão 2.0 mt mais funcional d_cruel me deu uma idéia dai eu adaptei e aperfeiçoei espero ke gostem e comente u ke axam @Galego_ eu ja não tou disponivel por agora =/ cya~~
-
bom tuto com imagens facilita muito a comprensão dos tuto good work
-
@london tou usandu us ids de 7.6 axu ke us comandos ke eu usei tbm daum em 7.5, mas us ids saum de 7.6 se vc iser pra 7.5 troca os ids todos
-
aew mt bom update assim é u ke xtibia avança para melhor bom trabalho da team xtibia cya
-
vlw pelos comentarios espero ke aproveitem :icon1: @soulblaster aki naum é u melhor lugar par pedir issu mas me manda pm dizendu uma coisa as peças do helmet tem ke tar numa certa ordem? cya~~
-
aew como eu vi ke u boots of waterwalking ke tem ai nu forum naum funciona em 7.6, eu resolvi fazer u meu sistema de boots of waterwalking :icon3: ---------Novo update v2.0 usando a idéia do d_cruel-------- u ke tiver a vermelho é coisa do novo update vc da use nas botas, elas desaparecem e vc podi andar na agua um certo tempo ke vc decide nu script (ai vc anda na agua danda use apenas na agua) kuandu acabar u tempo as botas vaum aparecer na tua bp e vc tera mais um minuto para dar use na bota otra vez, caso contrario passado 1 minutos voce sera teleportado para o templo, vc só pode usar uma boots of waterwaking por vez, se vc tentar usar otra antes do tempo acabar ira aparecer a seguinte msg: You are already using Boots of Waterwalking(agora 100%) mt facil de controlar u char na agua, dando use apenas no tile de agua :icon1: Aproveitem o novo update e valew D_cruel pela idéia 1º na pasta data/actions/scripts crie um documento com u nome bow.lua e adicione o seguinte code: --------Boots of Waterwalking system v2.0 by Colex-------------function onUse(cid, item, frompos, item2, topos)tempo = 10tempo2 = tempo + 60pos = getPlayerPosition(cid)tilepos = {x=pos.x, y=pos.y, z=pos.z, stackpos=0}tile = getThingfromPos(tilepos)storage = 1533storage2 = 1534storage3 = 1535bow = getPlayerStorageValue(cid,storage2)bow2 = getPlayerStorageValue(cid,storage3)timer1 = getPlayerStorageValue(cid,storage)timer2 = os.time()time = os.difftime(timer2, timer1)add = timer2 + 1if item.itemid == 2640 then if bow2 == -1 then setPlayerStorageValue(cid,storage,add) setPlayerStorageValue(cid,storage2,-1) setPlayerStorageValue(cid,storage3,1) doRemoveItem(item.uid,1) else doPlayerSendCancel(cid,"You are already using Boots of WaterWalking.") endreturn 1endif item.itemid ~= 2640 then if timer1 >= 0 then if time <= tempo then doTeleportThing(cid,topos) else doPlayerSendTextMessage(cid,22,"time out! Please use the boots of waterwalking again if you want to continue.") if bow > -2 then doPlayerAddItem(cid,2640,1) setPlayerStorageValue(cid,storage2,-2) setPlayerStorageValue(cid,storage3,-1) end if time >= tempo2 then if tile.itemid >= 4608 and tile.itemid <= 4625 then doTeleportThing(cid,getPlayerMasterPos(cid)) doPlayerSendTextMessage(cid,22,"time out") setPlayerStorageValue(cid,storage,-1) setPlayerStorageValue(cid,storage2,-1) else doPlayerSendTextMessage(cid,22,"time out") setPlayerStorageValue(cid,storage,-1) setPlayerStorageValue(cid,storage2,-1) end end end else return 0 endendreturn 1end 2º agora na pasta data/actions abra u documento actions.xml e adicione as seguintes tags: ------boots of warterwalking------------------Bordas do Boots of WaterWalking----<action itemid="4646" script="bow.lua" /><action itemid="4645" script="bow.lua" /><action itemid="4644" script="bow.lua" /><action itemid="4647" script="bow.lua" /><action itemid="4648" script="bow.lua" /><action itemid="4649" script="bow.lua" /><action itemid="4650" script="bow.lua" /><action itemid="4651" script="bow.lua" /><action itemid="4652" script="bow.lua" /><action itemid="4653" script="bow.lua" /><action itemid="4654" script="bow.lua" /><action itemid="4655" script="bow.lua" /><action itemid="4828" script="bow.lua" /><action itemid="4829" script="bow.lua" /><action itemid="4830" script="bow.lua" /><action itemid="4831" script="bow.lua" /><action itemid="493" script="bow.lua" /><action itemid="494" script="bow.lua" /><action itemid="495" script="bow.lua" /><action itemid="496" script="bow.lua" /><action itemid="497" script="bow.lua" /><action itemid="498" script="bow.lua" /><action itemid="499" script="bow.lua" /><action itemid="500" script="bow.lua" /><action itemid="501" script="bow.lua" /><action itemid="502" script="bow.lua" /><action itemid="503" script="bow.lua" /><action itemid="504" script="bow.lua" /><action itemid="505" script="bow.lua" /><action itemid="3553" script="bow.lua" /><action itemid="3554" script="bow.lua" /><action itemid="3555" script="bow.lua" /><action itemid="3556" script="bow.lua" /><action itemid="3557" script="bow.lua" /><action itemid="3558" script="bow.lua" /><action itemid="3559" script="bow.lua" /><action itemid="3560" script="bow.lua" /><action itemid="3561" script="bow.lua" /><action itemid="3562" script="bow.lua" /><action itemid="3563" script="bow.lua" /><action itemid="3564" script="bow.lua" /><action itemid="3565" script="bow.lua" /><action itemid="3556" script="bow.lua" /><action itemid="3567" script="bow.lua" /><action itemid="3568" script="bow.lua" /><action itemid="4632" script="bow.lua" /><action itemid="4633" script="bow.lua" /><action itemid="4634" script="bow.lua" /><action itemid="4635" script="bow.lua" /><action itemid="4636" script="bow.lua" /><action itemid="4637" script="bow.lua" /><action itemid="4638" script="bow.lua" /><action itemid="4639" script="bow.lua" /><action itemid="4640" script="bow.lua" /><action itemid="4641" script="bow.lua" /><action itemid="4642" script="bow.lua" /><action itemid="4643" script="bow.lua" />----------/bordas----------------------tiles de Agua----------<action itemid="4608" script="bow.lua" /><action itemid="4609" script="bow.lua" /><action itemid="4610" script="bow.lua" /><action itemid="4611" script="bow.lua" /><action itemid="4612" script="bow.lua" /><action itemid="4613" script="bow.lua" /><action itemid="4614" script="bow.lua" /><action itemid="4615" script="bow.lua" /><action itemid="4616" script="bow.lua" /><action itemid="4617" script="bow.lua" /><action itemid="4618" script="bow.lua" /><action itemid="4619" script="bow.lua" /><action itemid="4620" script="bow.lua" /><action itemid="4621" script="bow.lua" /><action itemid="4622" script="bow.lua" /><action itemid="4623" script="bow.lua" /><action itemid="4624" script="bow.lua" /><action itemid="4625" script="bow.lua" />----------/Tiles de Agua---------<action itemid="2640" script="bow.lua" /> ----id da boots of waterwalking------/boots of warterwalking--------- é só issu, a b.o.w. só funciona nas aguas cujo id estaum entre 4607 e 4626 espero ke gostem comentem o ke axam cya~~
-
tutorial ta bem legal :icon1: completamente normal ke issu aconteça pq u tutorial tem 2 coisinhas erradas 1º as configuração das coordenadas x e y (o X ali tinha ke estar um pouco mais acima e u Y mais pra baixu) pq as coordenadas tem ke pegar as paredes, o otserv vai ver se a door pertence a pessoa kuandu as coordenadas nos houses.xml pegam a door 2º akelas coordenadas ke ele diz se da door é uma coordenada antes da door, (para la ke u player vai ser teleportado com as housespells), vc podi testar issu colocandu la as coordenadas du temple e usar u alana sio (vc ira ser teleportado pro temple) naum por causa dessas coordenadas ke era aparecer a info do player na door
-
legal esse npc bizugo :icon1: só naum precisava ficar usandu palavriado, Good Work :w4: cya~~
-
code mt rox, só falta completar com decay cya~~
-
primeiro de tudo: creditos para Rike_Pally por ter feito uma action de fogos de artificio (foi de la ke eu tirei a idéia) Este sistema de fogos de artificio serve para festas (ou otra coisa), vc da use no "fogo de artificio" e ondi vc ele vai "explodir" e fazer as cores (atenção o fogo de artificio "explode" um andar a cima, por issu se vc usar numa cave naum vai poder ver) realista ã? se vc usar u fogo de artificio em cima de alguem, tem um poco de probabilidades de o "pau quimado" do fogo de artificio caia em cima dele e ele se queime e perca HP (mais realista né ) a explosão ocupam cinco coordenadas, uma nu meiu e quatro em volta du meiu eu to usandu u id de uma vassoura pq é a ke mais parecia com um fogo de artificio podem mudar se kiserem agora u script:(eu fiz usandu us ids de 7.6 caso keira 7.5 mude us ids) 1º na pasta data/actions/scripts faça um um documento com nome fireworks.lua e adicione u seguinte code: -------Fireworks by Colex-------function onUse(cid, item, frompos, item2, topos)poss = {x=topos.x, y=topos.y, z=topos.z, stackpos=253}pos = getThingfromPos(poss)meio = {x=topos.x, y=topos.y, z=topos.z-1}cima = {x=topos.x, y=topos.y-1, z=topos.z-1}baixo = {x=topos.x, y=topos.y+1, z=topos.z-1}dir = {x=topos.x+1, y=topos.y, z=topos.z-1}es = {x=topos.x-1, y=topos.y, z=topos.z-1}sorte = math.random(1,11)cores1 = math.random(12,14)cores2 = math.random(12,14)cores3 = math.random(12,14)cores4 = math.random(12,14)cores5 = math.random(12,14)doSendMagicEffect(meio,cores1)doSendMagicEffect(es,cores2)doSendMagicEffect(baixo,cores3)doSendMagicEffect(dir,cores4)doSendMagicEffect(cima,cores5)doSendMagicEffect(frompos,2)used = doCreateItem(2056,1,topos)doSetItemSpecialDescription(used,"a used Firework")doRemoveItem(item.uid,1)if pos.uid == cid and sorte >= 1 and sorte <= 5 thendoSendMagicEffect(topos,15)doPlayerSay(pos.uid,"AAAAHHHHHHHH IM BURNING!!!",2)hp = sorte*20doPlayerAddHealth(pos.uid,-hp)doSendAnimatedText(topos,""..hp.."",180)endreturn 1end 2º na pasta data/actions abra u ficheiro actions.xml e adicione a seguinte linha: <action itemid="2551" script="fireworks.lua" allowfaruse="1" /> 2551 é u id da vassoura, vcs podem mudar u nome da vassoura nu items.otbm, ou podem mudar de id é só editar ali Aproveitem cya ~~
-
u tutorial ta bom mas como todos os tutoriais de "como fazer houses" as pessoas colocam uma info incorreta essas coordenadas naum saum da porta e sim de uma coordenada a frente da porta essas coordenadas serve pra caso alguem use "aleta sio" ela vai para ai vcs podem testar issu colocandu as coordenadas du templo ali, dps indu na casa e usandu "aleta sio", vcs vaum parar nu templo flw
-
naum sou magico para saber mas ve se aparece algum erro no console quandu vc usa a estatua ou kuandu vc liga se aparecer copia e cola ai
-
sim mas tem ek adicionar ali mais umas coisinhas
-
esse 3697 é u actionid das estatuas nas 3 estatuas ke vc for colocar u temple change vc coloca akele actionid e naum se eskeça de colocar um dus 3 uniqueid para cada estatua e quandu vc naum consegue ve sempre se aparece um erro no console, se aparecer copia e cola ai ke pode ajudar
-
cria o templechange.lua na pasta dos scripts e adiciona istu dentro du documento: function onUse(cid, item, frompos, item2, topos)city1temple = {x=171, y=194, z=7} ---coordenadas da city 1city2temple = {x=100, y=458. z=7} ---coordenadas da city 2city3temple = {x=520, y=477, z=7} ---coordenadas da city 3estatua1 = 3837 ---uniqueid da estatua na city 1estatua2 = 3838 ---uniqueid da estatua na city 2estatua3 = 3839 ---uniqueid da estatua na city 3estatua = 3697 ---actionid das estatuas if item.uid == estatua1 then doPlayerSetMasterPos(cid,city1temple) doTeleportThing(cid,city1temple) doSendMagicEffect(city1temple,10) doPlayerSendTextMessage(cid,22,"You are a new citizien of this city.")elseif item.uid == estatua2 then doPlayerSetMasterPos(cid,city2temple) doTeleportThing(cid,city2temple) doSendMagicEffect(city2temple,10) doPlayerSendTextMessage(cid,22,"You are a new citizien of this city.")elseif item.uid == estatua3 then doPlayerSetMasterPos(cid,city3temple) doTeleportThing(cid,city3temple) doSendMagicEffect(city3temple,10) doPlayerSendTextMessage(cid,22,"You are a new citizien of this city.")endreturn 1end no actions.xml escreve la istu: <action item.actionid="3697" script="templechange.lua" /> como deve ter reparado u meu ta um poco diferente eu usei uma maneira ke facilita em caso de mts temple change, akele exemplo só da pra 3 citys Como funciona? Muito facil, em todas as estatua ke vc kiser ke tenha temple change é só vc colocar u actionid igual ao ke vc colocou nu estatua ke no exemplo eu usei 3697 e colocar u uniqueid ke vai ser de acordo como vc colocou la no estatua1 | estatua2 | estatua3, o estatua1 é uniqueid da estatua da city1, u 2 é da city2 e u 3 é da city3 nu script as tags taum explicadas :icon1:
-
agr eu axu ke ja deve funcionar mas tem um erro if item2.itemid == 1449 and estatua.x == 421 and estatua.y == 37 and estatua.z == 7 then u itemid ta u da estatua e naum u da pedra como vc deseja e eu fiz essa action usandu 7.6 mas funciona em 7.5 tambem
-
olha ai como naum é verdade, vc colocou numa parte 6 e noutro 7 como eu vou saber kual é certo? -----------passagem secreta (movendo estatua) by colex-----------------function onUse(cid, item, frompos, item2, topos)estatua = {x=421, y=38, z=7}direita = {x=421, y=37, z=7}esquerda = {x=421, y=38, z=7}name = getPlayerName(cid)if item2.itemid == 1449 and estatua.x == 421 and estatua.y == 37 and estatua.z == 6 then -- istu saum coordenadas e vc colocou estatua.Z = 6 e ali em cima vc colocou 7doTransformItem(item2.uid,470)doCreateItem(1449,1,direita)doPlayerSendtextMessage(cid,22,"the chamber of secrets has been opened by '..name..' , enemys of heir beware")endif item2.itemid == 1449 and estatua.x == 421 and estatua.y == 38 and estatua.z == 6 thendoTransformItem(item2.uid,102)doCreateItem(1449,1,esquerda)doPlayerSendtextMessage(cid,22,"You have closed the chamber of secrets")endreturn 1end estatua.z é uma cordenada Z e vc colocou 6 e la erm cima nas coordenadas direita e esquerda vc colocou 7 ai eu fico indeciso sem saber kual é a certa
-
eu naum sou magico eu naum sei kuais saum as coordenadas da estatua, vc colocou ke z=6 num lugar dps nu outro z=7 é mt provavel ke eu tenha escolhidu u "z" errado eu te pedi as coordenadas da estatua movida e sem estar movida ------------------------ naum da pra entrar nu teu ot, da sempre fila de espera dps diz cannot conect to the server ve ai pra eu la ver a action
-
ve se assim da: (eu fiquei indeciso entre as coordenadas certas por issu usei u z="6") -----------passagem secreta (movendo estatua) by colex-----------------function onUse(cid, item, frompos, item2, topos)estatua = {x=topos.x, y=topos.y, z=topos.z} --- nao mexas nisto (1 erro)direita = {x=421, y=37, z=6} ---coordenadas z 6 ou 7 (2 erro)esquerda = {x=421, y=38, z=6} --- igual ao erro de cima (3 erro)name = getPlayerName(cid)if item2.itemid == 3332 and estatua.x == 421 and estatua.y == 38 and estatua.z == 6 then -- 4 errodoRemoveItem(item2.uid,1)doCreateItem(3332,1,direita)doCreateItem(470,1,esquerda)doPlayerSendTextMessage(cid,22,"the chamber of secrets has been opened by "..name.." , enemys of heir beware")endif item2.itemid == 1449 and estatua.x == 421 and estatua.y == 37 and estatua.z == 6 then --- 5 errodoRemoveItem(item2.uid,1)doCreateItem(3332,1,esquerda)doPlayerSendTextMessage(cid,22,"You have closed the chamber of secrets")endreturn 1end como vc viu vc tinha 5 erros, usa esse script assim e nu actions.xml coloca u seguinte: <action itemid="2090" script="secreta.lua" /> flw
-
muito facil resolver issu usem as duas templates kem gostar mais de uma vai ali em baixu e escolhe a template escura e kem gostar mais da clara vai ali em baixu e escolhe a clara e u problema ta resolvido pras pessoas ke gostam de clara ou escuro :icon1:
-
pode ser #b mas eu tenhu a certeza ke /B tbm é @topico tbm axo ke deveria ter todos os comandos
-
vo começar a postar mini tutoriais sobre actions hoje vo postar a 1º parte e naum vo postar tudo numa só para naum ficar embaralhada as explicações, postarei a proxima parte se eu ver ke ajudou algumas pessoas ou ke gostaram :icon1: atenção: alguma informação errada me avise ke eu irei editar. vo primeiru começar por dizer uma coisa antes de começar u tutor us comandos ke eu usar "cid" ou "item2.uid" neste tutorial podem ser substituidos por otros em otros scripts, vo fazer uma lista: - cid --- criatura - item.uid --- item em ke se deu a ação - item2.uid --- 2º item ke entrou na ação (por exemplo nu use with) o 1º item nosi damu "use with" e dps clicamus em cima de otro item (item2) - ou otras variavel declarada antes por exemplo: vou declarar a variavel umas coordenadas e dps pegar a info de um player*(explico issu noutro tuto) desse local e ver u a vocação dele... lugar = {x=100, y=100, z=7, stackpos=253} ---- declarada a variavel LUGAR com as coordenadas (estackpos eu explico dps)lugarinfo = getThingfromPos(lugar) ---- peguei a info de creture dakelas coordenadasvoc = getPlayerVocation(lugarinfo.uid) --- peguei a vocação do player ke a var "lugarinfo" pegou a informação ---------------------------------------------------------------- agora nesta 1º parte vo fazer uma leveldoor baseada em actionid explicandu tudo passo a passo para naum haver duvidas e se houver eu tentarei responder LevelDoor é um script facil e não contem muita dificuldades intaum sera facil ensinar começaremos por abrir u bloco de notas e escreveremos a primeira tag de todas as actions: function onUse(cid, item, frompos, item2, topos) esta é a função basica das actions ke vc podera ver em todas elas, nos npcs e spells vc encontra otro tipu de funções nesta função voce podi ver 4 "variaveis predefinidas" nas sources. agora vamos declarar 2 variaveis em ke a 2º variavels vai conter um calculo adicione u seguinte na continuação da tag de cima: player = getPlayerLevel(cid) ---- variavel ke pega u level de um playerlevel = item.actionid - 1000 1º declaramos a variavel de pegar o lvl do player, claru pq nois precisamus saber u lvl du player pra ver se ele podi passar, mas fizemos o calculo subtrair o actionid do item (item.actionid) por 1000. ja vo dizer porque isso, eu fiz isso porque us actionid para funcionar é 1000 pra cima intaum vc coloca 1030 (como actionid) - 1000 = 30 <--- level necessario, ou seja, vc coloca nu actionid da door o level necessario mais 1000 ke dps u script vai "tirar" esses 1000 e vai saber u valor exato. Agora vem a parte principal, u "corpo" da action, vc vaum reparar ke nas minhas actions em cada "enter" ke eu dou entre duas funções, eu clico duas vezes nu "espaço" para dexar a action mais organizado e bem mais simples na parte dus "elses": if player >= level then doTeleportThing(cid,topos) doSendMagicEffect(topos,12)else --- else fica alinhado com u if num caso de muitos ifs istu ajuda doPlayerSendCancel(cid,"Voce necessita level "..level.." para passar.")endreturn 1end Agora explicando: 1º de tudo vem uma expressão de "verificação" em ke usamos u "if" akela frase traduzida para portugues ficaria +/- u seguinte: se essa expressão for verdadeira a action vai teleportar o player para a posição da porta é a mesma du topos (topos = to position), issu acontece com u seguinte comando: doTeleportThing(cid,topos) esse comando é doTeleportTHING porque funciona com outras coisas a naum ser players e para enfeitar a level door eu inda coloquei para aparecer um efeito no player dps de ser teleportado ke tbm é igual ao topos, para issu usamos o seguinte comando: doSendMagicEffect(topos,12) eu coloquei ali "12" como efeito magico, mas vc podi mudar, para vc ver us efeitos magicos entre com seu gm e diz "/z numero" sem os "". atenção: neste comando naum utilize cid ou item2.uid use sempre algu como cordenadas ou posção por exemplo (topos, frompos, {x=10, y=256, z=7}) agora vamus ver ke caso a expressão seja falsa (o level do player naum é maior nem igual ke o level requirido) a action vai mandar uma menssagem de cancelamento para o player dizendo ke ele precisa de um certo level pra passar: 1º para issu devemos colocar "else"(senão) ou "elseif"(senão + expressão), neste caso usaremos o "else"(senão) e logo depois colocaremos o comando do ke ira acontecer: else doPlayerSendCancel(cid,"Voce necessita level "..level.." para passar.") esse comando faz aparecer akela msg branca na parte de baixu da tela, vcs podem ver ke eu escrevi ali ("..level..") esses ("..---..") vai passar para texto uma variavel por exemplo a variavel ke eu usei "..level..", ou até um comando por exemplo "..getPlayerName(cid).." -- este ira escrever u nome du player. Agora só falta 2 coisas para terminar o script 1º Fechar a expressão "if" 2º fechar a função "onUse" Para fechar a expressão usamos u simples end(terminar): end Para fechar a funºção usamo u return(reponder) com um valor positivo ou nulo e um end: return 1end Então a action ficara assim: function onUse(cid, item, frompos, item2, topos)player = getPlayerLevel(cid)level = item.actionid - 1000if player >= level then doTeleportThing(cid,topos) doSendMagicEffect(topos,12)else --- else fica alinhado com u if num caso de muitos ifs istu ajuda doPlayerSendCancel(cid,"Voce necessita level "..level.." para passar.")endreturn 1end Agora salve o documento do bloco de notas com nome lvldoor.LUA na pasta: Vai no arquivo actions.XML da pasta: e adicione a seguinte tag ke abrira o script ke vc fez: <action itemid="id_da_porta" script="lvldoor.lua" /> em vez de itemid pode tbm ser usado: - actionid - uniqueid mas neste caso usamos itemid id da porta naum tem nada ke explicar (um exemplo: 1229) script="lvldoor.lua" é u ke vai chamar u script ke vc criou com esse nome na pasta (data/actions/scripts) e aki termina o primeiro tuto sobre actions espero ke tenham gostado e aprendido mais algumas coisa sobre actions se eu ver ke gostaram e ke deu pra aprender alguma coisa eu postarei us proximos tutos explicando coisas mais dificeis Comentem u ke axam, erros e u ke naum perceberam ke eu tentarei responder tutorial 100% by Colex
-
axo issu uma boa iniciativa tbm para u aumento desta comunidade tbm axo ke todos os postos devem ser merecidus com esforço das pessoas, ke ajudem u forum em varias ocasiões
-
verifique tudo melhor e ve se ta igual ao explicado nu tópico caso naum esteja poste aki teu script com os seguintes dados: id da key id da stone posição da stone (fechada) posição da stone (aberta) :w4:
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.