Ir para conteúdo

Pesquisar na Comunidade

Mostrando resultados para as tags ''sistema''.

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Fóruns

  • xTibia - Notícias e Suporte
    • Regras
    • Noticias
    • Soluções
    • Projetos Patrocinados
    • Tutoriais para Iniciantes
    • Imprensa
  • OTServ
    • Notícias e Debates
    • OTServlist
    • Downloads
    • Recursos
    • Suporte
    • Pedidos
    • Show-Off
    • Tutoriais
  • OFF-Topic
    • Barzinho do Éks
    • Design
    • Informática

Encontrar resultados em...

Encontrar resultados que contenham...


Data de Criação

  • Início

    FIM


Data de Atualização

  • Início

    FIM


Filtrar pelo número de...

Data de Registro

  • Início

    FIM


Grupo


Sou

  1. Boa Noite Galera!! Coloquei um sistema de auro no meu servidor, dai quando o player desloga do server da esse erro alguém pode arrumar pra mim ?? aqui esta o erra que aparece no Distro, estou usando o fts 0.4 [25/02/2016 19:27:19] [Error - CreatureScript Interface] [25/02/2016 19:27:19] In a timer event called from: [25/02/2016 19:27:19] data/creaturescripts/scripts/login.lua:onLogin [25/02/2016 19:27:19] Description: [25/02/2016 19:27:19] (luaGetThingPosition) Thing not found [25/02/2016 19:27:19] [Error - CreatureScript Interface] [25/02/2016 19:27:19] In a timer event called from: [25/02/2016 19:27:19] data/creaturescripts/scripts/login.lua:onLogin [25/02/2016 19:27:19] Description: [25/02/2016 19:27:19] (internalGetPlayerInfo) Player not found when requesting player info #6 [25/02/2016 19:27:19] [Error - CreatureScript Interface] [25/02/2016 19:27:19] In a timer event called from: [25/02/2016 19:27:19] data/creaturescripts/scripts/login.lua:onLogin [25/02/2016 19:27:19] Description: [25/02/2016 19:27:19] (internalGetPlayerInfo) Player not found when requesting player info #6 [25/02/2016 19:27:19] [Error - CreatureScript Interface] [25/02/2016 19:27:19] In a timer event called from: [25/02/2016 19:27:19] data/creaturescripts/scripts/login.lua:onLogin [25/02/2016 19:27:20] Description: [25/02/2016 19:27:20] (luaGetCreatureStorage) Creature not found [25/02/2016 19:27:20] [Error - CreatureScript Interface] [25/02/2016 19:27:20] In a timer event called from: [25/02/2016 19:27:20] data/creaturescripts/scripts/login.lua:onLogin [25/02/2016 19:27:20] Description: [25/02/2016 19:27:20] data/lib/Pivi.lua:34: attempt to compare number with boolean [25/02/2016 19:27:20] stack traceback: [25/02/2016 19:27:20] data/lib/Pivi.lua:34: in function <data/lib/Pivi.lua:19> Aqui esta o arquivo .lua function doUseGem(cid, item) local voc = getPlayerVocation(cid) local interval = gems.interval[voc] if item.itemid ~= gems.id[voc] or getPlayerStorageValue(cid, gems.storage[voc]) > 0 then return FALSE end setPlayerStorageValue(cid, gems.storage[voc], 1) sendGemEffect(cid, gems.storage[voc], gems.interval[voc]) doRemoveItem(item.uid, 1) return TRUE end function sendGemEffect(cid, storage, interval) local pos = getThingPos(cid) local voc = getPlayerVocation(cid) local color = 1 if voc == 5 then color = gemMsg.colorDruid[math.random(1,#gemMsg.colorElderDruid)] elseif voc == 6 then color = gemMsg.colorSorcerer[math.random(1,#gemMsg.colorMasterSorcerer)] elseif voc == 7 then color = gemMsg.colorPaladin[math.random(1,#gemMsg.colorRoyalPaladin)] elseif voc == 8 then color = gemMsg.colorKnight[math.random(1,#gemMsg.colorEliteKnight)] end doSendAnimatedText(pos, gemMsg.rnd[math.random(1,#gemMsg.rnd)], color) if getPlayerStorageValue(cid, gems.storage[getPlayerVocation(cid)]) >= 1 then addEvent(sendGemEffect, interval, cid, storage, interval) end end function doRemoveGemEffect(cid) if getPlayerStorageValue(cid, gems.storage[getPlayerVocation(cid)]) < 1 then return FALSE end setPlayerStorageValue(cid, gems.storage[getPlayerVocation(cid)], 0) return TRUE end function doRemoveAllGemEffect(cid) for i = 1, table.maxn(gms.storage) do setPlayerStorageValue(cid, gems.storage[i], 0) end return TRUE end function isGemActivated(cid) if getPlayerStorageValue(cid, gems.storage[getPlayerVocation(cid)]) > 0 then return TRUE end return FALSE end
  2. Bom dia, preciso de uma ajuda em um sistema, o mesmo será assim, quando o jogador atingir os três primeiro ranking ele receberá uma Nova Outfit no caso existirá diferença entra as Outfit das três posições. Exemplo: 1° terá um Outfit 2° terá outra Outfit 3° terá outra outifit. Mas lembrando isso irá varia se o primeiro cair ele perderá a primeira e ganhará a segunda e se ele cair pra terceiro ele perderá a segunda e ganhará a terceira e se cair para 4 ele vai ter perdido todas as outfits. Isso valerá para todas as posições, essa variação ocorrerá imediatamente! com isso se alguém puder me ajudar, ficarei muito grato. Desde já agradeço, Att.: Adeilton Pessini Se por um acaso não entender me adicionem no Skype, adeilton.delpuppo Me desculpe sou novo aqui, se o mesmo estiver em uma área errada mova-o.
  3. Bom oque eu venho pedir a voces não sei se ja existe aqui (procurei e nao achei). o que eu preciso e isso aqui: um teleporte abre e fica aberto 2 minutos ai os players entram e sao levados a um lugar o teleporte e fechado nasce um monstro e o ultimo a sobreviver a esse monstro ganha um premio. tipo dinheiro ou x item. quem puder me ajuda agradeço des de ja...
  4. Boa Noite Galera Xtibiana, venho por esse tópico fazer 1 pedido. - Bom meu pedido é um sistema simples de profissão para servidor 8.60, onde por exemplo 1 jogador que é sorcerer se aperfeiçoa falando com 1 npc, esse npc vai perguntar se ele quer ser ferreiro, alquimista ou minerador. Após ele escolher a profissão ele passa a ter esse cargo e beneficios sendo assim continua sendo 1 sorcerer com suas devidas magias, mas em si 1 ferreiro por exemplo. Bom, oque cada uma dessas 3 classes vai fazer? Ferreiro: Vai poder forjar itens, somente ele vai poder usar o item de id 2557 "martelo" da use nesse item e usar emcima de algum rusty item "item sujo ou quebrado" de id 9811 9819 e 9808 , e virar um item eleátorio como armors, legs ou boots. Alquimista: Como o nome ja diz, esse cargo vai poder conjurar pots de vida ou mana. Então o jogador que tem profissão como alquimista vai fala exemplo: conjure health pot ou conjure mana potion, e vai fazer um pot eleátorio de mana ou life sendo ele ou small , strong, ultimate .. Minerador: Essa profissão é bem mais dificultosa pois para fazer sua função ele deve ter 1 item de id 2553 "pick" , usar esse item em rochas especiais e com isso podendo sair "diamantes" dessas rochas e trocar elas por golds ou itens no mercado. Essas rochas séria de id 8633 8634 8635 8636 , e os diamantes que podem sair delas apos usar a pick é 2153 e 2154. É um bom sistema para um servidor rpg, espero que alguem me ajude com isso. Abraço!
  5. O script consiste em, ao clicar, lançar uma flecha que, ao chegar no target, dará certo dano. Sendo assim, um bom script para Paladino. SS: ballista.lua (data/actions/scripts) local config = { shootRange = 7, damage = {50, 100}, -- dano minimo/maximo shootEffect = CONST_ANI_HUNTINGSPEAR, impactEffect = CONST_ME_HITAREA, exhaustOnUse = 300, -- tempo de recarga em segundos direction = { [5692] = DIRECTION_NORTH, [5701] = DIRECTION_EAST, [5698] = DIRECTION_WEST, [5695] = DIRECTION_SOUTH } } local exhaust = Condition(CONDITION_EXHAUST_WEAPON) exhaust:setParameter(CONDITION_PARAM_TICKS, config.exhaustOnUse) function onUse(player, item, fromPosition, target, toPosition, isHotkey) if player:getCondition(CONDITION_EXHAUST_WEAPON) then player:sendTextMessage(MESSAGE_STATUS_SMALL, Game.getReturnMessage(RETURNVALUE_YOUAREEXHAUSTED)) return true end player:addCondition(exhaust) for i = 1, config.shootRange do local nextPosition = item:getPosition() nextPosition:getNextPosition(config.direction[item.itemid], i) local tile = Tile(nextPosition) if tile then local topCreature = tile:getTopCreature() if topCreature then toPosition:sendDistanceEffect(topCreature:getPosition(), config.shootEffect) doTargetCombatHealth(player, topCreature, COMBAT_PHYSICALDAMAGE, -config.damage[1] * i, -config.damage[2] * i, config.impactEffect) return true end end end local nextPosition = item:getPosition() nextPosition:getNextPosition(config.direction[item.itemid], config.shootRange) toPosition:sendDistanceEffect(nextPosition, config.shootEffect) return true end actions.xml (data/actions) <action itemid="id" event="script" value="ballista.lua"/> Créditos: Printer
  6. Vídeo demonstração Instalando: steal.lua (data/actions/scripts) Actions.xml (data/actions) <action itemid="id da runa/item" event="script" value="steal.lua"/> Créditos: CandleJack
  7. Falaê galera. Hoje vou trazer um script do Wise que achei bem interessante e não achei aqui. O que isso faz? Faz com que o player necessite se alimentar para parar de perder vida, caso não se alimente, sua vida irá descer até 0. Caso o player morra, quando entrar, ele vai continuar perdendo a porcentagem de HP, até que enfim se alimente. Acredito que seja bom para servidores sérios. Versões testadas: TFS 0.3.6, mas pelas funções, acho que execute de boa também com TFS 1.0 e com o TFS 0.4. Bora lá. Vá em data\creaturescripts\scripts, crie um .lua chamado checkhunger e adicione isso: -- Developed by Wise local t = { hp = 2, -- % maxTime = 25 * 60, -- minutes * 60 lossInterval = 5, -- seconds hstor = 98765 -- hunger storage } function checkHunger(cid) local h = getPlayerStorageValue(cid, t.hstor) local loss = t.lossInterval > 1 and t.lossInterval or 2 if getPlayerFlagValue(cid, PLAYERFLAG_CANNOTBEATTACKED) then return true elseif getPlayerFood(cid) < 1 then if h <= t.maxTime then if h < 0 then setPlayerStorageValue(cid, t.hstor, 0) end setPlayerStorageValue(cid, t.hstor, getPlayerStorageValue(cid, t.hstor) + 1) else addEvent(function() if isPlayer(cid) then doCreatureAddHealth(cid, -(t.hp * (getCreatureMaxHealth(cid) / 100))) end end, (loss - 1) * 1000) end else if h > 0 then setPlayerStorageValue(cid, t.hstor, 0) end end addEvent(function() if isPlayer(cid) then checkHunger(cid) end end, 1000) return true end function onLogin(cid) return checkHunger(cid) and true end Agora vá em data\creaturescripts e abra o creaturescripts.xml, adicione a seguinte tag: <event type="login" name="checkHunger" event="script" value="checkhunger.lua"/> Configuração: local t = { hp = 2, -- porcentagem de HP que o player perderá maxTime = 25 * 60, -- tempo máximo para ficar sem se alimentar em minutos * 60 (no caso, seriam 25 minutos, ou seja, 1500 segundos) lossInterval = 5, -- tempo do intervalo de perda da porcentagem do HP, em segundos (no caso, perderia a porcentagem estipulada a cada 5 segundos) hstor = 98765 -- storage que faz a contagem do tempo máximo } Créditos: Wise Enjoy it!
  8. Pessoal alguem me ajuda, tipo eu instalei esse sistema no meu otserv http://www.xtibia.com/forum/topic/172549-tibia-som-v-10-lua/. Instalei perfeitamente não tenho dúvidas... Bem quando eu digito o comando talk, abre um cmd muuuiiitoo rapido no computador hoster e fecha... Enquanto no computador Cliente fica a mensagem "Aguardando conexões" e nada acontece.... Alguem help-me! Gente ajuda porfavor ja reiniciei aquele ot milhoes de vezes e nada... tem alguma coisa errada e eu n sei... Se for local errado porfavor desculpem e troquem rapidash!
  9. Bom Pessoal, estou tentando implementar um Sistema de Guerra para domínio de uma área privilegiada, que seria o castelo. Com as atualizações do TFS 1.x eu não consigo obter sucesso com antigos scripts, por isso venho aqui pedi-lo, por gentiliza, disponibilizar um Sistema legal se for possível. Eu tive uma ideia e fiz ate o mapa, segue abaixo a minha ideia. Funcionaria assim, as guilds teriam que destruir guardas para assim dominar o castelo. Eu fiz um Mapa no qual contem 6 Guardas, seriam como uns cristais que teriam de ser quebrados para liberar um Tp/passagem/porta para ter acesso ao Guarda/Crystal principal, este se fosse destruído passaria o domínio do castelo para a guild que o destruísse. A guild que defende o castelo não consegue atacar os cristais, somente podem defende-los, cm health e atacando seus oponentes. E esse evento acontecer periodicamente, de 3 em 3 horas por exemplo e o evento ter uma duração de 20~30 minutos por exemplo, se a guild conseguir aguentar os ataques ate esse momento continua na liderança. Imagens Aqui ficaria o ultimo Guarda, no qual o tp levará, caso consigam destruir todos os outros guardas. Térreo do castelo. Barco de acesso ao Castelo. Desde já, agradeço a atenção de vocês do Fórum. Abraços Sistemas parecido tambem serve galera, basta rodar em TFS 1.0. Por Favor, ajudem, pelo menos alguma forma de começar ...
  10. Vi que muitos voltaram, principalmente meu mestre Oneshot, então voltei também. Não sei se voltei pra ficar ativo, mas de qualquer maneira, vou quebrar o gelo e postar um sistema depois de mais de um semestre inativo no fórum. Sinceramente, a qualidade da seção de scripting caiu consideravelmente. Chega a dar vergonha ver como está andando atualmente em comparação à época de novembro/dezembro do ano passado até fevereiro desse ano, em que deu aqueles problemas. São poucas as coisas que aparecem aqui que realmente são bem feitas. Bom, de qualquer maneira, fazer o quê se a maioria dos membros não consegue ver isso, deixemos rolar e tentemos restaurar o que era, né. Voltando ao tópico, trouxe pra vocês um sisteminha que funciona como um autoloot, porém, ele looteia apenas money e envia ele direto pra backpack ou direto para o banco do player (configurável), cobrando uma porcentagem do dinheiro looteado como troca pelo serviço. Exemplo, looteou 10 gold coins, cobra 10% (1 gold coin), dando pro player 9 gold coins no total. Scripts: Configurando: Para usar o sistema, use o comando /autoloot. Créditos: - Luck Oake
  11. ola!! gostaria de ajuda para mudar a posição em esta a aura do meu server quero centraliza-la melhor mais nao sei como fazer . uso pda cyan by senhor a aura ta muito pra cima do poke e nao sei aonde fica as config pra deixa -la mais pra baixo. desde ja agradeço qquer ajuda. vlw
  12. Perfect Vip system 3.0 Última atualização: 14/08/12 Versão Testada:TFS 0.3.6 - 8.54 - 8.6 - 9.6 Créditos pelas modificações: Kydrai,Vodkart e Marcryzius Oque Contém no Sistema vip 3.0? Comandos: Query Primeiro passado execute essa query na sua DB: ALTER TABLE `players` ADD `vipacess` INT(15) NOT NULL DEFAULT 0; Agora vá em Data/lib/050-function e adicione essas funções: function getCharacterAcess(cid) local query = db.getResult("SELECT `vipacess` FROM `players` WHERE `id` = "..getPlayerGUID(cid)) if query:getID() ~= -1 then return query:getDataInt("vipacess") end end function getCharacterDays(cid) local acess = math.ceil((getCharacterAcess(cid) - os.time())/(86400)) return acess <= 0 and 0 or acess end function HaveCharaterAcess(cid) return getCharacterDays(cid) > 0 and true or false end function setAcessTime(cid, time) return db.executeQuery("UPDATE `players` SET `vipacess` = "..time.." WHERE `id` = "..getPlayerGUID(cid)) end function addCharacterAcess(cid, days) local add = (days <= 0 and 1 or days)*86400 local time = getCharacterDays(cid) == 0 and (os.time() + add) or (getCharacterAcess(cid) + add) return setAcessTime(cid, time) end function doRemoveCharacterAcess(cid, days) local remove = days*86400 local time = getCharacterAcess(cid) - remove return setAcessTime(cid, (time <= 0 and 1 or time)) end function getVipAcessDate(cid) if HaveCharaterAcess(cid) then return os.date("%d/%m/%y %X", getCharacterAcess(cid)) end return false end Talkactions agora em talkactions/scripts vipsystemplayer.lua function onSay(cid, words, param) if(words == "!buyvip") then local days = 10 local price = 50000 if not doPlayerRemoveMoney(cid, price) then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você precisa de "..price.." gp's para colocar vip.") return true end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foram adicionados "..days.." dias de VIP no seu character.") addCharacterAcess(cid, days) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem "..getCharacterDays(cid).." dias de VIP, ela acaba em "..getVipAcessDate(cid)) elseif(words == "!vipdays") then return doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem "..getCharacterDays(cid).." dias de VIP. "..(getCharacterDays(cid) > 0 and "ela acaba em "..getVipAcessDate(cid).."." or "")) end return true end vipsystemgod.lua function onSay(cid, words, param) if(words == "/checkvip") then if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires param.") return true end local player = getPlayerByName(param) if not isPlayer(player) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player "..player.." not found.") return true end return doPlayerPopupFYI(cid, "O jogador tem "..getCharacterDays(player).." dias de VIP no character.") elseif(words == "/addvip") then local t = string.explode(param, ",") if not tonumber(t[2]) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.") return true end local player = getPlayerByNameWildcard(t[1]) if(not player)then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player not found.") end addCharacterAcess(player, tonumber(t[2])) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você adicionou "..tonumber(t[2]).." dias de VIP no player "..getCreatureName(player)) doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Foram adicionados "..tonumber(t[2]).." dias de VIP no seu character.") elseif(words == "/delvip") then local t = string.explode(param, ",") if not tonumber(t[2]) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.") return true end local player = getPlayerByNameWildcard(t[1]) if(not player)then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player not found.") end doRemoveCharacterAcess(player, tonumber(t[2])) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você removeu "..tonumber(t[2]).." dias de VIP do jogador "..getCreatureName(player)..".") end return true end em talkactions.xml adicione as tags: <talkaction words="!buyvip;!vipdays" event="script" value="vipsystemplayer.lua"/> <talkaction words="/addvip;/delvip;/checkvip" access="4" event="script" value="vipsystemgod.lua"/> Item Vip item que adiciona vip no character actions/script addvipdays.lua function onUse(cid, item, fromPosition, itemEx, toPosition) local days = 15 addCharacterAcess(cid, (days <= 0 and 1 or days)) doRemoveItem(item.uid,1) return doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem "..getCharacterDays(cid).." dias de VIP, ela acaba em "..getVipAcessDate(cid)) end Actions.xml <action itemid="ID DO SEU ITEM" script="addvipdays.lua"/> Vip Door actions/script perfectvipdoor.lua function onUse(cid, item, frompos, item2, topos) if not HaveCharaterAcess(cid) then return doPlayerSendTextMessage(cid,22,"Você precisa ser vip para passar aqui.") end doTransformItem(item.uid, item.itemid + 1) doTeleportThing(cid, topos, true) return true end actions.xml <action actionid="7779" script="perfectvipdoor.lua"/> Tile VIP em movements/scripts crie um arquivo.lua e renomeie para vipe.lua function onStepIn(cid, item, position, fromPosition) if item.actionid == 13700 and not HaveCharaterAcess(cid) then doTeleportThing(cid, fromPosition, true) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"você não é vip.") doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE) return true end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"bem vindo.") return true end Em movements.xml adicione a tag: <movevent type="StepIn" actionid="13700" event="script" value="vipe.lua"/> no seu piso coloque ACTIONID 13700 Fim Vip em creaturescript/script endvip.lua function onLogin(cid) if getCharacterDays(cid) > 0 then setPlayerStorageValue(cid, 9898, 1) elseif getPlayerStorageValue(cid, 9898) == 1 and getCharacterDays(cid) <= 0 then doPlayerSetTown(cid, 1) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) doPlayerPopupFYI(cid, "Sua vip Account acabou.") setPlayerStorageValue(cid, 9898, -1) end return true end em creaturescript.xml adicione a tag: <event type="login" name="CheckVip" script="endvip.lua"/>
  13. Olá, amigos. Hoje é terça, portanto, venho trazer mais um script do SDT, para ver todos os scripts, clique aqui. Sistema de Cultivo Vídeo de como o sistema funciona: Resumindo: Você ara o solo com uma enchada e depois planta uma semente no solo arado. A semente brota e pode crescer, virando uma planta que dará origem a um fruto, ou morrer. As plantas também podem ser removidas usando a enchada. Eu me certifiquei de não deixar nenhum bug, como: plantar uma semente em cima da outra, arar solo com item em cima, remover plantas fora dos solos e etc. Ainda assim, caso encontrar algum bug, poste aqui. Crie cultivo.lua em data/actions/scripts e coloque: Em data/actions/actions.xml, coloque essas TAGs: <action itemid="2552" event="script" value="cultivo.lua"/> <action itemid="7732" event="script" value="cultivo.lua"/> Para configurar, basta editar as variáveis de acordo com os comentários dentro do script. Abraços e continuem acompanhando o SDT.
  14. Eu resolvi, editar a sourcer, colocando para ser compatível com linux e windows. Tinha alguns códigos mal "formulados" gerando os possíveis crashs. O que vem no conteúdo a seguir contem os seguintes items : Sourcers com o Cast System(Linux/Windows) Código MySQL para você por na sua database. Talkaction para o player poder executar o comando. Cast.php, que é a página do Cast System com comandos e outros (Compatível com o gesior e em português). Adicione enableCast = "true" (no seu config.lua) Estarei tirando dúvidas em relação as minhas modificações. Link Copilado 32Bits(Windows) http://www.mediafire.com/?166i4wg4q3te4uc Scan: https://www.virustotal.com/pt/file/7020fa7a169a390cf5fabaca8a8edbcbe4e4f119e99c7d9dd66c2741227dd293/analysis/1383447449/ OBS> no scan acusou um virus, se alguém duvida de algo, baixe a source e copile por si. Link Source: http://www.mediafire.com/?w19t81fgivm6j06 Scan: https://www.virustotal.com/pt/file/2f8b21c37316415e5175afaa12d73c43e4c5cfa8dba206cf5a144b2f909aefa7/analysis/1383448112/ Créditos: Summ, Jamilson Collins, Eu por ter modificado Aproveitem, deu um pouco de trabalho para corrigir os problemas.
  15. Olá, andei procurando um sistema de castle ou woe para TFS 1.2 porem não obtive sucesso, alguém do fórum poderia me disponibilizar um e/ou me ensinar a adaptar algum? desde já agradeço
  16. Pessoal, preciso de um sistema que cada 1 hora de um item para um player sorteado, basicamente seria um sistema de sorteio de items para player a cada 1 hora. Quem puder me ajudar dou REP+, OBG.
  17. Olá. Eu estou usando o Ubuntu 10.4 server e estou tentando compilar a rev3884 (tfs 0.4) e quando eu estou na parte do ./configure --enable-mysql ele dá um erro. checking lua.h presence... no checking for lua.h... no configure: error: "Lua header not found." Já tentei fazer wget http://www.lua.org/f...ua-5.1.4.tar.gz tar -xzvf lua* cd lua* make linux && make install e tenho instalado apt-get install lua50 liblua50 liblua50-dev e mesmo assim não vai
  18. Gostaria de saber se tem algum sabio ai que possa cria o systema de cast system pra a versao 9.83 ficarei muito grato agradesço desde já valendo rep++
  19. eu vi uma imagem e eu tava querendo coloca no meu ot sistema de chuva igual essa imagem
  20. Script/Tutorial+ Php +Map +Talkaction +Portal. Ps: Antes de falar q o topico já existe no forum teste os outros scripts Então começando por informações basícas : Para abrir o evento : /zombiestart numero de players . exemplo : /zombiestart 2 Para Iniciar o evento sem o numero maximo de players: /zombiestart force. Apos aberto sempre q um player ente no portal do evento e avisado por broadcast quem entrou na arena e o numero de players restantes para o evento ser iniciado. Apos o evento ser iniciado um zombie e sumonado a cada 20 segundos, o player que for infectado e teleportado para o templo vence o ultimo player restante na arena. Ao terminar o evento e anuciado por broadcast o nome do player vencedor tempo q durou na arena e por quantos zombies ele sobreviveu, entrega de premio automatica, premio configuravel. Garantia de funcionabilidade perfeita em TFS 0.4 se configurado corretamente, não testado em outras versões de distros. Creditos: Me .. não criei totalmente, mais montei peguei de varios servers/topicos e corrigi os varios bugs de distro colocaria os créditos de onde peguei a maioria do script mais foi de um server sem creditos q nem era pra ter sido postado. Enfim Vamos ao Evento ! Primeiro vou estar postando a pagina classica do Zombie event no Gesior que seria a parte PHP para informar os players sobre o evento. Pagina PHP + Tutorial de como implementar ela no seu site. Agora alguns mapas para o zombie event: Então Agora vamos ao script ! data\creaturescripts\scripts\zombie – A pasta ‘zombie’ deve ser criada no diretorio citado. \data\creaturescripts\scripts\Zombie\onattack.lua function loseOnZombieArena(cid) kickPlayerFromZombiesArea(cid) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "BOOM! You are dead.") local players = getZombiesEventPlayers() if(#players <= 1) then local winner = players[1] if(winner) then doPlayerAddItem(winner, 2157, 5, true) doPlayerAddItem(winner, 6119, 1, true) doPlayerSendTextMessage(winner, MESSAGE_STATUS_CONSOLE_BLUE, "You won zombies arena event.") doBroadcastMessage("After " .. os.time() - getPlayerZombiesEventStatus(winner) .. " seconds of fight " .. getCreatureName(winner) .. " won Zombie Arena Event in game versus " .. getStorage(ZE_ZOMBIES_SPAWNED) .. " zombies!") kickPlayerFromZombiesArea(winner) else doBroadcastMessage("Zombie arena event finished! No one win?!?!?! WTF!") end doSetStorage(ZE_STATUS, 0) doSetStorage(ZE_PLAYERS_NUMBER, ZE_DEFAULT_NUMBER_OF_PLAYERS) doSetStorage(ZE_ZOMBIES_TO_SPAWN, 0) doSetStorage(ZE_ZOMBIES_SPAWNED, 0) local width = (math.max(ZE_spawnFromPosition.x, ZE_spawnToPosition.x) - math.min(ZE_spawnFromPosition.x, ZE_spawnToPosition.x)) / 2 + 1 local height = (math.max(ZE_spawnFromPosition.y, ZE_spawnToPosition.y) - math.min(ZE_spawnFromPosition.y, ZE_spawnToPosition.y)) / 2 + 1 local centerPos = {x=math.min(ZE_spawnFromPosition.x, ZE_spawnToPosition.x)+width,y=math.min(ZE_spawnFromPosition.y, ZE_spawnToPosition.y)+height,z=ZE_spawnFromPosition.z} for z = math.min(ZE_spawnFromPosition.z, ZE_spawnToPosition.z), math.max(ZE_spawnFromPosition.z, ZE_spawnToPosition.z) do centerPos.z = z for i, uid in pairs(getSpectators(centerPos, width, height, false)) do if(isMonster(uid)) then doRemoveCreature(uid) end end end end end function onStatsChange(target, cid, changetype, combat, value) if((cid and isMonster(cid) and getCreatureName(cid) == "Zombie Event") or (isInRange(getThingPosition(target), ZE_spawnFromPosition, ZE_spawnToPosition) and changetype == STATSCHANGE_HEALTHLOSS and math.abs(value) >= getCreatureHealth(target))) then doCreatureAddHealth(target, getCreatureMaxHealth(target)) loseOnZombieArena(target) return false end return true end \data\creaturescripts\scripts\Zombie\ondeath.lua function onDeath(cid) setZombiesToSpawnCount(getZombiesToSpawnCount() + 2) doCreatureSay(cid, "I'll be back!", 19) return true end \data\creaturescripts\scripts\Zombie\onthink.lua function onThink(cid) local target = getCreatureTarget(cid) if(target ~= 0 and not isPlayer(target)) then doRemoveCreature(target) end return true end \data\globalevents\scripts\zombie\ onstartup.lua function onstartup() db.executeQuery("UPDATE `player_storage` SET `value` = 0 WHERE `key` = " .. ZE_isOnZombieArea .. ";") doSetStorage(ZE_STATUS, 0) doSetStorage(ZE_PLAYERS_NUMBER, ZE_DEFAULT_NUMBER_OF_PLAYERS) doSetStorage(ZE_ZOMBIES_TO_SPAWN, 0) doSetStorage(ZE_ZOMBIES_SPAWNED, 0) addZombiesEventBlockEnterPosition() return true end \data\globalevents\scripts\zombie\onthink.lua function onThink(interval, lastExecution, thinkInterval) if(getStorage(ZE_STATUS) == 2) then setZombiesToSpawnCount(getZombiesToSpawnCount()+1) local players = getZombiesEventPlayers() for i=1, getZombiesToSpawnCount() * 2 do if(getZombiesToSpawnCount() > 0 and spawnNewZombie()) then setZombiesToSpawnCount(getZombiesToSpawnCount()-1) end end end return true end \data\lib\zombie_event.lua -- CONFIG ZE_DEFAULT_NUMBER_OF_PLAYERS = 20 ZE_ACCESS_TO_IGNORE_ARENA = 4 -- POSITIONS ZE_blockEnterItemPosition = {x=32341, y=32213, z=7} -- onde nasce o teleport? ZE_enterPosition = {x=32154, y=32578, z=7} -- onde os players nascem dentro da arena zombie? ZE_kickPosition = {x=32368, y=32241, z=7} -- quando morre vai para onde? ZE_spawnFromPosition = {x=32140,y=32566,z=7} -- para sumonar zombie (de) ZE_spawnToPosition = {x=32168,y=32590,z=7} -- para sumonar zombie (ate) -- ITEM IDS --ZE_blockEnterItemID = 2700 ZE_blockEnterItemID = 1387 -- STORAGES -- - player ZE_isOnZombieArea = 34370 -- - global ZE_STATUS = 34370 -- =< 0 - off, 1 - waiting for players, 2 - is running ZE_PLAYERS_NUMBER = 34371 ZE_ZOMBIES_TO_SPAWN = 34372 ZE_ZOMBIES_SPAWNED = 34373 -- FUNCTION function setZombiesEventPlayersLimit(value) doSetStorage(ZE_PLAYERS_NUMBER, value) end function getZombiesEventPlayersLimit() return getStorage(ZE_PLAYERS_NUMBER) end function addPlayerToZombiesArea(cid) doSendMagicEffect(getThingPosition(cid), CONST_ME_TELEPORT) doTeleportThing(cid, ZE_enterPosition, true) doSendMagicEffect(getThingPosition(cid), CONST_ME_TELEPORT) if(getPlayerAccess(cid) < ZE_ACCESS_TO_IGNORE_ARENA) then setPlayerZombiesEventStatus(cid, os.time()) end end function kickPlayerFromZombiesArea(cid) doSendMagicEffect(getThingPosition(cid), CONST_ME_TELEPORT) doTeleportThing(cid, ZE_kickPosition, true) doSendMagicEffect(getThingPosition(cid), CONST_ME_TELEPORT) setPlayerZombiesEventStatus(cid, 0) end function getPlayerZombiesEventStatus(cid) return getCreatureStorage(cid, ZE_isOnZombieArea) end function setPlayerZombiesEventStatus(cid, value) doCreatureSetStorage(cid, ZE_isOnZombieArea, value) end function getZombiesEventPlayers() local players = {} for i, cid in pairs(getPlayersOnline()) do if(getPlayerZombiesEventStatus(cid) > 0) then table.insert(players, cid) end end return players end function getZombiesCount() return getStorage(ZE_ZOMBIES_SPAWNED) end function addZombiesCount() doSetStorage(ZE_ZOMBIES_SPAWNED, getStorage(ZE_ZOMBIES_SPAWNED)+1) end function resetZombiesCount() doSetStorage(ZE_ZOMBIES_SPAWNED, 0) end function getZombiesToSpawnCount() return getStorage(ZE_ZOMBIES_TO_SPAWN) end function setZombiesToSpawnCount(count) doSetStorage(ZE_ZOMBIES_TO_SPAWN, count) end function addZombiesEventBlockEnterPosition() -- remove tp -- remove o TP local item = getTileItemById(ZE_blockEnterItemPosition, ZE_blockEnterItemID) if(item.uid ~= 0) then doRemoveItem(item.uid) end --doRemoveItem(getThingFromPos(Castle.desde).uid) --[[ if(getTileItemById(ZE_blockEnterItemPosition, ZE_blockEnterItemID).uid == 0) then doCreateItem(ZE_blockEnterItemID, 1, ZE_blockEnterItemPosition) end ]]-- end function removeZombiesEventBlockEnterPosition() -- add tp if(getTileItemById(ZE_blockEnterItemPosition, ZE_blockEnterItemID).uid == 0) then --doCreateItem(ZE_blockEnterItemID, 1, ZE_blockEnterItemPosition) local tp = doCreateTeleport(ZE_blockEnterItemID, ZE_enterPosition, ZE_blockEnterItemPosition) doItemSetAttribute(tp, "aid", "5555") end --[[ local item = getTileItemById(ZE_blockEnterItemPosition, ZE_blockEnterItemID) if(item.uid ~= 0) then doRemoveItem(item.uid) end ]]-- end function spawnNewZombie() local posx = {} local posy = {} local posz = {} local pir = {} for i=1, 5 do local posx_tmp = math.random(ZE_spawnFromPosition.x ,ZE_spawnToPosition.x) local posy_tmp = math.random(ZE_spawnFromPosition.y ,ZE_spawnToPosition.y) local posz_tmp = math.random(ZE_spawnFromPosition.z ,ZE_spawnToPosition.z) local pir_tmp = 0 local spec = getSpectators({x=posx_tmp, y=posy_tmp, z=posz_tmp}, 3, 3, false) if(spec and #spec > 0) then for z, pid in pairs(spec) do if(isPlayer(pid)) then pir_tmp = pir_tmp + 1 end end end posx[i] = posx_tmp posy[i] = posy_tmp posz[i] = posz_tmp pir[i] = pir_tmp end local lowest_i = 1 for i=2, 5 do if(pir[i] < pir[lowest_i]) then lowest_i = i end end local ret = doCreateMonster("Zombie Event", {x=posx[lowest_i], y=posy[lowest_i], z=posz[lowest_i]}, false) if type(ret) == "number" then addZombiesCount() setGlobalStorageValue(201201051801, ret) end return type(ret) == "number" end \data\movements\scripts\zombie\ onenter.lua function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor) if(not isPlayer(cid)) then return true end if(getPlayerAccess(cid) >= ZE_ACCESS_TO_IGNORE_ARENA) then addPlayerToZombiesArea(cid) elseif(#getZombiesEventPlayers() < getZombiesEventPlayersLimit() and getStorage(ZE_STATUS) == 1) then addPlayerToZombiesArea(cid) local players_on_arena_count = #getZombiesEventPlayers() if(players_on_arena_count == getZombiesEventPlayersLimit()) then addZombiesEventBlockEnterPosition() -- removeTP doSetStorage(ZE_STATUS, 2) doBroadcastMessage("Zombie Arena Event started.") else doBroadcastMessage(getCreatureName(cid) .. " has entered a Zombie Arena. We still need " .. getZombiesEventPlayersLimit() - players_on_arena_count .. " players.") end else doTeleportThing(cid, fromPosition, true) addZombiesEventBlockEnterPosition() end return true end \data\talkactions\scripts\zombie\ onsay.lua function onSay(cid, words, param, channel) if(getStorage(ZE_STATUS) ~= 2) then local players_on_arena_count = #getZombiesEventPlayers() if(param == 'force') then if(players_on_arena_count > 0) then setZombiesEventPlayersLimit(players_on_arena_count ) addZombiesEventBlockEnterPosition() doSetStorage(ZE_STATUS, 2) doBroadcastMessage("Zombie Arena Event started.") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Zombies event started.") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Cannot start Zombies event. There is no players on arena.") end else if(param ~= '' and tonumber(param) > 0) then setZombiesEventPlayersLimit(tonumber(param)) end removeZombiesEventBlockEnterPosition() doSetStorage(ZE_STATUS, 1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Event started.") doPlayerBroadcastMessage(cid, "Zombie Arena Event teleport is opened. We are waiting for " .. getZombiesEventPlayersLimit() - players_on_arena_count .. " players to start.") end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Zombies event is already running.") end return true end data\monster\zombie_event.xml <monster name="Zombie Event" nameDescription="an event zombie" race="undead" experience="480" speed="170" manacost="0"> <health now="20000" max="20000"/> <look type="311" corpse="9875"/> <targetchange interval="5000" chance="50"/> <strategy attack="100" defense="0"/> <flags> <flag summonable="0"/> <flag attackable="1"/> <flag hostile="1"/> <flag illusionable="0"/> <flag convinceable="0"/> <flag pushable="0"/> <flag canpushitems="1"/> <flag canpushcreatures="1"/> <flag targetdistance="1"/> <flag staticattack="90"/> <flag runonhealth="0"/> </flags> <attacks> <attack name="melee" interval="1000" min="-1500" max="-2350"/> </attacks> <defenses armor="0" defense="0"/> <immunities> <immunity paralyze="1"/> <immunity invisible="1"/> <immunity fire="1"/> <immunity energy="1"/> <immunity poison="1"/> </immunities> <voices interval="5000" chance="10"> <voice sentence="You wont last long!"/> <voice sentence="Mmmmh.. braains!"/> </voices> <script> <event name="ZombieThink"/> <event name="ZombieDeath"/> </script> <loot> </loot> </monster> Agora as Tags nos xml’s . /data/creaturescripts/creaturescripts.xml <event type="think" name="ZombieThink" event="script" value="zombie/onthink.lua"/> <event type="statschange" name="ZombieAttack" event="script" value="zombie/onattack.lua"/> <event type="death" name="ZombieDeath" event="script" value="zombie/ondeath.lua"/> /data/globalevents/globalevents.xml <globalevent name="ZombieGlobalThink" interval="5000" event="script" value="zombie/onthink.lua"/> <globalevent name="ZombieGlobalStartup" type="start" event="script" value="zombie/onstartup.lua"/> /data/movements/movements.xml <movevent type="StepIn" actionid="5555" event="script" value="zombie/onenter.lua"/> /data/talkactions/talkactions.xml <talkaction log="yes" words="/zombiestart" access="4" event="script" value="zombie/onsay.lua"/> /data/monster/monsters.xml <monster name="Zombie Event" file="zombie_event.xml"/> Script Terminado ! Next: Tutorial de como configurar o zombie event ! Estarei postando apenas as partes q podem ou devem ser editadas em cada script. data\creaturescripts\scripts\zombiez\onattack.lua Next: \data\lib\zombie_event.lua Então galera eh isso ai .-. meu primeiro post não mim crucifiquem k Duvidas, reclamações elogios chingamentos, só comentar.
  21. Procurei mais não achei a sesao de Xml se tiver no lugar errado pf coloque no lugar certo . Vim aqui pedi pra colocar pra promotion tirar mais ou se não um tutorial ensinando como configurar pq eu já tentei configurar e sempre da errado.
  22. Bom, a uns anos atras eu procurei um script mais ninguem conseguiu fazer, talvez agora alguem consiga... lá vai! um sistema de slot que pode ponhar slots nos seus items por exemplo até 3 slot em tal item ( configuravel o maximo de slots) cada slot da atributos diferentes em porcentagem ( porcentagem configuravel) sao separados em atributos por exemplo... hp,mp,CAS (Club, axe, sword) ,dist, ml. para cada atributo existe uma gema, sao 6 gemas, por exemplo a gema de hp dá 15% de hp posso usar 3 slot em 1 item por exemplo um armor, entao se eu usar 3 gemas de hp eu fico com + 45% de hp, eu ja vi esse sistema entao é possivel que exista mais se conseguirem achar ( porque eu nao achei e procurei MUITO) eu dou rep e ajudo quem tiver esse mesmo pedido, agradeço desde já
  23. FAAALA GALERES Eu (DE NOVO) trouxe pra vocês um sistema. MAAAS dessa vez, não é um sistema qualquer. Dessa vez é aquele tão cobiçado sistema de banimento do servidor RadBr! O que é: É um sistema de banimento através de warnings setadas pelo GOD em um player, e outro player poderá desbanir este já banido por barras (Default ID: 9971), dependendo do número de warnings. Script: Configurando: Imagens: Uso: /ban Nome,Motivo,Warnings* !unban Nome *OBS: Não é obrigatório especificar as warnings no comando /ban. Se não forem especificadas, serão adicionadas +1 warning automaticamente. (Exemplo: /ban Nome,Motivo) Observações: - Sou lindo, eu sei Créditos: - LuckOake (Pelo Sistema)
  24. @Editado Não sei a área certa para criar esse tutorial, mas se estiver não estiver na área ccorreta, por favor, movam ! Continuando... Vou ensinar a criar um sistema de treinamento offline igual ao global. Requisitos: Apenas um ot com items.xml e items.otb que possuem as estátuas de treino ^-^ Seguindo. PastaDoOt/data//lib/ crie um arquivo chamado "103-offline-training.lua" Coloque isso dentro: em Data/actions/actions.xml adicione as seguintes tags: Os números 18488 - 18492 são os id's dos objetos a serem os "Treiners offline" ou seja, se vc trocar por exemplo o 18492 por um outro id tipo "1026" ( id de um muro) todos os muros que possui esse id, ao clicarem nele, o player irá deslogar, então prestem atenção e coloquem um id existente e que nao seja "usável" como exemplo, uma estátua. em data/actions/script crie um arquivo chamado "offtrain_statue.lua" Coloque isso dentro: ../data/creaturescripts/creaturescripts.xml ../data/creaturescripts/scripts/offtrain_login.lua ../data/creaturescripts/scripts/offtrain_logout.lua ./data/globalevents/globalevents.xml ../data/globalevents/scripts/offtrain_addMinutes.lua pronto, seu sistema de treino offline está criado Créditos: Gesior.pl -> membro da otland, e criador do sistema LookMe -> por trazer o conteúdo
×
×
  • Criar Novo...