Ir para conteúdo

Leoxtibia

Visconde
  • Total de itens

    489
  • Registro em

  • Última visita

  • Dias Ganhos

    15

Tudo que Leoxtibia postou

  1. Posta seu First Items aí, fica mais fácil para alguém te ajudar.
  2. Leoxtibia

    Sistema Vip

    Tô vendo que você é novo por aqui, mas antes de fazer um pedido, utitlize o botão de busca do fórum. Quanto ao pedido, algum desses links pode te ajudar: http://www.xtibia.com/forum/topic/136543-vip-system-by-account-v10/ . http://www.xtibia.com/forum/topic/151189-vip-system-by-mock-100/ http://www.xtibia.com/forum/topic/133661-moveevent-action-perfect-vip-system-20/
  3. Você poderia fazer por uma talkaction... Em data/talkactions/scripts crie um arquivo.lua e cole isto dentro: function onSay(cid, words, param) sendEffect(pos) end function sendEffect(pos) pos = {x=1,y=1,z=1} ----- posição onde aparecerá o efeito pos1 = {x=2,y=2,z=2} --- posição onde aparecerá o efeito local delay = 1 --- de quanto em quanto tempo o efeito será mandado(em segundos) doSendAnimatedText(pos, 'Depot', 140) doSendAnimatedText(pos1, 'Hunts', 140) addEvent(sendEffect, delay*1000, pos) end Em talkactions.xml coloque a tag: <talkaction log="yes" words="!ativar" access="5" script="nomedoseuarquivo.lua"> Para adicionar mais locais, é só colocar a posição onde vai sair o efeito e adicionar essa linha doSendAnimatedText(pos1, 'Hunts', 140), modificando a posição. Aí é só colocar o texto e escolher a cor, que no caso ali é 140. Quando adicionar, é só dar /reload e !ativar novamente. Vlw, espero ter ajudado, abraços. Quanto ao outro, é só fazer o mesmo esquema, em talkactions/scripts: function onSay(cid, words, param) sendMsg(cid) end function sendMsg(cid) local delay = 2400 broadcastMessage("Coloca a Mensagem aqui", MESSAGE_INFO_DESCR) addEvent(sendMsg, delay*1000) end
  4. Não sou programador, mas acho que posso ajudar um pouco kk.. Algumas funções você pode encontrar nesse link: http://www.xtibia.com/forum/topic/138081-lualista-de-funcoes/ . Existem muitas outras funções feitas por scripters para fins específicos. Outra coisa que pode ajudar é essa lista de atributos... Outras informações você pode encontrar na pasta data>lib>000-constant.lua ou a depender do server, global.lua. Enfim, acho q isso pode ajudar, como você pediu somente as funções..tá de bom tamanho. Espero ter ajudado. ^^
  5. Tópico em local errado, aqui é para scripts já prontos. A seção correta é Pedidos e Dúvidas de Scripts.
  6. Sobre o da porta, em actions>scripts crie um arquivo.lua e cole isto dentro: local minlevel = 10 -- minimo level para passar local teleport = {x=1,y=1,z=1} --- lugar para onde será teleportado local vocid = 5 --- id da vocação function onUse(cid, item, position, fromPosition, item2, toPosition) if getPlayerStorageValue(cid, 7219) <= 0 then if getPlayerVocation(cid) == vocid and getPlayerLevel(cid) >= minlevel then setPlayerStorageValue(cid, 7219,1) doTeleportThing(cid, teleport) doSendMagicEffect(teleport, 10) else doPlayerSendTextMessage(cid, 22, "Você não tem a vocação ou o level necessário") end else doPlayerSendTextMessage(cid, 22, "Você já passou por essa porta.") end return true end Edita o level, o id da vocação e o local para onde o player irá. Depois é só colocar o actionid na porta e em actions.xml coloque a tag: <action actionid="ACTIONIDDAPORTA" event="script" value="NOMEDOARQUIVO.lua"/>.
  7. Ahh, sem problema então. Tópico reportado para moverem!
  8. Pelo que eu sei, acho que você só precisa da actionid na porta ser igual ao número da key, não precisa de uniqueid. Fiz um script rapidinho aqui, você só precisa trocar as coordenadas para onde o player será teleportado. Em actions>scripts crie um arquivo e cole isto dentro: function onUse(cid, item, fromPosition, item2, toPosition) local teleport = {x=1, y=1, z=1} -- posição do teleport if(item.actionid == item2.actionid and item2.uid ~= item.uid) then doTeleportThing(cid, teleport) doSendMagicEffect(getPlayerPosition(cid), 10) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voce foi teleportado para ali.") end return true end Em actions.xml coloque a tag: <action actionid="ACTIONIDDAPORTA" event="script" value="NOMEDOSEUARQUIVO.lua"/>
  9. Leoxtibia

    Monsters

    Hum, vai no seu items.xml e vai ter lá os corpses do rat.... Vá até o item de id 2815 e tem algo do tipo: <attribute key="decayTo" value="2816"/> é só você trocar o 2816 por 0. Acho que isso resolve, espero ter ajudado ^^.
  10. Leoxtibia

    Monsters

    Isso acontece com todos os monstros?
  11. Você bagunçou o script todo cara, era um end que junto da função e eu não tinha visto. Editei lá no tópico, testa agora.
  12. Substitui por esse: sd_id = 2268 -- Item a ser vendido custosd_id = 12000 -- Valor cargassd_id = 100 -- Cargas local name = getItemNameById(sd_id) ----- End Config ----- function onUse(cid, item, fromPosition, itemEx, toPosition) if doPlayerRemoveMoney(cid, custosd_id) == TRUE then doSendAnimatedText(fromPosition, "Purchased", TEXTCOLOR_YELLOW) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have purchased a ".. name .."s for ".. custosd_id .." gold.") for i=1,20 do doPlayerAddItem(cid, sd_id,cargassd_id) end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You need ".. custosd_id .." gold coins for a ".. name .."s.") end return FALSE end
  13. Em data>actions>scripts crie um arquivo.lua e cole isto dentro: local pedra = {x=1, y=1,z=1, stackpos = 1} -- bota o local da pedra // não mexa no stackpos function onUse(cid, item, frompos, item2, topos) if item.actionid == 3216 and getPlayerStorageValue(cid, 6753) <= 0 then setPlayerStorageValue(cid, 6753,1) doPlayerSendTextMessage(cid, 22, "Use a outra alavanca.") else doPlayerSendTextMessage(cid, 22, "Você já usou esta alavanca") end if item.actionid == 3217 and getPlayerStorageValue(cid, 6753) >= 1 then doRemoveItem(getThingFromPos(pedra).uid) doPlayerSendTextMessage(cid, 22, "A pedra foi removida") else doPlayerSendTextMessage(cid, 22, "Você não usou a outra alavanca ainda.") end end Em actions.xml adicione a tag: <action actionid="3216;3217" event="script" value="nomedoseuarquivo.lua"/> Aí é só você colocar o actionid 3216 na alavanca que deve ser puxada primeiro, e o actionid 3217 na outra. Além de editar a posição da pedra. Vlw, espero ter ajudado.
  14. Ahh kk, tinha entendido outra coisa kk ... Agora tenho que sair, mas depois vou fazer isso sim, vlw pela ideia. @edit Como o Vodkart tinha dado a ideia, segue o script de "limpar" a pedra, com chance: local items = { {id = 2149, count = 5, chance = 10}, {id = 2145, count = 3, chance = 60}, {id = 2147, count = 6, chance = 20} } local stone = {x=216,y=434,z=7, stackpos=1} ---- onde o coal será adicionado function onUse(cid, item, fromPosition, itemEx, toPosition) if item.itemid == 2007 and itemEx.itemid == 5469 then doRemoveItem(item.uid) local flask = doPlayerAddItem(cid, 7488) doItemSetAttribute(flask, "description", "This flask contains mercury. It is great to use on minerals.") doPlayerSendTextMessage(cid, 22, "You have gained a flask of mercury.") elseif item.itemid == 7488 and itemEx.actionid == 3459 then for i=1, #items do quant = math.random(items[i].count) percent = items[i].chance if math.random(1, 100) <= percent then doRemoveItem(itemEx.uid) doPlayerAddItem(cid, items[i].id, quant) doSendMagicEffect(stone,6) doRemoveItem(item.uid) else doSendMagicEffect(stone,CONST_ME_POFF) end end end end
  15. Vlw pelos comments aí. E essa parada mto loka, é por causa da formatação do xtibia. Mas já consertei, vlw ^^ &amp;amp;amp;amp;amp;amp;gt; Quanto aos itens, é só editar nessa linha: local items = {2149, 2145, 2147}, colocando os ids dos items.
  16. Bem, estava sem nada para fazer, e resolvi criar esse sistema de mineração. Ele é simples, porém é diferente ^^. Diante mão, obrigado a jhon992 por me tirar algumas dúvidas e me ajudar. Explicando o script: O player precisa "carregar" o vagão que está vazio, usando um item na pedra. Depois, ao puxar a alavanca, o vagão se move e quando chega no final, assim que o player pisar num certo tile, o vagão voltará a posição inicial e uma pedra surgirá emcima de um local. Então, é só o player usar a garrafa (id 2007) em um destilador (id 5469) que se transformará em um vial de mercury. Ao usar o vial na pedra, poderá ganhar itens que são aleatórios. O vídeo abaixo explica como instalar e também mostra o script em funcionamento. Então, vamos ao script: Primeiramente, em data/actions/scripts crie um arquivo.lua chamado mineracao.lua e cole isto dentro: local pedras = {8751, 8749, 8748, 8750} --- PEDRAS QUE PODERAO SER MINERADAS local vagon = {x=210,y=434,z=7,stackpos=2} --- local inicial do vagão function onUse(cid, item, fromPosition, itemEx, toPosition) if isInArray (pedras, itemEx.itemid) == TRUE and itemEx.actionid == 3478 then if getTileItemById(vagon, 7131).uid > 0 and doPlayerSendTextMessage(cid, 22, "Você colocou a pedra no vagão, use a alavanca para movê-lo") then doTransformItem(getThingfromPos(vagon).uid,10037) doSendMagicEffect(toPosition, 3) doSendMagicEffect(vagon, 38) else doPlayerSendCancel(cid, "O vagão está em uso. Espere ele voltar.") end end end Como no próprio script já tem, nessa linha local pedras = {8751, 8749, 8748, 8750} você deve colocar os ids das pedras que poderão ser mineradas. Depois, é preciso que você, pelo map editor, coloque o actionid 3478 nas pedras. E em actions.xml adicionar a tag: <action itemid="4874" script="mineracao.lua"/>. Nesse caso, o item que será usado para minerar vai ser o dwarven pickaxe, caso prefira outro, é só mudar onde tem 4874, com o id do seu item. Ainda em data/actions/scripts, crie outro arquivo.lua e renomeie para vagonlever.lua e cole isto dentro: local positions = { {x=210,y=434,z=7, stackpos=1}, ---- posição inicial do vagao {x=211,y=434,z=7, stackpos=1}, --[ {x=212,y=434,z=7, stackpos=1}, ------------Posição onde o vagão irá andar {x=213,y=434,z=7, stackpos=1}, ------------ || {x=214,y=434,z=7, stackpos=1}, --] {x=215,y=434,z=7, stackpos=1} ---- ultima posição do vagão } function onUse(cid, item, fromPosition, itemEx, toPosition) if item.actionid == 6666 and getTileItemById(positions[1], 10037).uid > 0 then moveVagon() else doPlayerSendCancel(cid, "O vagão ainda não está carregado") end end function moveVagon() for i=1, #positions do vagon_uid = getTileItemById(positions[i], 10037).uid if vagon_uid > 0 then if #positions ~= i and doRemoveItem(vagon_uid,1) then doCreateItem(10037,1, positions[i+1]) addEvent(moveVagon, 500) break end end end end O script é autoexplicativo, você só vai precisar adicionar desde a posição inicial do vagão até o último. Com o seu map editor, adicione o aid 6666 na alavanca. Em actions.xml adicione a tag: <action actionid="6666" event="script" value="vagonlever.lua"/>. Em data/actions/scripts, novamente, crie outro arquivo e renomeie para cleanstone.lua, e cole isto dentro: local items = {2149, 2145, 2147} ----- items que vão aparecer local stone = {x=216,y=434,z=7, stackpos=1} ---- onde o coal será adicionado function onUse(cid, item, fromPosition, itemEx, toPosition) if item.itemid == 2007 and itemEx.itemid == 5469 then doRemoveItem(item.uid) local flask = doPlayerAddItem(cid, 7488) doItemSetAttribute(flask, "description", "This flask contains mercury. It is great to use on minerals.") doPlayerSendTextMessage(cid, 22, "You have gained a flask of mercury.") elseif item.itemid == 7488 and itemEx.actionid == 3459 then local randomChance = math.random(1, #items) doTransformItem(itemEx.uid,items[randomChance]) doSendMagicEffect(stone,6) doRemoveItem(item.uid) end end A tag: <action itemid="2007;7488" event="script" value="cleanstone.lua"/> Nessa parte, você vai editar nessa linha: local items = {2149, 2145, 2147} os items que aparecerão ao "limpar" a pedra com o vial de mercury. No meu caso, coloquei small diamond, small ruby e small emerald. E na outra linha abaixo, o local onde a pedra será adicionada. Perceba que o script já faz com que o vial de mercúrio só possa ser usado nas pedras de action 3459 (você não precisa adicionar nada de action aqui), para evitar que pudessem ser usadas nas outras pedras espalhadas pelo mapa. E por último, em movements/scripts crie um arquivo.lua e renomeie para coal.lua: local final = {x=215,y=434,z=7, stackpos=2} ------ posição onde o vagão cheio chegará local stone = {x=216,y=434,z=7} ------ local onde aparecerá a pedra local vagon = {x=210,y=434,z=7, stackpos=1} ------ local inicial do vagão function onStepIn(cid, item, position, fromPosition) if getTileItemById(final, 10037).uid > 0 then doRemoveItem(getThingfromPos(final).uid,1) local mina = doCreateItem(8751, 1, stone) doItemSetAttribute(mina, "aid", 3459) doSendMagicEffect(stone, 34) doSendMagicEffect(final, 2) doCreateItem(7131, 1, vagon) doSendMagicEffect(vagon, 10) end return true end E a tag em movements.xml: <movevent type="StepIn" actionid="16540" event="script" value="coal.lua"/> Depois, é só colocar o actionid 16540 no chão na frente de onde será adicionada a pedra (veja vídeo). E ao player pisar, tcharam! a pedra vai aparecer. Bom, é isso aí, ainda estou começando em scripting mas espero ter ajudado alguém, esse script também pode servir como exemplos de tutoriais e talz ^^. Vlw, abraço.
  17. Talvez esse tópico possa te ajudar: http://www.xtibia.com/forum/topic/171675-ver-equipes-and-skills/
  18. Aí está: local text = "Você lançou a pedra na sua cabeça" --- mensagem local gexp = 1000 ---quanto de exp function onUse(cid, item, frompos, item2, topos) if item.itemid == 5600 and getPlayerStorageValue(cid, 4392) <= 0 then doPlayerAddExp(cid, gexp) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, text) setPlayerStorageValue(cid, 4392,1) else doPlayerSendCancel(cid, "Você já lançou a pedra") end end
  19. No problem =p Se testou e funcionou, reporte para que o tópico seja movido. Vlw, abraço.
  20. Em actions>scripts crie um arquivo.lua e cole isto dentro: local text = "Você lançou a pedra na sua cabeça" --- mensagem local gexp = 1000 ---quanto de exp function onUse(cid, item, frompos, item2, topos) if item.itemid == 5600 and doPlayerAddExp(cid, gexp)then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, text) end end Em actions.xml cole a tag: <action itemid="5600" script="NOMEDOSEUARQUIVO.lua"/> IMAGEM Uploaded with ImageShack.us Em vermelho, é onde o player deve dar use, que no caso é a parte de id 5600.
  21. Então eu não entendi seu script direito. Da próxima vez, tente ser mais claro nos seus pedidos para que o mesmo seja atendido rapidamente. Fica a dica =P Quanto ao script... Em actions>scripts crie um arquivo.lua, renomeie para um nome de sua preferência e cole isto dentro: local minlevel = 100 --level que poderá usar o item function onUse(cid, item, position, fromPosition, item2, toPosition) if getPlayerStorageValue(cid, 13540) <= 0 then if getPlayerLevel(cid) >= minlevel then setPlayerStorageValue(cid, 13540,1) doRemoveItem(item.uid) doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "Você agora é VIP") doSendAnimatedText(getPlayerPosition(cid), "VIP!", TEXTCOLOR_BLUE) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_GIFT_WRAPS) else doPlayerSendCancel(cid, "Você não tem level para usar este item") end else doPlayerSendCancel(cid, "Você já é VIP.") end return true end Em actions.xml cole a tag: <action itemid="IDDOITEMAQUI" script="NOMEDOARQUIVO.lua"/> Em movements>scripts, crie um arquivo.lua e cole isto dentro: local teleport = {x=1, y=1, z=1} --- local para onde será teleportado function onStepIn(cid, item, pos, fromPos, toPos) if getPlayerStorageValue(cid,13540) <= 0 then doPlayerSendCancel(cid,"Esta área é exclusiva para VIPS.") doTeleportThing(cid, fromPos) else doTeleportThing(cid,teleport) doSendMagicEffect(teleport, 10) end end Em movements.xml cole a tag: <movevent type="StepIn" actionid="13540" event="script" value="NOMEDOARQUIVO.lua"/> Aí é só colocar pelo map editor, o actionid 13540 nos pisos onde você quer que somente vip passe. Vlw, espero ter ajudado.
  22. Em actions>scripts crie um arquivo.lua e crie isto dentro: local bolt = 2543 ---id da bolt local quant = 10 -- quantidade de bolt local money = 10000 --- quanto vai custar function onUse(cid, item, frompos, item2, topos) doPlayerAddItem(cid, bolt, quant) doPlayerRemoveMoney(cid, money) doRemoveItem(item.uid) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_GIFT_WRAPS) end Caso você não queira que o item seja removido, apague esta linha: doRemoveItem(item.uid). E em actions.xml coloque a tag: <action itemid="IDDOITEM" script="NOMEDOARQUIVO.lua"/>
  23. Você quer que somente os players que possam passar por esses tiles, consigam pegar o item de premmy?
  24. Então, a primeira alavanca vai sumonar os monstros na área, e alavanca vai se transformar na 1946, assim que o player matar todos os monstros dessa área, vai ser dado o storage para ele usar a alavanca 1946, que abrirá uma passagem.
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...