Ir para conteúdo

bepokemon

Visconde
  • Total de itens

    273
  • Registro em

  • Última visita

  • Dias Ganhos

    4

Tudo que bepokemon postou

  1. bepokemon

    Itens Vip Por Storage

    function onEquip(cid, item, slot) if getPlayerStorageValue(cid, getItemAttribute(item.uid, "storagetoequip")) == -1 then doPlayerSendCancel(cid, "You can't equip this item.") return false end return true end Agora soh colocar um valor do storage que deve ser 1 no attributo do item "storagetoequip". Exemplo: doItemSetAttribute(item.uid, "storagetoequip", 15123) setPlayerStorageValue(cid, 15123, 1)
  2. function onUse(cid, item, frompos) local townid, temple = item.uid - 15000, getTownTemplePosition(townid) doPlayerSetTown(cid, townid) doSendMagicEffect(frompos, 12) doTeleportThing(cid, temple) doPlayerSendTextMessage(cid, 22, "You're now citizen of "..getTownNameById(townid)..".") return TRUE end No actions.xml coloque: <action fromuid="15000" touid="15100" script="script.lua" /> E na estatua voce coloca o uid de acordo com o ID da cidade: (id da cidade + 15000), Exemplo: Primeira cidade: 15001 Segunda cidade: 15002 Quinta cidade: 15005
  3. Pra parecer no site vocë deve pedir na secao de pedidos para websites. Já meu script, ele está como uma talkactions, exatamente como pediram.
  4. Usem: doTargetCombatHealth(0,cid,COMBAT_PHYSICALDAMAGE,-getCreatureHealth(cid),-getCreatureHealth(cid),CONST_ME_NONE) Buga menos.
  5. Se for o do Mock é movements.
  6. Teria como você ver se existe algum erro no meu script? Se tiver e você puder concertar fica muito mais fácil pra ele configurar o script... @Seu script local doors = { [1] = {x=361, y=72, z=7}, [2] = {x=362, y=72, z=7}, } local config = { openID = 9170, closedID = 9169 } function onSay(cid, words, param) if param == "open" then for i,x in ipairs(doors) do for stack = 0, 255 do x.stackpos = stack local item = getThingFromPos(x) if (item.itemid == config.closedID and param == "open") then doTransformItem(item.uid, config.openID) elseif (item.itemid == config.openID and param == "close") then doTransformItem(item.uid, config.closedID) end end end end return true end Dá no mesmo, não?
  7. Não entendi pra que ele fez uma tabela list com todos os players online, se já tinha o comando retornando uma tabela exatamente igual ...
  8. function onSay(cid, words, param) local maxlengh, itemid, list = 15, 2361, {'god','gm','adm','[',']','(',')','{','}'} for _,blocked in pairs(list) do if string.find(param, blocked) then doPlayerSendCancel(cid, "A letter or word of this name is blocked.") return true end end if tostring(param) == "" then doPlayerSendCancel(cid, "Command param must be a name.") return true end if string.len(param) > maxLen then doPlayerSendCancel(cid, "Your new name cannot be longer than "..maxlengh.." letters.") return true end if not getTilePzInfo(getCreaturePosition(cid)) then doPlayerSendCancel(cid, "You can't change your name outside protection zone.") return true end local p = ("SELECT FROM `players` WHERE `name` = '".. param .."';") if p:getID() ~= -1 then doPlayerSendCancel(cid, "There is already someone named "..param..".") return true end if doPlayerRemoveItem(cid, itemid, 1) then local guid, newname = getPlayerGUID(cid), param doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `name` = '"..newname.."' WHERE `id` = "..guid..";") else doPlayerSendCancel(cid, "You need at least one " .. getItemNameById(itemid) .. " to change your name.") end return true end
  9. Eu tambem imaginei que nao existisse, mas vi uma pessoa fazendo. Malditas mas influencias.
  10. Voce tem que deixar /\< na agua e \/> na agua. Como se fosse selecionar uma area.
  11. function onSay(cid, words, param) local range = 1 p = string.explode(param, ',') if not p[2] then doPlayerSendCancel(cid, "Not enough params, use: "..words.." itemid, quant.") return true end for _,pid in ipairs(getPlayersOnline()) do if getDistanceBetween(getThingPos(pid), getThingPos(cid)) <= range then doPlayerAddItem(pid, p[1], p[2]) doPlayerSendTextMessage(pid, MESSAGE_INFO_DESCR, getCreatureName(cid).." awarded you with "..p[2].." "..p[1]..".") doSendMagicEffect(getThingPos(pid), 27) end end return true end Como utilizar: /comando itemid, quantidade Ele vai dar a quantidade de itemid para os players que tiverem em uma distancia menor ou igual a range.
  12. Ahhhh tah. Sobre 6 NPC eu que fiz merda. Pra mim voce retirava 4 paredes ... ._. Ja mudei la o script.
  13. bepokemon

    Ajuda Ae

    Pronto, agora se tiver aberto ele fala quanto falta pra fechar, e se tiver fechado, quanto falta pra abrir.
  14. Desculpe não entendi! Meta um exemplo com esse script, mudando dois players (X=1119, Y=857 , Z= 7 e o outro X=1119, Y=857, Z=8) por exemplo, para outra localização qualquer Voce disse um quadrado, entao em fromPos voce coloca a posicao encima do quadrado, toPos, embaixo e newPos para onde os players irao. quadrado = { {fromPos,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,toPos}}
  15. Voce mudous as posicoes em config.fromPos e config.toPos? E eh o contrario .. [9170] = 9169
  16. Oque tem de diferente? Esta na linguagem do jogo? -.-
  17. Isso é um conjunto de creaturescripts. E pode existir se alguém o fizer. Mas como nao estou em casa estou deixando CreatureScripts para quando estiver com meu teclado e meu Notepad ++. Posso tentar fazer pra voce assim que eu estiver em casa.
  18. function onCastSpell(cid, var) local table = {[0] = 2, [1] = 3, [2] = 0, [3] = 1} if (getPlayerLookDir(getCreatureTarget(cid)) == table[getPlayerLookDir(cid)]) then return doCombat(cid, combat, var) else doPlayerSendCancel(cid, "You should cast this spell in the target's back.") end return false end
  19. Nao, vai precisar fazer um loop em uma table ou array. function doPlayerRemoveItemTable(cid, table) for itemid,count in pairs(table) do if not (getPlayerItemCount(cid, itemid) >= count) then return false end end return true end Agora eh soh declarar a funcao e utilizar uma tabela como esta: local reqItems = {[itemid] = quant,[itemid2] = quant2} if doPlayerRemoveItemTable(cid, reqItems) then
  20. Existiam duas formas de fazer, adicionando todas as portas e posicoes em uma tabela ou pegando uma area que contenha todas elas, achei mais pratico a segunda forma entao aqui vai: function onSay(cid, words, param) local table, config = { toClose = {[idportaaberta] = idportafechada}, -- Coloque aqui os ids das portas seguindo o exemplo, a segunda tabela vai ser criada sozinha toOpen = {} }, { fromPos = {x=x,y=y,z=z}, toPos = {x=x,y=y,z=z} } for opened,closed in ipairs(table.toClose) do table.toOpen[closed] = opened end for x=config.fromPos.x, config.toPos.x do for y=config.fromPos.y, config.toPos.y do local doorPos = {x=x,y=y,z=config.fromPos.z} for stack=1,20 do doorPos.stackpos = stack for _,to in ipairs(table) do door = getThingFromPos(doorPos) if to[door.itemid] then doTransformThing(door.uid, to[door.itemid]) end end end end end return true end Aqui tambem coloquei o script identado no pastebin. OBS: Esse script vai ser como !coliseum e vai abrir se tiver fechado e fechar se tiver aberto.
  21. Na verdade nao eh muito dificil nao .. Rssss. Soh que com esse teclado fudido e varios erros do XTibia e sem uma ferramente pra programar fica dificil eu fazer aqui ... Faco em 20 minutos amanha .. >
  22. bepokemon

    Ajuda Ae

    Globalevent: function onThink(interval, lastExecution, thinkInterval) local time = 30 * 60 * 1000 doCreateTeleport(1387, {x=664, y=577, z=12}, {x=162, y=40, z=7}) doBroadcastMessage("O portal do evento da vip5 'gratis' foi aberto ele durara 30 minutos.") setGlobalStorageValue(21973, os.time()+time) addEvent(doFinishEvent, time, {x=162, y=40, z=7}) end function doFinishEvent(pos) doBroadcastMessage("O portal do evento foi fechado. Próximo evento em 3 horas.") doRemoveItem(getTileItemById(pos, 1387).uid, 1) doSendMagicEffect(positioni, CONST_ME_POFF) end Talkaction: function onSay(cid, words, param) local time, startTime, timeToOpen = 30 * 60 * 1000, getGlobalStorageValue(21973)-time, (startTime + 3 * 60 * 60 * 1000) - os.time() if os.time() >= getGlobalStorage(21973) then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "O portal já está fechado. Um novo evento acontecerá em ".. timeToOpen .." segundos.") else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "O portal do evento se fechará em: "..getGlobalStorage(21973) - os.time().." segundos.") end return true end
  23. Nome do PET = no /m safira e nome no jogo (PET) Safira Voce tem que colocar o nome que esta no Monsters.xml. Que no caso eh apenas "Safira".
  24. Nao precisa ficar dando REP+ por uma semana nao ... Soh fiz meu trabalho.
  • Quem Está Navegando   0 membros estão online

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