Ir para conteúdo

gahgah

Campones
  • Total de itens

    56
  • Registro em

  • Última visita

Tudo que gahgah postou

  1. gahgah

    Ganhar 1 dia de P.A

    agora esta funcionando como eu queria, muito obrigado a todos que ajudaram.. o +rep de hj vai para quem montou o script, Roksas.. e amanha dou +1 Rep para o Skymagnum e Slicer.. todos foram importantes para o sucesso do script, thanks!
  2. gahgah

    Ganhar 1 dia de P.A

    erro denovo: [17/05/2013 18:58:52] [Error - CreatureScript Interface] [17/05/2013 18:58:52] data/creaturescripts/scripts/advance_1k.lua:onAdvance [17/05/2013 18:58:52] Description: [17/05/2013 18:58:52] data/creaturescripts/scripts/advance_1k.lua:12: attempt to compare number with nil [17/05/2013 18:58:52] stack traceback: [17/05/2013 18:58:52] data/creaturescripts/scripts/advance_1k.lua:12: in function <data/creaturescripts/scripts/advance_1k.lua:8>
  3. gahgah

    Ganhar 1 dia de P.A

    deu esse erro: [17/05/2013 18:29:41] [Error - CreatureScript Interface] [17/05/2013 18:29:41] data/creaturescripts/scripts/advance_1k.lua:onAdvance [17/05/2013 18:29:41] Description: [17/05/2013 18:29:41] data/creaturescripts/scripts/advance_1k.lua:8: attempt to call global 'getAccountStorageValue' (a nil value) [17/05/2013 18:29:41] stack traceback: [17/05/2013 18:29:42] data/creaturescripts/scripts/advance_1k.lua:8: in function <data/creaturescripts/scripts/advance_1k.lua:7>
  4. gahgah

    Ganhar 1 dia de P.A

    esta funcionando e add o dia premium.. so que nao tem como add só 1 dia por ACCOUNT? se o player fizer 90 chars na mesma acc e pegar lvl 1k em cada char, ele vai add 1 dia de premium com cada char.. e acabar burlando o sistema donate vip.. n tem como? testei aqui com 2 char na mesma acc, peguei lvl 1k em cada char, e fico 2 days de premium na acc.
  5. gahgah

    Ganhar 1 dia de P.A

    testei aqui, com texto nao esta funcionando.. e percebi que quando ultrapassa o lvl 1k de uma vez só, nao add o dia premium.. so quando pega o lvl 1k redondo e exato.. meu ot é exp alta, é quase impossivel o player pegar lvl 1k exato.. sempre ultrapassa, exemplo: 13:45 You advanced from Level 998 to Level 1017. testei varias vezes e só add o dia premium se pegar lvl 1k exato, se passar nao nao adciona.. oq pode ser? espero.
  6. gahgah

    Ganhar 1 dia de P.A

    com esse script com msg, ele parou de funcionar, assim, nao add o dia de premium.. quando retirei o texto e o doPlayerSendTextMessage ai o script voltou ao normal.. oq sera que falto? aguardo
  7. gahgah

    Ganhar 1 dia de P.A

    boa.. deu certo. agora vi com mais tempo. agora teria como colocar o texto quando upar o lvl para lvl 1000? -> "parabens pelo lvl 1000 voce ganhou 1 dia de premium" ou quando ele relogar, quando ele voltar ja mandar uma msg para ele avisando que foi add 1 dia de premium por conquistar o lvl 1000? assim fica mais organizado. espero.
  8. gahgah

    Ganhar 1 dia de P.A

    opa.. fiz tudo aqui.. peguei 1k na mao mesmo.. e nao add a p.a, nao deu nehum erro no console, nem nada, apenas nao add o dia premium. oq pode ser? vou testar melhor quando chegar em casa.
  9. RESOLVIDO
  10. ola galera, gostaria de saber se da para editar esses comandos feitos para mysql para funcionar em sqlite, segue o link: http://www.xtibia.com/forum/topic/158507-limpar-casas/ aguardo com urgência, quem ajudar ganha +REP
  11. Hail XTibia, venho aqui postar um erro de NPC que acontece já faz um bom tempo, e gera muito lag no server pois sobrecarrega o console, não sei o que posso fazer para arrumar, se puderem me ajudar eu agradeço, como sempre +REP. Segue abaixo o erro, script do npc em questão e Print: ERRO: [22/12/2012 03:28:21] [Error - Npc interface] [22/12/2012 03:28:21] data/npc/scripts/loot.lua:onThink [22/12/2012 03:28:21] Description: [22/12/2012 03:28:21] (luaGetThingPosition) Thing not found [22/12/2012 03:28:21] [Error - Npc interface] [22/12/2012 03:28:21] data/npc/scripts/loot.lua:onThink [22/12/2012 03:28:22] Description: [22/12/2012 03:28:22] data/lib/032-position.lua:6: attempt to index local 'toPosition' (a boolean value) [22/12/2012 03:28:23] stack traceback: [22/12/2012 03:28:23] data/lib/032-position.lua:6: in function 'getDistanceBetween' [22/12/2012 03:28:23] data/npc/lib/npcsystem/npchandler.lua:559: in function 'isInRange' [22/12/2012 03:28:23] data/npc/lib/npcsystem/npchandler.lua:479: in function 'onThink' [22/12/2012 03:28:23] data/npc/scripts/loot.lua:8: in function <data/npc/scripts/loot.lua:8> SCRIPT NPC: local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function thinkCallback(cid) local rand = math.random(1,100) if rand == 1 then selfSay('Buy Items!') end return true end function greetCallback(cid) return true end npcHandler:setCallback(CALLBACK_ONTHINK, thinkCallback) npcHandler:setCallback(CALLBACK_GREET, greetCallback) npcHandler:addModule(FocusModule:new()) PRINT: -- É complica pois quando não estou ADM o server não tem como dar /reload npcs ai o lag fica gigantesco. Versao no server: [8.60] Alissow Ots 4.11 Aguardo ajuda e como sempre +rep
  12. Ola XTibia, gostaria de saber se tem como fazer uma Runa que de Paralyze so que total, exemplo, o player ataca a runa no target e ele trava completamente por 5 segundos (configuráveis), tendo a opçao dela funcionar apenas em players e nao em monstros, e quando a runa pegar o player soltar o texto " Paralyze ", entao ficaria: Travar o player 100% por 5 segundos (configuraveis) exausted para usar a runa denovo em alguns segundos Opçoes de atacar somente players ou monsters tambem Quando a runa acertar o player dar o texto " Paralyze " e se possivel: Quando a runa acertar o player dar Poison de -1000 Quando a runa acertar o player o deixar bebado (drunk) Seria perfeito para o PvP High Exp, como sempre dou +REP Aguardo.
  13. Script esta perfeito, add a premium, qts dias o player quer, e tirando a moeda vip, 1 dia de premium = 1 moeda vip. Meu servidor 1 mes de vip (30 dias) sai por apenas 20 moedas vip, tem como agora por a fala de opçao para comprar 1 mes de vip por 20 moeda vip? o npc ja vende quantos dias o player preferir, so falta agora mesmo ele ter a opçao de vender 1 mes inteiro e cobrar 20 moedas vip, ex: player: 30 dias npc: quer comprar 30 dias de vip premium por 20 moedas vip? player: yes outro exemplo de dias: npc: vendo 1 a 15 dias de premium, cada dia e 1 moeda vip, tambem vendo 1 mes por 20 moedas vip, fale quantos dias deseja comprar player: 1 mes npc: deseja comprar 1 mes de premium por 20 moedas vip? player: yes ae no caso se o player quiser comprar 3 meses por exemplo, ae o npc vai cobrar 60 moedas vip. (20 moedas cada mes) resumindo e finalizando, o scrpt esta funcional e perfeito, apenas gostaria que o modificasse para limite maximo de dias 15, o player vai escolher quantos dias quiser ate 15 dias, cobrando 1 moeda por dia, e a segunda opçao é apenas para meses, 1 mes sera cobrado 20 moedas. aguardo.
  14. intendi, para comprar a quantidade de dias q ele quer ele vai ter q falar !buypremium varias veses ate atingir a quantidade exata que o player qr de vip, ex: 1 dia = remover 1 moeda vip, ai para ele comprar 1 mes com 20 moedas vip, eu poderia fazer outro comando, unico para ele comprar 30 dias e remover apenas 20 moedas. agora daria para fazer compra de premium por NPC? dialogar com ele, ae teria q confirmar se ele realmente qr gastar as moedas vip com a premium, etc, provavelmente daria menos erros, ja que metade do server usa de todos os tipos de artificios para tentar se dar bem, capaz de usarem o comando e falar q compro dias errado so pra repor moedas, é complicado. aguardo & agradeço a ajuda, so estou esperando mesmo se é possivel criar npc e embutir tudo no script do npc, abraços.
  15. gahgah

    Efeito Quando Morre

    Não funcionou, seguinte erro: [Warning - Event::loadScript] Event onDeath not found (data/creaturescripts/scripts/efeitodeath.lua) aguardo.
  16. RESOLVIDO +rep
  17. Ola XTibia, gostaria de um script de !buypremium que cobrasse em moeda VIP, porem com um grande diferencial, o player escolhe quantos dias colocar, ex: !buypremium 1 - 1 dia !buypremium 5 - 5 dias !buypremium 10 - 10 dias E por ai vai, quantos dias ele escolher, e é claro, cada dia é 1 moeda VIP, e 1 mes cobro 20 moedas VIP. Se tiver como fazer em NPC eu tambem agradeço, axo mais detalhado, enfim, peso ajuda para os dois, talkaction e 1 npc, vo guardar as duas opçoes, aguardo. Como sempre +REP para quem ajudar.
  18. so muda os id.. add em movements: <!-- Exp ring --> <movevent type="Equip" itemid="7697" slot="ring" event="script" value="expring.lua"> <movevent type="DeEquip" itemid="7697" slot="ring" event="script" value="expring.lua"> agora va em scrips, copie qualquer um e renomeia para expring e cole: function onEquip(cid, item, slot) doTransformItem(item.uid, 7697, 1) doPlayerSendTextMessage(cid, 22, 'Agora ganha 15x mais experiencia!') doPlayerSetExperienceRate(cid, getConfigValue("rateExperience")*15) return TRUE end function onDeEquip(cid, item, slot) doTransformItem(item.uid, 7697, 1) doPlayerSendTextMessage(cid, 22, '15x mais experiencia!') doPlayerSetExperienceRate(cid, 1) return TRUE end esse é do ring de 15x mais exp. para o ring de 30x mais exp coloca em movements: <!-- Exp ring2 --> <movevent type="Equip" itemid="8187" slot="ring" event="script" value="expring2.lua"> <movevent type="DeEquip" itemid="8187" slot="ring" event="script" value="expring2.lua"> agora va em scrips, copie qualquer um e renomeia para expring2 e cole: function onEquip(cid, item, slot) doTransformItem(item.uid, 8187, 1) doPlayerSendTextMessage(cid, 22, 'Agora ganha 30x mais experiencia!') doPlayerSetExperienceRate(cid, getConfigValue("rateExperience")*30) return TRUE end function onDeEquip(cid, item, slot) doTransformItem(item.uid, 8187, 1) doPlayerSendTextMessage(cid, 22, '30x mais experiencia!.') doPlayerSetExperienceRate(cid, 1) return TRUE end testa ae.. so ir mudando os ID. -- Ajudei? +REPP
  19. opa.. va em movements e add isso: <!-- Exp ring --> <movevent type="Equip" itemid="7697" slot="ring" event="function" value="onEquipItem"> <movevent type="Equip" itemid="7708" slot="ring" event="script" value="expring.lua"> <movevent type="DeEquip" itemid="7708" slot="ring" event="script" value="expring.lua"> agora va em scrips, copie qualquer um e renomeia para expring e cole: local rate = 1.5 function onEquip(cid, item, slot) if(item.itemid ~= 7697) then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Your exp rate + "..((rate - 1)*100).."%.") doPlayerSetExperienceRate(cid, rate) doTransformItem(item.uid, 7708 ) return true end return true end function onDeEquip(cid, item, slot) if(item.itemid ~= 7708 ) then return true end doPlayerSetExperienceRate(cid, 1.0) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Your extra experience rate has ended.") doTransformItem(item.uid, 7697) return true end ae vc so muda o ID do ring se quiser, apenas va testando, a materia prima ja esta ae, esta configurado para 50% a mais de exp quando usado o ring, so é configurar.. e para fazer outro anel de exp s aplicar o mesmo script mudando a ID do ring.. va testando! qualquer duvida tb podera ver com atençao esse tutorial nesse topico: http://www.xtibia.com/forum/topic/162054-exp-ring-anel-de-experiencia/ -- Ajudei? +REP
  20. gahgah

    Npc De Venda

    opa, npc que vende item em troca de itens? como moeda vip? se for isso.. script do npc: <?xml version="1.0" encoding="UTF-8"?> <npc name="Vip I Skol Items" script="data/npc/scripts/Vip Items.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="133" head="100" body="50" legs="10" feet="25" addons="3"/> <parameters> <parameter key="message_greet" value="Oi |PLAYERNAME|. Eu vendo otimos itens vip por apenas 20 a 100 moeda de ouro, para ver a lista de itens fale {list}."/> <parameter key="message_fareweel" value="Tchau, |PLAYERNAME|"/> </parameters> </npc> depois vai em scripts copia qualquer um e renomeia para Vip Items e cole: local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid -- Conversa Jogador/NPC if(msgcontains(msg, 'list')) then selfSay('Eu vendo {Vip Helmet }, {Vip Armor}.', cid) elseif(msgcontains(msg, 'Vip Helmet')) then selfSay('Voc\ê quer comprar Vip Helmet por 20 moedas de ouro?', cid) talkState[talkUser] = 1 elseif(msgcontains(msg, 'Vip Armor')) then selfSay('Voc\ê quer comprar Vip Armor por 100 moedas de ouro?', cid) talkState[talkUser] = 2 -- Confirmação da Compra elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then if(doPlayerRemoveItem(cid, 2157, 20) == true) then selfSay('Obrigado por comprar!', cid) doPlayerAddItem(cid, 2501, 1) talkState[talkUser] = 0 else selfSay('Voc\ê n\ão tem 20 moedas de ouro', cid) talkState[talkUser] = 0 end elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 2) then if(doPlayerRemoveItem(cid, 2157, 100) == true) then selfSay('Obrigado por comprar!', cid) doPlayerAddItem(cid, 8885, 1) talkState[talkUser] = 0 else selfSay('Voc\ê n\ão tem 100 moedas de ouro', cid) talkState[talkUser] = 0 end end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) no caso o id da moeda de ouro é 2157, so mudar o id pelo item que vc deseja ou grana. -- Ajudei? +Rep
  21. gahgah

    Sjuda Com Sytem Vip

    pelo site? entao sua vip vai ser por donate certo? vai em talkactions e apaga tudo que for referente a vip para player, como !buyvip, !buypremium, etc. quando o donate do player cair voce mesmo add pelo comando /addpremium isso que eu intendi. -- Ajudei: +Rep
  22. bem, vou postar o script q eu uso, e ate hj sempre funcionou. vai em talkactions e cola: <talkaction words="!mana;!life" script="manalife.lua"/> em scripts copia qualquer um e renomeia para manalife e cola: function onSay(cid, words, param) if(words == "!mana") then doPlayerSendTextMessage(cid,22,"You have " .. getCreatureMana(cid) .. " mana now\nYou have " .. getCreatureMaxMana(cid) .. " mana to the total") return TRUE elseif(words == "!life") then doPlayerSendTextMessage(cid,22,"You have " .. getCreatureHealth(cid) .. " of life now\nYou have " .. getCreatureMaxHealth(cid) .. " of the total life") return TRUE end end testa ae! -- Ajudei: +Rep
  23. gahgah

    Script De Reset

    opa, tenta usar esse amigo, é mais completo e configuraçao facil, e ja esta ali nas configuraçoes o limite de reset maximo: --[[ SCRIPTING> MarcelloMkez <scriptING ]] --[[ [Advanced Reset System] Autor: MarcelloMkez Versão: 1.0 TFS: 0.3.6 Testado em: 8.50 Fórum: www.xtibia.com/forum/topic/138026-talk-action-advanced-reset-system/ [Características] ~ Versão 1.0 ~ - Resets no Look; - Premium Account ou não; - Mudar Vocação; - Limite de Resets; - Opções para Abilitar e Desabilitar Condições; [Em Construção] - Stages Free e Premium; - 'Talvez' um novo sistema de mudar Vocação; sem data para postagem. ]] function onSay(cid, words, param) --[Configurações de Condição]__ config = { --[[verdadeiro / Falso]] needPa = false, -- Precisa de Premium Account? [true / false] needPz = true, -- Precisa estar em Protection Zone? [true / false] battle = true, -- Precisa estar sem Batlle para Resetar? [true / false] withe = false, -- Players PK Withe pode Resetar? [true / false] red = false, -- Players PK Red pode Resetar? [true / false] tp = true, -- Teleportar para o Templo após o reset? [true / false] look = true, -- Mostrar Resets no Look do Player? [true / false] addLimite = true, -- Abilitar Limite de Resets? [true / false] setClasse = false, -- Mudar Vocação do player quando resetar? [true / false] storage = 2310, -- Storage [valor] --[Configurações do Reset]__ resetStatus = { player = getPlayerGUID(cid), -- Não Mude. lvl = 2000 , -- Level Necessário para Resetar. [valor] lvlreset = 100, -- Level que retornará após o Reset. [valor] limite = 501, -- Máximo de resets que um player pode chegar. [valor] newClasse = 1, -- Id da Nova Vocação após o Reset. [valor] tempo= 3 -- Tempo para o Player deslogar para Resetar. Em segundos. [valor] }, } --[Funções]__ function Reseting(cid) resets = getResets(cid) setPlayerStorageValue(cid,config.storage,resets+1) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) doPlayerSetVocation(cid, config.resetStatus.newClasse) doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `description` = ' [Reset "..resets.."]' WHERE `players`.`id` = "..config.resetStatus.player) db.executeQuery("UPDATE `players` SET `level` = "..config.resetStatus.lvlreset..", `experience` = 0 WHERE `id` = "..config.resetStatus.player) return TRUE end function noAll(cid) resets = getResets(cid) setPlayerStorageValue(cid,config.storage,resets+1) doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `level` = "..config.resetStatus.lvlreset..", `experience` = 0 WHERE `id` = "..config.resetStatus.player) db.executeQuery("UPDATE `players` SET `description` = '' WHERE `players`.`id` = "..config.resetStatus.player) return TRUE end function noTeleporting(cid) resets = getResets(cid) setPlayerStorageValue(cid,config.storage,resets+1) doPlayerSetVocation(cid, config.resetStatus.newClasse) doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `level` = "..config.resetStatus.lvlreset..", `experience` = 0 WHERE `id` = "..config.resetStatus.player) db.executeQuery("UPDATE `players` SET `description` = ' [Reset "..resets.."]' WHERE `players`.`id` = "..config.resetStatus.player) return TRUE end function noLook(cid) resets = getResets(cid) setPlayerStorageValue(cid,config.storage,resets+1) doPlayerSetVocation(cid, config.resetStatus.newClasse) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `level` = "..config.resetStatus.lvlreset..", `experience` = 0 WHERE `id` = "..config.resetStatus.player) db.executeQuery("UPDATE `players` SET `description` = '' WHERE `players`.`id` = "..config.resetStatus.player) return TRUE end function noClasse(cid) resets = getResets(cid) setPlayerStorageValue(cid,config.storage,resets+1) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `description` = ' [Reset "..resets.."]' WHERE `players`.`id` = "..config.resetStatus.player) db.executeQuery("UPDATE `players` SET `level` = "..config.resetStatus.lvlreset..", `experience` = 0 WHERE `id` = "..config.resetStatus.player) return TRUE end function setClasse(cid) resets = getResets(cid) setPlayerStorageValue(cid,config.storage,resets+1) doPlayerSetVocation(cid, config.resetStatus.newClasse) doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `description` = '' WHERE `players`.`id` = "..config.resetStatus.player) db.executeQuery("UPDATE `players` SET `level` = "..config.resetStatus.lvlreset..", `experience` = 0 WHERE `id` = "..config.resetStatus.player) return TRUE end function look(cid) resets = getResets(cid) setPlayerStorageValue(cid,config.storage,resets+1) doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `description` = ' [Reset "..resets.."]' WHERE `players`.`id` = "..config.resetStatus.player) db.executeQuery("UPDATE `players` SET `level` = "..config.resetStatus.lvlreset..", `experience` = 0 WHERE `id` = "..config.resetStatus.player) return TRUE end function teleporting(cid) resets = getResets(cid) setPlayerStorageValue(cid,config.storage,resets+1) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `description` = '' WHERE `players`.`id` = "..config.resetStatus.player) db.executeQuery("UPDATE `players` SET `level` = "..config.resetStatus.lvlreset..", `experience` = 0 WHERE `id` = "..config.resetStatus.player) return TRUE end function getResets(cid) resets = getPlayerStorageValue(cid,config.storage) if resets < 0 then resets = 0 end return resets end local resets = getResets(cid) local needLvl ="You need "..config.resetStatus.lvl-getPlayerLevel(cid).." level's to reset." local msg ="~[Reset: "..getResets(cid).."]~ 'Reset to Success! You will be logged out in "..config.resetStatus.tempo.." Seconds." --[Condiçoes]__ if(config.needPz == true) and (getTilePzInfo(getCreaturePosition(cid)) == FALSE) then doPlayerSendTextMessage(cid,22,"You Need Protection Zone to be Reset.") return TRUE elseif(config.addLimite == true) and (getResets(cid) == config.resetStatus.limite) then doPlayerSendTextMessage(cid, 22, "Congratulations, you reached the limit of Resets.") return TRUE elseif(config.withe == false) and (getCreatureSkullType(cid) == 3) then doPlayerSendTextMessage(cid,22,"You PK White, so I Can not reset.") return TRUE elseif(config.red == false) and (getCreatureSkullType(cid) == 4) then doPlayerSendTextMessage(cid,22,"You PK Red, so I Can not reset.") return TRUE elseif(config.needPa == true) and not isPremium(cid) then doPlayerSendTextMessage(cid,22,"You need to be Premium Account Reset.") return TRUE elseif(config.battle == true) and (getCreatureCondition(cid, CONDITION_INFIGHT) == TRUE) then doPlayerSendTextMessage(cid,22,"You need to be out of Battle Reset.") return TRUE elseif getPlayerLevel(cid) >= config.resetStatus.lvl and (config.tp == true) and (config.look == true) and (config.setClasse == true) then addEvent(Reseting, config.resetStatus.tempo* 1000, cid) elseif getPlayerLevel(cid) >= config.resetStatus.lvl and (config.tp == false) and (config.look == false) and (config.setClasse == false) then addEvent(noAll, config.resetStatus.tempo* 1000, cid) elseif getPlayerLevel(cid) >= config.resetStatus.lvl and (config.tp == false) and (config.look == true) and (config.setClasse == true) then addEvent(noTeleporting, config.resetStatus.tempo* 1000, cid) elseif getPlayerLevel(cid) >= config.resetStatus.lvl and (config.tp == true) and (config.look == false) and (config.setClasse == true) then addEvent(noLook, config.resetStatus.tempo* 1000, cid) elseif getPlayerLevel(cid) >= config.resetStatus.lvl and (config.tp == true) and (config.look == true) and (config.setClasse == false) then addEvent(noClasse, config.resetStatus.tempo* 1000, cid) elseif getPlayerLevel(cid) >= config.resetStatus.lvl and (config.tp == false) and (config.look == false) and (config.setClasse == true) then addEvent(setClasse, config.resetStatus.tempo* 1000, cid) elseif getPlayerLevel(cid) >= config.resetStatus.lvl and (config.tp == false) and (config.look == true) and (config.setClasse == false) then addEvent(look, config.resetStatus.tempo* 1000, cid) elseif getPlayerLevel(cid) >= config.resetStatus.lvl and (config.tp == true) and (config.look == false) and (config.setClasse == false) then addEvent(teleporting, config.resetStatus.tempo* 1000, cid) elseif doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, needLvl) then doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) return TRUE end if doPlayerPopupFYI(cid, msg) then end return TRUE end --[by: MarcelloMkez]__ procure por: limite = 501, -- Máximo de resets que um player pode chegar. e coloque 5, ai sera o limite de resets, co configurar ali. -- Ajudei: +Rep
  24. gahgah

    Ajuda Com Comando /a

    voce modifico o lib32-position e começo a dar erro no comando /a ? é isso? tente voltar como era antes de vc modificar, apenas copie e cole o original sem modificaçao: function isInRange(position, fromPosition, toPosition) return (position.x >= fromPosition.x and position.y >= fromPosition.y and position.z >= fromPosition.z and position.x <= toPosition.x and position.y <= toPosition.y and position.z <= toPosition.z) end function getDistanceBetween(fromPosition, toPosition) local x, y = math.abs(fromPosition.x - toPosition.x), math.abs(fromPosition.y - toPosition.y) local diff = math.max(x, y) if(fromPosition.z ~= toPosition.z) then diff = diff + 9 + 6 end return diff end function getDirectionTo(pos1, pos2) local dir = NORTH if(pos1.x > pos2.x) then dir = WEST if(pos1.y > pos2.y) then dir = NORTHWEST elseif(pos1.y < pos2.y) then dir = SOUTHWEST end elseif(pos1.x < pos2.x) then dir = EAST if(pos1.y > pos2.y) then dir = NORTHEAST elseif(pos1.y < pos2.y) then dir = SOUTHEAST end else if(pos1.y > pos2.y) then dir = NORTH elseif(pos1.y < pos2.y) then dir = SOUTH end end return dir end function getCreatureLookPosition(cid) return getPosByDir(getThingPos(cid), getCreatureLookDirection(cid)) end function getPositionByDirection(position, direction, size) local n = size or 1 if(direction == NORTH) then position.y = position.y - n elseif(direction == SOUTH) then position.y = position.y + n elseif(direction == WEST) then position.x = position.x - n elseif(direction == EAST) then position.x = position.x + n elseif(direction == NORTHWEST) then position.y = position.y - n position.x = position.x - n elseif(direction == NORTHEAST) then position.y = position.y - n position.x = position.x + n elseif(direction == SOUTHWEST) then position.y = position.y + n position.x = position.x - n elseif(direction == SOUTHEAST) then position.y = position.y + n position.x = position.x + n end return position end function doComparePositions(position, positionEx) return position.x == positionEx.x and position.y == positionEx.y and position.z == positionEx.z end function getArea(position, x, y) local t = {} for i = (position.x - x), (position.x + x) do for j = (position.y - y), (position.y + y) do table.insert(t, {x = i, y = j, z = position.z}) end end return t end -- Ajudei: +Rep
  25. va em talkactions.lua e add isso: <talkaction words="!rank;!ranks;/ranks" event="script" value="rankreset.lua"/> va em scripts, copie qualquer arquivo e renomeie para rankreset e cole: function getPlayerNameByGUID2(n) local c = db.getResult("SELECT `name` FROM `players` WHERE `id` = "..n..";") if c:getID() == -1 then return "SQL_ERROR["..n.."]" end return c:getDataString("name") end function onSay(cid, words, param) local max = 20 local letters_to_next = 25 local skills = { ['fist'] = 0, ['club'] = 1, ['sword'] = 2, ['axe'] = 3, ['distance'] = 4, ['shielding'] = 5, ['fishing'] = 6, ['dist'] = 4, ['shield'] = 5, ['fish'] = 6, } local name_now local name = "Highscore for level\n" local rkn = 0 local no_break = 0 param = string.lower(param) dofile('config.lua') if param == "" or param == "level" and ( param ~= "magic" and param == "ml") and skills[param] == nil then name = name.."\n" name = name.."Rank Level - Nome do Jogador\n" local v = db.getResult("SELECT `name`, `level`, `experience` FROM `players` WHERE `group_id` <= 2 ORDER BY `experience` DESC LIMIT 0,"..(max)..";") repeat no_break = no_break +1 if v:getID() == -1 then break end rkn = rkn+1 name_now, l = v:getDataString("name"), string.len(v:getDataString("name")) space = "" for i=1, letters_to_next-l do space = space.." " end name = name..rkn..". "..v:getDataInt("level") .." - "..name_now..space.." ".."\n" if no_break >= 20 then break end until v:next() == false elseif param == "magic" or param == "ml" then name = name.."\n" name = name.."Rank Magic - Nome do Jogador\n" local v = db.getResult("SELECT `name`, `level`, `maglevel` FROM `players` WHERE `group_id` <= 2 ORDER BY `maglevel` DESC LIMIT 0,"..(max)..";") repeat if v:getID() == -1 then break end rkn = rkn+1 name_now, l = v:getDataString("name"), string.len(v:getDataString("name")) space = "" for i=1, letters_to_next-l do space = space.." " end name = name..rkn..". "..v:getDataInt("maglevel").." - "..name_now..space.." ".." ".."".."\n" until v:next() == false elseif param == "reset" or param == "resets" then name = name.."\n" name = name.."Rank Reset - Nome do Jogador\n" local v = db.getResult("SELECT `player_id`, `value` FROM `player_storage` WHERE `key` = 2310 ORDER BY cast(value as INTEGER) DESC;") local kk = 0 repeat if kk == max or v:getID() == -1 then break end kk = kk+1 name_now, l = getPlayerNameByGUID2(v:getDataInt("player_id")), string.len(getPlayerNameByGUID2(v:getDataInt("player_id"))) space = "" for i=1, letters_to_next-l do space = space.." " end if name_now == nil then name_now = 'sql error['..v:getDataInt("player_id")..']' end name = name..kk..". "..v:getDataInt("value").." - "..name_now..space.." \n" until v:next() == false elseif skills[param] ~= nil then name = name.."\n" name = name.."Rank "..param.." fighting - Nome do Jogador\n" local v = db.getResult("SELECT `player_id`, `value` FROM `player_skills` WHERE `skillid` = "..skills[param].." ORDER BY `value` DESC;") local kk = 0 repeat if kk == max or v:getID() == -1 then break end kk = kk+1 name_now, l = getPlayerNameByGUID2(v:getDataInt("player_id")), string.len(getPlayerNameByGUID2(v:getDataInt("player_id"))) space = "" for i=1, letters_to_next-l do space = space.." " end if name_now == nil then name_now = 'sql error['..v:getDataInt("player_id")..']' end name = name..kk..". "..v:getDataInt("value").." - "..name_now..space.." \n" until v:next() == false end if name ~= "Highscore\n" then doPlayerPopupFYI(cid, name) end return TRUE end -- caso nao tenha um sistema de reset profissional, use esse, totalmente funcional: va em talkactions.lua e add isso: <talkaction log="yes" words="!reset;!resetar" access="0" event="script" value="reset.lua"/> va em scripts, copie qualquer arquivo e renomeie para reset e cole: --[[ SCRIPTING> MarcelloMkez <scriptING ]] --[[ [Advanced Reset System] Autor: MarcelloMkez Versão: 1.0 TFS: 0.3.6 Testado em: 8.50 Fórum: www.xtibia.com/forum/topic/138026-talk-action-advanced-reset-system/ [Características] ~ Versão 1.0 ~ - Resets no Look; - Premium Account ou não; - Mudar Vocação; - Limite de Resets; - Opções para Abilitar e Desabilitar Condições; [Em Construção] - Stages Free e Premium; - 'Talvez' um novo sistema de mudar Vocação; sem data para postagem. ]] function onSay(cid, words, param) --[Configurações de Condição]__ config = { --[[verdadeiro / Falso]] needPa = false, -- Precisa de Premium Account? [true / false] needPz = true, -- Precisa estar em Protection Zone? [true / false] battle = true, -- Precisa estar sem Batlle para Resetar? [true / false] withe = false, -- Players PK Withe pode Resetar? [true / false] red = false, -- Players PK Red pode Resetar? [true / false] tp = true, -- Teleportar para o Templo após o reset? [true / false] look = true, -- Mostrar Resets no Look do Player? [true / false] addLimite = true, -- Abilitar Limite de Resets? [true / false] setClasse = false, -- Mudar Vocação do player quando resetar? [true / false] storage = 2310, -- Storage [valor] --[Configurações do Reset]__ resetStatus = { player = getPlayerGUID(cid), -- Não Mude. lvl = 2000 , -- Level Necessário para Resetar. [valor] lvlreset = 100, -- Level que retornará após o Reset. [valor] limite = 501, -- Máximo de resets que um player pode chegar. [valor] newClasse = 1, -- Id da Nova Vocação após o Reset. [valor] tempo= 3 -- Tempo para o Player deslogar para Resetar. Em segundos. [valor] }, } --[Funções]__ function Reseting(cid) resets = getResets(cid) setPlayerStorageValue(cid,config.storage,resets+1) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) doPlayerSetVocation(cid, config.resetStatus.newClasse) doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `description` = ' [Reset "..resets.."]' WHERE `players`.`id` = "..config.resetStatus.player) db.executeQuery("UPDATE `players` SET `level` = "..config.resetStatus.lvlreset..", `experience` = 0 WHERE `id` = "..config.resetStatus.player) return TRUE end function noAll(cid) resets = getResets(cid) setPlayerStorageValue(cid,config.storage,resets+1) doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `level` = "..config.resetStatus.lvlreset..", `experience` = 0 WHERE `id` = "..config.resetStatus.player) db.executeQuery("UPDATE `players` SET `description` = '' WHERE `players`.`id` = "..config.resetStatus.player) return TRUE end function noTeleporting(cid) resets = getResets(cid) setPlayerStorageValue(cid,config.storage,resets+1) doPlayerSetVocation(cid, config.resetStatus.newClasse) doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `level` = "..config.resetStatus.lvlreset..", `experience` = 0 WHERE `id` = "..config.resetStatus.player) db.executeQuery("UPDATE `players` SET `description` = ' [Reset "..resets.."]' WHERE `players`.`id` = "..config.resetStatus.player) return TRUE end function noLook(cid) resets = getResets(cid) setPlayerStorageValue(cid,config.storage,resets+1) doPlayerSetVocation(cid, config.resetStatus.newClasse) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `level` = "..config.resetStatus.lvlreset..", `experience` = 0 WHERE `id` = "..config.resetStatus.player) db.executeQuery("UPDATE `players` SET `description` = '' WHERE `players`.`id` = "..config.resetStatus.player) return TRUE end function noClasse(cid) resets = getResets(cid) setPlayerStorageValue(cid,config.storage,resets+1) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `description` = ' [Reset "..resets.."]' WHERE `players`.`id` = "..config.resetStatus.player) db.executeQuery("UPDATE `players` SET `level` = "..config.resetStatus.lvlreset..", `experience` = 0 WHERE `id` = "..config.resetStatus.player) return TRUE end function setClasse(cid) resets = getResets(cid) setPlayerStorageValue(cid,config.storage,resets+1) doPlayerSetVocation(cid, config.resetStatus.newClasse) doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `description` = '' WHERE `players`.`id` = "..config.resetStatus.player) db.executeQuery("UPDATE `players` SET `level` = "..config.resetStatus.lvlreset..", `experience` = 0 WHERE `id` = "..config.resetStatus.player) return TRUE end function look(cid) resets = getResets(cid) setPlayerStorageValue(cid,config.storage,resets+1) doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `description` = ' [Reset "..resets.."]' WHERE `players`.`id` = "..config.resetStatus.player) db.executeQuery("UPDATE `players` SET `level` = "..config.resetStatus.lvlreset..", `experience` = 0 WHERE `id` = "..config.resetStatus.player) return TRUE end function teleporting(cid) resets = getResets(cid) setPlayerStorageValue(cid,config.storage,resets+1) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `description` = '' WHERE `players`.`id` = "..config.resetStatus.player) db.executeQuery("UPDATE `players` SET `level` = "..config.resetStatus.lvlreset..", `experience` = 0 WHERE `id` = "..config.resetStatus.player) return TRUE end function getResets(cid) resets = getPlayerStorageValue(cid,config.storage) if resets < 0 then resets = 0 end return resets end local resets = getResets(cid) local needLvl ="You need "..config.resetStatus.lvl-getPlayerLevel(cid).." level's to reset." local msg ="~[Reset: "..getResets(cid).."]~ 'Reset to Success! You will be logged out in "..config.resetStatus.tempo.." Seconds." --[Condiçoes]__ if(config.needPz == true) and (getTilePzInfo(getCreaturePosition(cid)) == FALSE) then doPlayerSendTextMessage(cid,22,"You Need Protection Zone to be Reset.") return TRUE elseif(config.addLimite == true) and (getResets(cid) == config.resetStatus.limite) then doPlayerSendTextMessage(cid, 22, "Congratulations, you reached the limit of Resets.") return TRUE elseif(config.withe == false) and (getCreatureSkullType(cid) == 3) then doPlayerSendTextMessage(cid,22,"You PK White, so I Can not reset.") return TRUE elseif(config.red == false) and (getCreatureSkullType(cid) == 4) then doPlayerSendTextMessage(cid,22,"You PK Red, so I Can not reset.") return TRUE elseif(config.needPa == true) and not isPremium(cid) then doPlayerSendTextMessage(cid,22,"You need to be Premium Account Reset.") return TRUE elseif(config.battle == true) and (getCreatureCondition(cid, CONDITION_INFIGHT) == TRUE) then doPlayerSendTextMessage(cid,22,"You need to be out of Battle Reset.") return TRUE elseif getPlayerLevel(cid) >= config.resetStatus.lvl and (config.tp == true) and (config.look == true) and (config.setClasse == true) then addEvent(Reseting, config.resetStatus.tempo* 1000, cid) elseif getPlayerLevel(cid) >= config.resetStatus.lvl and (config.tp == false) and (config.look == false) and (config.setClasse == false) then addEvent(noAll, config.resetStatus.tempo* 1000, cid) elseif getPlayerLevel(cid) >= config.resetStatus.lvl and (config.tp == false) and (config.look == true) and (config.setClasse == true) then addEvent(noTeleporting, config.resetStatus.tempo* 1000, cid) elseif getPlayerLevel(cid) >= config.resetStatus.lvl and (config.tp == true) and (config.look == false) and (config.setClasse == true) then addEvent(noLook, config.resetStatus.tempo* 1000, cid) elseif getPlayerLevel(cid) >= config.resetStatus.lvl and (config.tp == true) and (config.look == true) and (config.setClasse == false) then addEvent(noClasse, config.resetStatus.tempo* 1000, cid) elseif getPlayerLevel(cid) >= config.resetStatus.lvl and (config.tp == false) and (config.look == false) and (config.setClasse == true) then addEvent(setClasse, config.resetStatus.tempo* 1000, cid) elseif getPlayerLevel(cid) >= config.resetStatus.lvl and (config.tp == false) and (config.look == true) and (config.setClasse == false) then addEvent(look, config.resetStatus.tempo* 1000, cid) elseif getPlayerLevel(cid) >= config.resetStatus.lvl and (config.tp == true) and (config.look == false) and (config.setClasse == false) then addEvent(teleporting, config.resetStatus.tempo* 1000, cid) elseif doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, needLvl) then doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) return TRUE end if doPlayerPopupFYI(cid, msg) then end return TRUE end --[by: MarcelloMkez]__ -- Ajudei? Rep+
  • Quem Está Navegando   0 membros estão online

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