Pesquisar na Comunidade
Mostrando resultados para as tags ''Sistema''.
Encontrado 106 registros
-
Task System 1.2+
Salve geral, recentemente fiz um Task System para meu servidor, então gostaria de compartilha ele com vocês, assim como outros scripts que fiz e gostaria de compartilhar. Bom, vamos ao que interessa. Informações!! Task Normal - Você 1x por vez, quantas vezes quiser, repetindo a task se também quiser. Task Diaria - Você faz uma vez por dia, não podendo repeti em quanto as 24 horas não terminar. Task Rank - É mostrado na descrição do player qual rank task ele possui. Task Rank Quest - Um extra desse task system é o piso task, será explicado na parte do script, leiam com atenção. Task Comandos - Comandos task, 1 para ver o progresso das suas task e outro para mostrar informações do seu personagem, como uma consulta, os comandos são: !task que mostra quais task você ta fazendo, tanto diaria quanto normal e !task me que mostrar informações do seu personagem, como rank, quantidade de pontos task e quantidade de pontos task rank. Well, o resto é surpresa, cabe você descobrir! xD Para não ficar só nas palavras, mostrarei algumas imagens, várias no caso: Removida, colocarei novas! Instalação!! Muito bem, chega de conversa, como instalar logo essa bagaça. Primeiramente vá em data/lib e abra o arquivo lib.lua e adicione: dofile('data/lib/task system.lua') Ainda na pasta lib crie um arquivo.lua chamado task system.lua e adicione esse code dentro: No final do tópico, ensinarei a configurar a lib. Agora vai em, data/npc e crie um arquivo.xml chamado task.xml e coloque esse code dentro: <?xml version="1.0" encoding="UTF-8"?> <npc name="NPC Task" script="task system.lua" walkinterval="0" floorchange="0"> <health now="150" max="150"/> <look type="430"/> <parameters> <parameter key="message_greet" value="Hello |PLAYERNAME|. I'm in charge of delivering missions to the players. Would you like to do a {normal} task, {daily} task, {receive} your reward from a task or {abandon} a task ? You can also see the {normal task list} and the {daily task list}."/> <parameter key="message_farewell" value="See you later." /> <parameter key="message_walkaway" value="See you later." /> </parameters> </npc> Ainda na pasta npc, entre na pasta scripts e crie um arquivo.lua chamado task system.lua e adicione esse code dentro: Agora vá em data/talkactions e abra o arquivo talkactions.xml e adicione a seguinte tag: <talkaction words="!task" separator=" " script="task system.lua" /> Ainda na pasta talkactions entre na pasta scripts e crie um arquivo.lua chamado task system.lua e adicione esse code dentro dele: Agora vá em data/creaturescripts e abra o arquivo creaturescripts.xl e adicione a seguinte tag: <event type="kill" name="tasksystem" script="task system.lua"/> Ainda na pasta creaturescripts entre na pasta scripts e crie um arquivo.lua chamado task system.lua e adicione esse code dentro dele: Ainda na pasta script abra o login.lua e adicione dentro: player:registerEvent("tasksystem") Agora vá em data/events/scripts e abra o arquivo player.lua, depois de aberto, antes de: self:sendTextMessage(MESSAGE_INFO_DESCR, description) adicione: if thing:isCreature() then if thing:isPlayer() then description = string.format("%s\nTask Rank: "..getRankTask(thing), description) end end Extra(Opcional)!! Extra, vá em data/movements/scripts e crie um arquivo chamado tile task.lua, depois de aberto, antes de: Vá em data/movements/movements.xml adicione: <movevent event="StepIn" actionid="XXXX" script="tile task.lua"/> Explicação: Com esse movements acima, você só poderá passar por o piso caso tenha pontos task necessário para passar, se ativar a opção, removePoints então a mesma quantidade de pontos necessária para passar, será removida, ao passar, caso esteja desativada, então apenas será necessário ter os pontos task para passar. Em XXXX coloque o actionid, e o actionid coloque no piso desejado! New Extra: Vá em data/movements/scripts e crie um arquivo chamado tile task2.lua e adicione o seguinte scripts: Vá em data/movements/movements.xml adicione: <movevent event="StepIn" actionid="XXXX" script="tile task2.lua"/> Explicação: Ao adicionar esse movements acima, você só poderá passar pelo piso caso seu rank task seja igual ou superior ao rank definido na variável, caso não seja igual e nem superior, não será possível passar. Configure na lib, a sequência de ranks de acordo com a sequência de rank da tabela de pontos, assim: A sequência precisa está igual e numeradas. Configurando!! task_monsters = { [1] = {name = "monster1", mons_list = {"monster_t2", "monster_t3"}, storage = 30000, amount = 20, exp = 5000, pointsTask = {1, 1}, items = {{id = 2157, count = 1}, {id = 2160, count = 3}}}, [2] = {name = "monster2", mons_list = {"", ""}, storage = 30001, amount = 10, exp = 10000, pointsTask = {1, 1}, items = {{id = 10521, count = 1}, {id = 2160, count = 5}}}, [3] = {name = "monster3", mons_list = {"", ""}, storage = 30002, amount = 10, exp = 18000, pointsTask = {1, 1}, items = {{id = 2195, count = 1}, {id = 2160, count = 8}}}, [4] = {name = "monster4", mons_list = {"", ""}, storage = 30003, amount = 10, exp = 20000, pointsTask = {1, 1}, items = {{id = 2520, count = 1}, {id = 2160, count = 10}}} } task_daily = { [1] = {name = "monsterDay1", mons_list = {"monsterDay1_t2", "monsterDay1_t3"}, storage = 40000, amount = 10, exp = 5000, pointsTask = {1, 1}, items = {{id = 2157, count = 1}, {id = 2160, count = 3}}}, [2] = {name = "monsterDay2", mons_list = {"", ""}, storage = 40001, amount = 10, exp = 10000, pointsTask = {1, 1}, items = {{id = 10521, count = 1}, {id = 2160, count = 5}}}, [3] = {name = "monsterDay3", mons_list = {"", ""}, storage = 40002, amount = 10, exp = 18000, pointsTask = {1, 1}, items = {{id = 2195, count = 1}, {id = 2160, count = 8}}}, [4] = {name = "monsterDay4", mons_list = {"", ""}, storage = 40003, amount = 10, exp = 20000, pointsTask = {1, 1}, items = {{id = 2520, count = 1}, {id = 2160, count = 10}}} } nome - Nome do monstro. mons_list - Nome dos monstro que são semelhantes e que matando eles também contará. Exemplo: name = "troll", mons_list = {"troll","frost troll","island troll"} e assim matando, troll, frost troll e island troll contará na task também. storage - É a storage que salva a quantidade de monstros já matados. amount - É a quantidade necessária de monstros matados para finalizar a task. exp - É a quantidade de Experiência que vai ganhar ao finalizar a task, caso não queira dar experiência, basta deixar em 0. pointsTask = {Task Points Que vai ganhar(Pontos usado no piso e etc..), Pontos Rank, que irá ganhar e aumentar seu rank.} items - Itens que o player vai ganhar, devem está tabelados, dentro da tabela item, adicione das tabelas contendo o id do item e count, quantidade de items que irá ganhar. Ex: items = {{id = 2157, count = 1}, {id = 2160, count = 3}} -- Aqui contém 2x tipos de itens, o 2157 e o 2160, e suas devidas quantidades que irá ganhar. items = {{id = 2157, count = 1}} -- Aqui só tem 1 tipo de item e a quantidade que vai ganhar. Adicione quantos itens quiser. O mesmo vale para as task diarias! Bom, é isso ae, qualquer duvida, crítica, sugestões, deixem ae, se precisa de suporte na instalação ou está com erro em algo estarei dando suporte, abraços e bom uso do sistema. É totalmente proibido leva meu sistema para outro site, blog ou fórum!
-
Reset System with sources
Testado: MySQL & SQLite Distro: TFS 0.4_SVN & TFS 0.3.6 MySQL ALTER TABLE `players` ADD `resets` INT(11) NOT NULL DEFAULT "0"; SQLite ALTER TABLE players ADD resets INTEGER not null default 0 Adicionando nas sources player.h procure por: uint32_t level; logo abaixo, adicione: uint32_t resets; iologindata.cpp procure por query << "SELECT `id`, `account_id`, `group_id`, `world_id`, `sex`, `vocation`, `experience`, `level`," substitua por: query << "SELECT `id`, `account_id`, `group_id`, `world_id`, `sex`, `vocation`, `experience`, `level`, `resets`, " procure por player->level = std::max((uint32_t)1, (uint32_t)result->getDataInt("level")); logo abaixo adicione: player->resets = (uint32_t)result->getDataInt("resets"); procure por query << "`maglevel` = " << player->magLevel << ", "; logo abaixo adicione: query << "`resets` = " << player->resets << ", "; players.cpp procure por: s << " (Level " << level << ")"; substitua por: s << " (Level " << level << ") [Reset " << resets << "]"; players.h procure por: void setPromotionLevel(uint32_t pLevel); logo abaixo adicione: uint32_t getResets() { return resets;} void setResets(int32_t amount) { resets += amount; if (resets < 0) {resets = 0;} } luascript.cpp para 0.3.6 static int32_t luaDoPlayerSetIdleTime(lua_State* L); logo abaixo adicione: static int32_t luaGetResets(lua_State* L); static int32_t luaSetResets(lua_State* L); talkactions.xml <talkaction words="!rank;/rank" event="script" value="ranks.lua"/> <talkaction words="!reset;/reset" script="reset.lua"/> ranks.lua Créditos: Dark Skyllen, Marcryzius, Mock, Kydrai, Cykotitan, gpedro*. * adaptação para 0.4 para 0.4 int32_t LuaInterface::luaDoPlayerSetIdleTime(lua_State* L) { //doPlayerSetIdleTime(cid, amount) int64_t amount = popNumber(L); ScriptEnviroment* env = getEnv(); if(Player* player = env->getPlayerByUID(popNumber(L))) { player->setIdleTime(amount); lua_pushboolean(L, true); } else { errorEx(getError(LUA_ERROR_PLAYER_NOT_FOUND)); lua_pushboolean(L, false); } return 1; } logo abaixo adicione: int32_t LuaInterface::luaGetResets(lua_State* L) { //getResets(cid) ScriptEnviroment* env = getEnv(); if(Player* player = env->getPlayerByUID(popNumber(L))) lua_pushnumber(L, player->getResets()); else { errorEx(getError(LUA_ERROR_PLAYER_NOT_FOUND)); lua_pushboolean(L, false); } return 1; } int32_t LuaInterface::luaSetResets(lua_State* L) { //setResets(cid, amount) int32_t amount = popNumber(L); ScriptEnviroment* env = getEnv(); if(Player* player = env->getPlayerByUID(popNumber(L))) { player->setResets(amount); lua_pushboolean(L, true); } else { errorEx(getError(LUA_ERROR_PLAYER_NOT_FOUND)); lua_pushboolean(L, false); } return 1; } procure por: //doPlayerSetIdleTime(cid, amount) lua_register(m_luaState, "doPlayerSetIdleTime", LuaInterface::luaDoPlayerSetIdleTime); logo abaixo adicione: //getResets(cid) lua_register(m_luaState, "getResets", LuaInterface::luaGetResets); //setResets(cid, amount) lua_register(m_luaState, "setResets", LuaInterface::luaSetResets); luascript.h procure por: reset.lua
-
Exclusive Cave System By Account! 8.6
Explicação: Este sistema proporciona ao jogador a compra de determinada cave por "X" tempo, cada conta poderá comprar somente 1 cave por vez... Lá o jogador poderá upar livremente. Também poderá chamar um amigo para upar na sua cave!! O sistema é o mais completo do mercado, vou estar falando do mesmo abaixo. OBS: Não esqueça de executar a query para funcionar!! Exclusive Cave System Features Dentro do pacote terá duas versões: versão 1 : É para vendar as caves em money(Gold's) Versão 2: É para vender as caves por items, por exemplo por moedas especiais como scarab coins(ID 2159) O sistema é feito por banco de dados O tempo da cave é mostrado em tempo real Você poderá chamar um amigo para sua cave e também remove-lo quando quiser. Existe um globalevents especifico para mostrar no default quando uma cave ficou disponível para venda! (Irá informar o nome da cave o preço dela!) Você poderá configurar a cave para vender por exemplo: - Level minimo e máximo! - Tempo de duração da cave - Se precisa ser premium account para comprar a cave! Quando o tempo da cave expira tanto o dono da cave como o friend invitado são removidos da cave, mesmo estando offline ou online! Comandos exclusivos: Comando para dono da cave: /mycave - Mostra informações da sua cave, como: - Nome da cave - Nome do seu amigo de cave(caso tiver invitado) - Quando tempo falta para expirar o tempo da sua cave /addcavefriend - Adiciona um amigo seu para que ele possa entrar e sai da sua cave quando quiser... Obs: Tem um exhausted de 1 hora(configurável) para não ficar toda hora tirando e colocando amigo na cave. /removecavefriend - Remove o seu amigo da sua cave(caso ele esteja dentro da cave tanto offline quanto online, ele é removido) /cavetime - Mostra quando tempo falta para expirar a sua cave Comando para amigo invitado da cave: /cavefriendtime - Mostra quando tempo falta para expirar a cave que ele invitado. /caveleave - Comando para ele se kikar da cave que está invitado. Comandos adicionais importante para todos: /cavelist -- Mostra em uma janela todas as caves do servidor /cave ID -- Neste comando você terá que usar o ID da cave que deseja saber as infor,ações, por exemplo: /cave 1 -- Irá mostrar em uma janela todas as informações desta cave, como: -Nome da cave -Preço da cave -Level Minimo e Level Maximo para comprar a cave -Se nesta cave precisa ser Premium Account para comprar ou não. /cavepurchase -- Filtra em uma janela somente as caves que estão disponíveis para compra. ---------------------------------------------------------------------------------------------------------------------------------------------------- Configurações: Vá na lib e irá se deparar com duas tabelas... Esta primeira tabela é onde você irá adicionar novas caves e atribuir as configurações, exemplo: exclusives_caves_areas = { -- adicionar as caves [1] = {name = "Demon Hunter", price = 1000, level = {min = 8, max =30}, time = 4, premium = false, enter = {x = 284, y = 223, z = 7}, from = {x = 275, y = 219, z = 5}, to = {x = 302, y = 240, z = 7}}, [2] = {name = "Hydras Thow", price = 2000, level = {min = 10, max = 1000}, time = 3, premium = true, enter = {x = 148, y = 218, z = 7}, from = {x = 137, y = 217, z = 7}, to = {x = 161, y = 234, z = 7}} } [1] -- Entre os colchetes é o ID da cave, favor colocar e ordem. name = "Demon Hunter" -- Entre as aspas "" Você atribui o nome da cave price = 1000 -- Preço em gps da sua cave(caso use a versão que vende em gps) level = {min = 8, max =30} -- Aqui voce coloca o level min e max que o jogador tem que ser para comprar a cave time = 4 -- Tempo em horas que o jogador poderá ficar na cave premium = false -- Se para comprar a cave terá que ser premium (false ou true) enter = {x = 284, y = 223, z = 7} -- Pos de entrada da cave from = {x = 275, y = 219, z = 5}, -- Aqui você deverá pegar a pos do começa da cave to = {x = 302, y = 240, z = 7} - - -- Aqui você deverá pegar a pos final da cave!(como se fosse um quadrado. e como adicionar mais caves por exemplo? Assim: exclusives_caves_areas = { -- adicionar as caves [1] = {name = "Demon Hunter", price = 1000, level = {min = 8, max =30}, time = 4, premium = false, enter = {x = 284, y = 223, z = 7}, from = {x = 275, y = 219, z = 5}, to = {x = 302, y = 240, z = 7}}, [2] = {name = "Hydras Thow", price = 2000, level = {min = 10, max = 1000}, time = 3, premium = true, enter = {x = 148, y = 218, z = 7}, from = {x = 137, y = 217, z = 7}, to = {x = 161, y = 234, z = 7}}, [3] = {name = "Ciclops Cave", price = 5000, level = {min = 20, max = 50}, time = 2, premium = true, enter = {x = 198, y = 320, z = 7}, from = {x = 200, y = 340, z = 7}, to = {x = 250, y = 390, z = 7}} } ---------------------------------------------------------------------------------------------------------------------------------------------------- explicando a segunda tabela: exclusives_caves_config = { storage = 547575, check = 547576, comand_add_exaust = {hours = 1, storage = 547577}, -- tempo para nao ficar toda hora tirando e colocando amigo mensagem = "[Exclusive Cave System] Você foi removido ou o tempo da %s cave expirou!", serve_mensagem = "[Exclusive Cave System] A cave %s acabou de ficar liberada para venda por %d Gold's, aproveitem para compra-la no NPC!" } storage -- nao mexer! check -- não mexer!! comand_add_exhausted -- é o tempo que jogador poderá voltar a invitar outro jogador, está configurado para 1 hora!! mensagem -- não mexa serve_mensagem -- não mexa tbm kkk Só baixar e executar as querys!! Cave System.rar
-
[ DESENVOLVIMENTO ] - SISTEMA DE PVP POR DEMANDA
Olá galera da TK, trago uma ideia para os veteranos de plantão caso eu esteja postando em tópico errado, ja peço desculpas e pode mover esse tópico inicialmente sou programador, mais não tenho conhecimento em todas função e código que o otserver pode suporta por isso peço ajuda a ideia inicial é criar um sistema no qual pode evitar vários ots caírem em falência devido os pelegos que nele envolve. Como assim? Hoje em dia os OTs server são visto como um fonte de diversão no os jogadores tem em mente que vai logar, forma o seu time e depois dominar o mundo , são bonitos motivos porem muito outros jogadores querem tornar o seu Ots um servidor serio um local para eles se diverti e sempre esta presente fazendo amizades e sempre esta na emoção de Quest cada vez mais difíceis, neste caso vem aquele time de pelego e começa a matar os jogadores que nem estão neste clima, derrotando todo o trabalho de meses ajeitando o seu OT que tinha um ideal transformando ele numa plataforma de pvp sem limites, contudo vários players abandonando o seu OT ate chegar o dia de resetar ou ate mesmo encerrar. principio basico da ideia é criar um mundo onde inicial é não pvp ao mesmo tempo pvp veja abaixo a ideologia que tive quero ajudar a montar esse sistema pois sei que os veteranos que conhece cada função que o OT possuir e saberá como ajudar vamos lá. 1° Inicialmente o mundo seria um mundo não-pvp aquele jogadores que queria pelegar, fazer o famoso mata-mata precisaria de uma permissão ou items que permita ele mata outro players que esteja com a mesma função ativa, neste modo aqueles q não querem ser envolvido nos pelegos não teria nenhum problema de continua sua vida em jogo 2° Iniciando a troca dos Modos a forma de transforma um modo de jogo pode ser através de comandos ou items, o jogador que queria ser pvp ele precisaria ativar o comando ou items a parti dai ele se torna um jogador pvp exemplo um jogador chegou um certo level e quer sai ao seu pelego de boa com outro time basta ativa a função, ao ativa ele terá um tempo nesse modo, onde o tempo sera configurado ao administrador do ot para cada kill que o jogador do pelego faça ele aumenta esse tempo de forma também que seja configurado o aumento do tempo por kill, assim tornando mais justo para ambos caso o jogador esteja com skulls seja ela qual for, o tempo neste caso não mudaria ate que todas as skull fosse removidas, a parti dai o tempo para volta ao não-pvp voltaria a desce para sabe se o jogador tem a funcao pvp ativada em seu look, teria que ter uma tag por exemplo: (modo pvp on), assim todos vai sabe que aquele jogador é PVP caso o jogador cansou de ser caçado ou queria continua a jogar sem pelego ele precisaria desativa a função de forma que seja configurada, por um valor e tempo determinado pelo administrador e o que seria pra desativar os jogadores PVP não teria como matar outros players que não tive com o mesmo modo ativo, a não ser por traps a ideia seria basicamente esse de forma os OTs servers seria algo muito melhor e um ambiente para todos. aguardo comunicações sobre tal sistema e vou esta periodicamente acompanhando o tópico para esse desenvolvimento e anexando o inicio do trabalho vlw galera do TK Tambem quero compartilhar algo com vocês para o seu OT logicamente ideia de melhorias podem ser aplicada esse é uma TAG de top level do servidor, que ja tem ai na TK, porem foi feita para ser TFS1.2 Crie um arquivo no seu creaturescripts com o nome: topeffect.lua local function getHighestPlayer() local resultId = db.storeQuery("SELECT `name` FROM `players` ORDER BY `level` DESC, `experience` DESC LIMIT 5") if not resultId then return false end return result.getDataString(resultId, "name") end local config = { interval = 5, effect = CONST_ME_POFF } local function sendEffectTopPlayer(cid) local player = Player(cid) if not player then return true end if config.effect then -- player:getPosition():sendMagicEffect(math.random(CONST_ME_FIREWORK_YELLOW, CONST_ME_FIREWORK_BLUE)) player:say('[TOP]', TALKTYPE_MONSTER_SAY) --player:getPosition():sendMagicEffect(config.effect) addEvent(sendEffectTopPlayer, config.interval * 1000, cid) return true end end function onLogin(player) if player:getName() ~= getHighestPlayer() then return true end sendEffectTopPlayer(player:getId()) return true end function onAdvance(player) if player:getName() ~= getHighestPlayer() then return true end sendEffectTopPlayer(player:getId()) return true end depois adicione isso em seu creaturescripts.xml <event type="login" name="TopEffect" script="topeffect.lua"/> <event type="advance" name="CheckTop" script="topeffect.lua"/> esse scripts ta básico aceito ideias de melhorias, mais ta muito legal e espero que gostem
-
[8.6] Task System 4.0! (Task system + Daily Task System)
Removido: *Boss Room *Rank Task *Prêmios para os 10 primeiros a terminar todas as tasks Adicionado: *Daily Task System (Sistema exclusivo de Task diario, podendo pegar 1x a cada 24 hrs, irei explicar mais depois.) *Task agora é por progresso, você não pode sair e voltar, terá que terminar a task 1 para avançar para a task 2, assim sucessivamente. *Task Points *Level para realizar a task *Nova talkaction que mostra uma janela de informações sobre o level da task, premios que irá receber, progresso, etc... *Items para entrega(Se o jogador deverá levar algum item junto com a quantidade de monstro morta) para finalizar a task *Sistema de look Task (Varia de acordo com a sua quantidade de Task Points, podendo ficar por exemplo como "Huntsman", "Ranger", etc...(alterável) *Mods e npc mais "clean", várias linhas removidas e o sistema está mais rápido *Vou Adicionar "scripts extras" Como: --> Tile que só passa quem tiver permissão depois de finalizar determinada quest --> Npc de Boss Room para entrar e enfrentar o monstro quem fez determinada quest [+] Resumo do Task system + Daily Task System [+] Task System: É o sistema de task "original", onde consiste em matar determinada quantidade de monstros(E entregar certo itens <- é configurável), para receber recompensas como Exp, Money e Items. Algumas mudanças do simple task 3.0 para o 4.0 foram: [+] O sistema agora é por progresso, isso quer dizer que você terá que ir terminando a quest para avançar para a seguinte. [+] O sistema Também recebeu uma alteração, fazendo com que as Tasks precisem que o jogador tenha um level determinado [+] A tabela para edição está mais fácil, fazendo com que você adicione ou remova monstros com mais tranquilidade, inclusive alterações das Rewards da Task. Daily Task System: É um sistema que desenvolvi para que os jogadores sempre estejam se comunicando com o npc de Task, no caso da Task Diaria, vária de acordo com o level do jogador, por exemplo: Jogadores entre level 6 ao 49 poderá cair em uma dessas 3 Task Diarias: Orcs, Tarantulas ou Wyverns Jogadores entre level 50 ao 79 poderá cair em uma dessas 3 Task Diarias: Dragons, Wailing Widows ou Ancient Scarabs E por ai vai, claro que você poderá aumentar as Task Diarias dependendo do level, eu fiz 3 para cada level que é pra postar, mas tudo isso você pode aumentar! Dependendo do seu servidor. E sim, você pode fazer a TASK "ORIGINAL" e a TASK "DIARIA" ao mesmo tempo! Ambas são distintas e possuem Rewards diferenciadas! No caso da Task diaria, levando em conta que você começou a fazer ela no dia 08/01 ás 20:00 Hrs, você tem até o dia 09/01 ás 20:00Hrs para termina-la e receber a recompensa, caso termine antes, a Task diaria só irá ficar disponível para repetição a partir desta mesma data 09/01 20:00 Hrs; [+] Caso você não termine a tempo, não tem problema, basta esperar este horário e começar uma nova Task. [+] Caso você começou a Daily Task e terminou antes desta data. mas por algum motivo esqueceu de entregar e a mesma passou do prazo, não tem importância, caso você tenha matado todos os monstros até 09/01 20:00 Hrs, você poderá entregar está Task em qualquer horário para receber suas Rewards e começar uma task a partir do momento em que você entregou! (INJUSTIÇA AQUI NÃO CARALHO). [+] Comandos Adicionais [+] /task -- Mostra as informações da sua Task Atual, como Nome da Task, Level, Rewards, Monstros que você poderá matar, Se tem que entregar algum Item junto, etc... /task daily -- É basicamente mostra a mesma informação da Task Principal, porém mostra também qual o prazo limite para entrega da task. /task counter -- É um comando que ATIVA ou DESATIVA o contador de monstros mortos na task no seu Channel. [+] Imagens [+] Cline neste link para ver algumas imagens da Task : http://imgur.com/a/eLIY3 ------------------------------------------------ // -------------------------------------------------------------- [+] Instalação do Sistema [+] Requisitos: Nível Médio de conhecimento em scripting LUA Pasta Mods Simple Task.xml https://pastebin.com/raw/P5hqMC3j NPC: Ludger.xml https://pastebin.com/raw/R56yLWHw simple_task.lua https://pastebin.com/raw/1mRzJ6aJ ---------------------------------------------- // ---------------------------------- [+] configuração [+ ] Task System Principal task_sys = { [1] = {name = "Trolls", start = 176201, monsters_list = {"Troll","Troll champion"}, level = 8, count = 40, points = 0, items = {}, reward = {}, exp = 2000, money = 2000} } [1] --> O número entre os colchetes [] significa a ordem da Task, como a Task é por progresso sempre começará no 1 e irá pro [2], assim sucessivamente. name --> É o nome da task que o jogador irá fazer. start --> é a storage que indicará se o jogador começou a Task monster_list ={} --> É o nome dos monstros em que o jogador deverá caçar para completar a Task level --> É o level necessário para dar inicio á Task count --> É o número de monstros que o jogador tem que matar para completar a Task points --> Aqui determinada quantos Task points o jogador irá receber ao completar a Task items = {} --> Aqui determinada se além de matar os monstros, o jogador terá que entregar item também! Caso tenha só colocar o {ITEM_ID, QUANTIDADE} EX: items = {{2173,1},{2160,10},{2493,2}} rewad --> Aqui determinada se o jogador irá receber itens ao terminar a Task, mesma formula do items /\ reward = {{2520,1},{2173,1}} exp --> Se o jogador irá receber Exp ao terminar a task. 0 ou quantidade de exp Money --> Se o jogador irá receber dinheiro ao terminar a task. 0 ou quantidade de dinheiro Daily Task System daily_task = { [1] = {name = "Orcs" ,monsters_list = {"Orc Berserker","Orc Rider","Orc Leader","Orc Warlord"}, count = 100, points = 0, reward = {}, exp = 5000, money = 10000} } Segue o padrão da Task original, exceto que não precisa entregar items para o npc! Como funciona A randomização de level de acordo com a Daily task? Procure por está tabela em MODS local t = { [{6,49}] = {1,3}, [{50,79}] = {4,6}, [{80,129}] = {7,9}, [{130,math.huge}] = {10,12} } entre as chaves e colchetes é o level do jogador para as Daily Task, Você pode adicionar quantas você quiser! Digamos que: [{6,49}] = {1,3} --> Quer dizer que entre o level 6 ao 49 o jogador poderá cair na Daily Task número 1(Orcs), 2(Tarantulas) ou 3(Wyvern)! [{50,79}] = {4,6} --> Quer dizer que entre o level 50 ao 79 o jogador poderá cair na Daily Task número 4(Dragons), 5(Wailing Widows) ou 6(Ancient Scarabs)! ... [{130,math.huge}] = {10,12} --> Quer dizer que o jogador level 130 ou MAIS poderá cair na Daily Task número 10(Undead Dragons), 11(HydraS) ou 12(Ghastly Dragons)! Look Rank System Procure por está tabela em MODS local ranks = { [{1, 20}] = "Huntsman", [{21, 50}] = "Ranger", [{51, 100}] = "Big Game Hunter", [{101, 200}] = "Trophy Hunter", [{201, math.huge}] = "Elite Hunter" } Entre 1-20 Task points o Rank será Huntsman Entre 21-50 Task posints o Rank será Ranger Entre 51-100 Task Points o rank será Big Game Hunter etc... Altere como quiser!
-
[Sistema] Battlefield Event! V.1
Mapa BattleField Feito Por AnneMotta : Mapa Battlefield.rar Scan: https://www.virustot...sis/1346548669/ Imagens do mapa Descrição: - O evento é automático e acontece em determinado dia e hora da semana - Logo após é aberto um teleport então apenar um número limitado de players entra no evento - São formados por dois times, os "Black Assassins" e os "Red Barbarians" - Os times são balanceados automaticamente, quando o último jogador entra, esse teleport é fechado e depois de 5 minutos o evento começa, os 5 minutos são para os players ter tempo de planejar um ataque. - O sistema tem por finalidade matar todos do time inimigo, e os players que sobreviverem recebem um prêmio. Bônus: - Durante o evento é mostrado na tela somente dos jogadores que estão no evento um placar de times. - Até o último player entrar no evento, ficam mandando broadcast dizendo quanto players faltam para dar inicio ao jogo. - Se o evento abrir e não atingir a meta de players colocada, o evento é finalizado e os players voltam para o templo. Lembre-se: - De colocar Pvp Tool na área - De colocar área NoLogout Imagens: Instalação: Data > Lib Data > CreatureScript > Script Data > GlobalEvents > Scripts Data > Movements > Script Configurações do evento
-
Ajuda ( Preciso do System Guardian ou Lendario Ajudanta)
Pra quem conhece o PokeMiw ou Pokexgames, ja sabe que lá se pode soltar um lendario ajudante ( Queria esse system ), que voce clica em um card ( Ou Algo do tipo ) e sai um pokémon que target as coisas só! E também soltam skills sozinhos, lembro que ja teve algo assim, mais foi removido! Obrigado! +++ REP!
- [8.6][MODS] AutoLoot By Account! [+Item]
-
[[ Sistema de PET TFS 0.4 ]]
Fala galera do TK tudo belezura? Espero que sim com todo mundo... Peço caridosamente a moderação que me mova para a área correta caso eu tenha feito o post no lugar errado. ?? Bom o que eu vim trazer na faixa para vocês é um sistema onde o jogador vai poder ter um PET que vai subindo até certo level e com isso vai ganhando mais força. Eu me baseei no sistema desse amiguinho aqui: @PsyMcKenzie Link para o Post do amiguinho. Onde eu vi que tava muito legal mas estavam faltando algumas verificações. Demorei para fazer esses scripts e toda a lógica mexendo apenas 2 horas por dia, por isso vou dar um alert: <<<< -------------------- >>>> "PAM: não me peça para mudar scripts ou adaptar de algum jeito pois eu não vou ter muito tempo para atender pedidos. Vou postar do jeito que está funcionando e se por acaso precisar de ajuste, peço para que outros scripters dêem a devida atenção. Obrigado pela compreensão amiguinhos ?" <<<< -------------------- >>>> Vamos lá, saiba que você vai ter que alterar várias partes de vários fontes, então deixa de preguiça e coloque a mão na massa... Espero que esse script incentive a continuação e aperfeiçõamento de mais desenvolvedores a trabalhar com a nossa comunidade. Na sua pasta de Movements Ex.: "Pasta do Ot Sever\data\movements" no arquivo movements.xml acrescente essas 2 tags: Na pasta scripts dentro da pasta Movements Ex.: "Pasta do Ot Server\data\movements\scripts" crie um arquivo com nome equippet.lua e cole isso dentro do arquivo Na pasta Actions Ex.: "Pasta do Ot Server\data\actions" no arquivo actions.xml cole a TAG: Na pasta Scripts em Actions Ex.: "Pasta do Ot Server\data\actions\scripts" crie um arquivo chamado catchpet.lua e cole isso dentro: Na pasta creaturescripts Ex.: "Pasta do Ot Server\data\creaturescripts" no arquivo creaturescripts.xml cole a TAG: No arquivo dentro da pasta Scripts em CreatureScripts Ex.: "Pasta do Ot Server\data\creaturescripts\scripts" com o arquivo login.lua aberto, procure por "registerCreatureEvent" e adicione abaixo de qualquer um, a seguinte linha de comando: Se o seu Ot server tiver o arquivo save.lua dentro da pasta de creaturescripts Ex.: "Pasta do Ot Server\creaturescripts\scripts\save.lua" você precisa adaptar o script abaixo para se adequar ao seu save.lua. caso seu ot server não tenha o arquivo save.lua apenas insira o script abaixo: Na pasta Monster Ex.: "Pasta do Ot Server\data\monster" no arquivo monster.xml você vai precisar inserir as tags dos pets que for adicionando, por exemplo no meu caso eu criei 5 níveis de pet e você vai entender porque na explicação mais a frente. Na pasta Scripts em Monster Ex.: "Pasta do Ot Server\data\monster\scripts" crie uma pasta chamada Pet e dentro dela o monstro deve ter o mesmo nome que está no arquivo "catchpet.lua" que criamos no começo do processo. Por exemplo no arquivo catchpet.lua que criamos o pet do Dragon Lord está definido como ["Dragon Lord Pet"] = {hp = 500, maxhp = 500, corpse = 7622, chance = 100, level = 0, experience = 0, basename = 'Dragon Lord Pet'} então o monstro deve ser Dragon Lord Pet seguido dos níveis: 0, 1, 2, 3, 4, 5, 6. Por exemplo dentro da pasta "Pasta do Ot Server\data\monster\scripts\Pet" tem que ter os monstros DragonLord Pet0.xml, DragonLord Pet1.xml, DragonLord Pet2.xml, DragonLord Pet3.xml ---------------------------------- Na pasta lib Ex.: "Pasta do Ot Server\data\lib" acrescente no fim do arquivo 050-function.lua o script abaixo: Obs.: Esse script foi feito pelo amiguinho @Orochi Elf e ficou espetacular, parabéns cara... eu só precisei remover o local da variável item pq quando o script verificava itens na BP e nos Slots estava fechando o servidor. Mas o crédito é todo dele, ótimo desenvolvedor sem dúvida. Na pasta npc Ex.: "Pasta do Ot Server\data\npc" crie um arquivo com nome PetHealer.xml e acrescente o código abaixo: Na pasta Scripts de npc Ex.: "Pasta do Ot Server\data\npc\scripts" crie um arquivo com nome pethealer.lua e acrescente o código abaixo: Obs.: Esse script do TalkAlot não fui eu quem desenvolveu, foi alguém aqui do fórum mas tem muito tempo que eu peguei e uso e não lembro a quem devo os créditos, foi mal ai... Execute essa query no seu banco de dados: E agora finalmente a explicação do código: Bom primeiramente o sistema inicial estava utilizando actions e não movements, mas eu resolvi colocar como movements para evitar um pouco de transtorno na lógica apesar de não ter evitado muito... Bem, o sistema consiste em utilizar um item no corpse de um monstro morto para capturá-lo essa é a função do script: catchpet.lua as definições de monstros que podem ser capturados estão no objeto local mtrs = { ["Rat Pet"] = {hp = 500, maxhp = 1000, corpse = 2813, chance = 100, level = 0, experience = 0, basename = 'Rat Pet'}, ["Dragon Lord Pet"] = {hp = 500, maxhp = 500, corpse = 7622, chance = 100, level = 0, experience = 0, basename = 'Dragon Lord Pet'} } Como podem ver o nome entre colchetes e o basename são iguais e tem que ser assim para não dar nenhum erro... o base name tem que ser o mesmo nome do monstro criado na pasta monster\Pet... na pasta como falei antes, o basename tem que ser acompanhado dos níveis no caso do Rat por exemplo, seria Rat Pet0.xml, Rat Pet1.xml, Rat Pet2.xml, até o nível que você determinar, esse sistema do jeito que está, habilita os pets até o nível 10. Os pets são como summons, então coisas relacionadas a ATK, DEF, Magias que os pets tem, tem que ser configuradas no arquivo do monstro. Por exemplo se eu quiser que um Rat nível 2 use UE, vou configurar isso no XML Rat Pet2.xml - hp e maxhp, são as configurações para o hp máximo e hp atual, - chance é a chance em % que o player tem de capturar o monstro, - corpse é o id do corpo que o player pode usar o item para capturar o monstro. na linha de comando "local itemcatch = doPlayerAddItem(cid, 9980, 1, false, 1, 3) -- Cristal que contem o monstro." o id 9980 é o item que vai armazenar as informações do pet e isso você pode mudar sem a necessidade de mexer no items.xml. Obs.: Lembrando que se esse id for alterado, você precisa verificar nos fontes onde mais ele faz referência para esse id, por exemplo no save.lua na pasta data\creaturescripts\scripts Obs2.: não use itens stackáveis pois eles perdem a informação do pet quando você os movimenta, pelo menos nessa source que eu estou usando. O itemid definido na tag actions.xml é o item que vai ser usado na captura do monstro. No fonte do equippet.lua as informações cruciais são: Toda vez que que o pet é equipado com sucesso, uma linha é gravada na database com o xp do player atualmente, e quando desequipado com sucesso, essa linha é removida, e a diferença de exp adiquirida é acrescentada no Pet. Você pode alterar as condições de level do Pet dentro do método updateAttributes. O arquivo save.lua só foi alterado para avaliar algumas condições antes do player deslogar caso ele esteja com o pet. Para usar o pet, vc precisa estar com o item do pet capturado e colocar no slot da flecha, se as condições estiverem certas ele sumona o pet. Se o item for removido do slot e tiver com as condições corretas, ele remove o summon. O sistema não tem muitos efeitos especiais pois acredito que isso é uma coisa particular de cada Host. Se por acaso o pet for morto, o PetHealer pode trazê-lo de volta por uma quantia de 300k mas isso pode ser alterado no script é bem simples. Além disso o NPC PetHealer tem uma micro IA que explica como utilizar o Pet. <<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Bom, espero que vocês gostem do sistema, testem e me avaliem nos comentários se tiverem algum problema e se for útil para você, da um REP++ ai ? <<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
-
Evento Blood Castle [Automático]
Últimas atualizações: 16/12/2013: Introdução: Este é o meu já conhecido evento Blood Castle Automático que estava em outro fórum que acabou. Estou trazendo ele aqui para que ele não "morra". Informações: #Dica: Acho que fica legal o premio do evento ser um item que da double exp por um tempo. Atualização [12/04/2014] Resolvi refazer o código, para facilitar a instalação e melhorar o funcionamento do evento. O que mudou? Instalando o evento: Lib: Movements: Creaturescripts: Monsters: O evento pode acontecer de duas maneiras: automática ou manualmente. Vou por as duas possibilidades: Automática: Manual: Como Configurar: * Se você for colocar, dentro do evento, um teleporte para as pessoas que não quiserem mais participar, coloque o Action ID 9371 nele. * Lembre-se de por NO-LOGOUT tool e NO-PVP tool em toda área do evento!! Todas as demais explicações estão na lib, mas vou demonstrar como configurar os mais "confusos". No modo automático, você configura de quanto em quanto o tempo o evento vai acontecer. Nessa tag: <globalevent name="Blood Castle" interval="3600" event="script" value="BloodGlobalEvent.lua"/> Aqui está 3600 segundos, ou seja, 1 hora. * Se seu servidor for em milisegundos, multiplique o número por 1000, assim: 3600 segundos * 1000 = 3600000 milisegundos = 1 hora. No modo manual, para iniciar o evento, basta usar a talkaction /blood-start com seu god. Em posGuarda, vc deve colocar a posicao do Guarda do Portao, como mostrado abaixo: As posPedras são onde ficam as pedras que tampam a passagem enquanto o evento não esta aberto, conforme na imagem abaixo: Em estátua, vc deve colocar a posição em que o arcanjo vai ser criado, conforme na imagem abaixo: Nas posParedes, vc deve por a posição das paredes que bloqueiam a entrada do castelo e que são removidas quando o guarda morre, conforme abaixo: Em fromPos e toPos, você vai por o canto superior esquerdo e o canto inferior direito do mapa do seu evento, respectivamente. Dessa maneira: As outras configurações eu acredito que já estejam bem explicadas. Espero que gostem dessa nova versão. Recomendo a todos que já usam o evento, reinstalar com essa nova versão. Qualquer dúvida ou bug, postem que irei responder.
-
[MyAAC] Sistema de Troca de Vocação
Olá senhores, hoje vim disponibilizar um Sistema desenvolvido por mim para o MyAAC onde a função dele é vender a Troca de Vocação para o jogador. Explicando como funciona: O desenvolvedor(você) vai definir 1 preço para o jogador pagar para trocar a vocação de seu personagem. Exemplo: Eu sou 1 Naruto e quero mudar minha vocação para 1 Sasuke, eu vou pagar X valor e minha vocação irá ser alterada. Abaixo 1 gif exemplificando o sistema. Como instalar em seu site: É muito simples, vou dividir por passos onde o 1° passo será a inserção do código e o 2° passo a configuração dele. Vamos lá? 1° Passo (Inserção do código) Acesse o diretório system/pages/ e ali dentro você vai criar 2 arquivos. Crie 1 arquivo com nome mudarvoc.php e adicione o seguinte código dentro dele. (Esse arquivo será o responsável por tratar as requisições e irá fazer toda a parte lógica do sistema) Código mudarvoc.php: Agora dentro da mesma página crie 1 arquivo chamado mudarvocacao.php (Ele será responsável por renderizar a parte visual do sistema em seu site), adicione o seguinte código dentro dele: Código mudarvocacao.php: Agora acesse o diretório system/templates/ e ali dentro você vai criar 1 arquivo chamado mudarvoc.html.twig (Ele será a parte visual que vai enviar os dados para o sistema gerenciar e tratar eles), adicione o seguinte código dentro dele: Código mudarvoc.html.twig: Agora no diretório system/templates/ acesse o arquivo account.management.html.twig e adicione o seguinte código dentro dele na parte final dele, esse código vai checar se está ativo a opção de mudar vocação no config.php, se estiver false, ele não vai exibir o botão. Código para adicionar no arquivo account.management.html.twig: Ficando +/- assim: 2° Passo (Configuração do código): Agora acesse o arquivo config.php que está no diretório raiz de seu site. E vamos adicionar o seguinte código: Com estas 2 linhas de código nós já podemos controlar o sistema, a 1ª linha será responsável por ativar e desativar o sistema. A 2ª linha é responsável pelo preço que será cobrado para trocar a vocação. Agora coloque este código: Basicamente aqui estamos definindo quais vocações serão disponibilizadas para o jogador poder trocar pela sua. Exemplo: Com essa configuração estamos definindo que as vocações que você pode pegar ao pagar para trocar a sua são: Chouji, Haku, Shikamaru, Shino, Temari, Rock lee, Hinata e Ino. Fique a vontade para configurar a seu gosto. Agora no diretório system/ abre o arquivo chamado functions.php e adicione a seguinte função: Nessa função você vai configurar os ID das suas vocações, exemplo: $a > 10 && $a < 20, nessa situação você está conferindo se o ID da vocação este entre 11 até 19, pois ele precisa ser maior que 10 e menor do que 20. Sempre que você for adicionar 1 nova vocação nessa função, basta adicionar o else if ($a > TAL && $a < TAL) $nomevoc = "TAL"; Pronto, configurado!! Repare que se você deixar a opção 'mudar_vocacao' => false lá no config.php, ele não vai exibir nada no Gerenciamento de sua conta: Agora se você colocar true, você deve ter algo como isto: Pronto, sistema instalado!! Agora você pode disponibilizar para seus jogadores a opção de trocar de vocação pagando um valor X de pontos.
-
DUCA: o melhor evento para otserv (8.60)
Olá pessoal, tudo bom? Então, estou trazendo um evento que criei: o Duca Evento. A uns 10 anos atrás joguei um ot pvp enforced que funcionava quase da mesma forma desse evento e recentemente resolvi criar um evento dessa forma ... Como funciona: • Primeiramente abre um teleport onde os jogadores que estão acima do level estipulado podem entrar (lembrando que o teleport fica aberto até o final do evento, ou seja, você pode morrer dentro do evento e entrar novamente quantas vezes quiser). • Ao entrar no teleport você será enviado para uma equipe: azul ou rosa (lembrando que o objetivo é você matar jogadores da outra equipe e não poderá atacar os da mesma equipe). • Existe uma pontuação dentro do evento, ou seja, a cada jogador que matar da outra equipe você ganha 1 duca ponto (lembrando que se você morrer você é teleportado para fora do evento e seus duca pontos zeram.) • A cada morte dentro do evento é atualizada uma LISTA RANK, onde é gerado um rank de acordo com a pontuação dentro do evento. • O evento começa ficar bom quando existem mais de 11 jogadores dentro dele, pois é quando o sistema verifica os jogadores da "lista rank" que estão nas posições de segundo a décimo primeiro (2º a 11º) e coloca eles em uma equipe diferente: a vermelha, e é ai que o "bicho pega", pois fora os outros jogadores das outras equipes, existem 10 jogadores dessa equipe, e o melhor, quem mata-los recebe 10 duca pontos. • Como dito acima, ao ter mais de 11 jogadores dentro do evento é criado automaticamente a equipe vermelha (2º a 11º do rank), pois bem, para quem leu certinho viu que pulamos o 1º do rank: é ai que entra a equipe verde, sim, esta equipe será composta apenas por 1 jogador, sempre o que tiver mais pontos no evento (lembrando que essa função do sistema atualiza a cada morte dentro do evento), e é claro quem mata-lo ganhará 30 pontos dentro do evento. • Aconselho a colocar sempre o tempo do evento superior a 30 minutos para melhor jogabilidade e rivalidade. • O objetivo do evento é ser do time verde ao terminar o evento e ganhar o premio (configurei para os do time vermelho tbem ganhar premio, mas inferior ao do verde). Observações: • As cores das equipes que citei são represetativas, lá você pode editar as que quiserem. • Um mapa opcional esta disponivel para download no tópico. • Não ensinarei detalhes minimos de instalação no servidor porque você deve ao menos ter uma noção básica de otserv. Como instalar: • Primeiramente o arquivo que ficará na lib, ele é o coração do evento, tudo que você precisar configurar é nele. Nomeie de DUCA.lua: • Depois na pasta creaturescripts/scripts/ crie o arquivo DUCA_creaturescripts.lua: (lembrando que as tags para colocar no creaturescripts.xml esta como comentário no começo do código) • Depois na pasta globalevents/scripts/ crie o arquivo DUCA_globalevents.lua: (lembrando que as tags para colocar no globalevents.xml esta como comentário no começo do código) • Depois na pasta movements/scripts/ crie o arquivo DUCA_movements.lua: (lembrando que as tags para colocar no movements.xml esta como comentário no começo do código) Espero que gostem! D U C A ducaMap.otbm
-
Sistema de Mineração
Achei esse sistema bem interessante e ao mesmo tempo é um script bem simples, tenho certeza que muitos irão gostar... Imagem: Abra o bloco de notas, cole o script abaixo e salve o arquivo como minerar.lua e coloque-o na pasta scripts (data/actions/scripts). --Lumberjack by: Lwkass --Version: 1.1.5 --Configs-- local configs = { sign = {{level = {0,9}, quant = {1,2}, percent = 40}, {level = {10,19}, quant = {2,4}, percent = 45}, {level = {20,29}, quant = {3,6}, percent = 50}, {level = {30,39}, quant = {4,8}, percent = 55}, {level = {40,49}, quant = {5,10}, percent = 60}, {level = {50,59}, quant = {6,12}, percent = 65}, {level = {60,69}, quant = {7,14}, percent = 70}, {level = {70,79}, quant = {8,16}, percent = 75}, {level = {80,89}, quant = {9,18}, percent = 80}, {level = {90,99}, quant = {10,20}, percent = 85}, {level = {100}, quant = {11,22}, percent = 90}}, stones = {1285, 1356}, gold = {{2157, 'all'}}, stone_delay = 15, MaxLevel = 100 } --END Configs-- function onUse(cid, item, fromPosition, itemEx, toPosition) local STORAGE_SKILL_LEVEL = 20000 local STORAGE_SKILL_TRY = 20001 local skillLevel = getPlayerStorageValue(cid,STORAGE_SKILL_LEVEL) local skillTry = getPlayerStorageValue(cid,STORAGE_SKILL_TRY) local objeto2 = getThingFromPos(toPosition) local player = getCreaturePosition(cid) if skillLevel == -1 then setPlayerStorageValue(cid,STORAGE_SKILL_LEVEL,1) end for Q = 1, #configs.sign do if configs.sign[Q].level[2] == nil then configs.sign[Q].level[2] = configs.sign[Q].level[1] end if skillLevel >= configs.sign[Q].level[1] and skillLevel <= configs.sign[Q].level[2] then quant = math.random(configs.sign[Q].quant[1],configs.sign[Q].quant[2]) percent = configs.sign[Q].percent break end end for i = 1, #configs.stones do if objeto2.itemid == configs.stones[i] then if math.random(1,100) <= percent then possible_gold = {{},{}} for h = 1, #configs.gold do if configs.gold[h][2] == objeto2.itemid then possible_gold[1][#possible_gold[1]+1] = configs.gold[h][1] else if configs.gold[h][2] == 'all' then possible_gold[2][#possible_gold[2]+1] = configs.gold[h][1] end end end if possible_gold[1][1] == nil and possible_gold[2][1] == nil then doPlayerSendTextMessage(cid,22,"This stone can not be mined.") elseif possible_gold[1][1] ~= nil then doPlayerAddItem(cid,possible_gold[1][math.random(1,#possible_gold[1])],quant) elseif possible_gold[1][1] == nil and possible_gold[2][1] ~= nil then doPlayerAddItem(cid,possible_gold[2][math.random(1,#possible_gold[2])],quant) end if possible_gold[1][1] ~= nil or possible_gold[2][1] ~= nil then if skillTry >= 0 then setPlayerStorageValue(cid,STORAGE_SKILL_TRY,skillTry + 1) else setPlayerStorageValue(cid,STORAGE_SKILL_TRY,1) end doSendMagicEffect(getCreaturePosition(cid), 12) doPlayerSendTextMessage(cid,22,"You got "..quant.." gold "..getItemNameById(objeto2.itemid)..".") doSendAnimatedText(getCreaturePosition(cid), ''..quant..'', 192, cid) setItemName(objeto2.uid, 'A remains of '..getItemNameById(objeto2.itemid)) doSendMagicEffect(toPosition, 3) addEvent(dostoneReturn,configs.stone_delay * 1000,toPosition,objeto2.itemid) doTransformItem(objeto2.uid, 3610) break end else doPlayerSendCancel(cid,"You got nothing") doSendMagicEffect(toPosition, 3) setItemName(objeto2.uid, 'A remains of '..getItemNameById(objeto2.itemid)) doSendAnimatedText(getCreaturePosition(cid), 'Fail!', 180, cid) addEvent(dostoneReturn,configs.stone_delay * 1000,toPosition,objeto2.itemid) doTransformItem(objeto2.uid, 3610) break end else doPlayerSendCancel(cid,"You can only mine stones") end end if skillTry >= ((skillLevel+1)*3) then if skillLevel == configs.MaxLevel then doPlayerSendTextMessage(cid, 22, "Max level reached in mining.") setPlayerStorageValue(cid,STORAGE_SKILL_TRY,0) else setPlayerStorageValue(cid,STORAGE_SKILL_LEVEL,skillLevel + 1) setPlayerStorageValue(cid,STORAGE_SKILL_TRY,0) doPlayerSendTextMessage(cid, 22, "You advanced from level ".. skillLevel .." to level ".. skillLevel + 1 .." in Mining.") doSendMagicEffect(getCreaturePosition(cid),14) doSendAnimatedText(getCreaturePosition(cid), 'Advance!', 18, cid) end end end function dostoneReturn(itemposition,oldid) local pos = getThingfromPos(itemposition) doTransformItem(pos.uid,oldid) setItemName(pos.uid, getItemNameById(oldid)) doSendMagicEffect(itemposition,math.random(28,30)) end --Lumberjack by: Lwkass Feito isso, vá em data/actions/actions.xml e adicione esta tag: <action itemid="2553" event="script" value="minerar.lua"/> Lembrando que o itemid 2553 no caso é a pick, mas você pode utilizar qualquer outro item que tenha 'use with'. Você gostou deste conteúdo!? Este conteúdo te ajudou!? Isso será realmente útil pra você!? Então, se possível, faça uma doação (de qualquer valor) que estará me ajudando também!
-
[Sistema] Advanced Trade Points v1.0
Apresentação: Olá galera do Tibia King, este é meu primeiro tutorial que desenvolvo após anos apenas sugando da comunidade, chegou a hora de compartilhar um pouco de conhecimento, rsrs... Após ver que muitos usuários tinham interesse em um sistema de Trade de Points in-game resolvi trazer um sistema totalmente completo para vocês. Funcionamento: Player 1 após adquirir os Points, pode iniciar uma negociação com o Player 2 através do comando /tradepoints Player 2, Quantidade. Será aberto uma Janela de Trade com o item referente aos Points. Após ambos aceitarem a negociação será realizado a troca de Points pelo item requisitado. Observações: Necessário ter acesso às Sources de sua Distro. Testado em servidor 8.6 (The Forgotten Server 0.4). Antes que venham falar que possui sistemas parecidos, veja o diferencial (Item não aparece em nenhum inventário, e não é necessário usar/comprar qualquer item). Algumas Imagens: Instalação: Sources > Luascript.cpp Sources > Luascript.cpp Sources > Luascript.h Server > Data > Lib > 050-function Server > Data > Creaturescripts > Scripts >Trade_Orbs.lua Server > Data > Creaturescripts > Creaturescripts.xml Server > Data > Creaturescripts > Scripts > Login.lua Server > Data > Talkactions > Scripts > Points_Trade.lua Server > Data > Talkactions > Talkactions.xml Créditos: Todo o sistema foi feito completamente por mim: Vítor Subhi. The Forgotten Server (Pelas Sources) Vodkart, White Wolf, Natanael Beckman, e a todos os demais membros do TK que não lembro o nome, que contribuíram indiretamente através de seus tutoriais.
-
[TFS 1.3] OUTFIT BÔNUS
Olá, em data/events/scripts/creature.lua (implemente o código substituindo a função onChangeOufit, e verifique se ela esta definida como 1 em events.xml) function createBonusCondition(id, params) local condition = Condition(CONDITION_ATTRIBUTES, CONDITIONID_DEFAULT) condition:setParameter(CONDITION_PARAM_TICKS, -1) condition:setParameter(CONDITION_PARAM_SUBID, id) for i = 1, #params do local param = params[i].param local value = params[i].value condition:setParameter(param, value) end return condition end outfitBonus = { -- [{male outfit id, female outfit id}] = createBonusCondition(ID, parameters & values) [{128, 136}] = createBonusCondition(1, { {param = CONDITION_PARAM_STAT_MAGICPOINTS, value = 10}, {param = CONDITION_PARAM_STAT_MAXHITPOINTSPERCENT, value = 110} } ), [{129, 137}] = createBonusCondition(2, { {param = CONDITION_PARAM_STAT_MAXMANAPOINTSPERCENT, value = 200} } ) } function getBonusCondition(outfit) for outfits, bonus in pairs(outfitBonus) do if table.contains(outfits, outfit) then return bonus end end return nil end function Creature:onChangeOutfit(outfit) if not self:isPlayer() then return true end local previousBonusCondition = getBonusCondition(self:getOutfit().lookType) local newBonusCondition = getBonusCondition(outfit.lookType) if previousBonusCondition then self:removeCondition(CONDITION_ATTRIBUTES, CONDITIONID_DEFAULT, previousBonusCondition:getSubId()) end if newBonusCondition then self:addCondition(newBonusCondition) end return true end Em data/creaturescript/scripts/login.lua (dentro da função onLogin implemente o código a seguir) -- Outfit bonus local bonusCondition = getBonusCondition(player:getOutfit().lookType) if bonusCondition then player:addCondition(bonusCondition) end Para configurar usa o exemplo a seguir: outfitBonuses = { [{male outfit id, female outfit id}] = createBonusCondition(ID, parameters & values) } O ID deve ser diferente para cada bônus, de modo que o script pode identificar entre as condições. Os parâmetros devem estar dentro de uma tabela: {param = alguma_condição_parâmetro, value = valor_para_mudar} Aqui estão os parâmetro disponíveis no TFS 1.3: CONDITION_PARAM_OWNER CONDITION_PARAM_TICKS CONDITION_PARAM_HEALTHGAIN CONDITION_PARAM_HEALTHTICKS CONDITION_PARAM_MANAGAIN CONDITION_PARAM_MANATICKS CONDITION_PARAM_DELAYED CONDITION_PARAM_SPEED CONDITION_PARAM_LIGHT_LEVEL CONDITION_PARAM_LIGHT_COLOR CONDITION_PARAM_SOULGAIN CONDITION_PARAM_SOULTICKS CONDITION_PARAM_MINVALUE CONDITION_PARAM_MAXVALUE CONDITION_PARAM_STARTVALUE CONDITION_PARAM_TICKINTERVAL CONDITION_PARAM_FORCEUPDATE CONDITION_PARAM_SKILL_MELEE CONDITION_PARAM_SKILL_FIST CONDITION_PARAM_SKILL_CLUB CONDITION_PARAM_SKILL_SWORD CONDITION_PARAM_SKILL_AXE CONDITION_PARAM_SKILL_DISTANCE CONDITION_PARAM_SKILL_SHIELD CONDITION_PARAM_SKILL_FISHING CONDITION_PARAM_STAT_MAXHITPOINTS CONDITION_PARAM_STAT_MAXMANAPOINTS CONDITION_PARAM_STAT_SOULPOINTS CONDITION_PARAM_STAT_MAGICPOINTS CONDITION_PARAM_STAT_MAXHITPOINTSPERCENT CONDITION_PARAM_STAT_MAXMANAPOINTSPERCENT CONDITION_PARAM_STAT_SOULPOINTSPERCENT CONDITION_PARAM_STAT_MAGICPOINTSPERCENT CONDITION_PARAM_PERIODICDAMAGE CONDITION_PARAM_SKILL_MELEEPERCENT CONDITION_PARAM_SKILL_FISTPERCENT CONDITION_PARAM_SKILL_CLUBPERCENT CONDITION_PARAM_SKILL_SWORDPERCENT CONDITION_PARAM_SKILL_AXEPERCENT CONDITION_PARAM_SKILL_DISTANCEPERCENT CONDITION_PARAM_SKILL_SHIELDPERCENT CONDITION_PARAM_SKILL_FISHINGPERCENT CONDITION_PARAM_BUFF_SPELL CONDITION_PARAM_SUBID CONDITION_PARAM_FIELD CONDITION_PARAM_DISABLE_DEFENSE CONDITION_PARAM_SPECIALSKILL_CRITICALHITCHANCE CONDITION_PARAM_SPECIALSKILL_CRITICALHITAMOUNT CONDITION_PARAM_SPECIALSKILL_LIFELEECHCHANCE CONDITION_PARAM_SPECIALSKILL_LIFELEECHAMOUNT CONDITION_PARAM_SPECIALSKILL_MANALEECHCHANCE CONDITION_PARAM_SPECIALSKILL_MANALEECHAMOUNT CONDITION_PARAM_AGGRESSIVE Créditos: INFERNUM (OTLAND)
-
ANTIENTROSA - Número de players e SSAMIGHT
Salve galera, Esse é meu primeiro post aqui no fórum então me desculpe caso esteja postando no lugar errado. Estou com 2 problemas na minha anti-entrosa: O primeiro é que não consigo selecionar o número de players de cada guild, ela está configurando o número de frags total para cada guild, por exemplo se colocarmos 50 frags e cada time tem 10 players quando tiver acontecido 40 mortes de 1 lado quem morrer não consegue mais voltar para citywar e a guerra acaba quando o ultimo é morto totalizando os 50 frags. (Pode entrar quantos players a guild tiver, queria que desse pra estipular o número de players de cada guild que podem entrar). O segundo é que não está bloqueando equipar SSA e Might ring, e também não bloqueia os summons. Vou colocar abaixo meus scripts. LIB Talk Actions Desde já obrigado pela atenção. Att,
-
[TFS 1.3] TARO EVENT - Novo evento para OT
* Apresentação * Bom, galera, tá tudo explicado no vídeo de como funciona o evento [Manual e Automático], como configurar o arquivo e tudo mais. Arquivos do evento estão anexado no tópico, assim como o vírus scan também, :). * Vídeo * * Comandos * !taro abrir Utilizado por staffs para abrir o evento [Manual] !taro fechar Utilizado por staffs para fechar o evento [Manual] !taro encerrar Utilizado por staffs para encerrar o evento [Manual] !taro kick,nome_jogador Utilizado por staffs e PLAYERS para kickar alguém do evento * Links * Vírus scan: https://www.virustotal.com/pt/file/7b30879de2745ef020a06de135dae7bd80673eb0d5d2f80b22b1f2a6db5158e0/analysis/1548894947/ Download: Taro Event - Lordzetros.zip Dúvidas, sugestões, críticas ou bugs? Deixe abaixo,
-
Alguém consegue fazer - Sistema anti-deslize
TFS 0.4 TIBIA 8.6 você tenta jogar o item {VIP} é aparece essa mensagem alguém pra tentar criar esse sistema ??? obg:se estiver na área errada só mover obrigado ! ! !
-
[Pokemon] Task System Full Separado Por Elementos
Eae Galera Beleza? - Hoje Vou Postar um Sistema de TASK separados por Elementos Configurado (Primeira e Segunda) Geraçao , Intao Vamos La: [+] Info: - Task System (Pode Repetir a Task Varias Vezes) - Task Separado Por (Elemento) - Configurado (Primeira e Segunda) Geraçao - Npc Mega Task (Receber Premio e Experiencias) - Configurado [+] Cria um Arquivo em (data/lib) e cria um Arquivo Chamado: amoebaTask.lua - obs: Aki voce Adiciona Mais Pokemons Separados Por Elementos e Edita o Premio e a ExP que vai Ganhar [+] Depois vai em (data/creaturescripts/scripts) e cria um Arquivo Chamado: Task.lua - Depois vai em (data/creaturescripts/creaturescripts.xml) e adiciona isso: <event type="kill" name="task" event="script" value="task.lua"/> - Logo Apos registra no Login: registerCreatureEvent(cid, "task") [+] Depois Cria um Arquivo em (data/npc/scripts) Chamado: task.lua: - Logo Apos vai em (data/npc) e cria um arquivo chamado: task.xml [+] Agora Cria um Arquivo (data/talkactions/scripts) Chamado: task.lua - Depois vai em (data/talkactions/talkactions.xml) e adiciona isso: <talkaction words="!task;/task" script="task.lua"/> Creditos: Killua NextBR (Por Editar)
-
Sala de Boss
Pessoal tenho esse código que achei por aqui no site: Que vai na pasta Movements, e serve para criar uma Boss Room onde só entra 1 pessoa por vez. Enfim, ela faz quase tudo que está escrita pra fazer ( spawna o boss, seta o tempo para kickar o jogador ), porém não está limpando a sala e nem deixando o mesmo jogador repetir o boss. Coloquei ai no script para o boss poder ser feito de 1 em 1 minuto, porém ele não deixa o personagem fazer mais de 1 vez. Criei um item para dar ao personagem o Storage 9000, esse item qdo usado some e o personagem ganha o storage, então ele consegue entrar no TP. Acontece que depois que ele sai ele não consegue entrar mais, como se o storage tivesse sido removido, mas no banco de dados do PHPMYADMIN fica 9000 lá em players_storage. Ps: Se usar novamente o item de storage ele acaba conseguindo ir de novo no boss porém, somente +1 vez (???) Como o post de onde tirei já era meio velhinho resolvi fazer um novo para tirar a duvida. Agradeço desde já ^^.
-
Click Up 2.0 + Automático
A ideia do "CLICK UP" já vem de algum tempo de alguns servidores onlines atualmente, então aprimorei e automatizei esse sistema. O Click UP já conhecido funciona da seguinte forma, é necessário um ADM de um servidor utilizar um comando, melhor dizendo uma "SPELL" onde irá aparecer um item em diversos SQM's em uma área X em volta do ADM. Onde os jogadores podem sair clicando no mesmo ganhando "leveis". Venho lançar o CLICK UP 2.0 Onde o sistema consiste não apenas em ganhar em cada uso, e sim em ter uma possibilidade facilmente editável de ao utilizar o item o jogador ganhar level e criar um "Monstro" configurado pelo ADM na script. Podendo ser um Boss, uma Trap, um Rotworm que seja, indo da vontade do dono do servidor. O sistema funciona da seguinte maneira -> Ao utilizar o item que aparece no chão do evento, irá aparecer um "número" em laranja no jogador, esse número pode variar em uma quantidade X que será definida pelo ADM, Quanto maior o número, mais difícil a chance de sucesso em criar o monstro após o uso do item. Exemplo: Se o sistema estiver configurado em 100, o sistema irá funcionar como um DICE, porém será 100 números e não apenas 6. Nesse caso a chance de criar o monstro ao utilizar o item será de 1 em 100. Para o monstro aparecer é necessário aparecer o número "4". Sempre que um jogador utilizar o item e surgir o número "4" o mesmo irá criar automaticamente um Monstro, onde poderá ser morto por todos participantes do evento! Além é claro, de ganhar a quantidade X de level que o item está configurado para dar. Vamos Ao Script Primeiro criamos uma ACTION onde iremos configurar a principal parte do sistema, onde está relacionado a quantidade de level máximo que poderá receber level, configurar a quantidade de leveis que cada click irá dar e por final configurar a chance de surgir um monstro ao utilizar o item. Crie o arquivo.lua com o nome de sua preferencia, no meu caso utilizei por "evento" Level ganho por CLICK Monstro que irá surgir ao sair o número da sorte Chance de surgir o monstro Level máximo para participar do evento Número da sorte que fará surgir o Monstro Tempo necessário para utilizar novamente o item do evento "OBS: o número sempre será somado em +1, como está no script "4" o tempo para reutilizar será 5 segundos". Em action.xml iremos adicionar a seguinte linha: ID do item a ser usado no evento que será usado nos clicks para ganhar leveis e tentar a sorte para surgir monstros. Seguimos para próxima etapa. Para o evento ser realizado manualmente pelo ADM, basta criar uma SPELL utilizando o seguinte codigo. Em Spells.xml Adicione a seguinte função: Até aqui o sistema já está funcionando perfeitamente, porém sendo realizado manualmente pelo ADM do servidor, agora vamos a outra ETAPA, automatizar o evento! Primeiro, vamos em GlobalEvents iremos adicionar um novo script lua com o nome de "clickUp". Em globalevents.xml iremos adicionar 2 linhas: Horário de inicio do evento. Horário de termino do evento. Agora iremos na pasta LIB, iremos criar uma função, onde será toda magica da automatização do sistema. Criaremos um arquivo lua com o nome de "clickuplib": Posição do teleporte que será criado para levar os jogadores ao EVENTO. Posição que será configurada no teleporte que irá levar os jogadores ao EVENTO. Dimensão inicial da sala do evento! Canto superior esquerdo! Dimensão final da sala do evento! Canto inferior direito! Posição do templo do servidor, onde jogadores serão levados ao finalizar o evento! O evento automatizado funciona em rodadas, que acontecem a cada determinado templo, atualmente configurado de 4 em 4 minutos, A cada ROUND os jogadores serão levados ao inicio da sala do evento, e os itens do evento "mais conhecidos como: Click UP" Serão reiniciados em toda a sala configurada! O sistema é totalmente funcional, testado e comprovado! CRÉDITOS 60% a mim @Carrascohsf pela criação do CLICK UP 2.0 onde é possível surgir monstros durante o evento. 40% ao @AdmNewTibia por toda automatização do evento. Obs: Melhor programador para qualquer tipo de sistema, desde o mais simples como automatizar um evento, quanto ao mais complexo como sistema de imbuiment na versão 8.6. Qualquer necessidade de contratar os serviços do mesmo aqui está o contato: [email protected] Ou através do whatsapp: (11) 93006-3905.
-
Como remover storage sistema de pontos
Olá possuo um sistem em meu servidor "Developed by MaXwEllDeN" Créditos à "MaXwEllDeN", e preciso de uma ajuda.... Teria alguma maneira de fazer o player sempre ganhar pontos (remover verificação de storage), porque se caso o servidor possua um sistema de reset (como o meu por exemplo), o player não irá ganhar os pontos após resetar.... Segue a configuração do script..... -- ####################################### -- ####### Developed by MaXwEllDeN ####### -- ####### Level Points System ####### -- ####### Version: 1.0 ####### -- ####################################### local VocPoints = L_LvlPoints.vocPoints function onAdvance(cid, skill, oldlevel, newlevel) if not (VocPoints[getPlayerVocation(cid)]) then return true end if skill == 8 and getPlayerStorageValue(cid, 14573) < newlevel then if (getPlayerStorageValue(cid, 14574) < 0) then setPlayerStorageValue(cid, 14574, 0) setPlayerStorageValue(cid, 14573, 0) end setPlayerStorageValue(cid, 14573, newlevel) setPlayerStorageValue(cid, 14574, getPlayerStorageValue(cid, 14574) + (newlevel - oldlevel) * (VocPoints[getPlayerVocation(cid)])) doSendAnimatedText(getThingPos(cid), "+" .. (newlevel - oldlevel) * (VocPoints[getPlayerVocation(cid)]), 18) end return true end ######### Fico no aguardo....
-
[pedido] sistema de pet
queria 1 sistema de pet para OTX que o pet fosse evoluindo EU PAGARIA DEPENDE SE O SISTEMA ESTIVER PEGANDO CERTINHO LEMBRANDO QUERO ESSE SISTEMA PARA O OTX PAGO BEM Configurações gerais Em geral os pets possuem características próprias entre eles, no entanto algumas delas valem para todos que são: Pets seguem o jogador mais naturalmente que um summon normal (utevo res). Pets tem seu próprio level ligado ao jogador. Pets recebem experiencia exclusivamente da sua participação na morte de uma criatura, ou seja, não adianta o jogador sumonar um pet e sair matando tudo, pois o que vai valer é quanto o pet bateu no monstro morto. Pets são removidos ao usar o comando para remover. Ao remover um pet, o mesmo só poderá ser sumonado novamente depois de 120 segundos. Pets mortos só podem ser sumonados novamente após 120 segundos. Caso o mestre se distancie muito do seu pet, o mesmo será teletransportado até o seu mestre. Pets não podem ser curados por jogadores! Eles se curam sozinhos., ou com um pet druid. O level de cada pet influencia diretamente em seu dano, vida e velocidade, assim como características exclusivas de cada um. Ao dar look no pet, o mestre pode ver o level e a porcentagem de exp que falta e as cargas que ainda estão disponíveis para o mesmo upar. Outros players, só conseguem ver o level. Lembrando que qualquer uma destas características podem ser modificadas a qualquer momento. Comandos !pet > mostra os pets disponíveis e comandos auxiliares. !pet summon >pet Name > sumona o pet específico. !pet remove > remove um pet do jogo. !pet Spell > mostra as magias disponíveis. Tipos de Pets Pet Mercenary (Pet padrão, todos possuem) Requerimentos para sumonar: level 100, premmy account Caracteísticas: Blockuer - muita vida - mestre em habilidades físicas - recebe resistência de acordo com o level. Vida: ++++ Ataque: +++ Healing: +++ Habilidades: Cura: Exura master ico (a partir do lvl 10) Os parâmetros de cura do pet, seguem o exemplo: exura master ico:90 (quer dizer que quando o pet tiver com 90% de hp, ele vai usar a cura. É como se fosse um bot). Use a magia de cura referente ao seu pet Suporte: Challenge, cooldown de 2s. Ataque: Exori mas, cooldown 6s. Ataque: Exori, cooldown 6s. Ataque: Exori gran, cooldown 8s, (level 50+) Ataque Especial: Exori Fur cooldown 10s, (level 150+) Comandos: !pet summon, mercenary - !pet autospell,(magias) Outfits: Level 1~99: Level 100~299: Level 300~399: Level 400+: Pet Witchdoctor (Pet pago 50PPTs) Requerimentos para sumonar: level 100, premmy account Características: Pouca vida, mestre em habilidades de gelo e terra, possui magia para curar seu mestre e a si mesmo. Possui buf de vita para si e para os pets em sua volta que não estiverem bufados. Vida: ++ Ataque: ++++ Healing: ++ Habilidades: Cura: Exura gran/ exura vita (a partir do lvl 10) Cura: Exura sio master/pet (a partir do lvl 100) Suporte: Utamo min vita(lvl 100) Suporte: vita sio pet (lvl 300) Ataque: Avalanche, cooldown 4s. Ataque: Stone Shower, cooldown 4s. Ataque Especial: Exevo gran mas frigo, cooldown 10s, (level 150). Ataque Especial: Exevo gran mas tera, cooldown 10s, (level 150). Comandos: !pet summon, Witchdoctor - !pet autospell,(magias) Outfits: Level 1~99: Level 100~299: Level 300~399: Level 400+: Pet Mage (Pet pago, 50PPTs) Requerimentos para sumonar: level 100, premmy account Caracteísticas: Pouca vida - mestre em habilidades de fogo e energia. Vida: ++ Ataque: +++++ Healing: ++ Habilidades: Cura Exura gran/ exura vita (a partir do lvl 10) Suporte: Utamo min vita(lvl 100) Ataque: Great Fireball, cooldown 4s. Ataque: Thunderstorm, cooldown 4s. Ataque especial: Exevo gran mas flam, cooldown 10s, (level 150). Ataque especial: Exevo gran mas vis, cooldown 10s, (level 150). Comandos: !pet summon, mage - !pet autospell,(magias) Outfits: Level 1~99: Level 100~299: Level 300~399:Level 400+: Pet Blaze(adquirido na Elite Quest) Pode ser comprado no site - 50 PPTs Requerimentos para sumonar: level 100, premmy account Características: Pouca vida, mestre em habilidades de fogo. Vida: ++ Ataque: +++++ Healing: ++ Habilidades: Cura Exura gran/ exura vita (a partir do lvl 10) Suporte: Utamo min vita(lvl 100) Ataque:Fireball, cooldown 4s. Ataque: Bomb, cooldown 10s, level minimo 150. Comandos: !pet summon, blaze - !pet autospell,(magias) Outfits: Level 1~99: Level 100~299: Level 300~399: Level 400+: Pet Wolf (adquirido na Hells Tower Quest) Pode ser comprado no site - 50 PPTs Requerimentos para sumonar: level 100, premmy account Características: Pouca vida - mestre em habilidade de regeneração - furia repentina - fraco contra sagrado. Vida: +++ Ataque: ++++ Healing: +++ Habilidades: Cura: Exura master ico (a partir do lvl 10) Suporte: Utani hur, cooldown 10s. Ataque: Fury, cooldown 10s, (level 150). Ataque: Drain, cooldown 4s, (level 100). Ataque especial: Wide Berserk, cooldown 10. Comandos: !pet summon, wolf - !pet autospell,(magias) Outfits: Level 1~99: Level 100~299: Level 300~399:Level 400+: Pet Archer (Pet padrão todos possuem) Requerimentos para sumonar: level 100, premmy account Características: Equilibrio em hp e ataque, mestre em habilidades físicas e santas a distancia Vida: +++ Ataque: +++ Healing: ++ Habilidades: Cura: Exura san (lvl 10) Cura: Exura Gran san(a partir do lvl 20) Ataque: Burst Arrow, cooldown 4s. Ataque: Holy Missile, cooldown 4s, (level 50). Ataque Especial: Exori con hur, cooldown 10s, (level 150). Comandos: !pet summon, archer - !pet autospell,(magias) Outfits: Level 1~99: Level 100~299: Level 300~399: Level 400+: Level Conforme o pet upa, ele recebe melhorias que são, no geral todos: Aumenta o poder de se auto curar Aumenta o seu dano Aumenta sua vida máxima Sua velocidade de caminhada fica mais rápida
-
Pedido de Script - Organizar BP
ola, eu tenho um ot global que tem algumas modificações, uma delas é as BP's terem 100 slotes, porem gostaria muito uma forma dos itens iguais ficarem sempre juntos do outros, um exemplo, pode ser uma runa um comando, que ao fazer ele pega todas as moedas e colocam uma do lado da outra, os itens de outfit, um do lado do outro, não precisa ser por tipo de item mas sim que não fique um no inicio da bp e outro no final. fico no aguardo e obrigado ?
-
Pedido de script
Primeiramente desculpe se o tópico estiver na área errada. pessoal gostaria de um script que quando o player matasse 666 demons, o player seria teleportado para uma área definida no mapa e aparece um Boss, mas que o Boss que aparecesse, poderia variar, exemplo um player matou 666 demons e foi teleportado, aí aparece um orshabaal, nos próximo 666 demons, aparece um morgarorh. É possível?