Ir para conteúdo

Leoxtibia

Visconde
  • Total de itens

    489
  • Registro em

  • Última visita

  • Dias Ganhos

    15

Tudo que Leoxtibia postou

  1. É o meu primeiro script aqui (na verdade já atendi alguns pedidos), mas postando nessa seção é meu primeiro. São sistemas que dependem do seu sistema de vip e que dará uma segunda promotion ao usar o comando !promote. (Para todos os Sistemas) Vá até a pasta talkactions>scripts e crie um arquivo chamado promotion.lua (ou qualquer nome de sua preferência) e cole isto dentro: Para VIP System by Account [Kydrai] -- Link Para VIP System por storage Para VIP System por Premium Para VIP System by Mock (Para todos os Tipos) Agora em em creaturescripts>scripts no arquivo login.lua adicione o script abaixo, antes do return true para a vocação voltar ao normal assim que a vip acabar: Para VIP System by Account -- [Kydrai] Para VIP System por Storage Lembre-se de alterar o storage aqui se alterou lá no script Para VIP por Premium Para VIP by MOCK (Para todos os Tipos) Na parte acima, aqui são os ids das novas vocações: {9, 10, 11, 12} que voltarão à vocação anterior, no nosso caso, [5];[6];[7];[8] (Para todos os Tipos) Agora em talkactions.xml coloque a tag: <talkaction words="!promote" event="script" value="promotion.lua"/> Lembre-se que se mudou o nome do arquivo lá emcima, mude na tag também. Atenção com essa parte... no vocations.xml configurem corretamente a partir de qual vocação será conseguida a vocação promote. Vejam o exemplo abaixo: fromvoc="X" -- Significa "da vocação" é de qual vocação essa Supreme Sorcerer virá, se você quiser que venha do Master Sorcerer que o id é 5, você coloca 5, ficando: fromvoc="5" Então é isso aí galera, ainda estou começando em scripting mas espero ter ajudado alguém. Abraços!
  2. Testa esse script que eu fiz é referente ao Pedido 1, creio que vá funcionar. O script é autoexplicativo, mas qualquer problema posta aqui que eu respondo. Segue o link http://www.xtibia.com/forum/topic/187773-talkaction-promotion-para-vips-vip-system-by-kydrai/ Espero ter ajudado, abraços.
  3. Sim, to vendo, mas então você colocou para onde o teleport levaria naquela linha lá?
  4. Você colocou as coordenadas para onde o tp levaria nessa linha? local teleport = {x=31883, y=31756, z=7}
  5. Veja se no seu config.lua tem essa linha: addonsOnlyPremium se tiver coloque como false. Se não tiver adicione ela assim addonsOnlyPremium = false e veja se funciona. Vlw, espero ter ajudado.
  6. Você colocou o actionid 3031 no teleport? Testei aqui agora, e tá funcionando.
  7. Que uniqueid? Nao precisa do uniqueid, voce so precisa colocar um actionid no teleport e colocar aqui nessa tag a mesma actionid no lugar de XXXX. <movevent type="StepIn" actionid="XXXX" event="script" value="nomedoseuarquivo.lua"/>
  8. Sarioyana, veja se você colocou o actionid no teleport igual ao da tag do movements.xml, o script do Subwat funciona perfeitamente.
  9. Crie um arquivo. lua em talkactions>scripts e cole isto dentro: local minlevel = 10 -- minimo level para usar o comando local compra = { ["superuh"] = {id = 2310, count = 100, price = 100}, --- id da runa, quantidade e preço ["magicprison"] = {id = 2290, count = 100, price = 1} } function onSay(cid, words, param) if (param == "") then doPlayerSendTextMessage(cid, 24,"Use o comando corretamente!") return true end if (param == "superuh") then if getPlayerLevel(cid) >= minlevel then if doPlayerRemoveItem(cid, 2160, compra["superuh"].price) == TRUE then doPlayerAddItem(cid, compra["superuh"].id, compra["superuh"].count) doSendMagicEffect(getCreaturePosition(cid),13) doCreatureSay(cid, "Voce comprou 100 super uh!", TALKTYPE_ORANGE_1) else doCreatureSay(cid, "Voce nao tem dinheiro suficiente", TALKTYPE_ORANGE_1) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) return true end end elseif (param == "magicprison") then if getPlayerLevel(cid) >= minlevel then if doPlayerRemoveItem(cid, 2160, compra["magicprison"].price) == TRUE then doPlayerAddItem(cid, compra["magicprison"].id, compra["magicprison"].count) doSendMagicEffect(getCreaturePosition(cid),13) doCreatureSay(cid, "Voce comprou 100 magic prison!", TALKTYPE_ORANGE_1) else doCreatureSay(cid, "Voce nao tem dinheiro suficiente", TALKTYPE_ORANGE_1) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) return true end end end end Depois, cole a tag em talkactions.xml: <talkaction log="yes" words="!buy" event="script" value="nomedoseuarquivo.lua"/> Nessa linha, edite o id da runa, você troca o 2310 e 0 2290, pelo id das suas runas, respectivamente: ["superuh"] = {id = 2310, count = 100, price = 100}, ["magicprison"] = {id = 2290, count = 100, price = 1} Lembrando que para usar o comando é só falar !buy superuh ou !buymagicprison e que o script remove apenas crystal coins. Vlw, espero ter ajudado, abraço!
  10. Bem, se for isso mesmo que eu entendi, segue o script: Crie um arquivo.lua em talkactions>scripts e coloque isto dentro: local minlevel = 10 local id = {["fist"] = 0, ["club"] = 1, ["sword"] = 2, ["axe"] = 3, ["distance"] = 4, ["shielding"] = 5, ["fishing"] = 6} function onSay(cid, words, param, position) if(id[param:lower()]) then if getPlayerLevel(cid) >= minlevel then local pos = getPlayerPosition(cid) doPlayerSendTextMessage(cid, 22, "Seu skill é : "..getPlayerSkillLevel(cid, id[param:lower()]).."") doSendMagicEffect(pos, 26) else doSendMagicEffect(pos, 2) doPlayerSendTextMessage(cid, 24,"Você não tem level para usar este comando.") return true end elseif (param == "magic") then if getPlayerLevel(cid) >= minlevel then local pos = getPlayerPosition(cid) doSendMagicEffect(pos, 26) doPlayerSendTextMessage(cid, 22,"Seu skill de magic é ".. getPlayerMagLevel(cid) ..".") else doSendMagicEffect(pos, 2) doPlayerSendTextMessage(cid, 24,"Você não tem level para usar este comando.") end return true end end Agora em talkactions.xml você coloca a tag: <talkaction log="yes" words="!skill" event="script" value="nomedoseuarquivo.lua"/> Para usar o script é só falar !skill [nome do skill]. Exemplos: !skill club ; !skill fishing. Vlw, espero ter ajudado, abraço!
  11. É, errei em uma coisa... coloca esse no lugar: function onUse(cid, item, fromPosition, itemEx, toPosition) if item.uid == 1985 then stor = getPlayerStorageValue(cid,3543) if stor == -1 then doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "You have found a VIP Staff.") doPlayerAddItem(cid,7958,1) setPlayerStorageValue(cid,3543,1) else doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "It is empty.") end elseif item.uid == 1986 then stor = getPlayerStorageValue(cid,3543) if stor == -1 then doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "You have found a VIP Club.") doPlayerAddItem(cid,7423,1) setPlayerStorageValue(cid,3543,1) else doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "It is empty.") end elseif item.uid == 1987 then stor = getPlayerStorageValue(cid,3543) if stor == -1 then doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "You have found a VIP Axe.") doPlayerAddItem(cid,7434,1) setPlayerStorageValue(cid,3543,1) else doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "It is empty.") end elseif item.uid == 1988 then stor = getPlayerStorageValue(cid,3543) if stor == -1 then doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "You have found a VIP Sword.") doPlayerAddItem(cid,8931,1) setPlayerStorageValue(cid,3543,1) else doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "It is empty.") end elseif item.uid == 1989 then stor = getPlayerStorageValue(cid,3543) if stor == -1 then doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "You have found a VIP Star.") doPlayerAddItem(cid,7366,1) setPlayerStorageValue(cid,3543,1) else doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "It is empty.") end end return true end
  12. Leoxtibia

    Bug Addon Doll

    @up WTF? @topic Aqui, tenta substituir seu script por esse: function onSay(cid, words, param) local femaleOutfits = { ["citizen"]={136}, ["hunter"]={137}, ["mage"]={138}, ["knight"]={139}, ["nobleman"]={140}, ["summoner"]={141}, ["warrior"]={142}, ["barbarian"]={147}, ["druid"]={148}, ["wizard"]={149}, ["oriental"]={150}, ["pirate"]={155}, ["assassin"]={156}, ["beggar"]={157}, ["shaman"]={158}, ["norsewoman"]={252}, ["nightmare"]={269}, ["jester"]={270}, ["brotherhood"]={279}, ["demonhunter"]={288}, ["yalaharian"]={324}, ["warmaster"]={335} } local maleOutfits = { ["citizen"]={128}, ["hunter"]={129}, ["mage"]={130}, ["knight"]={131}, ["nobleman"]={132},["summoner"]={133}, ["warrior"]={134}, ["barbarian"]={143}, ["druid"]={144}, ["wizard"]={145}, ["oriental"]={146}, ["pirate"]={151}, ["assassin"]={152}, ["beggar"]={153}, ["shaman"]={154}, ["norsewoman"]={251}, ["nightmare"]={268}, ["jester"]={273}, ["brotherhood"]={278}, ["demonhunter"]={289}, ["yalaharian"]={325}, ["warmaster"]={336} } local msg = {"Digite o nome correto!", "Voce não possui Addon Doll!", "Bad param!", "Você recebeu seu addons!"} local param = string.lower(param) if (not isPremium(cid)) then doPlayerSendCancel(cid, "Você nao tem premium account.") return TRUE end if(getPlayerItemCount(cid, 6579) > 0) then if(param ~= "" and maleOutfits[param] and femaleOutfits[param]) then doPlayerRemoveItem(cid, 6579, 1) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, msg[4]) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_GIFT_WRAPS) if(getPlayerSex(cid) == 0)then doPlayerAddOutfit(cid, femaleOutfits[param][1], 3) else doPlayerAddOutfit(cid, maleOutfits[param][1], 3) end else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, msg[1]) end else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, msg[2]) end end E a tag, pode ser assim: <talkaction words="!addon" event="script" value="addondoll.lua"/> Vlw =D
  13. Você tem que mudar nessa linha: doPlayerAddItem(cid,2182,1) Explicando: Em vermelho é o id do item e em verde a quantidade. Se você quiser colocar mais itens, adicione mais linhas e confira se os itens que você quer, tá igual aos ids que eu coloquei, se não, é só você trocar.
  14. Ok, por baú: Crie um arquivo.lua em actions>scripts e cole isso dentro: function onUse(cid, item, frompos, item2, topos) voc = getPlayerVocation(cid) queststatus = getPlayerStorageValue(cid,2453) if voc == 1 then if queststatus == -1 then doPlayerAddItem(cid,2182,1) doPlayerAddItem(cid,2652,1) doPlayerAddItem(cid,2238,1) doPlayerAddItem(cid,5917,1) setPlayerStorageValue(cid,2453,1) else doPlayerSendTextMessage(cid,22,"Você já pegou o seu prêmio.") end return 1 end end Em actions.xml você coloca essa tag: <action uniqueid="XXXX" script="nomedoseuarquivo.lua"/> Em XXXX você coloca o uid que você colocou no baú. Se você quiser que o player ganhe o item ao logar, crie um arquivo.lua em creaturescripts>scripts e cole isto dentro: function onLogin(cid) if getPlayerStorageValue(cid, 2357) == -1 then local bag = doPlayerAddItem(cid, 2003, 1) setPlayerStorageValue(cid,2357) doAddContainerItem(bag, 2182, 1) doAddContainerItem(bag, 2652, 1) doAddContainerItem(bag, 2238, 1) doAddContainerItem(bag, 5917, 1) end return TRUE end Em creature.xml adicione a tag: <event type="login" name="First" event="script" value="nomedoseuarquivo.lua"/> Vlw aí, abraço!
  15. Leoxtibia

    Scripit !vida

    Crie um arquivo em talkactions>scripts chamando vida.lua e cole isto dentro: local minlevel = 10 -- minimo level para usar o comando function onSay(cid, words, param) if getPlayerLevel(cid) >= minlevel then doSendMagicEffect(getCreaturePosition(cid), 14) doPlayerSendTextMessage(cid, 24,"Você tem ".. getPlayerHealth(cid) .." no momento.") doPlayerSendTextMessage(cid,22,"Você tem ".. getCreatureMaxHealth(cid) .. " ao total.") else doPlayerSendCancel(cid,"Você não tem o level necessário para usar este comando.") end return true end Em talkactions.xml coloque a tag: <talkaction words="!vida" event="script" value="vida.lua"/> Vá para a pasta lib e adicione isso em 050-function.lua lá no final: function getPlayerHealth(cid) -- by vodka doPlayerSave(cid) local PlayerInfo = db.getResult("SELECT `health` FROM `players` WHERE `id` = " .. getPlayerGUID(cid)) return PlayerInfo:getDataInt("health") end (Crédito da função - Vodkart) Vlw, abraço!
  16. Eu sei kk, mas os firstitems poderiam ser pegos em um baú, ao depender da vocação. Manda ai o id das suas vocações. Veja no vocations.xml
  17. Você gostaria que os first items pudessem ser obtidos em um baú ou só serve se for ao logar?
  18. Acho que esse vai ajudar, você só precisa colocar o uniqueid em cada baú no lugar do 6000, nessa linha. if item.uid == 6000 then Outra coisa, é adicionar o nome do item na mensagem. Crie um arquivo em actions>script e cole isso dentro do seu nomedoseuarquivo.lua function onUse(cid, item, fromPosition, itemEx, toPosition) local storage = 3543 if item.uid == 6000 then stor = getPlayerStorageValue(cid,storage) if stor == -1 then doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "You have found a NOME DO ITEM.") doPlayerAddItem(cid,7958,1) setPlayerStorageValue(cid, storage) else doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "It is empty.") end elseif item.uid == 6001 then stor = getPlayerStorageValue(cid,storage) if stor == -1 then doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "You have found a NOME DO ITEM.") doPlayerAddItem(cid,7423,1) setPlayerStorageValue(cid, storage) else doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "It is empty.") end elseif item.uid == 6002 then stor = getPlayerStorageValue(cid,storage) if stor == -1 then doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "You have found a NOME DO ITEM.") doPlayerAddItem(cid,7434,1) setPlayerStorageValue(cid, storage) else doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "It is empty.") end elseif item.uid == 6003 then stor = getPlayerStorageValue(cid,storage) if stor == -1 then doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "You have found a NOME DO ITEM.") doPlayerAddItem(cid,8931,1) setPlayerStorageValue(cid, storage) else doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "It is empty.") end elseif item.uid == 6004 then stor = getPlayerStorageValue(cid,storage) if stor == -1 then doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "You have found a NOME DO ITEM.") doPlayerAddItem(cid,7366,1) setPlayerStorageValue(cid, storage) else doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "It is empty.") end end return true end Em actions.xml você coloca: <action uniqueid="6000" script="nomedoseuarquivo.lua" /> <action uniqueid="6001" script="nomedoseuarquivo.lua" /> <action uniqueid="6002" script="nomedoseuarquivo.lua" /> <action uniqueid="6003" script="nomedoseuarquivo.lua" /> <action uniqueid="6004" script="nomedoseuarquivo.lua" /> Lembrando de que, se o uniqueid do baú for diferente desses, mudar no script e mudar na tag. Vlw, abraço!
  19. Já que você me mandou PM... vê aí esse que eu fiz (ainda tô começando, mas acho q funciona) Crie um arquivo em actions>scripts: function onUse(cid, item, frompos, item2, topos) itempos = {x = 108, y = 58, z = 7, stackpos = 255} --- posição do item, não mexa no stackpos teleport = {x = 100, y = 40, z = 7} -- posição para onde será teleportado x = getThingfromPos(itempos) if x.itemid == 9971 then if item.actionid == 2423 and item.itemid == 1945 or item.itemid == 1946 then doTransformItem(item.itemid,1946) doRemoveItem(x.uid,1) doTeleportThing(cid, teleport) doPlayerSendTextMessage(cid,MESSAGE_EVENT_ADVANCE, 'Voce foi teleportado.') end end end Você coloca essa tag no action.xml e bota o actionid da alavanca 2423: <action actionid="2423" event="script" value="nomedoseuarquivo.lua"/>
  20. Está aqui o script correto... function onUse(cid, item, fromPosition, item2, toPosition) teleport = {x=100, y=40, z=7} -- posição do teleport idkey = 2091 --- id da key if getPlayerItemCount(cid,idkey) >= 1 then if item.actionid == item2.actionid then doTeleportThing(cid, teleport) doSendMagicEffect(getPlayerPosition(cid), 10) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voce foi teleportado!") end end end Testa aí com as duas chaves na backpack. Se ainda continuar.., você colocou para a outra chave ser usada em outra estátua com actionid diferente? Se sim, lembre de retirar a linha de remover o item. E sobre o loot da key com o número, uma saída seria você criar um NPC que "convertesse" a key normal (dropada dos monstros), pela key correta.
  21. Esse da estatua já está feito. Ele tá lá emcima, a linha que ver o número da key e a estátua é essa: if item.actionid == item2.actionid then Como disse, é preciso que você bote o actionid da estatua na tag igual ao key number. Vlw, Abraço.
  22. Então você poderia criar essas chaves por um baú, taí o script: Crie em actions>scripts um arquivo.lua e coloque isso nele: function onUse(cid, item, frompos, item2, topos) queststatus = getPlayerStorageValue(cid,2357) if queststatus == -1 then local key = doPlayerAddItem(cid,2091,1) doItemSetAttribute(key, "aid", 666) doPlayerSendCancel(cid,'You have found a Golden key! Number 666.') setPlayerStorageValue(cid,2357,1) else doPlayerSendCancel(cid,'This chest is Empty') end return true end Aqui em doItemSetAttribute(key, "aid", 666) -- Em vermelho é o Key Number da sua chave Em actions.xml coloque a tag: <action actionid="XXXX" event="script" value="nomedoseuarquivo.lua"/> Em XXXX você coloca a actionid do baú, aí é so fazer a mesma coisa para o outro número da key.Lembrando de mudar o 2357, que é o storage. Abraço!
  23. Ta aí a deixa então =P To começando a scripting ainda.. mas acho que o script deve funcionar. É só dar use com a chave na estátua =P Crie um arquivo em actions>scripts e coloque isto dentro: function onUse(cid, item, fromPosition, item2, toPosition) teleport = {x=100, y=40, z=7} -- posição do teleport idkey = 2091 --- id da key if getPlayerItemCount(cid,idkey) >= 1 then if item.itemid == 2091 then if item.actionid == item2.actionid then doPlayerRemoveItem(cid,idkey,1) doTeleportThing(cid, teleport) doSendMagicEffect(getPlayerPosition(cid), 10) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voce foi teleportado!") end end end end Em actions.xml, adicione: <action actionid="XXXX" event="script" value="nomedoseuarquivo.lua"/> Em XXXX, coloque o actionid da estátua que deve ser igual ao do número da key. Vlw, abraços!
  24. Ainda é assim...A action id é igual ao número da key.
  • Quem Está Navegando   0 membros estão online

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