Ir para conteúdo

MaXwEllDeN

Barão
  • Total de itens

    246
  • Registro em

  • Última visita

  • Dias Ganhos

    2

Tudo que MaXwEllDeN postou

  1. function onUse(cid, item, frompos, item2, topos) if not getTileInfo(getThingPos(cid)).protection then return doPlayerSendCancel(cid, "You can only use this item in protection zone.") end setPlayerStorageValue(cid, 8422, 0) setPlayerStorageValue(cid, 23254, 50) --doPlayerRemoveItem(cid, 7855, 1) if isCreature(item2.uid) then return doPlayerSendCancel(cid, "You can only use revive in pokeballs!") end if isPlayer(item2.uid) then return doPlayerSendCancel(cid, "You cant use potions on wild pokemons.") end local x = pokeballs[getPokeballType(item2.itemid)] if not x or isInArray(x.use, item2.itemid) then return doPlayerSendCancel(cid, "Sorry, is not possible.") end if x.on or x.off then doSendMagicEffect(getThingPos(cid), 14) doRemoveItem(item.uid, 1) maxh = tonumber(getItemAttribute(item2.uid, "poke"):match("/(.+)]")) doItemSetAttribute(item2.uid, "poke", getItemAttribute(item2.uid, "poke"):sub(1, findLetter(getItemAttribute(item2.uid, "poke"), "[")) .. maxh .. getItemAttribute(item2.uid, "poke"):sub(findLetter(getItemAttribute(item2.uid, "poke"), "/"))) btype = getPokeballType(item2.itemid) ons = pokeballs[btype].on doTransformItem(item2.uid, ons) doCureAllStatus(item2.uid) else doPlayerSendCancel(cid, "Sorry, is not possible.") return true end end
  2. local jailpos = { -- Posições das cadeias [1] = {x = 59, y = 52, z =6}, [2] = {x = 59, y = 52, z =5}, [3] = {x = 55, y = 47, z =6}, [4] = {x = 55, y = 47, z =5}, [5] = {x = 55, y = 52, z =6}, [6] = {x = 55, y = 52, z =5}, [7] = {x = 59, y = 47, z =5}, [8] = {x = 63, y = 52, z =5} } function onKill(cid, target, lastHit) if isPlayer(target) and getPlayerVocation(cid) == getPlayerVocation(target) then return true end doBroadcastMessage("O jogador " .. getPlayerNameById(cid) .. " foi preso por matar um jogador da mesma gangue.") return true end
  3. Verifica se instalou direito as tags do creaturescript. E pro segundo erro é só colocar a área como non-logout
  4. Muda o seu mapa. Poe a bandeira e o tile em lugares diferentes, simples.
  5. Não possuo o mapa. Isso ai era um mapa minúsculo só para testes.
  6. Parece ser um projeto interessante, ver um servidor com todas sprites na perspectiva correta. Além das sprites e mapa, o que vai fazer o servidor de vocês diferente dos que já existem?
  7. Perdão, a maioria dos erros já foram corrigidos. Acabei deletando o antigo do meu repositório e esqueci de fazer a edição aqui no tópico. Obrigado, já editei o link.
  8. Muito bom, Krex. Aguardo ansioso pelo término do Projeto :_) Deve ser um saco pro Mario ter que pular a bancada todo dia quando acorda para trabalhar.
  9. Fico muito feliz em ver o índice de aceitação de vocês . Se tiverem alguma sugestão sobre tutorial na área de scripting podem falar que se for possível eu tento fazer um tutorial. Abraço.
  10. Esta imagem é antiga, antigamente você só precisava clicar no tile para entregar a bandeira, só que começaram a surgir alguns problemas, como a possibilidade de alguém jogar itens no tile para atrapalhar a entrega da bandeira, então decidi fazer por movement mesmo..
  11. Para roubar não é pisando no tile, é clicando na bandeira, apenas para entregar que é pisando no tile! Abraço.
  12. O que está acontecendo exatamente? Verifique se seguiu o tópico exatamente, sem fazer nada a mais ou a menos.
  13. Vlw, mas nem :x Não, a sala não pode ter acesso ao evento. Tem que montar uma cidade, que tenha dois templos para cada equipe.
  14. Faz o download de novo do que eu postei, ontem eu fiz o upload de uma versão que corrigia esse bug. Abraço.
  15. Atualizei o tópico e corrigi os bugs, stealth ring não dá bug, obrigado por reportar os bugs, abraço.
  16. Bug no utana vid corrigido. Tópico atualizado - 15/08/2013
  17. #Introdução Este é um sistema de rouba bandeira, no qual tem dois times que se enfrentam e tentam se infiltrar na fortaleza do inimigo, roubar a bandeira dele e retornar para sua base com ela. #Instalação Faça o download do sistema e cole na pasta do seu servidor. Download Capture The Flag 2.0Após ter instalado os arquivos nas suas respectivas pastas e instalado as tags nos arquivos xml, abra a pasta do seu servidor, e em seguida abra a pasta spells/scripts/support, e abra o arquivo invisible.lua com algum editor de texto, depois de function onCastSpell(cid, var) cole isso: if (getPlayerStorageValue(cid, 16700) ~= -1) then return doPlayerSendCancel(cid, "Você não pode usar invisible durante o CTF!") and doSendMagicEffect(getThingPos(cid), 2) end ficando assim: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_RED) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) local condition = createConditionObject(CONDITION_INVISIBLE) setConditionParam(condition, CONDITION_PARAM_TICKS, 200000) setCombatCondition(combat, condition) function onCastSpell(cid, var) if (getPlayerStorageValue(cid, 16700) ~= -1) then return doPlayerSendCancel(cid, "Você não pode usar invisible durante o CTF!") and doSendMagicEffect(getThingPos(cid), 2) end return doCombat(cid, combat, var) end #Configuração Como na maioria dos meus códigos: as configurações ficam na lib, então: waitpos = {x = 93, y = 117, z = 6}, -- Posição da sala de espera tppos = {x = 92, y = 117, z = 7}, -- Onde o TP vai aparecer days = {2, 5, 7}, -- Dias que o evento vai abrir xp_percent = 0.5, -- Porcentagem de xp que o player vai receber quando ganhar timeclose = 1, -- Tempo para iniciar o CTF winp = 10, waitpos = {x = 93, y = 117, z = 6}, -- Posição da sala de espera Posição onde os players que entrarem no teleport vão ficar esperando, até o evento iniciar tppos = {x = 92, y = 117, z = 7}, -- Onde o TP vai aparecer Posição de onde o teleport vai aparecer days = {2, 5, 7}, -- Dias que o evento vai abrir Dias que o evento vai iniciar. xp_percent = 0.5, -- Porcentagem de exp que o player vai ganhar Quando o evento acaba, os players da equipe que venceu ganham uma quantidade de experiência baseada na experiência que eles já têm, exemplo: Meu player tem 1200000000 de exp, quando o evento acabar, ele vai ganhar 0.5% da exp que ele tem, no caso desse exemplo 6000000 de exp. timeclose = 1, -- Tempo, em minutos, para iniciar o CTF Tempo para o teleport sumir e os players que estão na sala de espera serem teletransportados para o evento. winp = 10, -- Quantos pontos uma equipe precisa marcar para vencer Quantos pontos uma equipe precisa marcar para vencer o evento. Para configurar o horário que o evento vai abrir, é só você modificar na tag do globalevents.xml: <globalevent name="CTFCheck" time="19:33:00" event="script" value="CTFMax.lua"/> Você não precisa criar as bandeiras pelo map editor. O script irá adicioná-las automaticamente. É isso, essa versão é uma remake, vários bugs reportados pela galera na v.1 foram corrigidos, o script ficou mais simples
  18. Já foi postado: http://www.xtibia.com/forum/topic/196414-soul-system/ Dá um feedback já no tópico se der algum erro, ou se funcionar certo, ok? [:
  19. Olá, galerinha. Hoje estou trazendo a vocês um modo, ao meu ver, mais prático e organizado de configurar e gerenciar os logs de quest do seu servidor. Eu sempre gostei de RPG e tudo que fosse relacionado a ele, quests bem elaboradas com npcs, desafios e coisas do tipo sempre me atraíram muito, e ai que entra o questlog, quando você tem várias missões é bom dar uma orientação pro player do que ele tem que fazer(mas não spoilers, isso tira toda a graça da missão), o questlog é uma ferramenta bem bacana que pode servir para dar essa orientação ao player e lembrar a ele que ele tem algumas missões ou etapa de missão, que não foi concluída e que ele pode fazer para receber alguma recompensa. Por padrão os servidores já vêm com um único arquivo que tem a responsabilidade de guardar as informações sobre as missões, só que eu sempre achei que ter várias informações em um único arquivo tornava tudo muito desorganizado, uma bagunça. Então tive a ideia de fazer uma pasta e colocar lá dentro arquivos com informações sobre as missões, e logo quando o servidor estivesse sendo iniciado um script simples iria transformar esses arquivos Lua, em um quest.xml prontinho para ser usado, bem vamos deixar de papo-furado e botar a mão na massa. Em primeiro lugar é bom você fazer um backup do seu quest.xml antigo, só pra ter guardadinho caso tenha necessidade de usar depois. Em segundo, você deve baixar o arquivo abaixo, descompactar ele e jogar no diretório raiz do seu OTServer. Lua quest log - MaXwEllDeNPra configurar é simples, você vai na pasta questlog que fica dentro da pasta data do seu servidor e adiciona os arquivos lua lá com as configurações da sua quest. Tem um arquivo de exemplo lá na pasta já, é só baixar e ler, o arquivo está todo comentado é só ler e aprender , o nome da quest vai ser igual ao nome do arquivo(não pode usar acentos no nome da missão). Essa é a quest de exemplo que vem na pasta questlog, quando você baixar o arquivo anexado: -- Lua quest log -- by Maxwell Alcantara[MaXwEllDeN] -- maxwellmda@gmail.com local geral = { storage_id = 30031, -- Storage value da quest startstorage = 1, -- Valor inicial da storage(Só vai aparecer no quest log do player quando a storage 30031 tiver o id 1) missions = { ["The head of Kiper"] = { -- Nome da missão 1 storageid = 1001, -- Storage value da missão start_value = 1, -- valor inicial da storage end_value = 3, -- valor final da storage states = { [1] = "Kill Kiper!", -- Descrição do state 1 [2] = "Give his head to Talaturen!", -- Descrição do state 2 [3] = "Take the medal you got from Talaturen to Ruly!", -- Descrição do state 3 } }, ["Ruly's Revenge"] = { -- Nome da missão 2 storageid = 30031, -- Storage value da missão start_value = 4, -- valor inicial da storage end_value = 6, -- valor final da storage states = { [4] = "You received a document with instructions from Ruly, follow them.", -- Descrição do state 4 [5] = "Go back to Ruly and tell him that you followed his instructions to the end.", -- Descrição do state 5 [6] = "You got a reward from Ruly, he was very thankful with that you helped him to take his revenge.", -- descrição do state 6 } }, } } É só isso pessoal, até a próxima .
  20. Bem bacana . Tipo, acho que ficaria melhor ainda se você usasse um atributo no item pra guardar o a experiência que o cara pode ganhar ainda.
  21. Não vai funcionar bem como no exercício. Olha ai está o seu código, comentado: function onUse(cid, item, fromPosition, itemEx, toPosition) doPlayerAddExperience(cid, 15000) -- Vai adicionar 15000 de experiência para o player que usou a espada em alguém doCreatureSay(cid, "Aaaaii Delicia",19) -- O player que usou a espada vai falar Aaaaaai Delicia doPlayerSendCancel(uid, PEEEEIDEEEI) -- Vai dar erro, 1º Porque uid não é uma criatura válida, segundo porque PEEEEEEEEEEEIDEI não é uma string("PEEEEEEEEIDEIIIII", com àspas) end return true -- return true no lugar errado Correção no seu código: function onUse(cid, item, fromPosition, itemEx, toPosition) doPlayerAddExperience(cid, 15000) -- Vai adicionar 15000 de experiência para o player que usou a espada em alguém doCreatureSay(itemEx.uid, "Aaaaii Delicia",19) -- O player que estiver na mira da espada vai falar Aaaaaai Delicia doPlayerSendCancel(cid, "PEEEEIDEEEI") -- Você vai receber uma mensagem dizendo: PEEIIDEEEI return true -- No lugar certo end áa,, você poderia me explicar o porque? que o Return true tem que ficar naquele lugar? Porque tipo, do modo que você colocou, ele estava fora da função e, fora da função principal ele é inútil, ai ele tem que ser colocado no final da função principal, antes do último end, pra indicar que ocorreu tudo bem!
  • Quem Está Navegando   0 membros estão online

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