Ir para conteúdo

jhon992

Conde
  • Total de itens

    631
  • Registro em

  • Última visita

  • Dias Ganhos

    13

Tudo que jhon992 postou

  1. @mulizeu, Ótimo script, parabéns e continue contribuindo com a comunidade. Rep+ E agora me metendo na conversa dos meus amigos, o código do jeito que esta ali, não esta indentado. E indentado com certeza melhora o entendimento de quem esta lendo e quer aprender. Mais esse erro de indentação ocorre mesmo se você fizer um código indentado e for postar, pois ao usar a ferramenta Código disponível na aba de postagem e indentação se perde. Um meio de resolver esse problema é usar manualmente as tags [.CODE] [./CODE] e colar o código indentado dentro. Agora parem de comentar sobre indentação aqui! Esse tópico é destinado ao script do @mulizeu.
  2. jhon992

    Magia Upar Por Soul

    Um jeito seria em todas as spells antes do "return" colocar essa linha: doPlayerAddSkillTry(cid, 7, 2) Essa linha adiciona 2 tries de skill no magic level. Agora nas spells poem para gastar soul como o Sky falou. E poem para não gastar mana.
  3. Dei uma modificada nesse script aqui, então créditos são dele. http://www.xtibia.com/forum/topic/150604-matar-player-e-tirar-coracao/ Modificado vai ficar assim: local lvlMinGainHeart = 1000 -- lvl minimo pra ganhar o coração. local lvlMaxGainHeart = 2000 -- lvl maximo pra ganhar o coração. local lvlGain = { -- se lvl maior que esses, ganham esses determinados itens {lvl = 2000, itemid = 2160, quant = 2}, -- lvl, id do item, quantidade. {lvl = 3000, itemid = 2160, quant = 5}, {lvl = 4000, itemid = 2160, quant = 10} } function onKill(cid, target, lastHitKiller) if(isPlayer(target) and isPlayer(lastHitKiller)) then if getPlayerLevel(cid) >= lvlMinGainHeart and getPlayerLevel(cid) <= lvlMaxGainHeart then doPlayerSendTextMessage(cid, 22, "Parabens, voce matou o jogador "..getCreatureName(target).." e tirou seu coraçao") function additem() local aditi = doPlayerAddItem(lastHitKiller, 5943, 1) doItemSetAttribute(aditi, "description", "Este foi retirado de "..getCreatureName(target).."") end addEvent(additem, 1000) return true end for i=1, #lvlGain do if i < #lvlGain then if getPlayerLevel(cid) > lvlGain[i].lvl and getPlayerLevel(cid) <= lvlGain[i+1].lvl then doPlayerAddItem(lastHitKiller, lvlGain[i].itemid, lvlGain[i].quant) end else if getPlayerLevel(cid) > lvlGain[i].lvl then doPlayerAddItem(lastHitKiller, lvlGain[i].itemid, lvlGain[i].quant) end end end end return true end
  4. jhon992

    Pedras De Magia

    Só criar a spell em uma runa? Dae a magia vai ser usada, usando uma pedra...
  5. Não entendi muito bem oque você quis falar, mais se é pra colocar a mensagem para um level < 100, ficaria assim: local lvlLimite = 100 -- msg for lvl < 100 function onLogin(cid) if getPlayerLevel(cid) < lvlLimite then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Bienvenido al servidor, encontraras mucha diversion =) a nivel 210 podras usar el comando !viptest y obtendras 3 dias vip") end return TRUE end
  6. Em actions/scripts, duplique um arquivo e nomeie para "alavancaTele" sem as aspas e nele cole: function onUse(cid, item, fromPosition, itemEx, toPosition) local posItens = {x=123, y=432, z=7} -- posição em que estarão os itens. local itensCheck = {1234, 4562} -- id dos itens que devem estar na "posItens" ao apertar a alavanca. local removeItens = true -- deve remover os itens? coloque "true" para remover ou "false" para não remover. local posTele = {x=546, y=987, z=6} -- posição que sera teleportado caso os itens estajam certos. local itens = {} for i=1, #itensCheck do for o=1, 255 do posItens = {x=posItens.x, y=posItens.y, z=posItens.z, stackpos=o} if isInArray(itensCheck, getThingfromPos(posItens).itemid) then itens[i] = getThingfromPos(posItens).uid break end end end if #itens == #itensCheck then if removeItens then for i=1, #itens do doRemoveItem(itens[i]) end end doTransformItem(item.uid, item.itemid == 10044 and 10045 or 10044) -- você deve colocar a alavanca 10044 com seu mapa editor, ou substituir esses numeros pelo id da sua alavanca virada para direita e esquerda. doTeleportThing(cid, posTele) doSendMagicEffect(posTele, CONST_ME_TELEPORT) else doPlayerSendCancel(cid, "Coloque os itens corretos para teleportar!") end return TRUE end Agora em actions.xml cole a tag: <action actionid="2934" script="alavancaTele.lua"/> Por último é só ir na alavanca desejada com seu mapa editor e colocar o actionid=2934.
  7. Oque o @saulins tava tentando fazer era colocar exausted. Então achei lgl por exausted e te passar pq pode ser útil: local classeSoul = { [1] = 200, -- coloque o id da classe entre os COLCHETES e a quantidade de soul do lado. [2] = 300, [3] = 250, [4] = 100 } local porcentMax = 20 -- o potion vai encher no maximo 20% de soul, ou seja, se o player tiver no maximo 100 de soul o potion vai encher de 1 á 20 de soul. local exausted = 3 -- aqui você poem o tempo em segundos que o exausted vai durar. function onUse(cid, item, frompos, itemEx, topos) if getPlayerStorageValue(cid, 43216) > os.time() then doPlayerSendCancel(cid, "You are exausted, wait "..(getPlayerStorageValue(cid, 43216) - os.time()).." seconds.") return true end if getPlayerSoul(cid) < classeSoul[getPlayerVocation(cid)] then doPlayerAddSoul(cid,math.random(1,classeSoul[getPlayerVocation(cid)]*(porcentMax/100))) doSendMagicEffect(getCreaturePosition(cid), 13) setPlayerStorageValue(cid, 43216, os.time()+exausted) doRemoveItem(item.uid) else doPlayerSendCancel(cid, "Sorry, you are max soul.") doSendMagicEffect(getCreaturePosition(cid), 2) end return true end
  8. que estranho... tenta agora, modifiquei la em cima.
  9. hitar? É uma spell de trap, queis que hite aonde?
  10. Exclui o tiledance.lua da pasta movementes e no lugar do teu auto-kick poem isso: local config = { tempo = 15, -- Tempo em minutos storage = 20000, -- não mexa aqui teleport = {x=160, y=54, z=7} -- coordenadas do seu templo } function onStepIn(cid, item, frompos, topos) if (getPlayerStorageValue(cid, 302124) > 0) then doPlayerSendTextMessage(cid, 22, "Você não pode subir com dancing system ativado.") doTeleportThing(cid, fromPosition, false) return true end if isPlayer(cid) == TRUE then if getPlayerStorageValue(cid, config.storage) <= 0 then kick1 = addEvent(setPlayerStorageValue, config.tempo*60*1000-1000, cid, config.storage, -1) kick2 = addEvent(doTeleportThing, config.tempo*60*1000-500, cid, config.teleport) kick = addEvent(doRemoveCreature, config.tempo*60*1000, cid) doPlayerSendTextMessage(cid, 22, "[Trainer]: Movimente-se a cada " .. config.tempo .. " minutos, caso contrário, seu char será deslogado.") setPlayerStorageValue(cid, config.storage, 1) end end end function onStepOut(cid, item, frompos, topos) setPlayerStorageValue(cid, 302123, 0) if isPlayer(cid) == TRUE then if getPlayerStorageValue(cid, config.storage) >= 1 then setPlayerStorageValue(cid, config.storage, -1) doPlayerSendTextMessage(cid, 23, "System kick off!") stopEvent(kick) stopEvent(kick1) stopEvent(kick2) end end end E preserve apenas as 2 tags do autokick no xml. E use o talk de dancesystem como eu te passei no primeiro post.
  11. jhon992

    Bug Addon Doll

    Tente utilizar outro script de addon dolls ou passe seu script pra galera da uma analisada. Talkaction Action
  12. by VodKart: local requiredTime = 15 -- dias pra executar. function onThink(interval, lastExecution) doSaveServer() local result_plr = db.getResult("SELECT * FROM `houses`;") if(result_plr:getID() ~= -1) then while(true) do local owner = tonumber(result_plr:getDataInt("owner")) local hid = tonumber(result_plr:getDataInt("id")) local lastlogin = 0 local result = db.getResult("SELECT * FROM `players` WHERE `id` = ".. owner ..";") if(result:getID() ~= -1) then while(true) do lastlogin = tonumber(result:getDataInt("lastlogin")) if not(result:next()) then break end end result:free() end if lastlogin < os.time() - requiredTime * 60 *60 * 24 then setHouseOwner(hid, 0, true) end if not(result_plr:next()) then break end end result_plr:free() end return TRUE end
  13. se não funcionar, usa esse: local temp = { exhausted = 30, -- tempo em segundos storage = 58589 } function onStepIn(cid, item, position, fromPosition) if(getPlayerStorageValue(cid, temp.storage) > os.time()) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Volte após "..(getPlayerStorageValue(cid, temp.storage) - os.time()).." segundos.") doTeleportThing(cid,fromPosition) else setPlayerStorageValue(cid, temp.storage, os.time() + temp.exhausted) end return true end
  14. @GodJean, as tag's continuam a msm, basta subistituir o que tem no arquivo "itemm.lua" por isso: local itemTransf = { -- id do item que tem que ter, id do item que vai transformar [7890] = 1234, [8909] = 3452, [8976] = 5431 } function onDeath(cid, corpse, killer) if itemTransf[getPlayerSlotItem(cid, 2).itemid] then doTransformItem(getPlayerSlotItem(cid, 2).uid, itemTransf[getPlayerSlotItem(cid, 2).itemid]) end return true end
  15. @JeanDoido, você precisa das sources do seu server para fazer isso. As sources são os arquivos que são compilados para criar o executavel de um server. Lá estão todas as funções entre outras coisas de um servidor. Pesquise por compilando sources 8.6 que você encontrara algo relacionado que explique melhor para você.
  16. @caotic, n ta pronto, sóh dei a base como fazer caso ele queira que mais itens se transformem em outros. finaliza o script aew.
  17. Belos mapas. Gostei mais da cachoeira, sempre acho show cachoeiras. Achei estranho a penúltima, que tem uma arvore que sai do andar debaixo e a parte de cima o chão aparenta que esta sem acabamento.
  18. @caotic, usa assim: local itemTransf = { -- id do item que tem que ter, id do item que vai transformar [7890] = 1234, [8909] = 3452, [8976] = 5431 } if itemTransf[getPlayerSlotItem(cid, 2).itemid] then doTransformItem(getPlayerSlotItem(cid, 2).uid, itemTransf[getPlayerSlotItem(cid, 2).itemid]) end
  19. #Reportado, @Smartbox. Estou considerando seu post como flood, pois você posta códigos que não funcionam com variáveis inexistentes sem sintaxe correta, e não é a primeira vez que faz isso. Preste mais atenção e teste seus códigos antes de posta. E nem responda a isso senão vou considerar outro flood, caso queira tirar satisfação mande private.
  20. local classeSoul = { [1] = 200, -- coloque o id da classe entre os parenteses e a quantidade de soul do lado. [2] = 300, [3] = 250, [4] = 100 } local porcentMax = 20 -- o potion vai encher no maximo 20% de soul, ou seja, se o player tiver no maximo 100 de soul o potion vai encher de 1 á 20 de soul. function onUse(cid, item, frompos, itemEx, topos) if getPlayerSoul(cid) < classeSoul[getPlayerVocation(cid)] then doPlayerAddSoul(cid,math.random(1,classeSoul[getPlayerVocation(cid)]*(porcentMax/100))) doSendMagicEffect(getCreaturePosition(cid), 13) else doPlayerSendCancel(cid, "Sorry, you are max soul.") doSendMagicEffect(getCreaturePosition(cid), 2) end return true end
  21. local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 30) local area = createCombatArea(AREA_SQUARE1X1) setCombatArea(combat, area) function onCastSpell(cid, var) doPlayerAddItem(cid,8858,1) return doCombat(cid, combat, var) end
  22. faiz assim, posta teu script autokick.lua que eu modifico pra ti.
  23. http://www.xtibia.co...32#entry1241732 http://www.xtibia.co...events-invasao/
  24. Level 600 , seria lgl tomar um exori gran dele. saidajas Pena que o kra n é Br. =/ Rep+ Anne, e continue contribuindo com a comunidade.
  25. no teu arquivo login.lua, na pasta data/creaturescripts/scripts. antes do ultimo return true cole isso: local pos_temple = {x=100, y=100, z=7} -- posição do templo if isPremium(cid) and getPlayerStorageValue(cid, 43251) ~= 1 then setPlayerStorageValue(cid, 43251, 1) elseif not isPremium(cid) and getPlayerStorageValue(cid, 43251) == 1 then setPlayerStorageValue(cid, 43251, -1) doTeleportThing(cid, pos_temple) end
  • Quem Está Navegando   0 membros estão online

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