Ir para conteúdo

Demonbholder

Infante
  • Total de itens

    1551
  • Registro em

  • Última visita

  • Dias Ganhos

    24

Tudo que Demonbholder postou

  1. ta ai: function onSay(cid, words, param) local rank = {["mana"] = "manamax", ["life"] = "healthmax"} local str = nil local limit = 10 if not rank[param] then doPlayerSendCancel(cid, "Rank não disponível.") end local query = db.getResult("SELECT name FROM players ORDER BY " .. rank[param] .. " DESC;") for i = 1, limit do str = str and str .. "," .. query:getDataString("name") or query:getDataString("name") query:next() end doPlayerSendTextMessage(cid, 4, str) return true end Em limit vc escolha quantos vão entrar pro rank.
  2. local function isWalkable(position, cid) position.stackpos = 0 if getTileThingByPos(position).uid ~= 0 then local tile = getTileInfo(position) if tile.protection == false and tile.house == false and getTopCreature(position).uid == 0 and doTileQueryAdd(cid, position) == RETURNVALUE_NOERROR then return true end end return false end function onUse(cid, item, fromPosition, itemEx, toPosition, position) local allowed = {3, 7} if isInArray(allowed, getPlayerVocation(cid)) then local fromPosition,toPosition = {x = 32523, y = 32205, z = 7},{x = 32546, y = 32223, z = 7} -- começo e final da ára for x = fromPosition.x, toPosition.x do for y = fromPosition.y, toPosition.y do local pos = {x=x, y=y, z=fromPosition.z} if isWalkable(pos, cid) then doTeleportThing(cid, pos) end end end else doPlayerSendCancel(cid, "Você não é da vocação necessária.") end return true end Dentro de allowed vc coloca as vocações permitidas. No caso ta 3 e 7, ou seja, paly e rp.
  3. se eu não respondi é porque eu não sei cara. isso ai deve ser bem difícil e duvido que alguém faça.
  4. tenta assim: local DOOR_LEVER = { [1945] = 1211, [1946] = 1212 } local DOOR_POSITION = {x = 0, y = 0, z = 7} function onUse(cid, item, fromPosition, itemEx, toPosition) if not DOOR_LEVER[item.itemid] then return false end local door = getTileItemById(DOOR_POSITION, DOOR_LEVER[item.itemid]) local newitem = item.itemid == 1945 and 1946 or 1945 if door.uid > 0 then doTransformItem(door.uid, DOOR_LEVER[newitem]) end doTransformItem(item.uid, newitem) return true end
  5. Desintegrar ao usar o item? Se sim, ai vai: local vials = { [7478] = 50, [7636] = 100, [7635] = 200, [7634] = 300 } function onUse(cid, item) doPlayerAddMoney(cid, vials[item.itemid]) doRemoveItem(item.uid) return true end Basta mudar o dinheiro que ele vai ganhar ali na tabela depois do id de cada vial.
  6. Adiciona uma vírgula depois do número 1211.
  7. Proteção para os monstros: 1º Em data/creaturescripts/lib, abra o arquivo creaturescripts.lua e cole isto no final dele: login_delay_storage = 15007 login_delay_time = 7 2º Crie um arquivo .lua em data/creaturescripts/scripts, e cole isto nele: function onLogin(cid) setPlayerStorageValue(cid, login_delay_storage, login_delay_time + os.time()) registerCreatureEvent(cid, "MonsterProtect") return true end 3º Crie outro arquivo .lua na mesma pasta e cole isto nele: function onStatsChange(cid, attacker, type, combat, value) if type == STATSCHANGE_HEALTHLOSS and isMonster(attacker) then if getPlayerStorageValue(cid, login_delay_storage) - os.time() >= 0 then doMonsterChangeTarget(attacker) return false end end return true end 4º Em data/creaturescripts, abra o arquivo creaturescripts.xml e cole isto em algum lugar dele: <event type="login" name="LoginProtect" event="script" value="NomeDoArquivo1.lua"/> <event type="statschange" name="MonsterProtect" event="script" value="NomeDoArquivo2.lua"/> OBS: substitua onde diz NomeDoArquivo1 e NomeDoArquivo2.
  8. ta meio vago esse seu pedido. vê se é isso: function onUse(cid, item) addVipDaysByAccount(getPlayerAccountId(cid), 30) doPlayerSendTextMessage(cid, 22, "Você ganhou 30 dias vip.") doRemoveItem(item.uid) return true end
  9. function onStepIn(cid, item, position, fromPosition) local tiles = { [????] = {resets = {0,5}, storage = 97651, pos = {x = 112, y = 708, z = 4}}, [????] = {resets = {6,15}, storage = 97652, pos = {x = 110, y = 705, z = 6}}, [????] = {resets = {16,30}, storage = 97653, pos = {x = 113, y = 708, z = 7}}, [????] = {resets = {31, math.huge}, storage = 97654, pos = {x = 111, y = 708, z = 5}}, } local piso = tiles[item.actionid] if piso then if getPlayerStorageValue(cid, 1020) >= piso.resets[1] and getPlayerStorageValue(cid, 1020) <= piso.resets[2] then if getPlayerStorageValue(cid, piso.storage) == 1 then doTeleportThing(cid, piso.pos) else doPlayerSendCancel(cid, "Você precisa de permissão.") end else doPlayerSendCancel(cid, "Você precisa de, no mínimo " .. tostring(piso.resets[1]) .. " resets para passar e no máximo " .. tostring(piso.resets[2])) end end return true end Só trocar os ???? pelo actionid dos tiles (cada tile deve ter um). Código não testado.
  10. local reward = {5878, 5902, 5890, 2480, 5876, 5947, 5948, 5891, 5887, 5889, 5888, 5875, 5880, 5892, 5893, 5924, 5885, 5887, 2182, 2186, 2185, 8911, 2181, 2183, 2190, 2191, 2188, 8921, 2189, 2187, 2392, 5809, 2193, 5903, 2160} function onDeath(cid, corpse, lastHitKiller, mostDamageKiller) if isPlayer(lastHitKiller) and isPlayer(cid) then doPlayerAddItem(lastHitKiller, reward[math.random(#reward)]) end return true end tenta isso. edit: usa a tag do death
  11. http://www.xtibia.com/forum/topic/189637-mega-wars-spirit-gems/
  12. os storages tem um número limitado de caracteres que eles podem suportar. guardando todos os nomes esse número se esgotaria rapidamente, não?
  13. Mas não é uma função que existe em lua pura...
  14. Haha deve ser engraçado ver o script funcionando. Parabéns, flw.
  15. Ideia legal, mas o código pode ser melhorado Parabéns pelo script
  16. ai, na anihi vc esquece de controlar se tem alguém fazendo a quest... no seu código vários times podem fazer a quest ao mesmo tempo.
  17. Eu já expliquei como é pra ele não usar [god] ou (cm), etc. Se ele trocar de nome pra um nome que já tenha, realmente ele vai perder o item e não vai trocar.
  • Quem Está Navegando   0 membros estão online

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