Ir para conteúdo

Líderes

Conteúdo Popular

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

  1. rj157

    [9.60] Tibia Global Completo (Site+Db)

    Nao estou consiguindo por on de forma alguma se alguem poder me adicionar no msn jacksonprodrigues@hotmail.com eu agradeço ... eu baixei outro server e da este erro é 9.6 tbm ... :] Failed connectin to database - MYSQL ERROR: can't connect to MYSQL server on 'localhost' <10061> <2003> Assertion failed: connect<false>, file ../databasemysql.cpp, line 39 creio que este servidor disponivel neste site ... esta com o mesmo erro mais o distro fexa tao rapido que nao da pra perceber o erro !!! alguem que consiguir descobrir o erro da um alerta ae '-' EDIT: acho que descobri o problema ... nao é compativel com windows xp ... boatos que só funciona no linux... deve haver alguma maneira de concertar o erro ... é no MYSQL acho que atualizando ele resolve o erro !!! erro completo : Failed connectin to database - MYSQL ERROR: can't connect to MYSQL server on 'localhost' <10061> <2003> Assertion failed: connect<false>, file ../databasemysql.cpp, line 39 this application has requested the runtime to terminate it in an unsual way. please contact the application's support team for more information ULTIMATEEDIT: descobri o erro ... nao tem nada haver com linux ... é o site como nao esta configurado no meu pc e eu nao tenho site ai da esse erro ... agora tenho que descobrir como desativar esse negocio de site por enquanto
    3 pontos
  2. Que Nada Mano Eu Ajudei O Mlk Primeiro Dai Ele Chega E Troca A Parada Q Ele Postou Pra Primeiro E Coloca A Minha Como Segunda Porra Velho Vou Te Reputar Negativamente Tbm Bro Sem Problemas Rep -
    2 pontos
  3. http://www.xtibia.com/forum/topic/167483-action-pedra-invocacao-de-player/
    2 pontos
  4. Skymagnum

    Novas Quests

    Tipo: Acho que é um tutorial meio que com scripts seilá, Autor: Eu. Como vocês podem notar os otserv's hoje em dia não investem muito em quest's com rpg são quase todas iguais clique no baú pegue o item então tava entediado e resolvi criar essa quest(criei +/- falta algumas coisas se quiserem editar elas) . @Se consiste. Em falar com o NPC pegar o item ir na statue usar o item que ganhou do NPC ganhar outro item ir em outra statua destruir ela colocar o item no fogo e vocês decidem oque mais só coloquei para soltar efeito. MOVEMENTS: ACTIONS: Gift: espero que tenham gostado e bem simples mais espero que gostem e tenham gostado muito do gosto. ps: POSTEI A ESTATUA SEM UNIQUEID PORQUÊ PODIA BUGAR. PS2: DEPOIS POSTO O RESTO. PS3: O VODKART E VIADO. espero que tenham gostado e bem simples mais espero que gostem e tenham gostado muito do gosto.
    2 pontos
  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. • NARUTO SEVEN - DOWNLOAD • Tópico e Links atualizados: 27/02/17 • Menu: ├ Informações; ├ Jutsus; ├ Prints; ├ Download; └ Creditos. • Informações Basicas • • Jutsus Do Servidor • • PrintScreen • • Download's • Servidor 8.54 + Cliente (MediaFIRE) http://www.mediafire.com/file/99upszbnbb7aklb/Nrtao V.2.rar Senha Para Entrar No Server / (Do GOD): god / god • Creditos • Stigal, Avuenja.
    1 ponto
  7. .. Baiak Yurots 8.60 .. .::Modificado::. Baiak Yurots Mudou a City ta 90% 8.5 Foi Arrumada As Houses. Adicioano Npc Papai Noel no Templo Vende Items 8.54! Novos Items Novos Outifits Novas Hunts E Muito Mais... Baiak Yurots V2.7 Oque Mudou ? Foi Adicionada um Nova Cidade Chamada Baiak City Foi Adidionada Um Teleport no Templo Que Vai para Alumas City's Foi Adicionado Npc de Bless,Pagando Todas as Bless você nao prescisa usar aol... Foi Adicionado Uma Ilha de GM's ... Bug do Account Mananger Arrumado. Novo Executer adicionado,se o ot cai ele salva sozinhoo. E Muito Mas Estara por vim ... Baiak Yurots v1.0.9 Oque Mudou ? Foi Adicionado Sistema Vip.. Foi Adicionado 5 Novos Portais Vip Foi Adicionado Novos Bixos Vip,Warlock Vip,Medusa Vip,Bossing of Baiak.. Foi Adicionado New Quest Baiak Super Foda !! ;D Foi Modificado o Templo Foi Adicionado Mais Treiners ! Entre Alguns Bugs Retirados Baiak Yurots v1.1.0 Oque Mudou ? Mudou o Protocolo de 8.57 para 8.60 Novos Item Novo Outfit Baiak Yurots V1.1.4 Oque Mudou ? Tirei o Pz tool do Templo Fiz um Novo System Vip por Comando Fiz o Novo Addon do Outfit do Wayfarer Baiak Yurots Edited ? Modifiquei o templo. Criei uma sala com alguns npc's. Fiz novos tps na cidade vip para hunts! Criei novos itens vips! (preço de 8kk cada) Fiz quest para axe, arrow e club vip! (1 para os 3) Baiak Yurots Edited oque mudou ? Templo modificado novamente. Teleforts modificados, mesmo teleports porem com visual trocado. Preços dos novos itens vips modificados para 4kk cada. Nova cidade = Dead City. -> Oque tem na D.C.? Localiza-se na Vip City, na cidade nova o templo é junto ao dp, e encima temos os treiners. Temos 4 teleports novos, uma pequena hunt de bosses e varias casas novas! Adicionado a talkaction .!bless, pelo nome devem saber oque faz. System Vip Como Funciona ? !buyvip (Para Comprar Vip)(Players) !vipdays (Para Ver Quantos Dias de Vip Você Tem)(Players) /addvip nomedoplayer,dyasvip (GOD) /delvip nomedoplayer,quantos dias de vip você quer tira desse player (GOD) Informações sobre armas vips: Vip Sword -> Atk: 120 Def: 40 (se nao me engano) Vip Axe -> Atk: 120 Def: 40 (se nao me engano) Vip Club -> Atk: 120 Def: 40 (se nao me engano) Vip Arrow -> Varia com o bow usado! Vip Staff -> entre 400 até 680 Templo\/ Tp's\/ Castelo\/ TP'S VIP II\/ Senhado GOD : God/God Dowload\/ Vale apena Esperar 500 segundo le garanto ;] Scan\/ Credito's Baiak Bryaan
    1 ponto
  8. Fala XTibia,estou postando este tutorial porque vejo que muitos nao sabem como por as vocações de wodbo,em sites como ModernACC. Bom,por isso estou fazendo este tutorial. OBS:O Tópico encina passo-a-passo com imagens. 1°Passo: Primeiro de Tudo abra seu banco de dados e sua database,e abra sua tabela players,conforme a imagem. Bom,voces tao vendo que tem as vocaçoes Sample,precisa criar elas,para usar como base,para por criar no site. Para criar faça o seguinte vá ate alguma e clique em Copiar.Vai abrir uma pagina para vc configurar o nova vocação Sample,vou fazer um Test para fazer com Shenron. Olha as imagens abaixo. Depois so ir em executar. Pronto Acabo? Claro que não amigo. Abra seu config.inc do seu htdocs. Vai na parte das vocations. Procure por isso: /*List of vocation available to choose when creating new character*/ O meu está assim. $config['vocations'] = array(1=>"Goku", 2=>"Vegeta", 3=>"Namekjin", 5=>"Brolly", 6=>"Goten"); Explicando Pronto. Agora pensa que acabo? Ainda nao amigo,falta a ultima parte o metodo acima é para criar um novo personagem ja com ACC Logada.Para fazer para aparecer o personagem que deseja criar quando vai criar uma conta nova,tem que fazer isso. Vá na pasta htdocs\system\application\views e abra o arquivo create.php. e procure por <select name="vocation" class="keyboardInput" id="vocation"> Abaixo vai ver as vocaçoes. No meu ficou assim. <option value="1">Goku</option> <option value="2">Vegeta</option> <option value="3">Namekjin</option> <option value="5">Brolly</option> <option value="6">Goten</option> Ali nos numeros,é o ID,da vocation sample,da database. Pronto so salvar e deu. Fim Do tutorial. Créditos: Mozark001.
    1 ponto
  9. vital900

    [Tools] Equipamentos para Mapping

    Bom galera sempre existe uma dúvida, de qual melhor programa para se mapear, como tirar suas fotos, onde postar entre outros. Visando isto criei este tópico para tutoria-los nesta questão. Este tópico será dividido da seguinte maneira:RME; Postando suas áreas para o público. Primeiramente você precisa da sua 'arma' de mappeamento. Eu prefiro o RME, portanto estou dispondo o link para Download deste.Dúvida de onde baixar seu client do tibia? Dúvida para instalar o RME? Após instalado você pode mudar as extensions, a sua maneira.Aprenda modificar as extensions Depois de pré-programado visando o seu querer, coloque o seu RME para identificar a versão automaticamente, isto lhe poupa de certas dores de cabeças.Poupando tempo na hora de começar a mappear Aconselho aos novatos, a usarem esta seção de tutorial, para aprender a como melhor mappear e a usar sua arma de mappeamento. Para postar sua imagem para os membros a visualizarem em alta definição. Siga estes passos.Espero ter ajudado a todos, caso fique alguma duvida, pergunte.
    1 ponto
  10. Stigal

    [Pokemon] Mapa Stigal 2.0 {Pda}

    • Mapa Stigal 2.0 {PDA 1.5+} [Download]• • Menu: ├ Informações; ├ Ediçoes; ├ Erros; ├ Prints; ├ Download; └ Creditos. • Informações Basicas • • Edições / Ajustes • • Erros Do Servidor • • PrintScreen • • Download's • Mapa Stigal 2.0 {PDA 1.5+} 8.54 (4shared) http://www.4shared.com/rar/9-tmxr_5/Arquivo_Mapa_Stigal_20_PDA_15.html? Scan Mapa Stigal 2.0 {PDA 1.5+} 8.54 (Virus Total) https://www.virustotal.com/file/9f816298c04d57eeb823613a7eb138b0a4461dfc798bb57a86cd875206166e41/analysis/1347478340/ • Creditos • Slicer - {Por Ser Lindo e Criar o PDA} Stigal - {Por Ser Lindo e Ajeitar o Mapa e Deixalo 99%}
    1 ponto
  11. Bom Galera Estou Aqui Com um Site para Poketibia do Meu Server e Estarei Postando para vcs Baixarem Contendo: ☻ Guild System ☻ Shop System full ☻ Ultima Mortes Full ☻ E Muito Mais uma Print do Website: Dem REP++ Dowload: http://www.mediafire.com/?fvuvadb1ez18d6d Bom qual quer Duvida Só ResPonder Ai REP++
    1 ponto
  12. caotic

    Utilizações De Loops

    Resolvi fazer um tuto para intermediários discutindo sobre formas de repetir valores e funções. Vamos ver os mais utilizados while,repeat e for Repeat E parecido com o while muitos dizem que ele complicado mais o contrario ele e bem facil. Já que ele não e e muito utilizado e ele e parecido com o while vamos explicar um pouco dele. Primeiro precisamos declarar ele. ......... Repeat ........ Para que ele pare precisamos declarar until e o valor que devera ser assumido para o repeat parar. ....... Repeat ........ until level == 12 ---- Se o valor de level e igual a 12 o repeat e parado mais se não for ele continua. ........ While O while já e bem mais utilizado e excelente loop. O while estará sempre buscando o valor para que ele pare. Ou seja ele executara sempre até que ele tenha o valor que foi definido seja verdadeiro. var = o valor definido while var>4 do Mais existe outras maneiras de utilizar o while fazendo um while infinito. Sendo que ao executar while true ele repetira infinitamente e ao usar break o while e fechado While true do -- Repetição Infinita ....... if var > 4 then break --- Se var for maior do que 4 parar a o loop. FOR Este e o famoso for e você deve ja visto ele varias vezes. Ele uma estrutura com multiplicas funções com funcionalidades sequenciais e numerais. for ab = 1, 300 do Esta e numeral vai repetir valores de 1 a 300 se eu colocasse este valor na tabela ela colocava os 300 valores. Os trezentos valores serão guardados em uma única variável chamada de ab. Não e obrigatório que seja ab pode renomear por qualquer outro nome. Veremos o for sequencia. Utilizado para tabelas outros. Consiste em repetir valores em sequencia local x = {"1 var", "2 var", "3 var"} for a, c in pairs(x) do print(a, c) Temos outro exemplos como usar o for em todos os players online. for _, id in ipairs(getPlayersOnline()) do Se quisermos por exemplo mandar uma mensagem todos os player online. for _, id in ipairs(getPlayersOnline()) do doPlayerSendTextMessage(id, MESSAGE_STATUS_CONSOLE_BLUE, "Viu como o for e importante para seu otserv") Mais se quisermos que apenar players com o level maior de 50 receba a mensagem. for _, pid in ipairs(getPlayersOnline()) do if getPlayerLevel(pid) > 50 then doPlayerSendTextMessage(pid, MESSAGE_STATUS_CONSOLE_BLUE, "Fod@ e quem e level maior de 50 XD") Bem e isto pessoal espero que tenha gostado
    1 ponto
  13. 20cm

    Fixstring(String)

    O que ela faz? Ela transforma uma string, por exemplo, de "eitor laba v1d4 l0k4" para "Eitor Laba V1d4 L0k4" Pode-se dizer que ela deixa em caixa alta a primeira letra de cada palavra de uma string, e, se forem números, não faz nada. Aqui vai ela: function fixString(string) local k = string.explode(string," ") local x = "" local y = 0 for i = 1, #k do if y == 0 then x = x ..string.sub(k[i],0,1):upper()..string.sub(k[i],2) y = 1 else x = x .." "..string.sub(k[i],0,1):upper()..string.sub(k[i],2) end end return x end Flw!
    1 ponto
  14. Vodkart

    Socoro Ta Deslizando

    AUHUHAUHAUAHAUUAUHA ainda bem q vc recebe alguma coisa, pq é a única coisa que o xtibia vai te dar: REP agr se vc acha que rep é o suficiente pela perda de tempo que vc doa ao xtibia, problema teu, continua com seu maravilhoso desempenho tentando reerguer aquela área que ta com um pé na cova.
    1 ponto
  15. LuckOake

    Caixa Eletrônico

    Rapaz, seguinte, tô vendo que MOD tá bugando no seu server. Vamo instalar por lua mesmo. actions.xml: <action itemid="xxxx" script="card.lua"/> Substitua o xxxx pelo id do cartão. card.lua: talkactions.xml: <talkaction words="!caixa" script="caixa.lua"/> caixa.lua: Você configura a pos do banco na talkaction, nessa linha: bank_pos = {x = 78, y = 39, z = 7} -- Position da entrada do banco E o ID do caixa eletrônico na action, nessa linha: caixa_id = 1354 -- Id do Caixa Eletrônico
    1 ponto
  16. Opa galera então vamos ressuscitar ele Ótimo programa para editar .spr .dat e .pic (tudo em um unico programa) Exporta sprites, importa,add,remove,cria itens,monsters,outfits,.... Tópico: http://www.xtibia.co...-editor-ler-96/ SOURCES: http://tibiaeditor.g....com/svn/trunk/ OU http://www.mediafire...adb2ry2tmlrsajv Falta um programmer ou programmers que mecham nele e façam ele funcionar em 9.6 ou superior! Pois como maioria sabe...(as vantagens do .spr só tem apartir do 9.60) Onde se conseguir ler 9.60 seria um pulinho daqui até ali na esquina para fazer abrir o 9.7x,... Pois dai ele já estará lendo o .dat e .spr com 4bytes
    1 ponto
  17. Vodkart

    Revive System Ajuda Vodkart

    que mlk ridiculo UAHAUAHAUHAUAHAUAHUA mano vai se fude teve o dia todo pra ajuda e qndo eu resolvo ajuda, me xinga banne logo essa merda
    1 ponto
  18. 1 ponto
  19. Ltkshow

    Duvida Sd

    -1, -50, -1, -80, 5, 35, 33, 7) A Parte Que Eu Destaquei Em Vermelho Muda Ela Pra 7, 5 E Testa Deixe Ela Sempre Abaixo De 15 Pra Não Ficar Dano Muito Alto
    1 ponto
  20. 1 ponto
  21. brun123

    Alavanca Sem Requisitos

    vê se funciona assim: function onUse(cid, item, frompos, item2, topos) local startpositions = { {x=106,y=30,z=15}, {x=107,y=30,z=15}, {x=108,y=30,z=15}, {x=109,y=30,z=15}, {x=110,y=30,z=15}, {x=114,y=30,z=15}, {x=115,y=30,z=15}, {x=116,y=30,z=15}, {x=117,y=30,z=15}, {x=118,y=30,z=15}, {x=112,y=35,z=15}, {x=106,y=40,z=15}, {x=107,y=40,z=15}, {x=108,y=40,z=15}, {x=109,y=40,z=15}, {x=110,y=40,z=15}, {x=114,y=40,z=15}, {x=115,y=40,z=15}, {x=116,y=40,z=15}, {x=117,y=40,z=15}, {x=118,y=40,z=15}} for _, pos in pairs (startpositions) do local creature = getTopCreature(pos).uid if isPlayer(creature) then local newpos = {x = pos.x, y = pos.y, z = pos.z} if pos.y == 30 then newpos.y = 53 elseif pos.y == 35 then newpos.y = 58 elseif pos.y == 40 then newpos.y = 68 end doTeleportThing(creature, newpos, false) addEvent(doSendMagicEffect, 10, newpos, CONST_ME_TELEPORT) end end return doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945) end
    1 ponto
  22. -nerongames Voce postou na area errada. Area certa seria pedidos e duvidas de scripting. Reportado para moverem. -Topic Apesar de estar na area errada,vou tentar te ajudar. Veja se é isso que procura. Lottery System Sistema de Loteria Atenciosamente,Mozark001.
    1 ponto
  23. AlexandreKG

    Web Site Help

    Por isso,entao. Veja se alguns desses links lhe ajudam. Hosteando OTServ em NetCompartilhada Criando seu OT com net compartilhada sem Hamachi [Tutorial] Liberando portas net compartilhada (Completo) [Tutorial] Criar Otserv Com Internet Compartilhada Criando Server Com Router Via Ddns. Fim Do Hamachi, Todas Versões De Ot Criando Ot Sem Hamachi Com Net Compartilhada | Tp-Link Tl-Wr340G
    1 ponto
  24. Foquinhaa

    Erro Ao Abrir O Mapa

    Abra a pasta de seu otserv vá em data/items e pegue o arquivo items.otb vá na pasta de seu Rme Remere's Map Editor/Data/Versão e copia o items.otbm la dentro.
    1 ponto
  25. 1579091

    [Tutorial] Como Descompilar Client?

    Amigo esse tópico é considerado flood, na próxima reporto. Ambos os usuários estão fora das regras, Tec, não ameaçe, reporte, caso não queira avise ele por pm. Caso veja um dos dois cometendo o ato novamente, tomarei medidas mais drásticas. Reportados! Att. GuizitoG
    1 ponto
  26. VictorFT

    Ajuda Urgente No Rme

    Dúvida Sanada
    1 ponto
  27. Vai ser dificil, tem que criar mtos scripts, fale com Slicer acho que ele saiba criar.
    1 ponto
  28. @biiel554 Assim, em data/npc/scripts procura o arquivo.lua do npc barco vaai abrino todos ate achar depois em script no xml do npc se coloca o nome do arquivo que ta com o script do npc barco e coloca ele .lua no script do xml do npc por exemplo: <npc name="Capitain Tiberia" script="barco.lua" floorchange="0" access="5" level="1" maglevel="1"> <health now="150" max="150"/> <look type="134" head="114" body="13" legs="90" feet="115" addons="3" corpse="2212"/> <parameters> <parameter key="module_travel" value="1"/> <parameter key="message_greet" value="Hello |PLAYERNAME|. Wanna you meet my ship rotes? If you say {travel}, I'll can help you!" /> <parameter key="travel_destinations" value="Darashia,1191,1115,6,100; Svargrond,630,707,7,100; Hydra Land,174,173,7,100; Frost Land,198,440,7,100; Mistery Bay,350,471,4,100"/> </parameters> </npc> em script coloquei barco pra usar como exemplo ae você poe o script do barco.lua.
    1 ponto
  29. Foquinhaa

    [Básico] Pontes

    @all Obrigado continuarei trazendo conteúdo de boa qualidade ao ékz, @edit Achei um erro no tutorial , porém já ageitei abraços.
    1 ponto
  30. 20cm

    Docleaninventory(Cid)

    Essa função deleta todos os items do jogador, do slot 1 ao 10 function doCleanInventory(cid) for i = 1,10 do if getPlayerSlotItem(cid, i).uid > 0 then doRemoveItem(getPlayerSlotItem(cid,i).uid) end end return true end Faça bom uso ^^
    1 ponto
  31. caotic

    Report Sytem Beta

    Eu tbm pensei assim vodkart :X Mais você disse que ia pesar. Ai tive a ideia de ao ler excluir a denuncia. Ai cada denuncia teria um numero numerado por ordem.
    1 ponto
  32. caotic

    Report Sytem Beta

    Testei em 9.1 e bem provável que funcione
    1 ponto
  33. Slicer

    [Encerrado] Pokedex Pda Ajuda Aqui Please

    vai em lib/pokedex system.lua e substitui oq tem la por isso.. dai procura por Status e edita como quiser...
    1 ponto
  34. Cara Nimguem Quer Saber De Você vai Cuida De Teu Serve Antes Que Fique Sem Ele, Alem Do Mais Nois Aki Do Xtibia, Pode Fazer Isso Ae Num Pisca De Olhos Agora Vai Ver Se Tamo Na Esquina ;/
    1 ponto
  35. Vodkart

    Porfavor.

    krl velho se quer ser banida de uma vez posta logo gore ou pornô se fude viu
    1 ponto
  36. brenerlm

    [8.60] Baiak Jungle Com Donate

    De nada, quem gostou do mapa comenta ae
    1 ponto
  37. fsg

    Mudando Propriedades Do Programa

    Oi Galera, hoje eu irei ensinar como vocês mudarem a propriedades do programa com o ResHacker como na imagem abaixo: Índice * Mudando Propriedades ** Mudando Ícone Downloads Clique aqui Mudando Propriedades Abra o seu ResHacker, vá em File -> O programa desejado: Irei usar o .Exe do Real Server! Após abrir vá em: Version Info -> 1 -> 1033 E mude do seu gosto, eu irei mudar e deixarei de exemplo: Após isto clique no ícone abaixo: E Pronto, propriedades configuradas, vamoa para a próxima etapa: Mudando Ícone Vá em: Icon Group -> Alguma Pasta Que Tiver -> 1033 Após isto, vá em Action -> Replace Icon... e siga a imagem abaixo: e clique em: Open file with new icon... e procure o ícone que deseja! Após achar o ícone clique nele como na imagem abaixo: E clique em Replace. Prontinho, agora vamos salvar, vá em File -> Save As... e siga a imagem abaixo: OBRIGATÓRIO: TUDO QUE FOR SALVAR SALVE EM .EXE NO FINAL! Resultado Final: Abraços. Espero Respostas!
    1 ponto
  38. -1 pontos
  39. Ltkshow

    Revive System Ajuda Vodkart

    Tem Esse Script Aqui Muito Pareçido Se Quizer Acho Que Vai Lhe Ajudar http://www.xtibia.co...acao-de-player/ Para De Ser Mané Cara Eu Ajudei Primeiro Vc Upou O Seu Só Pra Ganha REP+ Do Mlk Seu Cuzão
    -1 pontos
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...