Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 05/16/16 em todas áreas

  1. 1 ponto
    Um método diferente de agir. Escolhas diferentes, um projeto surpreendente, e o melhor é opensource. Sim, você pode ter acesso a este servidor que estou desenvolvendo em parceria com a Serversoft para você. Um servidor com uma mega estrutura para suportar seus jogadores online sem nenhum problema como: debug, bug de clonagem, instabilidade entre diversos outros dos servidores free's disponíveis para download nessa vasta internet tibiana. Uma inovação no ramo de OTservers, distribuindo não só a datapack como as sourcers e os sistemas, absolutamente tudo que você procura. Basta baixar, compilar... Mas eu não sei compilar. Não há problema nisso, o OTPanel da Serversoft faz tudo isso para você. Basta clicar num botão de "play" e ver a mágica acontecer. O projeto Vanaheim, foi criado com o intuito de ser inteiramente grátis para toda a comunidade. Um servidor no qual a diversão é o fator principal, um projeto com viabilidade absoluta por todos os tibianos. O projeto conta com uma área exclusiva no GitHub para que todos possam acompanhar a evolução do mesmo, dia a dia, diversas atualizações estarão disponíveis a todos. Desde uma action até uma modificação na source vocês terão acesso. O servidor conta com um mapa Global Full, quando eu digo full, quero dizer que está 99.99% do mapa completo, sem bugs entre outros. Um servidor que você escolhe a rate experience/skill que desejar, ele vai se adaptar! Você pode escolher se quer ou não que as quests tenham as missões originais 100%! E o melhor? Além do servidor estar disponível para download ele está online para quem quiser conhecer o projeto, ajudar de alguma forma e o melhor de tudo, se divertir. Venha se divertir: http://www.vanaheimglobal.com RATES Level 8 - 50: 300x Level 51 - 80: 200x Level 81 - 100: 150x Level 101 - 140: 90x Level 141 - 160: 70x Level 161 - 180: 60x Level 181 - 200: 50x Level 201 - 230: 40x Level 231 - 260: 30x Level 261 - 290: 20x Level 291 - 310: 15x Level 311 - 340: 10x Level 341 - 350: 8x Level 351 - 380: 6x Level 381 - 430: 4x Level 431 - 450: 2x Level 451+: 1x Skill: 40x Magic: 8x Loot: 3x EVENTOS Em Breve. IMAGENS Em Breve. GITHUB Para acompanhar e baixar o servidor atualizado, segue o link do nosso projeto no GitHub: DOWNLOADS Servidor Mapa Yasir Scan CRÉDITOS TFS Team Orts Project Bruno Minervino
  2. 1 ponto
    Fala galerinha linda do TK, vejo muita gente reclamando do battlefield do nosso amigo Vodkart, mas aqui funciona 100%, creio que seja rejeição nos TFS, mas então resolvi trazer a vocês um battlefield que venho customizando a algum tempo, o mesmo possui em alguns servidores poloneses, globalwar e cia. O Evento é um pouco modificado do que o tradicional battlefield, porém acho que ficou mais legal, é de pegar a bandeira do time inimigo, para dar um pouco mais de emoção que tal? rs. Preste atenção nos arquivos e como configurar, estarei explicando tudo passo a passo. Atenção, o comando para abrir o evento é: /battlefield 20 (o 20 é o número de participantes, no caso 10 no time vermelho e 10 no preto, coloque sempre números pares para balancear corretamente o evento) Vamos ao que interessa: Primeiramente, em data/libs crie um arquivo com o nome de battlefield.lua e adicione o seguinte dentro: battlefield = { storage = 201206300801, storage2 = 201206300802, tpPos = {x=32342, y=32213, z=7}, -- aonde aparecerá o teleport pos_team_1 = {x=31621,y=31860,z=7}, -- posição do team 1 (do lado direito) pos_team_2 = {x=31582,y=31860,z=7}, -- posição do team 2 (do lado esquerdo) spectors = {{x=31593,y=31853,z=6},{x=31609,y=31853,z=6},{x=31593,y=31866,z=6},{x=31609,y=31866,z=6}}, -- aonde aparecerá os espectadores (em volta do battlefield) team1Name = "Black Assassins", team2Name = "Red Barbarians", } function doBroadCastBattle(type,msg) for _, cid in pairs(getPlayersOnline()) do if getPlayerStorageValue(cid, battlefield.storage2) ~= -1 then doPlayerSendTextMessage(cid,type,msg) end end return true end function removeTp() local t = getTileItemById(battlefield.tpPos, 1387) if t then doRemoveItem(t.uid, 1) doSendMagicEffect(battlefield.tpPos, CONST_ME_POFF) end end function OpenWallBattle() local x = true local B = { [1] = {1056,{x=31601, y=31858, z=6, stackpos = 1}}, -- posição da barreira [2] = {1056,{x=31601, y=31859, z=6, stackpos = 1}}, -- posição da barreira [3] = {1056,{x=31601, y=31860, z=6, stackpos = 1}}, -- posição da barreira [4] = {1056,{x=31601, y=31861, z=6, stackpos = 1}} -- posição da barreira } for i = 1, #B do if getTileItemById(B[i][2], B[i][1]).uid == 0 then x = false end if x == true then doRemoveItem(getThingfromPos(B[i][2]).uid,1) else doCreateItem(B[i][1], 1, B[i][2]) end end end function getWinnersBattle(storage) local team = storage == 1 and battlefield.team1Name or battlefield.team2Name doBroadcastMessage("Players from team ".. team .." won the event battlefield,they received a Master Surprise Bag!") setGlobalStorageValue(battlefield.storage, -1) removeTp() OpenWallBattle() for _, cid in pairs(getPlayersOnline()) do if getPlayerStorageValue(cid, battlefield.storage2) ~= -1 then doRemoveCondition(cid, CONDITION_OUTFIT) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) if getPlayerStorageValue(cid, battlefield.storage2) == storage then doPlayerAddItem(cid,6571,1) end setPlayerStorageValue(cid, battlefield.storage2, -1) end end end Como configurar este passo; Pós o primeiro passo, crie um arquivo em actions/scripts com o nome de battlefieldAbsolute.lua e adicione o seguinte dentro: function onUse(cid, item, fromPosition, itemEx, toPosition) local team = getPlayerStorageValue(cid, battlefield.storage2) if (item.actionid == 45001 and team == 1) or (item.actionid == 45002 and team == 2) then getWinnersBattle(team) end return true end Em actions.xml, adicione as seguintes linhas: <action actionid="49901" event="script" value="battlefieldAbsolute.lua"/> <action actionid="45002" event="script" value="battlefieldAbsolute.lua"/> Pós o segundo passo, vá até sua pasta creaturescripts/scripts e crie um arquivo com o nome de combat.lua e adicione o seguinte: function onLogin(cid) if getGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage) == -1 then setGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage, 0) setGlobalStorageValue(_Lib_Battle_Info.TeamTwo.storage, 0) setGlobalStorageValue(_Lib_Battle_Info.storage_count, 0) end registerCreatureEvent(cid, "BattleTeam") registerCreatureEvent(cid, "BattleDeath") return true end function onCombat(cid, target) if isPlayer(cid) and isPlayer(target) then if getPlayerStorageValue(cid, _Lib_Battle_Info.TeamOne.storage) == 1 and getPlayerStorageValue(target, _Lib_Battle_Info.TeamOne.storage) == 1 then doPlayerSendCancel(cid, "You may not attack your team mates.") return false end if getPlayerStorageValue(cid, _Lib_Battle_Info.TeamTwo.storage) == 1 and getPlayerStorageValue(target, _Lib_Battle_Info.TeamTwo.storage) == 1 then doPlayerSendCancel(cid, "You may not attack your team mates.") return false end return true end return true end function onPrepareDeath(cid, deathList, lastHitKiller, mostDamageKiller) if getPlayerStorageValue(cid, _Lib_Battle_Info.TeamOne.storage) >= 1 then setPlayerStorageValue(cid, _Lib_Battle_Info.TeamOne.storage, -1) setGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage, getGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage)-1) doRemoveCondition(cid, CONDITION_OUTFIT) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "[Battle Field] You Are Dead!") if getGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage) == 0 then getWinnersBattle(_Lib_Battle_Info.TeamTwo.storage) else doBroadCastBattle(23,"[BattleField Information] ".._Lib_Battle_Info.TeamOne.name.." "..getGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage).." VS "..getGlobalStorageValue(_Lib_Battle_Info.TeamTwo.storage).." " .._Lib_Battle_Info.TeamTwo.name) end elseif getPlayerStorageValue(cid, _Lib_Battle_Info.TeamTwo.storage) >= 1 then setPlayerStorageValue(cid, _Lib_Battle_Info.TeamTwo.storage, -1) setGlobalStorageValue(_Lib_Battle_Info.TeamTwo.storage, getGlobalStorageValue(_Lib_Battle_Info.TeamTwo.storage)-1) doRemoveCondition(cid, CONDITION_OUTFIT) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "[Battle Field] You Are Dead!") if getGlobalStorageValue(_Lib_Battle_Info.TeamTwo.storage) == 0 then getWinnersBattle(_Lib_Battle_Info.TeamOne.storage) else doBroadCastBattle(23,"[BattleField Information] ".._Lib_Battle_Info.TeamOne.name.." "..getGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage).." VS "..getGlobalStorageValue(_Lib_Battle_Info.TeamTwo.storage).." " .._Lib_Battle_Info.TeamTwo.name) end end return true end Ainda na mesma pasta crie outro arquivo com o nome de pdeath.lua com o seguinte conteúdo: (ATENÇÃO QUE NA MESMA PASTA SÃO 2 ARQUIVOS) function onPrepareDeath(cid, corpse, lastHitKiller, mostDamageKiller) if getPlayerStorageValue(cid, config_tvt.green_kills) > 0 then doTeleportThing(cid, config_tvt.green_pos) setGlobalStorageValue(red_kills, getGlobalStorageValue(red_kills) + 1) end if getPlayerStorageValue(cid, config_tvt.red_kills) > 0 then doTeleportThing(cid, config_tvt.red_pos) setGlobalStorageValue(red_kills, getGlobalStorageValue(green_kills) + 1) end doPlayerSendTextMessage(cid, 27, "You dead! by Absolute") return true end Em creaturescripts/creaturescripts.xml adicione as seguintes linhas: <event type="preparedeath" name="BattlefieldP" event="script" value="pdeath.lua"/> <event type="combat" name="BattlefieldC" event="script" value="combat.lua"/> Pós o terceiro passo, em movements/scripts crie um arquivo com o nome de battlefieldAbsolute.lua e adicione o seguinte: local conditionBlack = createConditionObject(CONDITION_OUTFIT) setConditionParam(conditionBlack, CONDITION_PARAM_TICKS, -1) addOutfitCondition(conditionBlack, {lookType = 134, lookHead = 114, lookBody = 114, lookLegs = 114, lookFeet = 114}) local conditionRed = createConditionObject(CONDITION_OUTFIT) setConditionParam(conditionRed, CONDITION_PARAM_TICKS, -1) addOutfitCondition(conditionRed, {lookType = 143, lookHead = 94, lookBody = 94, lookLegs = 94, lookFeet = 94}) function onStepIn(cid, item, position, fromPosition) if getPlayerAccess(cid) > 3 then doTeleportThing(cid, battlefield.pos_team_1) return true elseif getGlobalStorageValue(battlefield.storage) == 0 then doTeleportThing(cid, battlefield.spectors[math.random(#battlefield.spectors)]) return true end if getGlobalStorageValue(battlefield.storage) > 0 then if getGlobalStorageValue(battlefield.storage) % 2 == 0 then setPlayerStorageValue(cid, battlefield.storage2, 1) doAddCondition(cid, conditionBlack) doTeleportThing(cid, battlefield.pos_team_1) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You will join the team " .. battlefield.team1Name .. "!") else setPlayerStorageValue(cid, battlefield.storage2, 2) doAddCondition(cid, conditionRed) doTeleportThing(cid, battlefield.pos_team_2) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You will join the team " .. battlefield.team2Name .. "!") end setGlobalStorageValue(battlefield.storage, getGlobalStorageValue(battlefield.storage)-1) if getGlobalStorageValue(battlefield.storage) == 0 then doBroadcastMessage("Battlefield will start in 1 minute, please create your strategy!") addEvent(doBroadcastMessage, 60*1000, "BattleField will begin now!") addEvent(OpenWallBattle, 60*1000) else doBroadcastMessage("We are waiting "..getGlobalStorageValue(battlefield.storage).." players to Battlefield starts.") end end return true end Em movements.xml adicione a seguinte linha: <movevent type="StepIn" actionid="45000" event="script" value="battlefieldAbsolute.lua"/> Á pedidos fiz o comando para abrir manualmente, então em talkactions/scripts crie um arquivo com o nome de battlefieldopenAbsolute.lua e coloque: function onSay(cid, words, param) if getGlobalStorageValue(battlefield.storage) ~= -1 then doPlayerSendCancel(cid, "The event is already open.") return true elseif not tonumber(param) or param % 2 ~= 0 then doPlayerSendCancel(cid, "You must choose an even number.") return true end doBroadcastMessage("The event BattleField was opened and We are waiting "..param.." Players! Team divided into "..((param)/2).." VS "..((param)/2)) setGlobalStorageValue(battlefield.storage, tonumber(param)) local tp = doCreateItem(1387, 1, battlefield.tpPos) doItemSetAttribute(tp, "aid", 45000) return true end Em talkactions.xml adicione a linha: <talkaction words="/battlefield" access="3" event="script" value="battlefieldopenAbsolute.lua"/> Screenshots do mapa do evento; Clique em spoiler para ver. Download & Scan do mapa;
  3. Magnus Challenger

    bagulhoescroto reagiu a xWhiteWolf por uma resposta no tópico

    1 ponto
    Fala galera, hoje vim trazer o projeto pronto do Magnus Challenger pra vocês instalarem no servidor de vocês! Pra quem não conhece é um sistema de Tasks baseado no Zezenia onde você pode escolher entre tasks de matar monstros ou de coletar certos items para o npc Magnus, um guerreiro famoso da cidade que está atolado de tarefas e precisa da sua ajuda! Peguei os aspectos que eu julguei serem os principais do modelo do Zezenia e editei com algumas coisas que eu achei que ficariam melhores. Quem quiser pode ver um vídeo comentado de como o sistema funciona: Dito isso vou ensinar vocês como instalar isso no server: Pra começar vá em data\creaturescripts\scripts e procure login.lua, agora vá até o final do arquivo e antes do último return true coloque essas linhas abaixo ainda em creaturescripts procure creaturescripts.xml e adicione essa linha junto com as outras que já estão lá (seguindo o padrão) <!-- TASK SYSTEM --> <event type="kill" name="tasksystem" script="tasksystem.lua"/> Agora crie um arquivo em creaturescripts\scripts com o nome de tasksystem.lua e adicione o seguinte à ele: Terminada a parte da contagem de kill vamos ao NPC em si. Crie um arquivo chamado Magnus.xml em data\npc e coloque isso dentro dele: Agora em data\npc\scripts crie um arquivo chamado zezeniaa.lua e adicione esse conteúdo dentro do arquivo: ~~~~~~~~~~~~~~~~ FEITO ISSO ESTÁ TERMINADO ~~~~~~~~~~~~~~~~~~ Agora aprendendo a configurar: No tasksystem vc pode editar isso daqui: Eu fiz um sistema onde se vc estiver em party com alguém e a pessoa matar os bixos conta como se você tivesse matado; Assim incentiva o pessoal a ir numa cave de Dragon e ao invés de matar quem está lá pra ficar sozinho na cave, eles vão chamar party pra fazerem a task juntos.. assim fazer amigos fica mais fácil e com maiores laços é maior a chance do povo não abandonar o seu server. Apenas digite "true" ou "false" pra ativar/desativar esse sistema e em baixo temos a distancia máxima pro monstro estar do cara que está fazendo a task pra contar o kill. Se a distancia entre o monstro e a pessoa for maior que 7 não vai contar pra ele a kill. No zezeniaa.lua as coisas que dão pra configurar são maiores mas são igualmente simples: Toda vez que vc pedir uma task short (curta) vc vai ter de 100 a 400 monstros pra matar, ele gera um número de 0 a 6 e multiplica por 5 e soma com os 100 iniciais.. o mesmo vale pra todos os outros valores. levelcollect é o level mínimo pra fazer tasks do tipo collect. time é o tempo em segundos que você vai ficar sem poder falar com o npc caso desista de alguma task, o padrão é 8 * 60 * 60 (8 horas) bonus é por quanto vai multiplicar caso vc permita que o npc escolha aleatoriamente entre todas as opções.. o padrão é 20% de bonus (1.2) multiplicador é uma coisa que eu adicionei pra ficar mais fácil mexer na fórmula sem cometer cagadas, se vc tá ganhando 10% de exp e quer ganhar 80% é só colocar 8 no multiplicador. Isso daqui é o banco de dados principal do sistema de kill, toda vez que vc escolher uma task do tipo fácil, médio, dificil ele vai acessar essas tabelas contendo o nome das criaturas.. vc pode facilmente adicionar novos nomes, o npc já está programado pra lidar com isso, apenas siga o padrão e mantenha sempre o último sem vírgula! Ex: adicionando Morgaroth na tabela de hard local hard = { [1] = "Giant Spider", [2] = "Dragon Lord", [3] = "Grim Reaper", [4] = "Demon", [5] = "Crystal Spider", [6] = "Demon Skeleton", [7] = "Juggernaut", [8] = "Destroyer", [9] = "Hand of Cursed Fate", [10] = "Morgaroth" } atente-se também pra não repetir o número no index.. se o anterior era [9] use [10]. O restante das tabelas são separadas para o banco de dados das tasks de collect: segue a mesma lógica da de kill só que aqui você tem o id dos itens que serão usados... aquela count não tem nada a ver com o item pois ele vai gerar tanto o item aleatoriamente quanto à count; Ex: [1] = {id = 5880, count = 20}, -- iron ore isso não significa que se cair iron ore (id 5880) irá cair sempre 20.. até porque eu poderia escolher uma task long e easy e pegar a task de trazer até 50 iron ores, apenas tente manter os padrões que são os intervalos definidos. No easy ele varia de 10 a 20, no medium ele varia de 20 a 35 e no hard de 40 a 50. Espero que vocês tenham curtido, é um sistema grande mas bem simples de se mexer... se tiverem quaisquer problemas podem comentar aqui. Deu trabalho fazer isso então se você gostou deixe o seu comentário aí e o seu "Gostei" que vai me incentivar a trazer mais coisas desse tipo pra cá. Abraços do lobo. PS: Pra sumonar o npc digite com o GOD: /n Magnus ou coloque ele pelo map editor.
  4. [NTO] Kamui me do obito

    Mark Ackerman reagiu a PedroSTT por uma resposta no tópico

    1 ponto
    Olá galera , venho trazer pra voces o kamui me do obito , pra quem não sabe , é um jutsu que teleporta vc e o target para uma dimensão diferente e lah , vai ter monstros com o nome Gedou Kay que irão attackar somente o target. Vá em spells/spells.xml e colé a seguinte tag ( coloque o id das voc que poderão usar ) agora em spells/scripts crie um arquivo .lua com o nome kamuime e cole a seguinte script Agorá vá em monster/monsters.xml e cole a tag Vá em monster e crie um arquivo .xml com o nome gedou kay e cole isso dentro Agora vá em creaturescripts/creaturescripts.xml e cole a seguinte tag Agora vá em creaturescripts/scripts crie um arquivo .lua com o nome mtarget e cole isso dentro Créditos
  5. 1 ponto
    Versão8.1 Este servidor foi testado 15HRs com 30 jogadores. O server não cai! Está mais estável que as versões anteriores! V1 Log's - Lançado! V2 Log's - Fixed House bug Fixed Npc Bug Fixed Items.otb Adicionado Marriage System Adicionado Auto Combo Bot detector Adicionado Anti-Mc System Adicionado GM: Acc: god Pass: god V2.5 Log's - Corrigido o erro sobre você não pode fazer login. Adicionado Level Up, msg com o feitiço que você pode usar. Adicionado Military Ranks V3 Log's - Adicionado auto stack itens Adicionado em danos guildmates e partymates - configurável no config.lua -- Damage Guild/Party -- noDamageToGuildMates = false - Se true nenhum dano, se false, danos noDamageToPartyMembers = false - Se true nenhum dano, se false, danos Adicionados anti-x Logg para que você não seja banido na otservlist! Adicionado shoot runes, pots, etc... se você atirar runas, pots etc... As cargas podem ser mais do que 1000. exemplo: you shooted your 1234 sudden death Evoluído o comando online. ! on-line V4 Log's - Removido Auto Stack por causar erros! Corrigido o erro quando os itens cair no chão! V5 Log's - Corigidos menores erros nas sources! Corrigido o erro House, que pode causar a sua queda do servidor! O servidor tem sido mais estável do que antes! Atualizado dlls! V6 Log's - Adicionado: Característica Auto Stackable! Adicionado: onMove muito avançada <- Por Doggynub! Adicionado: Nível e Vocação OnLogin: <- Por Jetro! Adicionado Max Peso caixa de correio, By Ninja para evitar crash's! Bug Poções corrigidos! <- Graças a Xubeiga Compile corrigido para linux! <- Sim, agora você pode compilar para linux! V7 Log's - Adicionado Anti-Push Prevention System! Adicionado CapacityOverload System! Adicionado CriticalHitChance! Corrigido o erro no login - graças a oskar1415 Feita correção pequeno erro e mudou no sistema anti mc no login, em vez de pop-up, você receberá uma mensagem. Aproveite! V8 Log's - Removido Auto-Stack que faz com que seus itens caiam! Removido CapacityOverload System! Removido Anti-Push Prevention System! Bug causar erros em mover os itens! Removido OnMove muito avançada - Causando crash! CriticalHitChance removido! Adicionado Paralyze Bot Dedection! Stair Height corrigido por Benis: http://www.youtube.com/watch?v=x-R1Fm4vp1o E outras pequenas correções. V8.1 Log's [NEW] - Removido items.otb verificação de versão! Agora há dois exe, 64bit e 32bit! Download Server: cryingdamson 0.3.6 (8.60) V8.1.rar Download Source: cryingdamson 0.3.6 (8.60) V8.1 Source.rar Recorde que este é TFS Versão 0.3.6, que foi atualizado para 8.60 e acrescentado coisas e bugs corrigidos. Todos os créditos vão para a equipe TFS e para Cyko pela edição!
  6. Deixando Runas infinita

    Renildosantos reagiu a Grimmjow por uma resposta no tópico

    1 ponto
    Esse tutorial e para inciantes que querem deixar suas runas infinitas Bom vá confing lua e aperta CTRL + F Proucure [removeRuneCharges = ] Se estiver removeRuneCharges = "yes" Deixe removeRuneCharges = "no" Bom tabem tem removeRuneCharges = true Deixe removeRuneCharges = false Bem vocês podem pensar nossa todo mundo sabe disso nao precisava , mais eu ja precisei disso e sei quem tem iniciantes que tabem precisam
  7. Pokemon Dash Evolution ~Open Source~

    Noninhouh reagiu a Refe por uma resposta no tópico

    1 ponto
    Conteúdo: **1ª Geração** **2ª - 4ª Adicionadas no Client** **Order/Fly/Ride/Surf/TP 100%* **Pequenos Bug's** ** Sources * ** Mega Evoluções no client ** ** Level system ** ** onSpawn // onMove ** **Novas Races** **Anti-Divulgação ** **Nick System(Final do tópico)** **Addon System(Final do tópico)** **TV** **Mapa Não Incluso** ** Tutoriais ensinando a fazer quase tudo! (final do topico) ** Imagens Downloads: Removendo Bugs de itens (como order, fishing, etc) Sistemas feitos para o PDE: Tutoriais feitos para o PDE: Bugs reportados:
  8. 1 ponto
    Boa Noite Galera, Trago a voces Hoje o sistema Auction System (Vender items mesmo estando offline), Espero que Gostem. Informaçoes deste Script: *Visualizaçao de Items na Pagina do Gesior. *Outros Jogadores podem comprar usando o AuctionID. *Lembrese de Bloquear todos os Items com tempo de Duraçao. Changelog: v1.0 - Primeiro Relase v1.1 - Corrigido falhas de memória, acrescentou levelRequiredToAdd v1.1a - Fixed bug crítico com maxOffersPerPlayer verificação V1.1B - Corrigido o erro com números negativos v1.2 - Novo comando "retirar", correções para 0.3.6pl1 v1.2a - Fixed bug clone itens Fotos: Database Querys: Va Na sua database e depois clique em SQL, e Execute essa Query: ALTER TABLE `players` ADD `auction_balance` INT( 11 ) NOT NULL DEFAULT '0'; e Depois essa: CREATE TABLE `auction_system` ( `id` int(11) NOT NULL auto_increment, `player` int(11), `item_id` int(11), `item_name` varchar(255), `count` int(11), `cost` int(11), `date` int(11), PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; e Depois va ate a pasta onde fica seu website e crie a seguinte pagina para o Gesior ACC: <?PHP $auctions = $SQL->query('SELECT `auction_system`.`player`, `auction_system`.`id`, `auction_system`.`item_name`, `auction_system`.`item_id`, `auction_system`.`count`, `auction_system`.`cost`, `auction_system`.`date`, `players`.`name` FROM `auction_system`, `players` WHERE `players`.`id` = `auction_system`.`player` ORDER BY `auction_system`.`id` DESC')->fetchAll(); $players = 0; $main_content .= '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR="'.$config['site']['vdarkborder'].'"><TD CLASS=white><b>Instruction<b></TD></TR><TR BGCOLOR='.$config['site']['darkborder'].'><TD><center><h2>Commands</h2><b>!offer add, itemName, itemPrice, itemCount</b><br /><small>example: !offer add, plate armor, 500, 1</small><br /><br /><B>!offer buy, AuctionID</b><br /><small>example: !offer buy, 1943</small><br /><br /><b>!offer remove, AuctionID</b><br /><small>example: !offer remove, 1943</small><br /><br /><b>!offer withdraw</b><br /><small>Use this command to get money for sold items.</small></center></TR></TD></TABLE><br />'; if(empty($auctions)) { $main_content .= '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR="'.$config['site']['vdarkborder'].'"><TD CLASS=white><b>Auctions</b></td></TR><TR BGCOLOR='.$config['site']['darkborder'].'><TD>Currently is no one active Auction.</TD></TR></TABLE>'; $main_content .= '<br /><p align="right"><small>System created by <a href="http://otland.net/members/vDk/">vDk</a>.</small></p>'; } else { foreach($auctions as $auction) { $players++; if(is_int($players / 2)) $bgcolor = $config['site']['lightborder']; else $bgcolor = $config['site']['darkborder']; $cost = round($auction['cost']/1000, 2); $content .= '<TR BGCOLOR='.$bgcolor.'><TD><center>'.$auction['id'].'</center></TD><TD><center><img src="http://otland.net/images/items/'.$auction['item_id'].'.gif"/></center></TD><TD><center>'.$auction['item_name'].'</center></TD><TD><center><a href="?subtopic=characters&name='.urlencode($auction['name']).'">'.$auction['name'].'</a></center></TD><TD><center>'.$auction['count'].'</center></TD><TD><center>'.$cost.'k<br /><small>'.$auction['cost'].'gp</small></center></TD><TD><center>!offer buy, '.$auction['id'].'</center></TR>'; } $main_content .= '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR="'.$config['site']['vdarkborder'].'"><TD CLASS=white><b><center>ID</center></b></TD><TD class="white"><b><center>#</center></b></TD><TD class="white"><b><center>Item Name</center></b></TD><TD class="white"><b><center>Player</center></b></TD><TD class="white"><b><center>Count</center></b></TD><TD class="white"><b><center>Cost</center></b></td><TD class="white"><b><center>Buy</center></b></td></TR>'.$content.'</TABLE>'; $main_content .= '<br /><p align="right"><small>System created by <a href="http://otland.net/members/vDk/">vDk</a>.</small></p>'; } ?> Agora va ate pasta do seu ot/data/talkactions/talkactions.xml e abra: Adicione a seguinte tinha: <talkaction words="!offer" event="script" value="auctionsystem.lua"/> Agora crie um arquivo .lua chamado auctionsystem.lua e adicione isso dentro, depois salve e largue dentro do data/talkactions/scripts: --[[ Offline player to player item trader (Auction System) by vDk Script version: 1.2a [ -- FIXED CLONE ITEMS BUG -- ] ]]-- local config = { levelRequiredToAdd = 20, maxOffersPerPlayer = 5, SendOffersOnlyInPZ = true, blocked_items = {2165, 2152, 2148, 2160, 2166, 2167, 2168, 2169, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2343, 2433, 2640, 6132, 6300, 6301, 9932, 9933} } function onSay(cid, words, param, channel) if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires param.") return true end local t = string.explode(param, ",") if(t[1] == "add") then if((not t[2]) or (not t[3]) or (not t[4])) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires param.") return true end if(not tonumber(t[3]) or (not tonumber(t[4]))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You don't set valid price or items count.") return true end if(string.len(t[3]) > 7 or (string.len(t[4]) > 3)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "This price or item count is too high.") return true end local item = getItemIdByName(t[2], false) if(not item) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Item wich such name does not exists.") return true end if(getPlayerLevel(cid) < config.levelRequiredToAdd) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You don't have required (" .. config.levelRequiredToAdd .. ") level.") return true end if(isInArray(config.blocked_items, item)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "This item is blocked.") return true end if(getPlayerItemCount(cid, item) < (tonumber(t[4]))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sorry, you don't have this item(s).") return true end local check = db.getResult("SELECT `id` FROM `auction_system` WHERE `player` = " .. getPlayerGUID(cid) .. ";") if(check:getID() == -1) then elseif(check:getRows(true) >= config.maxOffersPerPlayer) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sorry you can't add more offers (max. " .. config.maxOffersPerPlayer .. ")") return true end if(config.SendOffersOnlyInPZ) then if(not getTilePzInfo(getPlayerPosition(cid))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You must be in PZ area when you add offert to database.") return true end end if(tonumber(t[4]) < 1 or (tonumber(t[3]) < 1)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have to type a number higher than 0.") return true end local itemcount, costgp = math.floor(t[4]), math.floor(t[3]) doPlayerRemoveItem(cid, item, itemcount) db.executeQuery("INSERT INTO `auction_system` (`player`, `item_name`, `item_id`, `count`, `cost`, `date`) VALUES (" .. getPlayerGUID(cid) .. ", \"" .. t[2] .. "\", " .. getItemIdByName(t[2]) .. ", " .. itemcount .. ", " .. costgp ..", " .. os.time() .. ")") doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You successfully add " .. itemcount .." " .. t[2] .." for " .. costgp .. " gps to offerts database.") end if(t[1] == "buy") then if(not tonumber(t[2])) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Wrong ID.") return true end local buy = db.getResult("SELECT * FROM `auction_system` WHERE `id` = " .. (tonumber(t[2])) .. ";") if(buy:getID() ~= -1) then if(getPlayerMoney(cid) < buy:getDataInt("cost")) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You don't have enoguh GP.") buy:free() return true end if(getPlayerName(cid) == getPlayerNameByGUID(buy:getDataInt("player"))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sorry, you can't buy your own items.") buy:free() return true end if(getPlayerFreeCap(cid) < getItemWeightById(buy:getDataInt("item_id"), buy:getDataInt("count")))then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You try to buy a " .. buy:getDataString("item_name") .. ". It weight " .. getItemWeightById(buy:getDataInt("item_id"), buy:getDataInt("count")) .. " cap oz. and you have only " .. getPlayerFreeCap(cid) .. " oz. free capacity. Put some items to depot and try again.") buy:free() return true end if(isItemStackable((buy:getDataString("item_id")))) then doPlayerAddItem(cid, buy:getDataString("item_id"), buy:getDataInt("count")) else for i = 1, buy:getDataInt("count") do doPlayerAddItem(cid, buy:getDataString("item_id"), 1) end end doPlayerRemoveMoney(cid, buy:getDataInt("cost")) db.executeQuery("DELETE FROM `auction_system` WHERE `id` = " .. t[2] .. ";") doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You bought " .. buy:getDataInt("count") .. " ".. buy:getDataString("item_name") .. " for " .. buy:getDataInt("cost") .. " gps!") db.executeQuery("UPDATE `players` SET `auction_balance` = `auction_balance` + " .. buy:getDataInt("cost") .. " WHERE `id` = " .. buy:getDataInt("player") .. ";") buy:free() else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Wrong ID.") end end if(t[1] == "remove") then if((not tonumber(t[2]))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Wrong ID.") return true end if(config.SendOffersOnlyInPZ) then if(not getTilePzInfo(getPlayerPosition(cid))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You must be in PZ area when you remove offerts from database.") return true end end local delete = db.getResult("SELECT * FROM `auction_system` WHERE `id` = " .. (tonumber(t[2])) .. ";") if(delete:getID() ~= -1) then if(getPlayerGUID(cid) == delete:getDataInt("player")) then db.executeQuery("DELETE FROM `auction_system` WHERE `id` = " .. t[2] .. ";") if(isItemStackable(delete:getDataString("item_id"))) then doPlayerAddItem(cid, delete:getDataString("item_id"), delete:getDataInt("count")) else for i = 1, delete:getDataInt("count") do doPlayerAddItem(cid, delete:getDataString("item_id"), 1) end end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Your offert has been deleted from offerts database.") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "This is not your offert!") end delete:free() else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Wrong ID.") end end if(t[1] == "withdraw") then local balance = db.getResult("SELECT `auction_balance` FROM `players` WHERE `id` = " .. getPlayerGUID(cid) .. ";") if(balance:getDataInt("auction_balance") < 1) then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You don't have money on your auction balance.") balance:free() return true end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You got " .. balance:getDataInt("auction_balance") .. " gps from auction system!") doPlayerAddMoney(cid, balance:getDataInt("auction_balance")) db.executeQuery("UPDATE `players` SET `auction_balance` = '0' WHERE `id` = " .. getPlayerGUID(cid) .. ";") balance:free() end return true end Bem e isso, Comentem!
  9. [Creature Scripts] Quando matar Poke abre TP

    Wesleyvvv reagiu a Factur por uma resposta no tópico

    1 ponto
    Então galera, eu fiz um topico antes pra eu aprender, como ninguem respondeu Então eu ajuntei alguns Tutoriais e consegui fazer E vou disponibilizar para vocês Então GO! Vão ter que editar 3 coisas! [~] Editando Creature Scripts ■ 1 - Vá na pasta "datas"; ■ 2 - Vá na pasta "creaturescripts"; ■ 3 - Vá na pasta "scripts"; Pronto aki nesta pasta, Vocês vão fazer um arquivo chamado "tel.lua" (sem aspas) Abra-o e cole este código e edite conforme você quizer, Vou explicar as partes que você tem que editar. [~] Legenda ! Vermelho = É o nome do monstro que quando morrer abrir o teleporte. Configurar: Você coloca o nome do monstro CORRETAMENTE, e não pode tirar as ASPAS. Azul = Quando o monstro morrer, o Teleporte vai abrir neste lugar. Configurar: Você não pode pegar as coordenadas no MAPA, você tem que ir e editar apenas os NUMEROS! Rosa = É quando você entrar no teleporte, ele vai cair neste lugar. Configurar: Mesma coisa com o de cima, APENAS OS NUMEROS! Laranja = É a mensagem que aparece quando o monstro morre. Configurar: Recomendo não configurar! [~] Editando CreatureScripts.xml ■ 1 - Vá na pasta "datas"; ■ 2 - Vá na pasta "creaturescripts"; ■ 3 - Abra o arquivo "creaturescripts.xml"; Bom aki é ma mesma coisa vou dar o código explicando tudo certinho, mas é facil de entender esse! [~] Legenda Vermelho = É o nome do arquivo que você criou sem o .lua Configurar : Você apenas pega o nome do arquivo que você fez, e coloca sem o .lua no final Laranja = É o nome do arquivo com o .lua Configurar : Você apenas pega o nome do arquivo que você fez, e coloca com o .lua no final [~] Editando o XML do monstro ■ 1 - Vá na pasta "datas"; ■ 2 - Vá na pasta "monster"; ■ 3 - Vá na pasta "pokes"; ■ 4 - Nesta pasta você pesquiza o nome do seu poke, que você colocou la no 1 codigo, No meu caso é o "Palkia MVP" ■ 5 - Vai aparecer um documento com o nome do poke.xml, no meu caso é"Palkia MVP.xml"; Caso não apareca, você esta digitando errado! Vá até o final do arquivo, e vai ter um </monster> Você tem que colocar o código encima dele, assim ó, Vamos fingir que é assim o palkia mvp.xml blablabla blablabla bla bla bla bla bla bla </monster> Você vai ter que fazer isso: blablabla blablabla bla bla bla bla bla bla COLA O CÓDIGO AKI! </monster> Deu pra entender? entao go! [~] Legenda Cyano = É o nome do arquivo sem o .lua, igualmente que você fez lá no creaturescripts.xml Configurar : Você faz igualmente creaturescripts.xml, você pega o nome do arquivo que criou pra colocar o 1 codigo, e coloca sem o .lua! O Nome que criei foi TEL.LUA entao voce coloca apenas o TEL, Facil né? e adivinha Ja acabou mano, ja ta pronto!, Reinicia o servidor ou apenas liga (caso não esteja ligado) E seja feliz! [~] Créditos Não sei o nome do cara que fez o script = Por criar script Eu = por postar :v [~] Finalização Poste aki se você conseguiu ou não, para mim poder lhe ajudar Factur ~~ [~] Tópicos Seguintes: Pokémon Zot editado por : Factur [Action] Como criar uma quest
  10. Sword Art Online - Recrutamento

    lokokokokoko reagiu a Honimura por uma resposta no tópico

    1 ponto
    Outras informações serão passadas de forma privada.
  11. Quest Bau

    The Trevas reagiu a vitorxx por uma resposta no tópico

    1 ponto
    Caso, vc tenha algum outro script e seu char de ADM não esta pegando o item da quest, troque para este, caso você não tenha nenhum outro, use este.
  12. Quest Bau

    The Trevas reagiu a vitorxx por uma resposta no tópico

    1 ponto
    Seguinte, vá ao diretório PastaDoOT/Data/Actions/Scripts Crie um arquivo chamado questot.lua e dentro dele, cole o script acima. Depois, vá em Data/Actions/Actions.xml e cole esta tag lá, Depois abra o remeres e no bau selecionado para a quest, coloque o uniqueID 24346
  13. Como por Tile da Staff? // POKETIBIA

    PedroSTT reagiu a Bodak Reborn por uma resposta no tópico

    1 ponto
    Só tem o script em movements e no xml...
  14. Effect donate

    admin Tarzan reagiu a Rusherzin por uma resposta no tópico

    1 ponto
    Bom, se for só para aparecer um efeito e um texto animado sobre o player que tem vip, acho que só esse script resolve. Qualquer dúvida ou problema é só postar.
  15. Quest Bau

    JonatasLucasf reagiu a vitorxx por uma resposta no tópico

    1 ponto
    Cara, eu recomendo mudar o script da quest, no meu OT todas as quest's são feitas assim com script's e consigo pegar com o GOD normal. Eu uso este script function onUse(cid, item, frompos, item2, topos) if item.uid == 24346 then queststatus = getPlayerStorageValue(cid,24346) if queststatus == -1 or queststatus == 0 then doPlayerSendTextMessage(cid,22,"Você adquiriu um Monster Armor") item_uid = doPlayerAddItem(cid,8821,1) -- item_uid = doPlayerAddItem(cid,8821,1) setPlayerStorageValue(cid,24346,1) else doPlayerSendTextMessage(cid,22,"Esta Vazio.") -- ira aprecer quando vc ja tiver pego e tentar dnv end else return 0 end return 1 end
  16. [OLDClient/OTC] Show Wild Pokemons Caught

    Mojiin reagiu a Orochi Elf por uma resposta no tópico

    1 ponto
    Show Wild Pokemons Caught Fala galera, beleza? Então, hoje tou aqui pra mostrar pra vocês o sistema de mostrar os pokemons selvagens que capturei. Bom, o sistema é bem simples e legal, ele marca todos os pokemons selvagens que capturei com um ícone de pokebola abaixo do nome, somente quem capturou tal pokemon consegue ver o ícone. Tem como ativar e desativar essa função utilizando o comando (!wildcaught) Sistema compatível com OLDClient (Na versão que estou usando agora) e no OTClient.
  17. Erro Script

    zPerseu reagiu a Bodak Reborn por uma resposta no tópico

    1 ponto
  18. Vps Boa Plx Site

    wougoplex reagiu a Switz por uma resposta no tópico

    1 ponto
    Sou suspeito, mas indico a Box U. Ótimos preços e serviços incríveis. Qualquer dúvida, entre em contato.
  19. Script clone summon

    Thayguroficial reagiu a Wakon por uma resposta no tópico

    1 ponto
    O script está correto, verifique se o monstro "Clone" existe no servidor e se as coordenadas citadas no script: "local farAwayPos = {x = 590, y = 464, z = 7}" tem um piso para o monstro nascer.
  20. Como por Tile da Staff? // POKETIBIA

    PedroSTT reagiu a Bodak Reborn por uma resposta no tópico

    1 ponto
    Coloca em movements/scripts cria um arquivo nome_arquivo.lua XML: <movevent type="StepIn" actionid="Action_ID_do_chão" event="script" value="nome_arquivo.lua" /> Coloca um action ID no chão que você quer que apenas staff passe.
  21. Como por Tile da Staff? // POKETIBIA

    PedroSTT reagiu a Bodak Reborn por uma resposta no tópico

    1 ponto
    Caso tenha alguma dúvida sobre a tag, avise. function onStepIn(cid, item, position, fromPosition) if getPlayerAcess(cid) < 2 then doTeleportThing(cid, fromPosition, true) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"MSG caso não seja da staff") doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE) return true end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"MSG caso seja da staff") return true end
  22. 1 ponto
    Simples onde esta escrito "confusion" voce pode trocar por outro nome, mas vamos la vai em data/lib e abre areas.lua e procure por confusion, copie, cole e muda o nome pra qualquer coisa depois vamos la onde esta os 0 e 1 onde esta o (0) é o skm que que não aparece nada, onde ta (1) é os skm onde o spell vai pegar ou seja basta acrecentar + 1 onde voce quer almentar o spell exemplo confusion = { {0, 1, 1, 1, 0}, {1, 1, 1, 1, 1}, {1, 1, 2, 1, 1}, {1, 1, 1, 1, 1}, {0, 1, 1, 1, 0} } voce pode fazer assim nome qualquer= { {0, 1, 1, 1 ,1 ,1 ,1 , 1, 0}, {1, 1, 1, 1, 1}, {1, 1, 2, 1, 1}, {1, 1, 1, 1, 1}, {0, 1, 1, 1, 0} } lembrando que o 2 é o lugar que o pokemon vai ficar depois volta no spell e bota o novo nome que voce criou a nova area Se ajudei rep ++
  23. Duvidas sobre como criar um client de ot

    Ld reagiu a .HuRRiKaNe por uma resposta no tópico

    1 ponto
    Vapus: http://www.vapus.net/customclient Tutorial: http://www.tibiaking.com/forum/topic/11099-aprenda-a-fazer-seu-próprio-client/
  24. Duvidas sobre como criar um client de ot

    Ld reagiu a Gaant por uma resposta no tópico

    1 ponto
    /customclient
  25. Duvidas sobre como criar um client de ot

    Ld reagiu a Hadagalberto Jr. por uma resposta no tópico

    1 ponto
    O site é o http://vapus.net.
  26. 1 ponto
    Tópico aprovado obrigado por compartilhar. O tópico foi movido para a área correta, preste mais atenção da próxima vez! Leia as regras do fórum: http://tibiaking.com/forum/topic/1281-regras-gerais/?p=7680 Este tópico foi movido: De: "OTServ → Aprovação de Tópicos de Conteúdos" Para: "OTServ → Downloads → Servidores Derivados"
  27. Meu Mapa Baiak

    vitinhoericas2 reagiu a fabiodias por uma resposta no tópico

    1 ponto
    Ae Galerinha do tibiaking Vim Akie Hj Mostrar meus Projetos com ajuda de meu amigo Robson Costa.! e o seguinte galera um server mapa baiak propio muito massa Teleports Vip,2 Templo Vip 3 Creditos.. Fabio 50% Por Ter Criado O Mapa Robson 50% Por Editar O Server
  28. [Resolvendo] Exit-Trainer

    marciks reagiu a thiagobji por uma resposta no tópico

    1 ponto
    Olá, muitos hoster de OT Server e inclusive HOSTER de Baiak sofre com esse problema Alguns deixam ele mesmo pra dá player, outros não gostam (COMO EU), isso causa a banição de 30 dias no OT Server List Nesse Tópico irei ensinar a quem não sabe arrumar esse pequeno erro chato dos OT Server Em creaturescripts > creaturescript.xml adiciona isso: <!-- Idle --> <event type="think" name="Idle" event="script" value="idle.lua"/> Agora em creaturescripts > scripts > idle apague tudo oque está lá e coloca isso: local config = { idleWarning = getConfigValue('idleWarningTime'), idleKick = getConfigValue('idleKickTime') } function onThink(cid, interval) if(getTileInfo(getCreaturePosition(cid)).nologout or getCreatureNoMove(cid) or getPlayerCustomFlagValue(cid, PlayerCustomFlag_AllowIdle)) then return true end local idleTime = getPlayerIdleTime(cid) + interval doPlayerSetIdleTime(cid, idleTime) if(config.idleKick > 0 and idleTime > config.idleKick) then doRemoveCreature(cid) elseif(config.idleWarning > 0 and idleTime == config.idleWarning) then local message = "You have been idle for " .. math.ceil(config.idleWarning / 60000) .. " minutes" if(config.idleKick > 0) then message = message .. ", you will be disconnected in " local diff = math.ceil((config.idleWarning - config.idleKick) / 60000) if(diff > 1) then message = message .. diff .. " minutes" else message = message .. "one minute" end message = message .. " if you are still idle" end doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, message .. ".") end return true end Agora em Creaturescripts > Scripts > login.lua adiciona essa tag: registerCreatureEvent(cid, "Idle") Pra você alterar o tempo do exit basta abrir o config.lua e configura-lo nessa parte aqui: idleWarningTime = 9 * 60 * 1000 idleKickTime = 10 * 60 * 1000 É isso galera, qualquer dúvida só postar aqui. OBS: Esse tópico não foi copiado, nem pegado de nenhum site/fórum, eu criei esse tópico todo, então, se for postar em outro fórum coloque os créditos.
  29. Thayam's Show Off

    isex reagiu a Thayam por uma resposta no tópico

    1 ponto
    Falae nação TK! Venho vendo muitos vídeos e tutoriais dos nossos amigos aqui do fórum e me deu vontade (até necessidade devido a um projeto em andamento) de aprender sprite! Posso citar como minhas inspirações: Way20 Elder Nodgard Daniel e mais uns que eu não lembro o nome agora! Resolvi trabalhar um pouco na questão de coloração, pois vejo que é o grande problema para usuários que estão começando a spritear e trabalhei em um flame do ataque do Charizard! E também na coloração do Shiny Lucario (já que meu servidor não possui essa sprite)! OBS: O desenho do flame e do lucario não são meus, eu somente alterei as cores e tentei aplicar alguns conceitos que vejo no fórum e trouxe para saber qual a opinião de vocês! Segue imagens: Flame Mega Zard: Shiny Lucario: (Ingame ficou muito daorinha *-*) EDIT:~ Sereia feita para o Brundelicia (ainda em aprimoramento) Sereia 2.0 Tanque de mergulho feito para o oiuhygwueuho Gengarite (mega stone para mega evoluir gengar) Oshawott feito para o xddidixd Rubi feito para ajudar o gabisa Diamante feito também para ajudar o gabisa Esmeralda lapidada Espada para o gabisa Thayam's Shield Brazilian's Armor Capitão América's Shield: Escudo para brunds: Espada Elder: Gostaria da opnião de vocês, e que vocês pudessem me dizer no que errei e no que eu posso trabalhar para aperfeiçoar minhas habilidades cada vez mais! OBS2: O USO NÃO É LIVRE POR ENQUANTO Depois que eu terminá-los e chegar a um resultado totalmente satisfatório estarei disponibilizando eles e outros para vocês! E ai, o que acharam? Gostaria muito da opinião de todos e se possível dos meus inspiradores! Grande abraço a todos! Créditos: A magia utilizada foi o Exevo Gran Mas Flam do Tibia Sprites do flame e do Lucario foram pegas do servidor Pyrus OT (godxande) Coloração (Baseada na da PxG, mas feita por mim, uso não permitido das imagens)
  30. 1 ponto
    Opa, e aí galera do fórum, beleza ?! Hoje eu venho com o intuito de postar esse mapa que editei, ele é o baiakzik normal porém com armas novas com prefixo "Style" e um "Mage Set" PS:. Esse é o meu primeiro "edit". Segue prints Download _______________________________ xLombrado (= Rep +
  31. Olá denovo @Bladeuz eu tava com esse erro como pod ever no meu tópico a cima bom eu consegui arrumar. Vamos Ao que intereça. 1º Vá a sua PHP adminpanel, abra-o e coloque esse no lugar do que estiver lá. Apaque o seu Adminpanel.php e colo esse no lugar Apos ter feio isso entre como admin no seu Gesio va no ADMIN PANEL e de reload nas creaturas. Espero ter resolvido amigo Demorei mais consegui.
  32. As cores são estas: Para npcs e monstros: Para servidores 9.4+ COLOR_BLACK = 0 COLOR_BLUE = 5 COLOR_GREEN = 18 COLOR_LIGHTGREEN = 66 COLOR_DARKBROWN = 78 COLOR_LIGHTBLUE = 89 COLOR_MAYABLUE = 95 COLOR_DARKRED = 108 COLOR_DARKPURPLE = 112 COLOR_BROWN = 120 COLOR_GREY = 129 COLOR_TEAL = 143 COLOR_DARKPINK = 152 COLOR_PURPLE = 154 COLOR_DARKORANGE = 156 COLOR_RED = 180 COLOR_PINK = 190 COLOR_ORANGE = 192 COLOR_DARKYELLOW = 205 COLOR_YELLOW = 210 COLOR_WHITE = 215 [/code] Para servidores 9.4- [code] COLOR_BLACK = 0 COLOR_BLUE = 5 COLOR_GREEN = 18 COLOR_TEAL = 35 COLOR_LIGHTGREEN = 66 COLOR_DARKBROWN = 78 COLOR_LIGHTBLUE = 89 COLOR_DARKPURPLE = 112 COLOR_BROWN = 120 COLOR_GREY = 129 COLOR_DARKRED = 144 COLOR_DARKPINK = 152 COLOR_PURPLE = 154 COLOR_DARKORANGE = 156 COLOR_RED = 180 COLOR_PINK = 190 COLOR_ORANGE = 192 COLOR_DARKYELLOW = 205 COLOR_YELLOW = 210 COLOR_WHITE = 215 O red é COLOR_RED ou 180, ambos funcionam.
Líderes está configurado para São Paulo/GMT-03:00

Informação Importante

Confirmação de Termo