Ir para conteúdo

Líderes

Conteúdo Popular

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

  1. beto06

    [Show Off] Beto

    Valeu galera..
    3 pontos
  2. LuuhT

    Naruto Fire V2

    Eae galera, sou novo no XTibia e já começei nele postando um servidor, rsrs como vocês viram no título o servidor é o Naruto Fire V2, quem já jogou sabe como é (Um servidor de naruto, é claro rsrs). A versão v2 chegou a ficar online por menos de 3 dias e atingiu um recorde de 29 players (otservlist:28 devido ao atraso de atualizar os servers) E antes de postar as informações do servidor ou o Download dele, eu vou dizer o porquê de eu ter postado meu servidor: Primeiro motivo: Muitos players gostaram do servidor e não queriam que eu fechasse, então eu resolvi publica-lo para ter mais servidores iguais esse ou talvez até melhores baseado nesse. Segundo e ultimo motivo: Não tenho muito tempo para ser host, ou até mesmo ser alguma coisa da staff, aqui a internet não é das melhores e também é via telefone ou seja, ligou o telefone=net cai '-'. •Informações Gerais• Versão 8.54 Pequenas edições no mapa Novas Sprites Vocações e Jutsus balanceados 12 Vocações(8 de 20 desativadas) Client Descompilado •Vocações• •Mapa• •Imagens• Spoiler •Download• •Créditos• Equipe NTO Ultimate Equipe NTO Shinobi Life Equipe NTO Crysis Online Equipe NTO Absolut Naruto Fire ( eu )
    2 pontos
  3. Bom pessoal,venho trazer-lhes hoje um trabalho,de meses de mim e de daniel devotti,fizemos um servidor Igual o refugia. e agora venho compartilhar com vocês. SENHA DO GOD account:god senha:GOD Spells Knights :ezzori,ezzori gran. Magos :exevo gran frigo,exevo gran mas mort,exevo gran mas ghost,aurora. Paladinos :exevo gran mas mort,aurora. Sistemas Pet system com mais de 50 pets,Incluindo Pets Donates que você pode vender em seu site! Sistemas de arena duels Para teams ou duplas no segundo andar no templo! Sistema de VIP Coins e (VIP) no nome Igual do Refugia Original! TASK SYSTEM! Sistema De Reborn Monster! adicionado 16/09/11 Ao matar um monstro ele tem 50% de chance de renascer igual no refugia! Items Mais de 100 items editados únicos do servidor! items free bons,quests com items editados e etc. Quests Anihilator demon helmet Aqua quest vermilion quest Pits of inferno Lord vampire quest refugia legs multi Quest dentre várias outras. Screen Shots Trainer's Templo Free Teleports Vip Teleports Free Teleportes para cidades Segundo andar do templo Montanha City Vip City Free NPC's DOWNLOAD: http://adf.ly/IGQ9S http://adf.ly/IGQDJ (SCAN DESATUALIZADO) Créditos Subwat (Gean Riot) Refugia.com.br daniel freire devotti curtiu REP+ Este tópico recebeu destaque em nosso portal!
    1 ponto
  4. Olá galerinha do Xtibia, estou aqui para postar um bom servidor derivado. Não queria estar postando esse servidor meio que forçado, tendo em vista que foi roubado e tem gente por de trás ganhando dinheiro sujo. Então sem mais delongas, ai esta o NtoShinobi que esta sendo vendido por alguem popular aqui do forum, que prefiro não citar o nome. ------------------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------------------ Mapa do servidor conta com 4 vilas -Amegakure -Suna -Mist -Konoha Consta com 14 vocações -Naruto - Sasuke - Sakura - Rock Lee- Neji - Hinata - Kiba - Shikamaru - Tenten - Gaara - Killer Bee - Kakashi - Itachi - [sistema de Graduação] -Genin -Chunin -Jounin -Anbu [sistema de Saga] -transformar -reverter -Serve para trocar a roupa do seu persoangem, ganha umas roupas novas a cada 25 level upado, dependendo da vocação, isso varia muito. -Exemplo, Naruto tem umas 10 roupas, enquanto tenten tem apenas 4. Nada afeta ao personagem, apenas visualmente mesmo. -Caso deseja alterar para ter efeito em alguma coisa, você pode editar em vocations.xml [sistema de Recompensa] -Npc Oinin coloca a cabeça de jogadores a venda por um determinado preço, e se alguem matar o jogador que tem recompensa ganha algo em troca. [Eventos do Servidor] -Evento Guerra Ninja -Evento Assassin -Evento Roube a Bandeira -Evento Tsuki no Me [sistema de Jutsus] -Posso dizer que todos os jutsus são adequados com o anime NARUTO, dando mais realidade no jogo de naruto. -Exemplo, chidori do sasuke, o personagem ao relizar pula até o jogador para acertar o jutsu. [boss] -Tem o enrredo da historia, ao qual deve matar os Boss do jogo, que na verdade são os membros da Akatsuki. -Cada Boss se encontra em uma parte do mapa, logo abaixo vai ter os detalhes do Mapa! [Task] -Npc Anbu, ele se localiza acima dos trainers, ele realiza as famosas task do opentibia no naruto. Bom.. O melhor mesmo é vocês abrirem e verem do que estou falando, e se adequarem ao jogo. =) Algumas imagems: Desde já aviso, que um bom dedicado é o começo para tudo. Eu iniciei o projeto com dedicado fracos, o que causava lag e kicks. Na minha humilde opnião, a ServerSoft é uma boa empresa de host para opentibia, tendo em vista que a equipe da mesma tem conhecimento com o mundo Opentibia. É isso ae galera, conforme o tempo eu estarei postando umas atualizaçõezinhas Link do download - Atualizado dia 29/03/2013 Updates Não irei mais atualizar o servidor por enquanto, pois existem muitos ladrões de conteudos e créditos no forum, então por hora ficara assim. LINKS PARA INICIANTES Para quem nunca criou um servidor de uma pesquisada na area de iniciantes clicando aqui. Para saber como criar um client proprio clique aqui. Ou então entre no site http://vapus.net/customclient e crie por la mesmo. E claro, todos os devidos créditos pelo projeto, mesmo sendo um único script. Naruto Open Wings v1.2 {o começo de tudo} Lks {RobinHood} Jhon992 Eskylo Vodkart Demonbholder Oneshot Slicer SkyMagmum Kydrai Christian Letti LuckOake Acredito que tem os créditos de todos(msm sendo 1 script.lua), mesmo aqueles que nem sabe que ajudaram. Caso faltou alguem é só falar =)
    1 ponto
  5. Kydrai

    Vip System By Account V1.0

    Vip System by Account 1.0 By Kydrai Este é um vip system por account, ou seja, um sistema de vip válido para todos os characters de uma determinada conta. O script foi testado no TFS 0.3.6 - 8.54. E no site Gesior 0.3.4 beta4. Em caso de erros ou dúvidas é só postar. Funções do Script Função necessária para começar a usar o script: installVip() -> Cria a coluna no banco de dados para usar o sistema de vip (testei somente em sqlite, mas acredito que funcione em mysql) Funções que utilizam o account id: doTeleportPlayersByAccount(acc, topos) -> Teleporta todos os players da account getVipTimeByAccount(acc) -> Pega o tempo de vip setVipTimeByAccount(acc, time) -> Edita o tempo de vip getVipDaysByAccount(acc) -> Pega o tempo de vip em dias isVipAccount(acc) -> Verifica se é vip addVipDaysByAccount(acc, days) -> Adiciona dias de vip doRemoveVipDaysByAccount(acc, days) -> Remove dias de vip getVipDateByAccount(acc) -> Pega a data e hora que irá terminar a vip Funções que utilizam o creature id (cid): doTeleportPlayers(cid, topos) -> Teleporta todos os players da account getVipTime(cid) -> Pega o tempo de vip setVipTime(cid, time) -> Edita o tempo de vip getVipDays(cid) -> Pega o tempo de vip em dias isVip(cid) -> Verifica se é vip addVipDays(cid, days) -> Adiciona dias de vip doRemoveVipDays(cid, days) -> Remove dias de vip getVipDate(cid) -> Pega a data e hora que irá terminar a vip Inserindo as funções Abra a pasta data/lib, crie um arquivo lua e coloque: vipAccount.lua --[[ Name: Vip System by Account Version: 1.0 Author: Kydrai Forum: http://www.xtibia.com/forum/topic/136543-vip-system-by-account-v10/ [Functions] -- Install installVip() -- By Account doTeleportPlayersByAccount(acc, topos) getVipTimeByAccount(acc) setVipTimeByAccount(acc, time) getVipDaysByAccount(acc) isVipAccount(acc) addVipDaysByAccount(acc, days) doRemoveVipDaysByAccount(acc, days) getVipDateByAccount(acc) -- By Player doTeleportPlayers(cid, topos) getVipTime(cid) setVipTime(cid, time) getVipDays(cid) isVip(cid) addVipDays(cid, days) doRemoveVipDays(cid, days) getVipDate(cid) ]]-- -- Install function installVip() if db.executeQuery("ALTER TABLE `accounts` ADD viptime INT(15) NOT NULL DEFAULT 0;") then print("[Vip System] Vip System instalado com sucesso!") return TRUE end print("[Vip System] Não foi possível instalar o Vip System!") return FALSE end -- By Account function doTeleportPlayersByAccount(acc, topos) if db.executeQuery("UPDATE `players` SET `posx` = "..topos.x..", `posy` = "..topos.y..", `posz` = "..topos.z.." WHERE `account_id` = "..acc..";") then return TRUE end return FALSE end function getVipTimeByAccount(acc) local vip = db.getResult("SELECT `viptime` FROM `accounts` WHERE `id` = "..acc..";") if vip:getID() == -1 then print("[Vip System] Account not found!") return FALSE end return vip:getDataInt("viptime") end function setVipTimeByAccount(acc, time) if db.executeQuery("UPDATE `accounts` SET `viptime` = "..time.." WHERE `id` = "..acc..";") then return TRUE end return FALSE end function getVipDaysByAccount(acc) local vipTime = getVipTimeByAccount(acc) local timeNow = os.time() local days = math.ceil((vipTime - timeNow)/(24 * 60 * 60)) return days <= 0 and 0 or days end function isVipAccount(acc) return getVipDaysByAccount(acc) > 0 and TRUE or FALSE end function addVipDaysByAccount(acc, days) if days > 0 then local daysValue = days * 24 * 60 * 60 local vipTime = getVipTimeByAccount(acc) local timeNow = os.time() local time = getVipDaysByAccount(acc) == 0 and (timeNow + daysValue) or (vipTime + daysValue) setVipTimeByAccount(acc, time) return TRUE end return FALSE end function doRemoveVipDaysByAccount(acc, days) if days > 0 then local daysValue = days * 24 * 60 * 60 local vipTime = getVipTimeByAccount(acc) local time = vipTime - daysValue setVipTimeByAccount(acc, (time <= 0 and 1 or time)) return TRUE end return FALSE end function getVipDateByAccount(acc) if isVipAccount(acc) then local vipTime = getVipTimeByAccount(acc) return os.date("%d/%m/%y %X", vipTime) end return FALSE end -- By Player function doTeleportPlayers(cid, topos) doTeleportPlayersByAccount(getPlayerAccountId(cid), topos) end function getVipTime(cid) return getVipTimeByAccount(getPlayerAccountId(cid)) end function setVipTime(cid, time) return setVipTimeByAccount(getPlayerAccountId(cid), time) end function getVipDays(cid) return getVipDaysByAccount(getPlayerAccountId(cid)) end function isVip(cid) return isVipAccount(getPlayerAccountId(cid)) end function addVipDays(cid, days) return addVipDaysByAccount(getPlayerAccountId(cid), days) end function doRemoveVipDays(cid, days) return doRemoveVipDaysByAccount(getPlayerAccountId(cid), days) end function getVipDate(cid) return getVipDateByAccount(getPlayerAccountId(cid)) end Exemplos de uso Talkaction GOD: /installvip /addvip name, days /removevip name, days /checkvip name Player: /buyvip /vipdays talkactions.xml: <talkaction log="yes" access="5" words="/installvip;/addvip;/removevip;/checkvip" event="script" value="vipaccgod.lua"/> <talkaction words="/buyvip;/vipdays" event="script" value="vipaccplayer.lua"/> vipaccgod.lua: function onSay(cid, words, param, channel) local t = param:explode(",") local name, days = t[1], tonumber(t[2]) if words == "/installvip" then if installVip() then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Vip System instalado com sucesso!") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Não foi possível instalar o Vip System!") end elseif words == "/addvip" then if name then if days then local acc = getAccountIdByName(name) if acc ~= 0 then addVipDaysByAccount(acc, days) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você adicionou "..days.." dia(s) de vip ao "..name..", agora ele possui "..getVipDaysByAccount(acc).." dia(s) de vip.") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Este player não existe.") end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode adicionar essa quantidade de dia(s) de vip.") end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode adicionar dia(s) de vip a este player.") end elseif words == "/removevip" then if name then if days then local acc = getAccountIdByName(name) if acc ~= 0 then doRemoveVipDaysByAccount(acc, days) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você retirou "..days.." dia(s) de vip do "..name..", agora ele possui "..getVipDaysByAccount(acc).." dia(s) de vip.") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Este player não existe.") end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode retirar essa quantidade de dia(s) de vip.") end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode retirar dia(s) de vip a este player.") end elseif words == "/checkvip" then if name then local acc = getAccountIdByName(name) if acc ~= 0 then local duration = getVipDateByAccount(acc) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "O "..name.." possui "..getVipDaysByAccount(acc).." dias de vip."..(duration and (" Ela irá durar até "..duration..".") or "")) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Este player não existe.") end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode visualizar os dias de vip a este player.") end end return TRUE end vipaccplayer.lua: function onSay(cid, words, param, channel) if words == "/buyvip" then local price = 1000000 local days = 30 if doPlayerRemoveMoney(cid, price) then addVipDays(cid, days) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você adicionou "..days.." dia(s) de vip, agora você possui "..getVipDays(cid).." dia(s) de vip.") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa de "..price.." para adicionar "..days.." dia(s) de vip.") end elseif words == "/vipdays" then local duration = getVipDate(cid) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você possui "..getVipDays(cid).." dia(s) de vip."..(duration and (" Ela irá durar até "..duration..".") or "")) end return TRUE end Movement (Tile) Coloque actionid 15000 em um tile onde somente os vips poderão passar. movements.xml: <movevent type="StepIn" actionid="15000" event="script" value="viptile.lua"/> viptile.lua: function onStepIn(cid, item, position, fromPosition) if isVip(cid) == FALSE then doTeleportThing(cid, fromPosition, false) doSendMagicEffect(position, CONST_ME_MAGIC_BLUE) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Somente players vip podem passar.") end return TRUE end Creaturescript (Login) Quando player logar irá verificar se a vip do player acabou, se sim então irá teleportar todos os players da account para o templo, se não irá mostrar o tempo da vip. creaturescripts.xml: <event type="login" name="viplogin" script="viplogin.lua"/> viplogin.lua: function onLogin(cid) local vip = isVip(cid) if getVipTime(cid) > 0 and vip == FALSE then local townid = 1 doPlayerSetTown(cid, townid) local templePos = getTownTemplePosition(getPlayerTown(cid)) doTeleportThing(cid, templePos, false) setVipTime(cid, 0) doTeleportPlayers(cid, templePos) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sua Vip acabou!") elseif vip == TRUE then local duration = getVipDate(cid) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você possui "..getVipDays(cid).." dia(s) de vip."..(duration and (" Ela irá durar até "..duration..".") or "")) end return TRUE end Action (Door) Coloque actionid 15001 na door onde somente os vips poderão passar. Use a porta gate of expertise (id: 1227) actions.xml: <action actionid="15001" script="vipdoor.lua"/> vipdoor.lua: function onUse(cid, item, fromPosition, itemEx, toPosition) if isVip(cid) == FALSE then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Somente players vip podem passar.") elseif item.itemid == 1227 then doTransformItem(item.uid, item.itemid + 1) doTeleportThing(cid, toPosition) end return TRUE end NPC (Vendedor de VIP) vipnpc.xml: <?xml version="1.0" encoding="UTF-8"?> <npc name="Vendedor de VIP" script="vipnpc.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="128" head="17" body="54" legs="114" feet="0" addons="2"/> <parameters> <parameter key="message_greet" value="Hello |PLAYERNAME|, I sell {vip} days."/> </parameters> </npc> vipnpc.lua: local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function buyVip(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if doPlayerRemoveMoney(cid, parameters.price) then addVipDays(cid, parameters.days) npcHandler:say('Thanks, you buy '..parameters.days..' vip days. You have '..getVipDays(cid)..' vip days.', cid) else npcHandler:say('Sorry, you don\'t have enough money.', cid) end npcHandler:resetNpc() return true end local node1 = keywordHandler:addKeyword({'vip'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Do you want buy 30 vip days for 1000000 gp\'s?'}) node1:addChildKeyword({'yes'}, buyVip, {price = 1000000, days = 30}) node1:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Ok, then.', reset = true}) npcHandler:addModule(FocusModule:new()) Erros e Soluções Configurando o Gesior Com essa configuração irá aparecer o vip status do player no site e será possível vender vip pelo site. Se eu esqueci de alguma coisa é só avisar. accountmanagement.php Depois de: if(!$account_logged->isPremium()) $account_status = '<b><font color="red">Free Account</font></b>'; else $account_status = '<b><font color="green">Premium Account, '.$account_logged->getPremDays().' days left</font></b>'; Adicione: if(!$account_logged->isVip()) $account_vip_status = '<b><font color="red">Not Vip Account</font></b>'; else $account_vip_status = '<b><font color="green">Vip Account, '.$account_logged->getVipDays().' days left</font></b>'; Depois de: <td class="LabelV" >Account Status:</td><td>'.$account_status.'</td></tr><tr style="background-color:'.$config['site']['darkborder'].';" > Adicione: <td class="LabelV" >Account Vip Status:</td><td>'.$account_vip_status.'</td></tr><tr style="background-color:'.$config['site']['darkborder'].';" > pot/OTS_Account.php Substitua: private $data = array('email' => '', 'blocked' => false, 'rlname' => '','location' => '','page_access' => 0,'lastday' => 0,'premdays' => 0, 'created' => 0); Por: private $data = array('email' => '', 'blocked' => false, 'rlname' => '','location' => '','page_access' => 0,'lastday' => 0,'premdays' => 0, 'created' => 0, 'viptime' => 0); Substitua: $this->data = $this->db->query('SELECT ' . $this->db->fieldName('id') . ', ' . $this->db->fieldName('name') . ', ' . $this->db->fieldName('password') . ', ' . $this->db->fieldName('email') . ', ' . $this->db->fieldName('blocked') . ', ' . $this->db->fieldName('rlname') . ', ' . $this->db->fieldName('location') . ', ' . $this->db->fieldName('page_access') . ', ' . $this->db->fieldName('premdays') . ', ' . $this->db->fieldName('lastday') . ', ' . $this->db->fieldName('created') . ' FROM ' . $this->db->tableName('accounts') . ' WHERE ' . $this->db->fieldName('id') . ' = ' . (int) $id)->fetch(); Por: $this->data = $this->db->query('SELECT ' . $this->db->fieldName('id') . ', ' . $this->db->fieldName('name') . ', ' . $this->db->fieldName('password') . ', ' . $this->db->fieldName('email') . ', ' . $this->db->fieldName('blocked') . ', ' . $this->db->fieldName('rlname') . ', ' . $this->db->fieldName('location') . ', ' . $this->db->fieldName('page_access') . ', ' . $this->db->fieldName('premdays') . ', ' . $this->db->fieldName('viptime') . ', ' . $this->db->fieldName('lastday') . ', ' . $this->db->fieldName('created') . ' FROM ' . $this->db->tableName('accounts') . ' WHERE ' . $this->db->fieldName('id') . ' = ' . (int) $id)->fetch(); Substitua: $this->db->query('UPDATE ' . $this->db->tableName('accounts') . ' SET ' . $this->db->fieldName('password') . ' = ' . $this->db->quote($this->data['password']) . ', ' . $this->db->fieldName('email') . ' = ' . $this->db->quote($this->data['email']) . ', ' . $this->db->fieldName('blocked') . ' = ' . (int) $this->data['blocked'] . ', ' . $this->db->fieldName('rlname') . ' = ' . $this->db->quote($this->data['rlname']) . ', ' . $this->db->fieldName('location') . ' = ' . $this->db->quote($this->data['location']) . ', ' . $this->db->fieldName('page_access') . ' = ' . (int) $this->data['page_access'] . ', ' . $this->db->fieldName('premdays') . ' = ' . (int) $this->data['premdays'] . ', ' . $this->db->fieldName('lastday') . ' = ' . (int) $this->data['lastday'] . ' WHERE ' . $this->db->fieldName('id') . ' = ' . $this->data['id']); Por: $this->db->query('UPDATE ' . $this->db->tableName('accounts') . ' SET ' . $this->db->fieldName('password') . ' = ' . $this->db->quote($this->data['password']) . ', ' . $this->db->fieldName('email') . ' = ' . $this->db->quote($this->data['email']) . ', ' . $this->db->fieldName('blocked') . ' = ' . (int) $this->data['blocked'] . ', ' . $this->db->fieldName('rlname') . ' = ' . $this->db->quote($this->data['rlname']) . ', ' . $this->db->fieldName('location') . ' = ' . $this->db->quote($this->data['location']) . ', ' . $this->db->fieldName('page_access') . ' = ' . (int) $this->data['page_access'] . ', ' . $this->db->fieldName('premdays') . ' = ' . (int) $this->data['premdays'] . ', ' . $this->db->fieldName('viptime') . ' = ' . (int) $this->data['viptime'] . ', ' . $this->db->fieldName('lastday') . ' = ' . (int) $this->data['lastday'] . ' WHERE ' . $this->db->fieldName('id') . ' = ' . $this->data['id']); Depois de: public function getPremDays() { if( !isset($this->data['premdays']) || !isset($this->data['lastday']) ) { throw new E_OTS_NotLoaded(); } return $this->data['premdays'] - (date("z", time()) + (365 * (date("Y", time()) - date("Y", $this->data['lastday']))) - date("z", $this->data['lastday'])); } Adicione: public function getVipDays() { if( !isset($this->data['viptime']) || !isset($this->data['lastday']) ) { throw new E_OTS_NotLoaded(); } return ceil(($this->data['viptime'] - time()) / (24*60*60)); } Depois de: public function isPremium() { return ($this->data['premdays'] - (date("z", time()) + (365 * (date("Y", time()) - date("Y", $this->data['lastday']))) - date("z", $this->data['lastday'])) > 0); } Adicione: public function isVip() { return ceil(($this->data['viptime'] - time()) / (24*60*60)) > 0; } characters.php Substitua: if($config['site']['show_vip_status']) { $id = $player->getCustomField("id"); if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++; $main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD WIDTH=10%>Vip Status:</TD>'; $vip = $SQL->query('SELECT * FROM player_storage WHERE player_id = '.$id.' AND `key` = '.$config['site']['show_vip_storage'].';')->fetch(); if($vip == false) { $main_content .= '<TD><span class="red"><B>NOT VIP</B></TD></TR>'; } else { $main_content .= '<TD><span class="green"><B>VIP</B></TD></TR>'; } $comment = $player->getComment(); $newlines = array("\r\n", "\n", "\r"); $comment_with_lines = str_replace($newlines, '<br />', $comment, $count); if($count < 50) $comment = $comment_with_lines; if(!empty($comment)) { if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++; $main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD VALIGN=top>Comment:</TD><TD>'.$comment.'</TD></TR>'; } } Por: if($config['site']['show_vip_status']) { $id = $player->getCustomField("id"); if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++; $main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD WIDTH=10%>Account Vip Status:</TD>'; if(!$account->isVip()) { $main_content .= '<TD><span class="red"><B>NOT VIP</B></TD></TR>'; } else { $main_content .= '<TD><span class="green"><B>VIP</B></TD></TR>'; } $comment = $player->getComment(); $newlines = array("\r\n", "\n", "\r"); $comment_with_lines = str_replace($newlines, '<br />', $comment, $count); if($count < 50) $comment = $comment_with_lines; if(!empty($comment)) { if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++; $main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD VALIGN=top>Comment:</TD><TD>'.$comment.'</TD></TR>'; } } shopsystem.php (+Créditos ao GM Bekman) Substitua: if($buy_offer['type'] == 'pacc') { $player_premdays = $buy_player_account->getCustomField('premdays'); $player_lastlogin = $buy_player_account->getCustomField('lastday'); $save_transaction = 'INSERT INTO '.$SQL->tableName('z_shop_history_pacc').' (id, to_name, to_account, from_nick, from_account, price, pacc_days, trans_state, trans_start, trans_real) VALUES (NULL, '.$SQL->quote($buy_player->getName()).', '.$SQL->quote($buy_player_account->getId()).', '.$SQL->quote($buy_from).', '.$SQL->quote($account_logged->getId()).', '.$SQL->quote($buy_offer['points']).', '.$SQL->quote($buy_offer['days']).', \'realized\', '.$SQL->quote(time()).', '.$SQL->quote(time()).');'; $SQL->query($save_transaction); $buy_player_account->setCustomField('premdays', $player_premdays+$buy_offer['days']); $account_logged->setCustomField('premium_points', $user_premium_points-$buy_offer['points']); $user_premium_points = $user_premium_points - $buy_offer['points']; if($player_premdays == 0) { $buy_player_account->setCustomField('lastday', time()); } $main_content .= '<h2>PACC added!</h2><b>'.$buy_offer['days'].' days</b> of Premium Account added to account of player <b>'.$buy_player->getName().'</b> for <b>'.$buy_offer['points'].' premium points</b> from your account.<br />Now you have <b>'.$user_premium_points.' premium points</b>.<br /><a href="index.php?subtopic=shopsystem">GO TO MAIN SHOP SITE</a>'; } Por: if($buy_offer['type'] == 'pacc') { $player_viptime = $buy_player_account->getCustomField('viptime'); $player_lastlogin = $buy_player_account->getCustomField('lastday'); $save_transaction = 'INSERT INTO '.$SQL->tableName('z_shop_history_pacc').' (id, to_name, to_account, from_nick, from_account, price, pacc_days, trans_state, trans_start, trans_real) VALUES (NULL, '.$SQL->quote($buy_player->getName()).', '.$SQL->quote($buy_player_account->getId()).', '.$SQL->quote($buy_from).', '.$SQL->quote($account_logged->getId()).', '.$SQL->quote($buy_offer['points']).', '.$SQL->quote($buy_offer['days']).', \'realized\', '.$SQL->quote(time()).', '.$SQL->quote(time()).');'; $SQL->query($save_transaction); if($player_viptime > 0) $buy_player_account->setCustomField('viptime', $player_viptime + ($buy_offer['days'] * 24 * 60 * 60)); else $buy_player_account->setCustomField('viptime', time() + ($buy_offer['days'] * 24 * 60 * 60)); $account_logged->setCustomField('premium_points', $user_premium_points-$buy_offer['points']); $user_premium_points = $user_premium_points - $buy_offer['points']; if($player_viptime == 0) { $buy_player_account->setCustomField('lastday', time()); } $main_content .= '<h2>VIP Days added!</h2><b>'.$buy_offer['days'].' days</b> of Vip Account added to account of player <b>'.$buy_player->getName().'</b> for <b>'.$buy_offer['points'].' premium points</b> from your account.<br />Now you have <b>'.$user_premium_points.' premium points</b>.<br /><a href="index.php?subtopic=shopsystem">GO TO MAIN SHOP SITE</a>'; } Links Úteis 01- [Gesior Acc] Vendedo Vip Pelo Pacc Créditos: GM Bekman 02- Double Exp Para Vip Créditos: Vodkart 03- Outfits Só Para Jogadores Vips Créditos: Vodkart
    1 ponto
  6. comedinhasss

    [TFS 1.0] Mapa global 10.41

    Olá galera, ultimamente está saindo várias novidades para os servidores e eu estou atualizando para os brasileiros :3 Novidades: - Nova Ab'Dendriel - Nova Venore - Nova Defia - Novas cidades incluindo Zao, Gray Beach e Gnome Base! - Todos NPCs - Razachai & Quirefang - Tasks - Warzones - Todas as novas spells - Barcos e tapetes voadores 100% - Offline training - Montarias - Sistema de Kazordoon Wagons - Sistema de banco - 100% quests with missions: Annihilator, Demon Helmet, Pits of Inferno, The Inquisition Quest, In Service of Yalahar, Isle of Evil, The Djinn War, The Ancient Tombs, Dreamer's Challenge, Bright Sword, The Unnatural Selection quest, Banshee Quest, Demon Oak, Svargrond Arena e muito mais! Download: Info: Client: 41 TFS: 1.1 Detalhe: Este servidor foi compilado num windows 7 64x. Servidor https://github.com/PrinterLUA/FORGOTTENSERVER-ORTS/archive/master.zip Github https://github.com/PrinterLUA/FORGOTTENSERVER-ORTS Executavel http://www.xtibia.com/forum/topic/232870-the-forgotten-server-11/ Source https://github.com/otland/forgottenserver Créditos Printer Comedinha Tópico original: http://otland.net/threads/best-released-real-map-10-22-based-1-0.204514/
    1 ponto
  7. Outland completa para POKÉMON. Atualizado 26/11/2013 DOWNLOAD: http://www.4shared.com/rar/VaQnQ718/Outlands_26112013.html? O 4shared já faz o scan. Outlands Leaf Ghost Psychic Fire (East) Bug Rock Fire (South) Normal Fly Ice Electric Earth Fight Dragon SE GOSTOU, DÁ UM CURTIR E DEIXE SEU COMENTÁRIO Créditos: murluka
    1 ponto
  8. FlamesAdmin

    Outland Rock

    Eae galera, to passando aki rapidin pra postar essa Outland Rock que fiz a um tempo atras para meu servidor. Prints: Download: http://www.4shared.com/rar/VwjAmARO/Outland_Rock.html OBS: Ele ta meio quadrado é pq eu recortei ele do meu mapa. Bom uso do mapa.
    1 ponto
  9. alldakie

    Tutorial - Como Fazer Um Logo Do Tibia!

    Olá Xtibianos, Recentemente aprendi a fazer um logo do tíbia, procurei bastante esse tutorial no Xtibia mais não encontrei então vou disponibilizar p/ vocês... Titulo: Logotipo do Tibia Autor: Strad Nivel: Fácil Ferramenta: Photoshop CS2 ou superior. 1- Primeiramente crie um documento 300x120 px com o fundo a seu modo, o tamanho não e obrigatório e só um exemplo. 2- Você precisara da fonte "martel" se quiser um logo parecido com o do Tíbia, clique aqui para baixa-la. 3- Escreva "Tibia", com o layer do texto selecionado, vá em Window>Character e configure da seguinte forma. 4- Após a configuração você terá algo parecido com a imagem abaixo: 5- Agora, va em Layer>Layer Style>Blending Options e selecione e configure os Styles da seguinte forma: Selecione a aba "Inner Shadow" e configure igual a imagem abaixo. Selecione a aba "Bevel and Emboss" e configure igual a imagem abaixo. Selecione a aba "Gradient Overlay" e configure igual a imagem abaixo. Selecione a aba "Stroke" e configure igual a imagem abaixo. Após todas as configurações você devera ter algo parecido com a imagem abaixo: Obs:. A Cor do logo pode ser modificada p/ qualquer outra cor, você pode escrever qualquer outro texto. * Todos os links do tutorial estão hospedados no 4Shared. # Para aqueles que não conseguiram fazer igual ao tutorial, clique aqui para baixar o .PSD totalmente pronta! Creditos: Strad * Se eu estiver infringindo qualquer regra do fórum, por favor reportar!
    1 ponto
  10. Heinekennn

    Mapa [SAFFARI] Básico

    Bem daew galera depois de muito tempo volto a fazer mapas bem esse aqui é um saffari muito básico que eu fiz se vocês emplantarem em seus servers vai ficar bacanal '-' Bem a base foi o pokemon mysterion e ta ae '-' Download: http://www.4shared.com/rar/sRntqzCv/SaffariPXI.html Imagens: & Se Gostarem REP+!
    1 ponto
  11. Kluivert

    [Galeria] KluiMaster

    Oi tudo bem? neste tópico irei mostrar meus rabiscos no photoshop e sempre que puder irei atualizar o tópico Deixem ae suas criticas, sugestões e etc... Cartão de visita - Pedido! Pedido! #1 - Praticando #2 - AMA #98 #3 - AMA #97 (essa ta uma bosta) #4 - AMA #96 (+/-)
    1 ponto
  12. Secular

    Resultado AMA#94

    RESULTADO AMA#94 Desculpem o atraso para a postagem do resultado, dessa vez não tenho desculpas mesmo, enfim vamos la: Confiram abaixo o resultado final da AMA #94: 1º Lugar - Jakiin: 29 pontos 2º Lugar -Dudinha: 18 pontos 3º Lugar : KluiMaster: 11 pontos Premiação: 1° Colocado - 3 Reps + medalha +Sign 2° Colocado - 2 Reps 3° Colocado - 1 Rep Isso ai galera MUITO OBRIGADO pela participação de todos tanto os que participaram quanto os que votaram valew e até o proximo! CONTO COM VOCÊS NA PRÓXIMA EDIÇÃO! + Confira a VOTACÃO AQUI! + Dúvidas/Comentários + Sugira um tema! *OBS: vencedores reputados.
    1 ponto
  13. • Baiak RPG CLÁSSICO - Mapa Totalmente Reformulado! (8.60) • Servidor feito pelo Baiak Lula e Editado por mim Fala galera estou aqui para apresentar Baiak RPG Clássico, Eu Trabalhei muito tempo neste servidor.Já coloquei vários OT's Online com este servidor, Tirei Bug's,reformulei áreas e está pronto para ficar ONLINE. Este servidor é um dos Baiaks mais Inovadores, ele ainda vêm um distro estável. Então, tá esperando o que? Confira logo! • Cidades: ├ Baiak └ Vip City • Imagens: Depot no Templo • Imagem #2: Teleports FREE ACC • Imagem #3: Teleports [VIP AREA] • Imagem #4: Novo! - Área dos Warmasters Addons • O Que Contêm no Servidor: ├ Hunt's Exclusivas ├ Novas Quests ├ Cidades Reformuladas ├ Cidades Detalhadas ├ Mapa Compacto. Pesa Aproximadamente 10mb ├ Novos NPC'S ├ Servidor em Database Sqlite com SHA1 └ TFS Estável Já Compilado. • Lista Das Principais Quests (Todas Funcionando 100%): ├ The Annihilator Quest ├ Demon Helmet Quest ├ The Pits of Inferno Quest └ The Demon Oak Quest (Baiak) • Como Abrir ao Mapa no editor dê Erro: Vá no RME Aperta em File>New>Import Map e Selecione o Mapa do EvoBR • Download & Scan ACC do GOD ACC: GOD SENHA: GOD • Créditos:
    1 ponto
  14. Penca

    Apocalipse - Animação Em Flash!

    Fala, galera xtibiana, beleza? Bom, pra quem não se lembra de mim, eu sou Penca, um usuário antigo do fórum, mas que raramente posto aqui! Nos últimos 2 anos bateu em mim um sentimento de nostalgia, e eu decidi começar esse projeto de Animação em Flash, me inspirando, é claro, nas famosas Aventuras de Wild Troll e Troll Wild. Eu iniciei a animação em Outubro de 2011 e em 3 dias eu tinha completado quase 90% dela, mas acabei perdendo interesse e larguei sem terminar... Entretanto, este ano eu me lembrei da animação e descobri ela entre diversos arquivos, e resolvi continuá-la finalmente, e terminei ela há alguns dias... Foi um trabalho árduo para achar músicas legais e que combinassem com a animação... Mas enfim... Eu tive diversos problemas para tentar exportá-la como .SWF no Flash para postá-la como uma animação em Flash e fazer carregar, e isso simplesmente me deixou de saco cheio, e me fez exportá-la como .mov... Aí eu vi que o Flash tinha zoado o som quando exportei, e isso me fez ter que editar o vídeo em um editor chamado PiTiVi... É mole? E como se não fosse o bastante, quando postei no YouTube (a seguir) vi que a imagem ficou pequena, por isso recomendo que todos assistam em tela cheia e em 480p, porque é um vídeo feito em Flash e não tem mais como consertar nada... Além disso, é Tibia, e as letras do Tibia já são bem pequenas... Enfim, aqui está o vídeo do Capítulo 1: Postei também no Vimeo: http://vimeo.com/81779474 Me deem suas opiniões sobre o vídeo, postem comentários, deem like no vídeo no YouTube se gostarem! Se vocês gostarem do Capítulo 1, eu continuo com a série, e tento fazer melhorias significativas para que não ocorram os mesmos problemas que ocorreram com esse vídeo... Se vocês não gostarem, fica por isso mesmo! Eu ainda vou tentar converter o vídeo para uma animação em .SWF, e se eu tiver sucesso, eu posto aqui também... É isso, Até mais! Enjoy!
    1 ponto
  15. BlackZik

    Resolvido Seu Problema com remere's

    Equipe Elite. Ola galera do xtibia sei que a maioria dos membros aqui são mapper ou querem ser então agora ta dano uns erro no remere's que quando agente abre tudo la fica as (paredes,o chão, e tudo mais fica com outras imagem, tipo bicho etc.) bom aqui estou eu para fala pra vcs a resolver este problema então façam tudo igual vou escrever aqui em Baixo. Bom galera este foi meu primeiro tutorial aqui no Xtibia Espero ter Ajudado Si Sim Rep+ Comente qual quer duvida to aqui xD Obrigado Pela Atenção. Conteudo: ( Exclusivo para o Xtibia Não Poste em Outro Forum este tutorial é especial mente pro xTibia ). .
    1 ponto
  16. Incur

    Systema De Arma

    Oks.. o primeiro que eu postei: é na pasta Scripts da pasta Actions. Coloque o nome do arquivo como transfarma (não esqueça que precisa ser .lua) depois a segunda parte: Coloca essa tag no actions.xml, abaixo de algum outro parecido. Depois disso, vai na pasta spells>scripts e duplica algum, muda o nome para magnum e troca tudo o que tiver dentro do arquivo por isso: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) -- Aqui muda o tipo de damage setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, TRUE) --True/False para o armor bloquear ou não. setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ETHEREALSPEAR) -- Aqui você muda o efeito que vai sair setCombatFormula(combat, COMBAT_FORMULA_SKILL, 0, -20, 0.8, 0) -- Aqui você pode mudar o dano function onCastSpell(cid, var) if getPlayerItemCount(cid, 2268) >=1 then doPlayerRemoveItem(cid, 2268, 1) --Para remover o item que você quiser. return doCombat(cid, combat, var) else doPlayerSendTextMessage(cid, 22, "Sinto muito, você está sem balas.") return false end end Agora vai na pasta spells.xml na pasta spells e coloca isso abaixo de algum parecido (denovo). <rune name="Magnum" id="2378" allowfaruse="1" lvl="45" maglv="1" exhaustion="2000" needtarget="1" blocktype="solid" event="script" value="attack/magnum.lua"/> Ta aí Espero ter ajudado. Qualquer dúvida posta denovo. PS: Esqueci de verificar se o player tem o item. Já editei com a forma correta... Desculpe. //Atualizado com a versão totalmente configurável.
    1 ponto
  17. de Boa Parceiro espero ajudar muita é muitas pessoas aqui no xtibia com este tutorial.
    1 ponto
  18. Flinkton

    Se possível

    vish ¬¬
    1 ponto
  19. Tony

    Se possível

    Fiz muito rápido a que , estou de saída flw :DD
    1 ponto
  20. Utilize este who is online, veja se sana sua duvida.
    1 ponto
  21. Aberos

    PDA PWO v1

    @Brunnoo pra tirar a barra de pokes é so vc ir na pasta modules do otc e apagar a pasta barpoke
    1 ponto
  22. caotic

    PDA PWO v1

    A questão dos pokemons não evoluirem pode ser que eles so evoluem com stones. Como o gloom para vipuleme ou belossoum(apenas para stones) O lukas666 ja respondeu o resto a questão dos icones e so ativar. As stones por kill e so retirar em creaturescripts A pokedex e so retirar o gain items dela.
    1 ponto
  23. Tente algum desses: Aqui, Aqui ou Aqui.
    1 ponto
  24. Tópico movido para a seção de dúvidas e pedidos resolvidos.
    1 ponto
  25. Aqui amigo... http://www.xtibia.com/forum/topic/187912-tfs-04-dev-rev3884/
    1 ponto
  26. Tony

    |Galeria| New Signature

    Estava sem nada pra fazer em casa, comecei a criar, taé
    1 ponto
  27. WH47

    camera

    Tentei focar o máximo possivel no tratamento e na ilu da imagem, pra que tivesse harmonia. Apliquei smudge na parte inferior, mas dando foco pra lente da câmera e pra figura nela. Usei a figura como uma tipografia, pra que não ficasse muito poluido. Sei lá, diz ai
    1 ponto
  28. local tpId = 1387 local tps = { {name = "cavaleiro Negro", pos = {x=32541, y=30741, z=8, stackpos = 1}, toPos = {x=32532, y=30716, z=8}, time = 30}, {name = "Guardian Spider", pos = {x=32582, y=30816, z=8, stackpos = 1}, toPos = {x=32581, y=30784, z=8}, time = 30}, {name = "Thunder Dragon", pos = {x=32581, y=30742, z=8, stackpos = 1}, toPos = {32581, y=30716, z=8}, time = 30}, {name = "Shadow Pupil", pos = {x=32581, y=30713, z=8, stackpos = 1}, toPos = {32545, y=30682, z=8}, time = 30}, {name = "Shadow Boss", pos = {x=32545, y=30679, z=8, stackpos = 1}, toPos = {x=32565, y=30678, z=8}, time = 30}, {name = "Morgaroth", pos = {x=32666, y=30874, z=8, stackpos = 1}, toPos = {x=32633, y=30852, z=8}, time = 30}, {name = "Alma Perdida", pos = {x=32581, y=30782, z=8, stackpos = 1}, toPos = {x=32581, y=30745, z=8}, time = 30}, } for _, teles in pairs(tps) do function removeTp(pos) local t = getThingFromPos(teles.pos) if t.itemid == tpId then doRemoveItem(t.uid, 1) doSendMagicEffect(teles.pos, CONST_ME_POFF) end end function onDeath(cid) if getCreatureName(cid) == teles.name then doCreateTeleport(tpId, teles.topos, teles.pos) doCreatureSay(cid, "O teleport irá sumir em "..teles.time.." segundos.", TALKTYPE_ORANGE_1) addEvent(removeTp, teles.time*1000) end end return true end
    1 ponto
  29. Tony

    |Galeria| Restauração 02

    Fala galera, essa semana um cliente me procurou a procura de uma restauração digna para uma foto meio antiga, vou postar e quero ver sugestões , novamente ela não estar terminada. Antes Depois
    1 ponto
  30. Tony

    |Pack| Fios de Luz

    Fala galera, estava dando uma geral no pc e encontrei uns arquivos velhos para photoshop, vou postando eles devagar, hoje vou postar um pack de Fios de Luz Download "Scan, o 4shared faz"
    1 ponto
  31. Venom2

    Seu último mapa - your last map

    Juro pra tu. Quando eu olhei o minimap eu pensei: "Que minimap estranho... parece uma amoeba." ai eu vi o seu nome e tudo fez sentido. haha
    1 ponto
  32. Killua

    Seu último mapa - your last map

    Minimapa do meu antigo OT, achei ele aqui e vou postar so pra relembrar...
    1 ponto
  33. WH47

    Simple Sign

    Uma sign simples, tentei focar no uso de C4D e foco de iluminação
    1 ponto
  34. alldakie

    Tutorial - Como Fazer Um Logo Do Tibia!

    Pois e, depois vou tentar corrigir a profundidade do entalhe, obrigado pela dica. Alguém tem alguma ideia de tutorial p/ fazer? se tiver ao me alcance posso tentar fazer.
    1 ponto
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...