Líderes
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 03/23/12 em todas áreas
-
[Gesior] Colocando Itens À Venda No Shop Atualizado
OoHellBoyoO e um outro reagiu a admdestroyer por um tópico no fórum
Para colocar itens/pacc a venda voce precisa acessar a conta do admin que normalmente é acc: 1 e a senha que voce criou na instalação do site,quando logar va na parte de shop do site la vai ter |shop admin| clique e irá aparecer 3 opções ADD SHOP OFFER- para adicionar um item ao shop Colocando Item a venda Confirmação Colocando Dias de Premium Account a venda Confirmação Colocando RedSkull remove a venda Confirmação Colocando Desban a venda Confirmação Colocando ChangeName a venda Confirmação ] VIEW SHOP OFFER (EDIT/DELETE)-para ver os itens à venda e editá-los Clicando nessa opção você pode ver os itens à venda e editá-los Editando as ofertas Deletando as ofertas ADD POINTS-para adicionar pontos à conta de um player2 pontos -
Vou botar as signs na ordem cronológica, percebam que por um tempo eu usei pen tool, e comecei a usar linear dodges Se vocês conseguirem identificar as mudanças, acho que dá pra ter um aprendizado bom em cima disso, sei que não são perfeitas, mas eu gosto bastante delas. PS: Também dividi elas pelas ocasiões (Eu gosto de dividir meu designing em "Eras", por exemplo, pré-sharpen e pós-sharpen aeouhaeouhaehae) ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Enjoy!2 pontos
-
Gesior Acc Maker 0.3.8 Modificado E Customizado
Luan Moreira reagiu a walefxavier por um tópico no fórum
Esta é uma versão do [GesiorAcc] ,um site completo e bem amplo ,com várias modificações e algumas novas funções,uma excelente opção para quem procura algo diferente ou pra quem está começando um servidor. O que há de novo? * Novos Estilos (Backgrounds,Buttons,Headers e Artworks.) * Pagina de download com Tibia 8.60, Ip Changer, HyperCam e Team Speaker. * Guild War System Customized (Scripts pegar na aba Tutoriais de WebSite) * Top 100 Killer do Servidor * Advanced Character Page (Traduzida ,bem formal e "Única".) * Who is Online? (Versão 0.3.8 modificada para adaptações em todos os servidores) * Trade System (Explicações no site e em PT) * Novo Support List * Addons Page (Com fotos,Premium Required,Male of Female e Itens necessários.) * Pagina Server Info (Modificada,bem simples e no jeito de colocar as informações do seu servidor.) * Novo Shop Offer com novo estilo (Preto e Amarelo) e as abas | Dias Vip | Itens a Venda | Outros | ! * Pagina Benefícios totalmente reformulada e muito simples para modificar. * Novo ! Pagina de Buypoints auto-explicativa...e semi-automática ! >> Leia Abaixo sobre << A pagina consiste em: O player escreve o nome do char e escolhe a quantidade de pontos que deseja comprar,clica em finalizar e é redirecionado para a página do pagseguro para terminar o pagamento. No pagseguro será mostrado o nome do char e a quantidade de pontos,assim,quando o pagamento for confirmado voce já saberá para quem os pontos devem ser entregues,não precisando mais de Confirmação de Pagamentos. Abaixo,veja algumas fotos das principais modificações: New Addons Page Pagina de Benefícios Pagina de Characters Customizada Pagina de Downloads Novo Estilo do Shop Offer Trade System Obs: 1° O site ja vai com alguns sistemas que necessitam das tabelas na sua database,como o War System,Trade System e o Top 100 Killer, então vou posta-las abaixo para que adicionem no SQL.(Quem não quiser utilizar os sistemas é so apagar as paginas ditas acima do layout.) Link das Tabelas 2° Em Htdocs/Config/Config.php , vá lá em baixo e coloque seu email pagseguro para o sistema de compra funcionar. 3° A página Houses não está a vista...mas está configurada para funcionar,quem quiser é so adiciona-la no Layout. *É isso ,por favor não postem erros de tabelas aqui,ja foi explicado acima que pode dar error por causa dos sistemas que estão nosite ,basta voce adicionar as tables que postei no download acima ou então apagar as paginas do layout ou do index.php ! Vlw Galera ! DOWNLOAD DO SITE SCAN DO SITE1 ponto -
Wodbo By Crazzymaster
TiuDougras reagiu a gustavo3754 por um tópico no fórum
Eae gente boa ;D vim trazer pra vocês um server feito por mim. é de dragon ball como veêm no titulo do tópico, mais informações abaixo. Contem: 80% Dos personagens de dbo como novos bulma, king vegeta, shenron etc... Sistema de esferas por quest. AVISO: NAO TROKEM DE MAPA SOMENTE EDITEM ELE CASO PERDERAM OS NPCS DA QUEST "Esferas" Mapa: Com alguns erros mais nada q vcs n saibam arrumar tipo n tem bugs é so arruma o templo só isso. Downloads: [server] [site] [Client] Creditos: Striker (mapper) CrazzyMaster (scripts, client e website) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~V2~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Print 1 : Segundo templo Downloads: Server E Client Site ACC Maker Scans: Server E Client Scan Site ACC Maker Scan Adicionei algumas vocations q faltava e arrumei as spells e alguns raios, fiz tb algumas spriters novas então bom proveito. A entrada do site ta totalmente epica por favor usem e deixem os creditos, ia gostar de jogar meu server se for deixar on posta um comentario ai REP+ se voce gostou, se não gostou REP+1 ponto -
Forge System
Arisen Trapzer reagiu a Oneshot por um tópico no fórum
ADVANCED FORGE SYSTEM O SISTEMA DE CRIAÇÃO DE ITENS PARA SEU SERVIDOR Creio que muitos já conhecem o sistema de forja criado por mim, acontece que o código já estava um pouco obsoleto, então resolvi reescrever ele do 0. Simplesmente consiste em um sistema de criação de itens avançado que ressuscita um pouco do RPG perdido nos servidores de hoje em dia. O jogador poderá criar itens através de forja, agindo como um verdadeiro ferreiro medieval. Adiciona itens em cima de uma bigorna previamente colocada no mapa e com um martelo cria um item totalmente novo. CARACTERÍSTICAS DA VERSÃO FINAL: - Configuração intuitiva e fácil de compreender; - Mini-tutorial auxiliando criação de novas receitas; - Receitas podem conter até 250 itens diferentes com suas respectivas quantidades; - Sistema inteligente que identifica uma receita em qualquer ordem; - Código totalmente orientado a objetos; - Possibilidade de configurar diferentes requerimentos, diferentes skills, magic level e level Há dois modos de instalar o Advanced Forge System, o primeiro é seguir os passos deste tópico e o segundo e baixar pasta data/ anexada no tópico com os arquivos em seus respectivos diretórios, precisando apenas o registro das chaves nos arquivos XML. Escolha o modo que mais convém a você. Crie um arquivo em data/lib chamado forgesystem.lua e cole o conteúdo abaixo: --[[ ADVANCED FORGE SYSTEM FINAL Criado por Oneshot É proibido a venda ou a cópia sem os devidos créditos desse script. ]]-- RecipeHandler = { itemtype = 0, items = {}, level = 1, maglevel = 0, skills = {[0] = 0, [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0} } Forge = { type = nil, position = nil, magicEffect = CONST_ME_MAGIC_GREEN, messages = { class = MESSAGE_STATUS_DEFAULT, success = "You have successfully forged a %s.", needskill = "You don't have enough %s to create a %s.", needlevel = "You need level %s to create a %s.", needmaglevel = "You need magic level %s to create a %s." } } function RecipeHandler:new(itemtype, items, level, maglevel, skills) local obj = { itemtype = (itemtype or 0), items = (items or {}), level = (level or 1), maglevel = (maglevel or 0), skills = (skills or {[0] = 0, [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0}) } table.insert(Recipes, obj) return setmetatable(obj, {__index = self}) end function RecipeHandler:setItem(itemtype) self.itemtype = (itemtype or 0) end function RecipeHandler:setRecipe(...) self.items = {...} end function RecipeHandler:setRecipeItem(itemid, amount) table.insert(self.items, {itemid, amount}) end function RecipeHandler:setSkill(skillid, value) self.skills[skillid] = value end function RecipeHandler:setLevel(value) self.level = value end function RecipeHandler:setMagLevel(value) self.maglevel = value end function RecipeHandler:check(position) local match = false for n, item in ipairs(self.items) do local thing = getTileItemById(position, item[1]) if thing.uid > 0 and math.max(1, thing.type) >= item[2] then if n == #self.items then match = true end else break end end return match end function RecipeHandler:get(position) if self:check(position) == true then return setmetatable({type = self, position = position}, {__index = Forge}) end return false end function Forge:create(cid) if self.type.itemid == 0 then print("[FORGE SYSTEM - ERROR] ATTEMPT TO CREATE A RECIPE ITEMID 0") return end local status = true if(cid) then if getPlayerLevel(cid) < self.type.level then doPlayerSendTextMessage(cid, self.messages.class, self.messages.needlevel:format(self.type.level, getItemNameById(self.type.itemtype))) return end if getPlayerMagLevel(cid) < self.type.maglevel then doPlayerSendTextMessage(cid, self.messages.class, self.messages.needmaglevel:format(self.type.maglevel, getItemNameById(self.type.itemtype))) return end for skillid, value in pairs(self.type.skills) do if getPlayerSkillLevel(cid, skillid) < value then status = false doPlayerSendTextMessage(cid, self.messages.class, self.messages.needskill:format(SKILL_NAMES[skillid], getItemNameById(self.type.itemtype))) break end end end if status == true then for _, item in ipairs(self.type.items) do local thing = getTileItemById(self.position, item[1]) doRemoveItem(thing.uid, item[2]) end doSendMagicEffect(self.position, self.magicEffect) doPlayerSendTextMessage(cid, self.messages.class, self.messages.success:format(getItemNameById(self.type.itemtype))) doCreateItem(self.type.itemtype, self.position) end end dofile(getDataDir() .."/lib/recipes.lua") Crie um arquivo em data/lib chamado recipes.lua e adicione o conteúdo abaixo: ---------------------------------------- -----** TUTORIAL DE CONFIGURAÇÃO **----- ---------------------------------------- --[[ O 'ADVANCED FORGE SYSTEM' é muito fácil e intuitivo de configurar, você só precisa chamar a função RecipeHandler:new(...), sendo que você já configurar os atributos da receita nela ou usar outras funções para isso. Por exemplo, quero criar uma Magic Sword que precise de 100 Gold Nuggets. RecipeHandler:new(2400, {{2157, 100}}) Ou então Magic_Sword = RecipeHandler:new() Magic_Sword:setItem(2400) Magic_Sword:setRecipe({2157, 100}) Funções do Sistema: RecipeHandler:new(itemtype, items, level, maglevel, skills) --> Cria uma nova instância de forja. RecipeHandler:setItem(itemtype) --> Atribui um certo itemid como resultado da receita. RecipeHandler:setRecipe(recipe) --> Atribui uma receita. RecipeHandler:setRecipeItem(itemid, amount) --> Adiciona um itemid e sua quantidade a receita. RecipeHandler:setSkill(skillid, value) --> Atribui um valor necessário de uma certa skill para poder criar a receita. RecipeHandler:setLevel(value) --> Atribui o level necessário para criar uma receita. RecipeHandler:setMagLevel(value) --> Atribui o magic level necessário para criar uma receita. ]]-- --[[ Este é um exemplo de receita usando algumas funções. É uma Magic Sword (ITEMID: 2400) que precisa de 100 Gold Nuggets (ITEMID: 2157), além disso, o personagem que tentar forjar, precisa ter Level 100 e Sword Fighting 50. ]]-- Recipes = {} magicsword = RecipeHandler:new() magicsword:setItem(2400) magicsword:setRecipeItem(2157, 100) magicsword:setLevel(100) magicsword:setSkill(2, 50) Agora em data/actions/scripts, crie um arquivo chamado iron_hammer.lua e adicione o conteúdo abaixo: function onUse(cid, item, fromPosition, itemEx, toPosition) local recipe = nil for _, v in ipairs(Recipes) do recipe = v:get(toPosition) if(recipe ~= false) then break end end if(recipe) then recipe:create(cid) else doPlayerSendCancel(cid, "This is not a valid recipe.") end return true end E por fim em actions.xml, adicione a seguinte linha: <action itemid="4846" event="script" value="iron_hammer.lua"/> OPCIONAL - TALKACTION A talkaction abaixo mostra ao jogadoras receitas configuradas no servidor que ele pode fazer. Em data/talkactions/scripts, crie um arquivo chamado recipes.lua e adicione o conteúdo abaixo: function onSay(cid, words, param, channel) local ret = {} local msg = " ADVANCED FORGE SYSTEM\n" for _, recipe in ipairs(Recipes) do local skills = true for skillid, value in pairs(recipe.skills) do if getPlayerSkillLevel(cid, skillid) < value then skills = false break end end if skills == true then if getPlayerLevel(cid) >= recipe.level and getPlayerMagLevel(cid) >= recipe.maglevel then table.insert(ret, {recipe, true}) else table.insert(ret, {recipe, false}) end else table.insert(ret, {recipe, false}) end end for _, recipe in ipairs(ret) do msg = msg .."\nRecipe for ".. getItemNameById(recipe[1].itemtype) ..":\n\n" if recipe[2] == true then for _, item in ipairs(recipe[1].items) do msg = msg .."* ".. getItemNameById(item[1]) .." [".. math.min(item[2], math.max(0, getPlayerItemCount(cid, item[1]))) .."/".. item[2] .."]\n" end else msg = msg .."[LOCKED]\n" end end doShowTextDialog(cid, 2555, msg) return true end Em data/talkactions/talkactions.xml, adicione a linha: <talkaction words="/recipes" event="script" value="recipes.lua"/> Siga as instruções para configuração de novas receitas. Em breve vídeo de funcionamento Advanced Forge System.rar1 ponto -
Créditos: AnneMotta & Vodkart(por me ajudar a criar) Descrição: Ao andar com o full addon de algumas outfits irá sair um efeito. Em creaturescript/script crie um arquivo.lua e renomeie para: outfiteffect.lua e dentro coloque: function onLogin(cid)registerCreatureEvent(cid, "EffectOutLogin")registerCreatureEvent(cid, "OutfitEffects")return doCreatureChangeOutfit(cid,{lookType = getCreatureOutfit(cid).lookType, lookHead = getCreatureOutfit(cid).lookHead, lookBody = getCreatureOutfit(cid).lookBody, lookLegs = getCreatureOutfit(cid).lookLegs, lookFeet = getCreatureOutfit(cid).lookFeet, lookAddons = getCreatureOutfit(cid).lookAddons})endlocal events = {}function onOutfit(cid, old, current)local effect = {[136] = 3, [128] = 3, -- citizen[270] = 27,[273] = 27, -- jester[156] = 61,[152] = 61, -- assassin[147] = 44,[143] = 44, -- barbarian[148] = 45,[144] = 45, -- druid[157] = 68,[153] = 68, -- beggar[149] = 36,[145] = 36, -- wizard[279] = 17,[278] = 17, -- brotherwood[137] = 39,[129] = 39, -- hunter[141] = 66,[133] = 66, -- summoner[142] = 34,[134] = 34, -- warrior[155] = 31,[151] = 31, -- pirate[158] = 46,[154] = 46, -- shaman[288] = 6,[289] = 6 -- demonhunter}local o,c= effect[old.lookType],effect[current.lookType]if getPlayerAccess(cid) > 2 then return trueelseif (not o or not c or old.lookAddons == 3 and o) then stopEvent(events[getPlayerGUID(cid)]) endif current.lookAddons == 3 and c thenfunction WalkEffect(cid, c, pos)if not isCreature(cid) then return LUA_ERROR endif c then frompos = getThingPos(cid)if frompos.x ~= pos.x or frompos.y ~= pos.y or frompos.z ~= pos.z then doSendMagicEffect(frompos, c) endevents[getPlayerGUID(cid)] = addEvent(WalkEffect, 100, cid, c, frompos)end return true endWalkEffect(cid, c, {x=0, y=0, z=0}) endreturn trueend em creaturescript.xml adicione as tags: <event type="login" name="EffectOutLogin" event="script" value="outfiteffect.lua"/><event type="outfit" name="OutfitEffects" event="script" value="outfiteffect.lua"/> Como configurar: local effect = {[136] = 3, [128] = 3, -- citizen[270] = 27,[273] = 27, -- jester[156] = 61,[152] = 61, -- assassin[147] = 44,[143] = 44, -- barbarian[148] = 45,[144] = 45, -- druid[157] = 68,[153] = 68, -- beggar[149] = 36,[145] = 36, -- wizard[279] = 17,[278] = 17, -- brotherwood[137] = 39,[129] = 39, -- hunter[141] = 66,[133] = 66, -- summoner[142] = 34,[134] = 34, -- warrior[155] = 31,[151] = 31, -- pirate[158] = 46,[154] = 46, -- shaman[288] = 6,[289] = 6 -- demonhunter}Exemplo:[ID DA OUTFIT] = N° DO EFEITO rep?1 ponto
-
Auto-Restarter Com Screen Linux Debian 6.0 (100% Funcional)
danilo9317 reagiu a Administrador por um tópico no fórum
Restarter Em Linux (100% Funcional) Testado em Debian 6.0 Primeiro de tudo você deve se logar na máquina usando SSH, não vou cobrir isso aqui neste tutorial, pois é o básico do básico para entrar em um servidor linux. Usaremos o Screen que é um aplicativo do linux que te permite trabalhar com várias janelas e já que precisamos deixar um OT funcionando mesmo quando a gente saia do SSH, iremos usá-lo. Instalando Screen sudo apt-get update sudo apt-get install screen Comandos Básicos do Screen Screen -ls (listagem de screens abertas) root@globalwarts:~# screen -ls There is a screen on: 2037.pts-0.globalwarts (02/01/12 16:40:47) (Detached) 1 Socket in /var/run/screen/S-root.[/left] screen (abre uma screen nova) screen -r 2037.pts-0.globalwarts CTRL + A + D (volta para a tela anterior) Outras dicas (enviadas por usuários) screen -s nome (permite dar um nome a screen - thx kydrai) crtl + A (que deixa você "rolar" (scrollback) a screen - thx kydrai) Pronto, já aprendeu screen né? Criando o Restarter em Linux Supondo que o meu executável compilado se chame theforgottenserver Na mesma pasta do seu otserver, faça: pico autoRestarter.sh Agora cole no arquivo: while true; do ./theforgottenserver; done Abra a screen nova para que ele não feche quando voce sair do SSH: screen Não se esqueça de dar permissões de escrita ao restarter e ao seu executável do OTserv chmod 777 autoRestarter.sh chmod 777 theforgottenserver Execute dentro da screen ./autoRestarter.sh Espero que tenha ajudado, quando eu precisei não encontrei em nenhum forum BR, acho que é legal trazer esse conhecimento para a galera.1 ponto -
Sabe aquele negocio chato de quando vc tem que mudar level ou editar algum char que voçê tem que ir no phpmyadmin etc? poisé isso acabou! :b Crie uma pasta em C:\xampp\htdocs com o nome: adminpro.php e cole isso: <?PHP //README: if nick contain "'" use "\'". For example: nick = The'Knight so use in the form The\'Knight ,,,-WORKS! if($group_id_of_acc_logged >= $config['site']['access_admin_panel']) { $main_content .= 'Welcome to advanced admin panel! Mainly you can edit players. Coded by <a href="http://otland.net/members/turs0n/">turson</a>'; //admin panel menu (player+account) $main_content .= '<br /><br /><div style="width:100%;border:1px solid #c6c6c6;padding:3px 0 3px 0"> <b>EDIT PLAYER -></b> <a href="?subtopic=admin&action=namelock">Name</a> | <a href="?subtopic=admin&action=exp">Experience</a> | <a href="?subtopic=admin&action=level">Level</a> | <a href="?subtopic=admin&action=others">Others</a> | <a href="?subtopic=admin&action=position">Position</a> | <a href="?subtopic=admin&action=delete">Delete</a> <br> <b>EDIT ACCOUNT -></b> <a href="?subtopic=admin&action=acc">Account Number</a> | <a href="?subtopic=admin&action=pass">Password</a> | <a href="?subtopic=admin&action=mail">E-mail</a> | <a href="?subtopic=admin&action=access">Access</a> <br><center><font color="red"><b>PLAYER MUST BE OFFLINE!</b></font></center> </div><br>'; /////////////////////////////////CHARACTER//////////////////////////////////// //namelock if (isset($_POST['ok1'])){ $SQL->query("UPDATE `players` SET `name` = ".$SQL->quote( $_POST['newname'] )." WHERE name = ".$SQL->quote( $_POST['name0'] ).";"); $main_content .= "Player name has been changed.";} //exp if (isset($_POST['ok2'])){ $SQL->query("UPDATE `players` SET experience = experience + ".$SQL->quote( $_POST['exp'] )." WHERE name = ".$SQL->quote( $_POST['name1'] ).";"); $main_content .= "Experience has been added.";} //level if (isset($_POST['ok3'])){ $SQL->query("UPDATE `players` SET level = ".$SQL->quote( $_POST['level'] )." WHERE name = ".$SQL->quote( $_POST['name2'] ).";"); $main_content .= "Level has been set.";} //others if (isset($_POST['ok4'])){ $SQL->query("UPDATE `players` SET health=".$SQL->quote( $_POST['health'] ).",healthmax=".$SQL->quote( $_POST['health'] ).",mana=".$SQL->quote( $_POST['mana'] ).",manamax=".$SQL->quote( $_POST['mana'] ).",cap=".$SQL->quote( $_POST['cap'] ).",maglevel=".$SQL->quote( $_POST['maglevel'] )." WHERE name = ".$SQL->quote( $_POST['name3'] ).";"); $main_content .= "Informations has been changed.";} //delete if (isset($_POST['ok5'])){ $SQL->query("DELETE from `players` WHERE name = ".$SQL->quote( $_POST['name4'] ).";"); $main_content .= "Character has beed deleted.";} //pos if (isset($_POST['ok10'])){ $SQL->query("UPDATE `players` SET group_id = ".$SQL->quote( $_POST['newpos'] )." WHERE name = ".$SQL->quote( $_POST['name9'] ).";"); $main_content .= "Player position has been changed.";} /////////////////////////////////////////ACCOUNT/////////////////////////////////////// //acc if (isset($_POST['ok6'])){ $SQL->query("UPDATE `accounts` INNER JOIN `players` ON `accounts`.`id` = `players`.`account_id` SET accounts.name=".$SQL->quote( $_POST['newacc'] )." WHERE players.name = ".$SQL->quote( $_POST['name5'] ).";"); $main_content .= "Account number has beed changed.";} //password if (isset($_POST['ok7'])){ $SQL->query("UPDATE `accounts` INNER JOIN `players` ON `accounts`.`id` = `players`.`account_id` SET accounts.password=".$SQL->quote( $_POST['newpass'] )." WHERE players.name = ".$SQL->quote( $_POST['name6'] ).";"); $main_content .= "Password has beed changed.";} //mail if (isset($_POST['ok8'])){ $SQL->query("UPDATE `accounts` INNER JOIN `players` ON `accounts`.`id` = `players`.`account_id` SET accounts.email=".$SQL->quote( $_POST['newmail'] )." WHERE players.name = ".$SQL->quote( $_POST['name7'] ).";"); $main_content .= "E-Mail adress has beed changed.";} //mail if (isset($_POST['ok9'])){ $SQL->query("UPDATE `accounts` INNER JOIN `players` ON `accounts`.`id` = `players`.`account_id` SET accounts.page_access=".$SQL->quote( $_POST['newaccess'] )." WHERE players.name = ".$SQL->quote( $_POST['name8'] ).";"); $main_content .= "Page access has beed changed.";} ////////////CHARACTER FORM/////////// //namelock form if($_GET["action"]=="namelock"){ $main_content .= '<form action="?subtopic=admin" method="post"> New Player Name <input type="text" name="newname"><br> Old Player Name <input type="text" name="name0"><br><input type="submit" value="OK" name="ok1"></form>';} //exp form if($_GET["action"]=="exp"){ $main_content .= '<form action="?subtopic=admin" method="post"> Add experience <input type="text" name="exp"> (only numbers)<br> Player Name <input type="text" name="name1"><br><input type="submit" value="OK" name="ok2"></form>';} //level form if($_GET["action"]=="level"){ $main_content .= '<form action="?subtopic=admin" method="post"> Set player level <input type="text" name="level"> (only numbers)<br> Player Name <input type="text" name="name2"><br><input type="submit" value="OK" name="ok3"></form>';} //others form if($_GET["action"]=="others"){ $main_content .= '<form action="?subtopic=admin" method="post"> Health <input type="text" name="health"> (only numbers)<br> Mana <input type="text" name="mana"> (only numbers)<br> Cap <input type="text" name="cap"> (only numbers)<br> MagLevel <input type="text" name="maglevel"> (only numbers)<br> Player Name <input type="text" name="name3"><br><input type="submit" value="OK" name="ok4"></form>';} //delete form if($_GET["action"]=="delete"){ $main_content .= '<form action="?subtopic=admin" method="post"> Player Name <input type="text" name="name4"><br><b>ARE YOU SURE?</b> <input type="submit" value="YES" name="ok5"></form>';} //pos form if($_GET["action"]=="position"){ $main_content .= '<form action="?subtopic=admin" method="post"> Position <input type="text" name="newpos"><i>example(1-player,2-tutor,3-senior tutor,4-gamemaster,5-community manager,6-god)</i> <br> Player Name <input type="text" name="name9"><br><input type="submit" value="OK" name="ok10"></form>';} /////////////ACCOUNT FORM//////////////// //account number form if($_GET["action"]=="acc"){ $main_content .= '<form action="?subtopic=admin" method="post"> New account number <input type="text" name="newacc"> <br> Player Name <input type="text" name="name5"><br><input type="submit" value="OK" name="ok6"></form>';} //password form if($_GET["action"]=="pass"){ $main_content .= '<form action="?subtopic=admin" method="post"> New password <input type="text" name="newpass"> <br> Player Name <input type="text" name="name6"><br><input type="submit" value="OK" name="ok7"></form>';} //mail form if($_GET["action"]=="mail"){ $main_content .= '<form action="?subtopic=admin" method="post"> New e-mail adress <input type="text" name="newmail"> <br> Player Name <input type="text" name="name7"><br><input type="submit" value="OK" name="ok8"></form>';} //access form if($_GET["action"]=="access"){ $main_content .= '<form action="?subtopic=admin" method="post"> Page access <input type="text" name="newaccess">(3->admin) <br> Player Name <input type="text" name="name8"><br><input type="submit" value="OK" name="ok9"></form>';} } else $main_content .= "You don't have required access!"; ?> Salve e feixe. Agora va em: index.php Após case "adminpanel": $topic = "Admin Panel"; $subtopic = "adminpanel"; include("adminpanel.php"); break; Cole isso: case "admin"; $subtopic = "admin"; $topic = "Advanced Admin Panel"; include("adminpro.php"); break; Salve e feixe. Agora va em C:\xampp\htdocs\layouts\tibiacom abra o layout.php após: <a href='?subtopic=createaccount'> <div id='submenu_createaccount' class='Submenuitem' onMouseOver='MouseOverSubmenuItem(this)' onMouseOut='MouseOutSubmenuItem(this)'> <div class='LeftChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div> <div id='ActiveSubmenuItemIcon_createaccount' class='ActiveSubmenuItemIcon' style='background-image:url(<?PHP echo $layout_name; ?>/images/menu/icon-activesubmenu.gif);'></div> <div class='SubmenuitemLabel'>Create Account</div> <div class='RightChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div> </div> </a> Cole isso: <a href='?subtopic=admin'> <div id='submenu_adminpanel' class='Submenuitem' onMouseOver='MouseOverSubmenuItem(this)' onMouseOut='MouseOutSubmenuItem(this)'> <div class='LeftChain' style='background-image:url(".$layout_name."/images/general/chain.gif);'></div> <div id='ActiveSubmenuItemIcon_adminpanel' class='ActiveSubmenuItemIcon' style='background-image:url(".$layout_name."/images/menu/icon-activesubmenu.gif);'></div> <div class='SubmenuitemLabel'><font color=\"blue\">~<u>Admin PRO</u>~</font></div> <div class='RightChain' style='background-image:url(".$layout_name."/images/general/chain.gif);'></div> </div> Ficaram assim: e sejam felizes :b Crédito: turson obs: Não se preocupem apenas o admin do site conseiguira acessar esta pagina ;p1 ponto
-
Estou fazendo esse tutorial porque os que eu vi não explicam tanta coisa junta... Nesse tutorial irei mostrar como fazer uma wand que hita por LEVEL e MAGIC LEVEL ou um determinado hit tipo 250 à 450 e como mudar os efeitos. Primeiro vá em data/weapons/weapons.xml e cole : Explicações: AAA = ID da Wand. BBB = Números de sqms que o hit da wand vai alcançar. CCC = Lvl minimo para o player usar a wand. DDD = Mana que o player vai gastar por cada hit da wand. EXHAUSTION="0" = Ai você escolhe o tempo entre cada ataque da wand, no caso 0 significa que vai dearcordo com a velocidade da vocação, bom pra ot com fast attack. Agora vá em data/weapons/weapons.script copie qualquer arquivo que esteja la dentro, apague tudo que estiver escrito, renomeie para solar wand e cole : local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 39 setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, 30) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -2, -200, -4, 220) function onUseWeapon(cid, var) return doCombat(cid, combat, var) end Assim estara hitando deacordo com level e magic level. -2, -200, -4, 200, é o dano da wand deacordo com level e magic level do player, aumente ou diminua o 2 e o 4, para mudar o hit por level e o 200 e 220 para mudar o hit por ml, lembrando quanto maior o número maior o hit. E para os que insistem em dizer que assim só está hitando por ml crie um sorcerer lv 100 com ml 50 e um sorcerer lv 500 com ml 50 e veja a diferença dos hits entre os dois chares. local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 39) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, 30) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 0, -250, 0, -450) function onUseWeapon(cid, var) return doCombat(cid, combat, var) end Assim estara hitando um hit pré determinado como o da wand of inferno de 55 a 75, no caso é de 250 a 450, para mudar basta aumentar ou diminuir o 250 ou o 450, lembrando que o número menor deve ser o da esquerda no caso o 250. Explicações: PHYSICALDAMAGE: PHYSICALDAMAGE quer dizer hit fisico você pode mudar para por exemplo: ICEDAMAGE (hit de gelo como o da EXORI FRIGO) - FIREDAMAGE (hit de fogo como o da EXEVO FLAM HUR) - EARTHDAMAGE (hit de terra como o da EXORI TERA) - DEATHDAMAGE (hit de morte como o da SUDDEN DEATH RUNE, a SD )- HOLYDAMAGE (hit divino como o da EXEVO MAS SAN , EXORI SAN) - ENERGYDAMAGE (hit de energia como o da EXORI VIS, EXEVO GRAN VIS LUX). SOBRE O 30: É o efeito que a wand lança até chegar ao player o (shootype se tratando de items.xml e distance effects em scripts em geral para quem não sabe), podem mudar se quiserem. Confira a lista de de distance effects nesse tópico: Effects e Distance Effects SOBRE O 39: É o efeito que ira acontecer quando o distance effect da wand chegar no player exemplo a SD lança uma caveira que quando atinge o player some e surge uma bola negra, no caso o efeito 39 "é" a nossa bola negra. Pode mudar deacordo com o efeito desejado. Agora vá em item.xml procure o item que você escolheu para ser a wand e faça isso: <item id="ID da wand" article="the" name="Nome da Wand"> <attribute key="description" value="Comentario que aparece quando você da look na wand."/> <attribute key="weight" value="2300"/> <attribute key="weaponType" value="wand"/> <attribute key="range" value="O mesmo valor de alcançe que você botou no weapons.xml"/> </item> Créditos: Meus. - Atualizado para ots versão 8.60 -1 ponto
-
1 ponto
-
[ Reprovado ][ Reprovado ][Tutorial] Criando Spells
HisashiitYamaguti reagiu a Beeki por um tópico no fórum
#Reportado, local errado, correto seria Aprovação de Tutoriais. @Topic reprovado também, tópico mal formatado, falta melhorar um Pouco.1 ponto -
mlk se liga gabriel so sabe fala bahiano mas tu e um paraiba ! teu mapping e esse so mudas os pissos e posta !! o meu nao pode ta ruim mas eu crio hunts vips eu ja ganhei 2 reps la no map ... eu nao crio post so pra upar eu nao so mungol de fala !! boas ss's em um post q nem tem ss's se liga mlk pense antes de fala !1 ponto
-
1 ponto
-
[Pedido] Ajuda Com Spell, Para Summonar Apenas Um Monstro.
pbottrinks reagiu a Vinc por uma questão
é antes do return true,mals equeci disso1 ponto -
Primeira Chamada Para Estagiários Xtibia.com!
Henrique Moura reagiu a Vodkart por um tópico no fórum
Já dizia um ditado... "Falar é prata, mas ouvir é ouro" Além disso você não pode só falar por falar, se o interlocutor não achar sua conversa interessante não irá prestar atenção na sua opinião, na idéia que você tem pra passar. É preciso entender que conversar é fazer democracia, e essa democracia pressupõe igualdade de direitos, inclusive o direito de ter opiniões, de discordar e de participar direta ou indiretamente, também, de cada decisão, e só para isso é preciso ouvir.1 ponto -
vai em creaturescript/script/login.lua e antes do ultimo return true adc: if getPlayerStorageValue(cid, 13540) - os.time() >= 1 and (isInArray({5, 6, 7, 8}, getPlayerVocation(cid))) then doPlayerSetVocation(cid,getPlayerVocation(cid)+4) elseif getPlayerStorageValue(cid, 13540) - os.time() <= 0 and (isInArray({9, 10, 11, 12}, getPlayerVocation(cid))) then doPlayerSetVocation(cid,getPlayerVocation(cid)-4) end1 ponto
-
claro que funciona quando eu comprei funciono eu comprei ****** ! Ajudei ? + REP1 ponto
-
só que ai além da moeda especial vai ter que ter tbm gps na mão,se não tiver os gps não vai dar de compra mesmo tendo as moedas especiais1 ponto
-
Na última parte faltou um "end" era pra estar assim: ---Piccolo--- if getPlayerVocation(cid) == 378 then if getPlayerLevel(cid) >= 450 then doPlayerSetVocation(cid,407) doSetCreatureOutfit(cid, piccolo, -1) addEvent(trans,ext,cid) doSendMagicEffect(getPlayerPosition(cid), 233) else doPlayerSendCancel(cid, "You need 450 level to first transform") doSendMagicEffect(getPlayerPosition(cid), 2) end elseif getPlayerVocation(cid) == 407 then if getPlayerLevel(cid) >= 600 then doPlayerSetVocation(cid,408) addEvent(trans1,ext,cid) doSendMagicEffect(getPlayerPosition(cid), 33) doSetCreatureOutfit(cid, piccolo1, -1) else doPlayerSendCancel(cid, "You need 600 level to next transform") doSendMagicEffect(getPlayerPosition(cid), 2) end elseif getPlayerVocation(cid) == 408 then if getPlayerLevel(cid) >= 850 then doPlayerSetVocation(cid,409) addEvent(trans2,ext,cid) doSendMagicEffect(getPlayerPosition(cid), 18) doSetCreatureOutfit(cid, piccolo2, -1) else doPlayerSendCancel(cid, "You need 850 level to next transform") doSendMagicEffect(getPlayerPosition(cid), 2) end end1 ponto
-
Primeira Chamada Para Estagiários Xtibia.com!
Henrique Moura reagiu a yasha por um tópico no fórum
Nome completo: Maurício Soares Ramos Idade: 17 anos Experiências com trabalho em equipe: Tenho várias experiências dentro de equipes, a maioria não deu certo pois os administradores desistiram, porém, tenho uma experiência recente de um servidor em que sou o Administrador que infelizmente foi fechado por problemas técnicos, mas que irá voltar em breve. Experiências em sua área : Sei um pouco de tudo, não sou profissional, mas sei me virar, ainda não coloquei nenhum trabalho meu no Xtibia pois voltei a mexer com OTs a pouco tempo, em breve disponibilizarei alguns trabalhos de Mapping que estou desenvolvendo, 100% de minha autoria. Por quê você deve ser um estagiário do XTibia.com? Tenho um grande afeto pelo Xtibia, é a comunidade que eu me sinto melhor em participar, visito todos os dias praticamente todas as áreas do fórum, sempre estou por dentro de tudo que acontece na comunidade, tenho um bom tempo disponível para futuramente poder colaborar com o que for preciso e espero ser recompensado com esse cargo para contribuir com o fórum. Obrigado.1 ponto -
Pokemon Supreme® {Atualizado²}
digororp reagiu a Gabrielzxzx por um tópico no fórum
não é questão de achar e sim de experimentar xP não é questão de achar e sim de experimentar xP Ae cara se ja testo LGV?é um dos melhores pelo que vejo muitos servers hoje são LGV Host faz tempo que não vejo um que não seja LGV Host.1 ponto -
[Encerrado] [Pokemon] Dúvidas? - Pda
lucao2011 reagiu a Gabrielzxzx por um tópico no fórum
Ai,ai sei que é meio chato passar um coisa completo mas vo passar de qualquer jeito Dowloand Só o client que não ta incluido fassa um proprio1 ponto -
[Ajuda] # Script De Transporte
HisashiitYamaguti reagiu a Vinc por uma questão
doistopicos e um na area errada,isso é proibido se postar na area errada pessa para que movam para area correta n faça outro topico igual http://www.xtibia.com/forum/topic/182655-teleport-spell/page__p__1218764#entry12187641 ponto -
Quando Vip Muda A Promotion
Vodkart reagiu a Piabeta Kun por uma questão
" tbm tavo " eu ri! e so faltou o +rep!1 ponto -
[8.6][Sql][Up-Lvl] Globr Server 0.9 Beta
HisashiitYamaguti reagiu a Makelin1 por um tópico no fórum
FLOOD EM POST MAN 3X JA Q PEGO VOCE REPORTADO ISSO !! O ULTIMO POST TINHA MAS DE 1 MES VC POSTO ISSO E FLOOD REPORTADO1 ponto -
bom acho que ja deve ter comfigurado o vocations.xml,então n vo fala pra tu i lá tenta usa esse script va em creaturescripts/script e crie um arquivo lua,com o nome regemsoul.lua e coloque isto dentro --script by lordbug function soulregem(cid, interval, count) --function by lordbug doPlayerAddSoul(cid, count) addEvent(soulregem, inteval*1000, cid,, interval, count) end function onLogin(cid) if isPlayer(cid) then m = getPlayerVocation(cid) soul = { { quantide que regenera , intervalo}, -- sorcer { quantide que regenera , intervalo}, --druid { quantide que regenera , intervalo}, --pala { quantide que regenera , intervalo}, --kina { quantide que regenera , intervalo}, --master sorcer { quantide que regenera , intervalo}, -- elder druid { quantide que regenera , intervalo}, --royal pala { quantide que regenera , intervalo} --elite kina } soulregem(cid, soul[m][2],soul[m][1]) end return TRUE end depois va em creaturescript.xml e adiciona essa tag <event type="login" name="regemsoul" script="regemsoul.lua"/>1 ponto
-
O comando checa: - O total de membros que sua guild possui - Quantos Players Tem online - Mostra o nome e o Rank dos jogadores Online Em lib/050-function adicione: function CountGuildMembers(GuildName) -- function by vodkart local count = 0 local lista = db.getResult("SELECT `name`, `rank_id` FROM `players` WHERE `rank_id` IN (SELECT `id` FROM `guild_ranks` WHERE `guild_id` = " .. getGuildId(GuildName) .. ");") if(lista:getID() ~= -1) then repeat count = count + 1 until not lista:next() lista:free() return count end end Em talkactions/script guildinformation.lua function onSay(cid, words, param, channel) local players,str,GuildName = {},'',getPlayerGuildName(cid) if getPlayerGuildId(cid) <= 0 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"Você precisa estar em uma Guild.") return true end for _, cid in pairs(getPlayersOnline()) do if getPlayerGuildName(cid) == GuildName then table.insert(players, cid) end end str = str .. "Membros total da guild: "..CountGuildMembers(GuildName).." Players.\n\nExiste "..#players.." Players online na sua guild:\n\n" for i = 1, #players do str = str.."\n["..getPlayerName(players[i]).."]["..getPlayerGuildRank(players[i]).."]" end return doShowTextDialog(cid, 2533, str) end talkactions.xml <talkaction words="!guild" event="script" value="guildinformation.lua"/> Link úteis: Comando !guild List: http://www.xtibia.co...ion-guild-list/ comando !party: http://www.xtibia.co...-comando-party/1 ponto
-
@FlamesAdmin ja visse qnts REPs eu ganhei pelos meus sistemas de ATKs Passivos, arrumaçao dos bugs do login e afins? e nem por isso to aki chorando ¬¬ @Thedjhabbo xi mano.. o client do PO ta "sobrecarregado" os datEditores normais n guentam a qntdade de type q tem no client deles ;x @all soh eu q n tava conseguindo entra no forum a +/- 2 dias? u,U alias...ae vai o porion system 100%.. n podendo usar 2 pots ao ms tempo e com "lost heal" quando o poke levar algum dano... actions/scripts/potion.lua creaturescript/scripts/exp.lua adicionem isso antes do ultimo "return false"..1 ponto
-
**SISTEMA POKES PASSIVOS** vo postar as passivas pros seguintes pokes: Scyther, Pineco, Forretress, Scizor, Hitmontop, Magmar, Electabuzz, Hitmonlee, Hitmonchan, Dragonair, Dratini, Dragonite, Gloom, Golduck, Gyarados, Kabuto, Kabutops, Kangakhan, Oddish, Parasect, Persian, Pikachu, Psyduck, Raichu, Tangela, Vileplume, Wigglytuff e seus shinys... Joguem fora seus Hitmonchans e shiny hitmonchans e criem novos.. pois adicionei o atributo "hands" nas balls.. e sem ele nas balls vai erro... pra quem ainda n tem o sistema TODOS LEIAM ISSO!! \/ Edits: 15/03 19:53 --> Versao 1.4.1 Adicionado passiva para Pikachu e shiny, q eu tinha esquecido... Arrumado bug na passiva do Persian.. Arquivos editados... Exp.lua e spells/scripts/passivas/electriccharge.lua -- Adicionado passiva megadrain, dragon fury, spores reaction... Editado o nome de todas as passivas... Passivas1.4.1.rar IMPORTANTE: qlqr erro/bug por favor reporte aki...1 ponto
-
[8.60] Sinx Otserv [Atualização] 1.3 Episódio Iii - Castelo Das Ilusões
Makelin1 reagiu a pedrizito15 por um tópico no fórum
http://www.xtibia.com/forum/topic/152606-860-sinx-otserv-atualizacao-13/page__p__1007370__hl__sinx__fromsearch__1#entry1007370 /\ OFICIAL1 ponto -
[Encerrado] [pedido] Servidor Poketibia
HisashiitYamaguti reagiu a betinhowz666 por um tópico no fórum
tem um projeto para download http://www.xtibia.com/forum/topic/141946-pokemon-server-tfs-sqlite-811/page__pid__940658__st__40#entry940658 ainta esta com varios bug's mais ira sair a V2 ! entao fique atento se ainda quiser um poketibia...1 ponto