Izaiasousa 21 Postado Junho 20, 2010 Share Postado Junho 20, 2010 (editado) -- Funções usadas nos scripts de Lua #2 "Bem, você, iniciante, já deve ter se perguntado pra quê aquilo tudo serve e saber diferenciar uma da outra, e também quando eu vou usar aquela função onde,como e etc. Eu trouxe aqui para o Xtibia algumas funções usadas, que você iniciante e que está aprendendo ao longo do tempo, a fazer scripts etc. " Bem.. mãos à obra. function onUse(cid, item, frompos, item2, topos) Essa está presente em todas, não ? Vou explicar parte por parte pra quê e como ela serve. onUse significa ação, função, script que dá uma função a algum item. Exemplo, uma ham de tibia tem a função de ao ser clicada encher a vida e mana do jogador por um certo tempo né? (Depois irei fazer um tutorial abrangendo mais sobre as estruturas dos scripts.) Cid é o jogador que, no caso usou o item. Por exemplo, o jogador que clicou na ham. Item é o item usado, que será usado no script. No caso, a ham é o item. Retorna ao script com o Id ou Uid do item. Frompos ou Pos é a posição do item. Item2 ou Itemex é quando é usado o item em outra coisa, no chão ou em outro canto. É o tipo "Use with..." Topos é a posição onde o item foi usado. --Perceba que Frompos é para Item e Topos é para Item2. doPlayerAddHealth É usado para adicionar algo ao jogador cid. Temos: doPlayerAddHealth (cid,Quantidade Que ele irá receber de life) doPlayerAddHealth, que serve para adicionar life ao jogador. doPlayerAddHealth (cid,100) -- Adiciona 100 de life para o jogador quando usar o item, health potion ou uh por exemplo. doPlayerAddHealth (cid,-100) -- Neste caso ele perde 100 de life. doPlayerAddMana, igual ao de cima, só que adiciona mana. doPlayerAddItem Neste caso ele irá adicionar um item ao jogadorcid Por exemplo.. Você irá adicionar uma Fire Sword (2392) ao jogador. doPlayerAddItem (cid,2392,1) O número "1" no final, significa a quantidade. Ou seja, se eu quiser que o jogador receba duas Fire Swords eu apenos substituo o 1 por 2. doPlayerAddItem (cid,2392,2) doPlayerAddSkillTry Adiciona níveis de skill para o cid. doPlayerAddSkillTry (cid,O Skill Desejado,Quantidade de níveis que ele irá ganhar de skill) O skill desejado é dado em número, segue uma lista: 0 Fist. 1 Club. 2 Sword. 3 Axe. 4 Distance. 5 Shielding. 6 Fishing. doPlayerRemoveItem Diferente do doPlayerAddItem, ele remove o item do jogador cid. doPlayerRemoveItem (cid,2392,2) -- Ele removerá duas Fire Swords do Player. doPlayerSendTextMessage Neste caso ele enviará uma mensagem ao jogador cid. doPlayerSendTextMessage (cid,22,"Olá a todos.") -- Envia a mensagem Olá A todos! 22 é a cor da mensagem, no caso é branca. OiaeuMaeA mensagem deve ser escrita entre aspas, para que o script reconheça aquilo como uma mensagem. doPlayerSay Essa function faz com que o player cid fale uma coisa. doPlayerSay (cid,"Eu estou fazendo um tutorial de script",2) Mas tio.. e esse 2? "Esse dois diz o tipo da mensagem que será enviada. Por exemplo, temos o tipo de mensagem de God, que é aquela vermelha e tals.. temos o tipo de mensagem de placa, que é a verde.. temos a de vozes dos animais que é mais uma cor laranjinha e tals.. e a dos players, normais.. que é a 2. Eu não tenho a lista dos tipos de mensagens. Quando eu achar eu boto aqui, tá? " doPlayerSendCancel Envia uma mensagem em baixo da tela do jogador. Por exemplo, quando você esbarra em algo e aparece "Sorry, not is possible.". doPlayerSendCancel (cid,"Sorry, not is possible") -- Envia a mensagem Sorry, not is possible na tela debaixo do jogador. doPlayerSetVocation Dá uma nova vocação ao jogador. Por exemplo, em seu Ot tem rookgaard e o jogador cid tem que escolher um baú e clicar nele. Quando ele clicar no de Knight, ele irá ser Knight. doPlayerSetVocation (cid,1) -- Escolheu a vocação do jogador para sorcerer. Agora se você quiser botar outra, é so mudar o 1 pelos seguintes números... 1 - Sorcerer2 - Druid3 - Paladin4 - Knight5 - Master Sorcerer... doSetItemSpecialDescription Neste caso, não tem cid! :w00t: Este caso é quando o jogador for em uma quest e clicar no baú ele irá receber o item (doPlayerAddItem) certo? E se eu quiser colocar uma mensagem quando ele receber o item? Por exemplo, quando ele for na quest da magic sword, aparecer: "THis a sword of valor" Entendem o que eu quero dizer? :louco: doItemSpecialDescription (item.id, "This a Sword o Valor") -- Neste caso quando ele abrir o baú com o item.id ele irá receber essa mensagem.Revisão rapidinha... item.id é o id do item, no caso, o id da Magic Sword é 2400. Então o quê eu faço? Apenas substituo o item.id por 2400. doSummonCreature Neste caso, irá sumonar um monstro em uma posição topos. doSummonCreature (Demon,{x=188,y=60,z=7})ou topos = {x=188,y=60,z=7} doSummonCreature ("Demon", topos) Nome da criatura entre aspas, ok?! doTransformItem Transforma um item em outro. Por exemplo quando eu tiver 100gp e clicar ele irá logo se transformar em 1 platinum coin, certo ? É baseado nisso que temos: doTransformItem (item.id,2400) -- Tranforma o item inicial item.id em Magic Sword doPlayerSetSex(cid, newSex) Seleciona o novo sexo do Jogador cid. No caso, 0 -- Feminino 1 -- Masculino doPlayerSetSex (cid,1) -- Se for uma jogadora, ele irá se transformar em homem. Isso é mais usado em talkaction, quando o jogador fala !changesex doPlayerSetTown(cid, townid) Neste caso aqui, ele irá fazer com que o jogador vá vire cidadão de uma cidade escolhida por você. Por exemplo, em uma cidade criada por você, você faz um portal e todo jogador que passar por lá, virá automaticamente cidadão daquela cidade. doPlayerSetTown (cid,1) -- Neste caso ele fará com que o jogador cid vire cidadão da cidade de id 1! doPlayerAddExp(cid, exp) Esta função é excelente quando você quer fazer uma quest de por exemplo... 1 kk de experiência para quando um jogador clicar em um item escolhido por você. :lol: A função desse script é adicionar uma taxa de experiência ao jogador cid. doPlayerAddExp (cid,1000) -- Neste caso eu adiciono 1.000 de experiência para o jogador cid. doPlayerAddOutfit(cid,looktype, addons) Este script aqui, adiciona uma addon para o jogador cid. Looktype é o número de identificação da outifit. Addons é qual addon será adiciona, se é o primeiro 1, o segundo 2 ou completo 3! Obs: Para remover um addon, basta substituir o Add para Remove. :louco: doPlayerAddPremiumDays(cid, days) Esta function tem a função de adicionar dias de premium para o jogador cid! doChangeSpeed(cid, delta) Adiciona uma velocidade ao jogador cid. ------------------------------------------------------------------------- Atividade "Faça um script cuja função é: •O jogador ao clicar numa pedra; •Mudar o sexo dele para o oposto; •Mostrar uma mensagem no centro da tela dizendo "VoCê caiu numa armadilha" •Sumonar um Demon; •Tirar 100 de life do jogador e tirar 300 de mana do jogador; •Remover 10 dias de premium do jogador; •Adicionar a ele o outfit de jester com todos os addons; •Faça com que o jogador fale automaticamente a mensagem "Lasquei me negada"; •E por fim apareça uma mensagem no canto inferior da tela "Tio Izaias rox" =D Depois eu coloco a resposta aqui, ou se alguém quiser botar, bote =D Até mais! ------------------------------------------------------------------------- Bem, é isso pessoal, continuamos na próxima com Funções dos scripts de lua # 3 com GET e outros =D Tomara que vocês inicantes tenham aprendido Me ajudou bastante e resolvi compartilhar meu conhecimento. Quando você ensina, você aprende mais =D Até a proxima pessoal! Editado Junho 22, 2010 por LakaTarielOtServ Link para o comentário Compartilhar em outros sites More sharing options...
matheus1000 11 Postado Junho 21, 2010 Share Postado Junho 21, 2010 Ficou muito bom organizado, mas faltou algumas. Vê se ao longo do tempo você adiciona mais ae. =D Link para o comentário Compartilhar em outros sites More sharing options...
luisfe23 199 Postado Junho 21, 2010 Share Postado Junho 21, 2010 Muito bom, está bem organizado e bem explicado. Adicione mais quando estiver com tempo. Abraços. Link para o comentário Compartilhar em outros sites More sharing options...
Izaiasousa 21 Postado Junho 21, 2010 Autor Share Postado Junho 21, 2010 (editado) TIpo eu irie adicionar mais ao longo do tempo, por que nao quero mostrar tudo de uma vez logo... TEm alguns faltando.. mas vou botar mm outros posts, assim pros iniciantes aprenderem uma parte de cada vez =] OBrigado pelos elogios Vou fazer mais essa semana ainda =] Não tenho nada pra fazer ultimamente, entao me dedico a aprender e transmitir meus conhecimentos aos outros:weight_lift: ## Adicionei mais algumas. Ae só tá as mais IMPORTANTES. Não quero que os inciantes se assustem com essa enorme variedade de funções. Só quero as principais e tals :tongue2: Editado Junho 21, 2010 por LakaTarielOtServ Link para o comentário Compartilhar em outros sites More sharing options...
Vodkart 1515 Postado Junho 22, 2010 Share Postado Junho 22, 2010 isso não existe: "doPlayerAddTrySkill" voce errou preste mais atenção. o certo é "doPlayerAddSkillTry" Link para o comentário Compartilhar em outros sites More sharing options...
Izaiasousa 21 Postado Junho 22, 2010 Autor Share Postado Junho 22, 2010 isso não existe: "doPlayerAddTrySkill" voce errou preste mais atenção. o certo é "doPlayerAddSkillTry" Vlw Link para o comentário Compartilhar em outros sites More sharing options...
Eskylo 175 Postado Agosto 12, 2010 Share Postado Agosto 12, 2010 :button_ok: Muito Bom! Ajudou bastante! Link para o comentário Compartilhar em outros sites More sharing options...
andreluizp 0 Postado Setembro 20, 2010 Share Postado Setembro 20, 2010 (editado) Descobri ke eu tinha conta no forum hj entao vou tentar neh "Faça um script cuja função é: •O jogador ao clicar numa pedra; •Mudar o sexo dele para o oposto; •Mostrar uma mensagem no centro da tela dizendo "VoCê caiu numa armadilha" •Sumonar um Demon; •Tirar 100 de life do jogador e tirar 300 de mana do jogador; •Remover 10 dias de premium do jogador; •Adicionar a ele o outfit de jester com todos os addons; •Faça com que o jogador fale automaticamente a mensagem "Lasquei me negada"; •E por fim apareça uma mensagem no canto inferior da tela "Tio Izaias rox" Sei ke vai ta errado mais vo tenta neh nao sei como faze o negocio da msg no centro da tela doPlayerSetSex(cid, newSex)doPlayerSetSex (cid,1) topos = {x=160,y=51,z=7} doSummonCreature ("Demon", topos) doPlayerAddHealth (cid,-100) -- Nao seria RemoveHealth ? doPlayerAddMana (cid,-200) -- Nao seria Remove Mana ? -- Ou os 2 funcionam ? doPlayerAddPremiumDays(cid, -10) doPlayerAddOutfit(cid,1, 3) -- nao sei o numero do outfit jester doPlayerSendTextMessage (cid,22,"Lasquei me negada.") doPlayerSendCancel (cid,"Tio Izaias rox") Quase certeza ke ta errado ksaopsopakopsa no meu talkaction do meu ot o changender ta asim function onSay(cid, words, param, channel) if(getPlayerSex(cid) >= 2) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You cannot change your gender.") Editado Setembro 20, 2010 por andreandreluiz Link para o comentário Compartilhar em outros sites More sharing options...
Perfect Mapper 1 Postado Outubro 16, 2010 Share Postado Outubro 16, 2010 muito bom hehe tem até atividades hasueahe abraços Link para o comentário Compartilhar em outros sites More sharing options...
kosicki123 3 Postado Dezembro 14, 2010 Share Postado Dezembro 14, 2010 o tutorial está muito bom para quem já sabe usar perfeitamente if else etc... mas eu achei que faltou ensinar coisas que foram pedidas no exercicío, por exemplo como fazer o use na pedra? talvez eu tenha deixado passar algo mas valew! Link para o comentário Compartilhar em outros sites More sharing options...
bonazza20 2 Postado Dezembro 14, 2010 Share Postado Dezembro 14, 2010 legal eu to aprendendo essa nova linguagem me ajudo bastante Link para o comentário Compartilhar em outros sites More sharing options...
infernity 9 Postado Maio 29, 2011 Share Postado Maio 29, 2011 (editado) ta certo ? function onUse (cid,item,frompos,item2,topos) if item2.itemid == 2178 doPlayerSetSex(cid, 0) doPlayerSetSex(cid, 1) doItemSpecialDescription (item.id, "Você caiu em uma armadilha!") doSummonCreature ("Demon", topos) doPlayerRemoveHealth (cid,100) doPlayerRemoveMana (cid,100) doPlayerRemovePremiumDays(cid, 10 days) doPlayerAddOutfit(cid,"?", 2) doPlayerSendTextMessage (cid,17,"Lasquei me negada.") doPlayerSendCancel (cid,"Tio Izaias rox") Editado Maio 29, 2011 por infernity Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados