Ir para conteúdo

telefonesemfio

Membro
  • Registro em

  • Última visita

Tudo que telefonesemfio postou

  1. Obrigado, era o contrario mas eu entendi! tem que colocar true xD
  2. Ola como coloco pra mana e o Hp encher na mesma velocidade do Global, quando come food? +rep em quem resolver =)
  3. As runas estão infinitas como eu arrumo isso? =) vou clicar em gostei pra quem resolver =) vlwss
  4. telefonesemfio postou uma resposta no tópico em Tibia Auto
    cara se o bot nao é confiavel nao é problema meu, eu tirei do site oficial se vc entrar no tibiaauto.net vai ver esse link na home page, clicando em "read more"
  5. telefonesemfio postou uma resposta no tópico em Tibia Auto
    eu nao adicionei pq eu peguei do linkoficial http://tibiaauto.net/forum/viewtopic.php?f=34&t=1016629
  6. telefonesemfio postou uma resposta no tópico em Tibia Auto
    Download aqui: http://sourceforge.net/projects/tibiaauto/files/tibiaauto/2.42.0/TibiaAutoSetup_2_42_0_for_10_50.exe/download Quer jogar um ot versão 7.6 do tibia com mapa global? acesse: www.tibiaoldschool.com
  7. Oi como q eu faço pro player que criou a conta começar sem spell nenhum? ele tem q comprar pra ter
  8. ae galera quando vou passar naquele sqm de rookgard q so passa lvl 2, ta funcionando como um "buraco" ele cai sempre que passa naquilo, como eu arrumo?
  9. food.lua local MAX_FOOD = 1200 function onUse(cid, item, frompos, item2, topos) if (item.itemid == 6280) then doPlayerSay(cid, "Blewing out the candle.", 1) doTransformItem(item.uid, item.itemid - 1) doSendMagicEffect(frompos, CONST_ME_POFF) return TRUE end if FOODS[item.itemid] == nil then return FALSE end local size = FOODS[item.itemid][1] local sound = FOODS[item.itemid][2] if (getPlayerFood(cid) + size > MAX_FOOD) then doPlayerSendCancel(cid, "You are full.") return TRUE end doPlayerFeed(cid, size) doRemoveItem(item.uid, 1) doPlayerSay(cid, sound, 1) doCreatureSay(cid, sound, TALKTYPE_MONSTER_SAY) return TRUE end
  10. kkkkkk acho que vc nao entendeu, é normal ele falar em laranja, so nao queria que ele repetisse o mesmo em amarelo, eu comendo uma food ele ta falando 2 vezes saka, um em cada cor
  11. no config.lua tem escrito free premium vc coloca false
  12. Porque meu personagem quando eu coloco pra comer alguma coisa, ele repete em amarelo o "som" de comer a comida, exemplo come o frango aparece escrito "munch" em laranja e aparece em amarelo tbm igual fala normal.
  13. Obrigado toda galera que ajudou, descobri o erro, os arquivos do evabank bank.lua e etc as palavras em vez de withdraw estavam "asdkjfk" "wi45jf" dai eu substitui por withdraw balance etc e deu certo =))
  14. nenhum erro, ele simplesmente não responde =/
  15. Olá estou tentando fazer o ot funcionar, é tibia versão 7.6 TFS 0.3 GOD Tryller: hi Eva: Welcome GOD Tryller! What can I do for you? GOD Tryller: deposit 30 GOD Tryller: deposit =( ela não responde a nenhum comando até de contas normais. esse é o script: local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} 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 creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid --------------------MESSAGES------------------------------------------------------------------------------ if msgcontains(msg, 'deposit') then selfSay('Please tell me how much gold it is you would like to deposit.', cid) talkState[talkUser] = 1 elseif msgcontains(msg, 'withdraw') then selfSay('Please tell me how much gold you would like to withdraw.', cid) talkState[talkUser] = 3 elseif msgcontains(msg, 'transfer') then selfSay('Please tell me the amount of gold coins you would like to transfer.', cid) talkState[talkUser] = 5 elseif msgcontains(msg, 'balance') then n = getPlayerBalance(cid) selfSay('Your balance are '..n..' golds.', cid) talkState[talkUser] = 0 ----------------------DEPOSIT------------------------------------------------------- elseif talkState[talkUser] == 1 then if msgcontains(msg, 'all') then n = getPlayerMoney(cid) selfSay('Do you want deposit '..n..' golds ?', cid) talkState[talkUser] = 2 else n = getNumber(msg) selfSay('Do you want deposit '..n..' golds ?', cid) talkState[talkUser] = 2 end elseif talkState[talkUser] == 2 then if msgcontains(msg, 'yes') then if getPlayerMoney(cid) >= n then doPlayerDepositMoney(cid,n) selfSay('a', cid) talkState[talkUser] = 0 else selfSay('You don\'t have money.', cid) end else selfSay('Ok then', cid) end ----------------------WITHDRAW------------------------------------------------------------------------------------------------------------------------------------ elseif talkState[talkUser] == 3 then if msgcontains(msg, 'all') then n = getPlayerBalance(cid) selfSay('Do you want withdraw '..n..' golds ?', cid) talkState[talkUser] = 4 else n = getNumber(msg) selfSay('Do you want withdraw '..n..' golds ?', cid) talkState[talkUser] = 4 end elseif talkState[talkUser] == 4 then if msgcontains(msg, 'yes') then if getPlayerBalance(cid) >= n then doPlayerWithdrawMoney(cid, n) selfSay('Here you are, '..n..' gold. Now your balance account is ' ..getPlayerBalance(cid)..' golds.', cid) talkState[talkUser] = 0 else selfSay('There is not enough gold on your account', cid) end else selfSay('Ok then', cid) end ----------------------TRANSFER---------------------------------------------------------------------------------------- elseif talkState[talkUser] == 5 then if msgcontains(msg, 'all') then n = getPlayerBalance(cid) selfSay('Who would you like transfer '..n..' gold to?', cid) talkState[talkUser] = 6 else n = getNumber(msg) selfSay('Who would you like transfer '..n..' gold to?', cid) talkState[talkUser] = 6 end elseif talkState[talkUser] == 6 then p = msg selfSay('So you would like to transfer '..n..' gold to '..p..'?', cid) talkState[talkUser] = 7 elseif talkState[talkUser] == 7 then if msgcontains(msg, 'yes') then if getPlayerBalance(cid) >= n then if doPlayerTransferMoneyTo(cid, p, n) == TRUE then selfSay('You have transferred '..n..' gold to '..p..' and your account balance is '..getPlayerBalance(cid)..' golds.', cid) talkState[talkUser] = 0 else selfSay('This player does not exist. Please tell me a valid name!', cid) end else selfSay('There is not enough gold on your account', cid) end else selfSay('Ok then', cid) end end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) -- function maded by Gesior-- function getNumber(txt) --return number if its number and is > 0, else return 0 x = string.gsub(txt,"%a","") x = tonumber(x) if x ~= nill and x > 0 then return x else return 0 end end
  16. Olá o servidor está rodando certinho até que derrepente do nada da um erro no outputmessage.cpp e o servidor para =/ e da o erro falando "Output message: STATE_FREE) blá blá, dai procurei na source esse paragrafo aqui está: if(msg->getConnection()){ if(msg->getConnection()->send(msg)){ // Note: if we ever decide to change how the pool works this will have to change m_outputPoolLock.lock(); if(msg->getState() != OutputMessage::STATE_FREE) { msg->setState(OutputMessage::STATE_WAITING); } m_outputPoolLock.unlock(); } else{ msg->getProtocol()->onSendMessage(msg); O que eu altero nessa parte para funcionar?
  17. opa cara levei o dia inteiro aqui consegui compilar pra funcionar um com o outro kk, so ta dando um erro q depois que sai pra rookgard e vai pra main, se ele morre em main, nao volta mais pq ele nao configura para nascer no templo de carlin quando vai pra la, mas isso vo mexendo aki pra arrumar, valeu =)
  18. Queria saber como alterar para ele salvar o LOGIN no ID e nao no NOME. ele esta trocando a posição dai nao da pra logar. Não sei se isso ajuda, mas esse é o código do register.php: <?php require_once 'engine/init.php'; logged_in_redirect(); include 'layout/overall/header.php'; if (empty($_POST) === false) { // $_POST[''] $required_fields = array('username', 'password', 'password_again', 'email', 'selected'); foreach($_POST as $key=>$value) { if (empty($value) && in_array($key, $required_fields) === true) { $errors[] = 'You need to fill in all fields.'; break 1; } } // check errors (= user exist, pass long enough if (empty($errors) === true) { /* Token used for cross site scripting security */ if (!Token::isValid($_POST['token'])) { $errors[] = 'Token is invalid.'; } if ($config['use_captcha']) { include_once 'captcha/securimage.php'; $securimage = new Securimage(); if ($securimage->check($_POST['captcha_code']) == false) { $errors[] = 'Captcha image verification was submitted wrong.'; } } if (user_exist($_POST['username']) === true) { $errors[] = 'Sorry, that username already exist.'; } // Don't allow "default admin names in config.php" access to register. $isNoob = in_array(strtolower($_POST['username']), $config['page_admin_access']) ? true : false; if ($isNoob) { $errors[] = 'This account name is blocked for registration.'; } if (strtolower($_POST['username']) === true) { $errors[] = 'Sorry, that username already exist.'; } if (preg_match("/^[a-zA-Z0-9]+$/", $_POST['username']) == false) { $errors[] = 'Your account name can only contain characters a-z, A-Z and 0-9.'; } // name restriction $resname = explode(" ", $_POST['username']); foreach($resname as $res) { if(in_array(strtolower($res), $config['invalidNameTags'])) { $errors[] = 'Your username contains a restricted word.'; } else if(strlen($res) == 1) { $errors[] = 'Too short words in your name.'; } } // end name restriction if (strlen($_POST['password']) < 6) { $errors[] = 'Your password must be at least 6 characters.'; } if (strlen($_POST['password']) > 33) { $errors[] = 'Your password must be less than 33 characters.'; } if ($_POST['password'] !== $_POST['password_again']) { $errors[] = 'Your passwords do not match.'; } if (filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) === false) { $errors[] = 'A valid email address is required.'; } if (user_email_exist($_POST['email']) === true) { $errors[] = 'That email address is already in use.'; } if ($_POST['selected'] != 1) { $errors[] = 'You are only allowed to have an account if you accept the rules.'; } if (validate_ip(getIP()) === false && $config['validate_IP'] === true) { $errors[] = 'Failed to recognize your IP address. (Not a valid IPv4 address).'; } } } ?> <h1>Register Account</h1> <?php if (isset($_GET['success']) && empty($_GET['success'])) { echo 'Congratulations! Your account has been created. You may now login to create a character.'; } else { if (empty($_POST) === false && empty($errors) === true) { if ($config['log_ip']) { znote_visitor_insert_detailed_data(1); } //Register $register_data = array( 'name' => $_POST['username'], 'password' => $_POST['password'], 'email' => $_POST['email'], 'ip' => ip2long(getIP()), 'created' => time() ); user_create_account($register_data); header('Location: register.php?success'); exit(); //End register } else if (empty($errors) === false){ echo '<font color="red"><b>'; echo output_errors($errors); echo '</b></font>'; } ?> <form action="" method="post"> <ul> <li> Account Name:<br> <input type="text" name="username"> </li> <li> Password:<br> <input type="password" name="password"> </li> <li> Password again:<br> <input type="password" name="password_again"> </li> <li> Email:<br> <input type="text" name="email"> </li> <?php if ($config['use_captcha']) { ?> <li> <b>Write the image symbols in the text field to verify that you are a human:</b> <img id="captcha" src="captcha/securimage_show.php" alt="CAPTCHA Image" /><br> <input type="text" name="captcha_code" size="10" maxlength="6" /> <a href="#" onclick="document.getElementById('captcha').src = 'captcha/securimage_show.php?' + Math.random(); return false">[ Different Image ]</a><br><br> </li> <?php } ?> <li> <h2>Server Rules</h2> <p>The golden rule: Have fun.</p> <p>If you get pwn3d, don't hate the game.</p> <p>No <a href='http://en.wikipedia.org/wiki/Cheating' target="_blank">cheating</a> allowed.</p> <p>No <a href='http://en.wikipedia.org/wiki/Internet_bot' target="_blank">botting</a> allowed.</p> <p>The staff can delete, ban, do whatever they want with your account and your <br> submitted information. (Including exposing and logging your IP).</p> <p></p> </li> <li> Do you agree to follow the server rules?<br> <select name="selected"> <option value="0">Umh...</option> <option value="1">Yes.</option> <option value="2">No.</option> </select> </li> <?php /* Form file */ Token::create(); ?> <li> <input type="submit" value="Create Account"> </li> </ul> </form> <?php } include 'layout/overall/footer.php'; ?> e esse é o código do users.php <?php // TFS 1.0 functions /// ////////END 1.0 //////// // Fetch Images function fetchImages($status) { $status = (int)$status; return mysql_select_multi("SELECT `id`, `title`, `desc`, `date`, `status`, `image`, `account_id` FROM znote_images WHERE `status`='$status' ORDER BY `date` DESC;"); } // Insert image data function insertImage($account_id, $title, $desc, $image) { $title = sanitize($title); $desc = sanitize($desc); $image = sanitize($image); $account_id = (int)$account_id; $time = time(); mysql_insert("INSERT INTO `znote_images` (`title`, `desc`, `date`, `status`, `image`, `account_id`) VALUES ('$title', '$desc', '$time', '1', '$image', '$account_id');"); } function updateImage($id, $status) { $id = (int)$id; $status = (int)$status; mysql_update("UPDATE `znote_images` SET `status`='$status' WHERE `id`='$id';"); } // Fetch killers score function fetchMurders() { return mysql_select_multi("SELECT `killed_by`, COUNT(`killed_by`) AS `kills` FROM `player_deaths` WHERE `is_player`='1' GROUP BY `killed_by` ORDER BY COUNT(`killed_by`) DESC LIMIT 0, 10;"); } // Fetch deaths score function fetchLoosers() { $array = mysql_select_multi("SELECT `player_id`, (SELECT `name` FROM `players` WHERE `id` = `player_id`) AS `name`, COUNT(`player_id`) AS `Deaths` FROM `player_deaths` GROUP BY `player_id` ORDER BY COUNT(`player_id`) DESC LIMIT 0, 10;"); if ($array !== false) { for ($i = 0; $i < count($array); $i++) { unset($array[$i]['player_id']); } } return $array; } // Fetch latest deaths function fetchLatestDeaths($from = 0, $to = 30) { return mysql_select_multi("SELECT `d`.`level`, `p`.`name` AS `victim`, `d`.`time`, `d`.`is_player`, `d`.`killed_by` FROM `player_deaths` AS `d` INNER JOIN `players` AS `p` ON `d`.`player_id` = `p`.`id` ORDER BY `time` DESC LIMIT $from, $to;"); } // latest deaths .3 (Based on code from [email protected]). function fetchLatestDeaths_03($rowz = 30, $killers = false) { $countz = 0; if ($rowz === false || $killers === true) $getdeaths = mysql_select_multi("SELECT * FROM player_deaths ORDER BY date DESC;"); else $getdeaths = mysql_select_multi("SELECT * FROM `player_deaths` ORDER BY `date` DESC LIMIT 0, $rowz;"); $data = false; //while ($showdeaths = mysql_fetch_assoc($getdeaths)) { if ($getdeaths !== false) { for ($i = 0; $i < count($getdeaths); $i++) { $pid = $getdeaths[$i]['player_id']; $level = $getdeaths[$i]['level']; $kid = user_get_kid($getdeaths[$i]['id']); $killedby = user_name(user_get_killer_id($kid)); if ($killedby == false) { $killedby = user_get_killer_m_name($kid); $player = 0; } else { $player = 1; } if ($killedby === false) { $player = 2; $killedby = "Deleted player."; } $getname = mysql_select_single("SELECT `name` FROM `players` WHERE `id` = '$pid' LIMIT 1;"); $name = $getname['name']; $row = array(); $row['level'] = $level; $row['victim'] = $name; $row['time'] = $getdeaths[$i]['date']; $row['is_player'] = $player; $row['killed_by'] = $killedby; if ($killers) { if ($player == 1) { if ($rowz !== false) { if ($countz < $rowz) { $data[] = $row; $countz++; } } else { $data[] = $row; } } } else $data[] = $row; } } return $data; } // Bomberman Highscores function bomberman_highscores() { // Fetch all players who have played bomberman more than 1 time: $totalGames = getPlayerStorageList(5006, 1); foreach ($totalGames as $game) { $char = array(); $data = user_character_data($game['player_id'], 'name'); $char['name'] = $data['name']; $char['wins'] = getPlayerStorage($game['player_id'], 5004); $char['losses'] = getPlayerStorage($game['player_id'], 5005); $char['frags'] = getPlayerStorage($game['player_id'], 5007); $char['deaths'] = getPlayerStorage($game['player_id'], 5008); $char['total_games'] = $game['value']; $array[] = $char; } if (!empty($array)) {return $array; } else {return false;} } // Support list function support_list() { $TFS = Config('TFSVersion'); if ($TFS == 'TFS_10') $staffs = mysql_select_multi("SELECT `id`, `group_id`, `name`, `account_id` FROM `players` WHERE `group_id` > 1 ORDER BY `group_id` ASC;"); else $staffs = mysql_select_multi("SELECT `group_id`, `name`, `online`, `account_id` FROM `players` WHERE `group_id` > 1 ORDER BY `group_id` ASC;"); if ($staffs !== false) { for ($i = 0; $i < count($staffs); $i++) { // $staffs[$i][''] if ($TFS == 'TFS_02' || $TFS == 'TFS_10') { $account = mysql_select_single("SELECT `type` FROM `accounts` WHERE `id` ='". $staffs[$i]['account_id'] ."';"); $staffs[$i]['group_id'] = $account['type']; if ($TFS == 'TFS_10') { // Fix online status on TFS 1.0 if (user_is_online_10($staffs[$i]['id'])) $staffs[$i]['online'] = 1; else $staffs[$i]['online'] = 0; unset($staffs[$i]['id']); } } unset($staffs[$i]['account_id']); } } return $staffs; } // NEWS function fetchAllNews() { return mysql_select_multi("SELECT `n`.`id`, `n`.`title`, `n`.`text`, `n`.`date`, `p`.`name` FROM `znote_news` AS `n` INNER JOIN `players` AS `p` ON `n`.`pid` = `p`.`id` ORDER BY `n`.`id` DESC;"); } // HOUSES function fetchAllHouses_03() { return mysql_select_multi("SELECT * FROM `houses`;"); } // TFS Storage value functions (Warning, I think these things are saved in cache, // and thus require server to be offline, or affected players to be offline while using) // Get player storage list function getPlayerStorageList($storage, $minValue) { $minValue = (int)$minValue; $storage = (int)$storage; return mysql_select_multi("SELECT `player_id`, `value` FROM `player_storage` WHERE `key`='$storage' AND `value`>='$minValue' ORDER BY `value` DESC;"); } // Get global storage value function getGlobalStorage($storage) { $storage = (int)$storage; return mysql_select_single("SELECT `value` FROM `global_storage` WHERE `key`='$storage';"); } // Set global storage value function setGlobalStorage($storage, $value) { $storage = (int)$storage; $value = (int)$value; // If the storage does not exist yet if (getGlobalStorage($storage) === false) { mysql_insert("INSERT INTO `global_storage` (`key`, `world_id`, `value`) VALUES ('$storage', 0, '$value')"); } else {// If the storage exist mysql_update("UPDATE `global_storage` SET `value`='$value' WHERE `key`='$storage'"); } } // Get player storage value. function getPlayerStorage($player_id, $storage, $online = false) { if ($online) $online = user_is_online($player_id); if (!$online) { // user is offline (false), we may safely proceed: $player_id = (int)$player_id; $storage = (int)$storage; return mysql_select_single("SELECT `value` FROM `player_storage` WHERE `key`='$storage' AND `player_id`='$player_id';"); } else return false; } // Set player storage value function setPlayerStorage($player_id, $storage, $value) { $storage = (int)$storage; $value = (int)$value; $player_id = (int)$player_id; // If the storage does not exist yet if (getPlayerStorage($storage) === false) { mysql_insert("INSERT INTO `player_storage` (`player_id`, `key`, `value`) VALUES ('$player_id', '$storage', '$value')"); } else {// If the storage exist mysql_update("UPDATE `player_storage` SET `value`='$value' WHERE `key`='$storage' AND `player_id`='$player_id'"); } } // Is player online function user_is_online($player_id) { $status = user_character_data($player_id, 'online'); if ($status !== false) { if ($status['online'] == 1) $status = true; else $status = false; } return $status; } // For TFS 1.0 function user_is_online_10($player_id) { $player_id = (int)$player_id; $status = mysql_select_single("SELECT `player_id` FROM `players_online` WHERE `player_id`='$player_id' LIMIT 1;"); return !$status ? $status : true; } // Shop // Gets a list of tickets and ticket ids function shop_delete_row_order($rowid) { $rowid = (int)$rowid; mysql_delete("DELETE FROM `znote_shop_orders` WHERE `id`='$rowid';"); } function shop_update_row_count($rowid, $count) { $rowid = (int)$rowid; $count = (int)$count; mysql_update("UPDATE `znote_shop_orders` SET `count`='$count' WHERE `id`='$rowid'"); } function shop_account_gender_tickets($accid) { $accid = (int)$accid; return mysql_select_multi("SELECT `id`, `count` FROM `znote_shop_orders` WHERE `account_id`='$accid' AND `type`='3';"); } // GUILDS // function guild_remove_member($cid) { $cid = (int)$cid; mysql_update("UPDATE `players` SET `rank_id`='0' WHERE `id`=$cid"); } function guild_remove_member_10($cid) { $cid = (int)$cid; mysql_update("DELETE FROM `guild_membership` WHERE `player_id`='$cid' LIMIT 1;"); } // Change guild rank name. function guild_change_rank($rid, $name) { $rid = (int)$rid; $name = sanitize($name); mysql_update("UPDATE `guild_ranks` SET `name`='$name' WHERE `id`=$rid"); } // Change guild leader (parameters: cid, new and old leader). function guild_change_leader($nCid, $oCid) { $nCid = (int)$nCid; $oCid = (int)$oCid; $gid = guild_leader_gid($oCid); $ranks = get_guild_rank_data($gid); $leader_rid = 0; $vice_rid = 0; // Get rank id for leader and vice leader. foreach ($ranks as $rank) { if ($rank['level'] == 3) $leader_rid = $rank['id']; if ($rank['level'] == 2) $vice_rid = $rank['id']; } $status = false; if ($leader_rid > 0 && $vice_rid > 0) $status = true; // Verify that we found the rank ids for vice leader and leader. if ($status) { // Update players and set their new rank id if (config('TFSVersion') !== 'TFS_10') { mysql_update("UPDATE `players` SET `rank_id`='$leader_rid' WHERE `id`=$nCid LIMIT 1;"); mysql_update("UPDATE `players` SET `rank_id`='$vice_rid' WHERE `id`=$oCid LIMIT 1;"); } else { mysql_update("UPDATE `guild_membership` SET `rank_id`='$leader_rid' WHERE `player_id`=$nCid LIMIT 1;"); mysql_update("UPDATE `guild_membership` SET `rank_id`='$vice_rid' WHERE `player_id`=$oCid LIMIT 1;"); } // Update guilds set new ownerid guild_new_leader($nCid, $gid); } return $status; } // Changes leadership of aguild to player_id function guild_new_leader($new_leader, $gid) { $new_leader = (int)$new_leader; $gid = (int)$gid; mysql_update("UPDATE `guilds` SET `ownerid`='$new_leader' WHERE `id`=$gid"); } // Returns $gid of a guild leader($cid). function guild_leader_gid($leader) { $leader = (int)$leader; return mysql_select_single("SELECT `id` FROM `guilds` WHERE `ownerid`='$leader';"); } // Returns guild leader(charID) of a guild. (parameter: guild_ID) function guild_leader($gid) { $gid = (int)$gid; $data = mysql_select_single("SELECT `ownerid` FROM `guilds` WHERE `id`='$gid';"); return ($data !== false) ? $data['ownerid'] : false; } // Disband guild function guild_remove_invites($gid) { $gid = (int)$gid; mysql_delete("DELETE FROM `guild_invites` WHERE `guild_id`='$gid';"); } // Remove guild invites function guild_delete($gid) { $gid = (int)$gid; mysql_delete("DELETE FROM `guilds` WHERE `id`='$gid';"); } // Player leave guild function guild_player_leave($cid) { $cid = (int)$cid; mysql_update("UPDATE `players` SET `rank_id`='0' WHERE `id`=$cid LIMIT 1;"); } function guild_player_leave_10($cid) { $cid = (int)$cid; mysql_delete("DELETE FROM `guild_membership` WHERE `player_id`='$cid' LIMIT 1;"); } // Player join guild function guild_player_join($cid, $gid) { $cid = (int)$cid; $gid = (int)$gid; // Create a status we can return depending on results. $status = false; if (config('TFSVersion') !== 'TFS_10') { // Get rank data $ranks = get_guild_rank_data($gid); // Locate rank id for regular member position in this guild $rid = false; foreach ($ranks as $rank) { if ($rank['level'] == 1) $rid = $rank['id']; } // Add to guild if rank id was found: if ($rid != false) { // Remove the invite: guild_remove_invitation($cid, $gid); // Add to guild: mysql_update("UPDATE `players` SET `rank_id`='$rid' WHERE `id`=$cid"); $status = true; } } else { // Find rank id for regular member in this guild $guildrank = mysql_select_single("SELECT `id` FROM `guild_ranks` WHERE `guild_id`='$gid' AND `level`='1' LIMIT 1;"); if ($guildrank !== false) { $rid = $guildrank['id']; // Remove invite guild_remove_invitation($cid, $gid); // Add to guild mysql_insert("INSERT INTO `guild_membership` (`player_id`, `guild_id`, `rank_id`, `nick`) VALUES ('$cid', '$gid', '$rid', '');"); // Return success return true; } return false; } return $status; } // Remove cid invitation from guild (gid) function guild_remove_invitation($cid, $gid) { $cid = (int)$cid; $gid = (int)$gid; mysql_delete("DELETE FROM `guild_invites` WHERE `player_id`='$cid' AND `guild_id`='$gid';"); } // Invite character to guild function guild_invite_player($cid, $gid) { $cid = (int)$cid; $gid = (int)$gid; mysql_insert("INSERT INTO `guild_invites` (`player_id`, `guild_id`) VALUES ('$cid', '$gid')"); } // Gets a list of invited players to a particular guild. function guild_invite_list($gid) { $gid = (int)$gid; return mysql_select_multi("SELECT `player_id`, `guild_id` FROM `guild_invites` WHERE `guild_id`='$gid';"); } // Update player's guild position function update_player_guild_position($cid, $rid) { $cid = (int)$cid; $rid = (int)$rid; mysql_update("UPDATE `players` SET `rank_id`='$rid' WHERE `id`=$cid"); } function update_player_guild_position_10($cid, $rid) { $cid = (int)$cid; $rid = (int)$rid; mysql_update("UPDATE `guild_membership` SET `rank_id`='$rid' WHERE `player_id`=$cid"); } // Get guild data, using guild id. function get_guild_rank_data($gid) { $gid = (int)$gid; return mysql_select_multi("SELECT `id`, `guild_id`, `name`, `level` FROM `guild_ranks` WHERE `guild_id`='$gid' ORDER BY `id` DESC LIMIT 0, 30"); } // Creates a guild, where cid is the owner of the guild, and name is the name of guild. function create_guild($cid, $name) { $cid = (int)$cid; $name = sanitize($name); $time = time(); // Create the guild mysql_insert("INSERT INTO `guilds` (`name`, `ownerid`, `creationdata`, `motd`) VALUES ('$name', '$cid', '$time', 'The guild has been created!');"); // Get guild id $gid = get_guild_id($name); // Get rank id for guild leader $data = mysql_select_single("SELECT `id` FROM `guild_ranks` WHERE `guild_id`='$gid' AND `level`='3' LIMIT 1;"); $rid = ($data !== false) ? $data['id'] : false; // Give player rank id for leader of his guild if (config('TFSVersion') !== 'TFS_10') mysql_update("UPDATE `players` SET `rank_id`='$rid' WHERE `id`='$cid' LIMIT 1;"); else mysql_insert("INSERT INTO `guild_membership` (`player_id`, `guild_id`, `rank_id`, `nick`) VALUES ('$cid', '$gid', '$rid', '');"); } // Search player table on cid for his rank_id, returns rank_id function get_character_guild_rank($cid) { $cid = (int)$cid; if (config('TFSVersion') !== 'TFS_10') { $data = mysql_select_single("SELECT `rank_id` FROM `players` WHERE `id`='$cid';"); return ($data !== false && $data['rank_id'] > 0) ? $data['rank_id'] : false; } else { $data = mysql_select_single("SELECT `rank_id` FROM `guild_membership` WHERE `player_id`='$cid' LIMIT 1;"); return ($data !== false) ? $data['rank_id'] : false; } } // Get a player guild rank, using his rank_id function get_player_guild_rank($rank_id) { $rank_id = (int)$rank_id; $data = mysql_select_single("SELECT `name` FROM `guild_ranks` WHERE `id`=$rank_id LIMIT 1;"); return ($data !== false) ? $data['name'] : false; } // Get a player guild position ID, using his rank_id function get_guild_position($rid) { $rid = (int)$rid; $data = mysql_select_single("SELECT `level` FROM `guild_ranks` WHERE `id`=$rid;"); return ($data !== false) ? $data['level'] : false; } // Get a players rank_id, guild_id, rank_level(ID), rank_name(string), using cid(player id) function get_player_guild_data($cid) { $cid = (int)$cid; if (config('TFSVersion') !== 'TFS_10') $playerdata = mysql_select_single("SELECT `rank_id` FROM `players` WHERE `id`='$cid' LIMIT 1;"); else $playerdata = mysql_select_single("SELECT `rank_id` FROM `guild_membership` WHERE `player_id`='$cid' LIMIT 1;"); if ($playerdata !== false) { $rankdata = mysql_select_single("SELECT `guild_id`, `level` AS `rank_level`, `name` AS `rank_name` FROM `guild_ranks` WHERE `id`='". $playerdata['rank_id'] ."' LIMIT 1;"); if ($rankdata !== false) { $rankdata['rank_id'] = $playerdata['rank_id']; return $rankdata; } else return false; } else return false; } // Returns guild name of guild id function get_guild_name($gid) { $gid = (int)$gid; $guild = mysql_select_single("SELECT `name` FROM `guilds` WHERE `id`=$gid LIMIT 1;"); if ($guild !== false) return $guild['name']; else return false; } // Returns guild id from name function get_guild_id($name) { $name = sanitize($name); $data = mysql_select_single("SELECT `id` FROM `guilds` WHERE `name`='$name';"); return ($data !== false) ? $data['id'] : false; } // Returns guild data from name function get_guild_data($name) { $name = sanitize($name); return mysql_select_single("SELECT `id`, `name`, `ownerid`, `creationdata`, `motd` FROM `guilds` WHERE `name`='$name' LIMIT 1;"); } // Get complete list of guilds function get_guilds_list() { return mysql_select_multi("SELECT `id`, `name`, `creationdata` FROM `guilds` ORDER BY `name`;"); } // Get array of player data related to a guild. function get_guild_players($gid) { $gid = (int)$gid; // Sanitizing the parameter id if (config('TFSVersion') !== 'TFS_10') return mysql_select_multi("SELECT p.rank_id, p.name, p.level, p.vocation, p.online, gr.name AS `rank_name` FROM players AS p LEFT JOIN guild_ranks AS gr ON gr.id = p.rank_id WHERE gr.guild_id ='$gid' ORDER BY gr.id, p.name;"); else return mysql_select_multi("SELECT p.id, p.name, p.level, p.vocation, gm.rank_id, gr.name AS `rank_name` FROM players AS p LEFT JOIN guild_membership AS gm ON gm.player_id = p.id LEFT JOIN guild_ranks AS gr ON gr.id = gm.rank_id WHERE gm.guild_id = '$gid' ORDER BY gm.rank_id, p.name"); } // Returns total members in a guild (integer) function count_guild_members($gid) { $gid = (int)$gid; if (config('TFSVersion') !== 'TFS_10') { $data = mysql_select_single("SELECT COUNT(p.id) AS total FROM players AS p LEFT JOIN guild_ranks AS gr ON gr.id = p.rank_id WHERE gr.guild_id =$gid"); return ($data !== false) ? $data['total'] : false; } else { $data = mysql_select_single("SELECT COUNT('guild_id') AS `total` FROM `guild_membership` WHERE `guild_id`='$gid';"); return ($data !== false) ? $data['total'] : false; } } // // GUILD WAR // // Returns guild war entry for id function get_guild_war($warid) { $warid = (int)$warid; // Sanitizing the parameter id return mysql_select_single("SELECT `id`, `guild1`, `guild2`, `name1`, `name2`, `status`, `started`, `ended` FROM `guild_wars` WHERE `id`=$warid ORDER BY `started`;"); } // TFS 0.3 compatibility function get_guild_war03($warid) { $warid = (int)$warid; // Sanitizing the parameter id $war = mysql_select_single("SELECT `id`, `guild_id`, `enemy_id`, `status`, `begin`, `end` FROM `guild_wars` WHERE `id`=$warid ORDER BY `begin` DESC LIMIT 0, 30"); if ($war !== false) { $war['guild1'] = $war['guild_id']; $war['guild2'] = $war['enemy_id']; $war['name1'] = get_guild_name($war['guild_id']); $war['name2'] = get_guild_name($war['enemy_id']); $war['started'] = $war['begin']; $war['ended'] = $war['end']; } return $war; } // List all war entries function get_guild_wars() { return mysql_select_multi("SELECT `id`, `guild1`, `guild2`, `name1`, `name2`, `status`, `started`, `ended` FROM `guild_wars` ORDER BY `started` DESC LIMIT 0, 30"); } // Untested. (TFS 0.3 compatibility) function get_guild_wars03() { $array = mysql_select_multi("SELECT `id`, `guild_id`, `enemy_id`, `status`, `begin`, `end` FROM `guild_wars` ORDER BY `begin` DESC LIMIT 0, 30"); if ($array !== false) { for ($i = 0; $i < count($array); $i++) { // Generating TFS 0.2 key values for this 0.3 query for web cross compatibility $array[$i]['guild1'] = $array[$i]['guild_id']; $array[$i]['guild2'] = $array[$i]['enemy_id']; $array[$i]['name1'] = get_guild_name($array[$i]['guild_id']); $array[$i]['name2'] = get_guild_name($array[$i]['enemy_id']); $array[$i]['started'] = $array[$i]['begin']; $array[$i]['ended'] = $array[$i]['end']; } } return $array; } // List kill activity in wars. function get_war_kills($war_id) { $war_id = (int)$war_id;// Sanitize - verify its an integer. return mysql_select_multi("SELECT `id`, `killer`, `target`, `killerguild`, `targetguild`, `warid`, `time` FROM `guildwar_kills` WHERE `warid`=$war_id ORDER BY `time` DESC"); } // TFS 0.3 compatibility function get_war_kills03($war_id) { $war_id = (int)$war_id;// Sanitize - verify its an integer. return mysql_select_multi("SELECT `id`, `guild_id`, `war_id`, `death_id` FROM `guild_kills` WHERE `war_id`=$war_id ORDER BY `id` DESC LIMIT 0, 30"); } // Gesior compatibility port TFS .3 function gesior_sql_death($warid) { $warid = (int)$warid; // Sanitizing the parameter id return mysql_select_multi('SELECT `pd`.`id`, `pd`.`date`, `gk`.`guild_id` AS `enemy`, `p`.`name`, `pd`.`level` FROM `guild_kills` gk LEFT JOIN `player_deaths` pd ON `gk`.`death_id` = `pd`.`id` LEFT JOIN `players` p ON `pd`.`player_id` = `p`.`id` WHERE `gk`.`war_id` = ' . $warid . ' AND `p`.`deleted` = 0 ORDER BY `pd`.`date` DESC'); } function gesior_sql_killer($did) { $did = (int)$did; // Sanitizing the parameter id return mysql_select_multi('SELECT `p`.`name` AS `player_name`, `p`.`deleted` AS `player_exists`, `k`.`war` AS `is_war` FROM `killers` k LEFT JOIN `player_killers` pk ON `k`.`id` = `pk`.`kill_id` LEFT JOIN `players` p ON `p`.`id` = `pk`.`player_id` WHERE `k`.`death_id` = ' . $did . ' ORDER BY `k`.`final_hit` DESC, `k`.`id` ASC'); } // end gesior // END GUILD WAR // ADMIN FUNCTIONS function set_ingame_position($name, $acctype) { $acctype = (int)$acctype; $name = sanitize($name); $acc_id = user_character_account_id($name); $char_id = user_character_id($name); $group_id = 2; if ($acctype == 1) { $group_id = 1; } elseif ($acctype == 6) { $group_id = 3; } mysql_update("UPDATE `accounts` SET `type` = '$acctype' WHERE `id` =$acc_id;"); mysql_update("UPDATE `players` SET `group_id` = '$group_id' WHERE `id` =$char_id;"); } // .3 function set_ingame_position03($name, $acctype) { $acctype = (int)$acctype; $name = sanitize($name); $acc_id = user_character_account_id($name); $char_id = user_character_id($name); $group_id = 2; if ($acctype == 1) { $group_id = 1; } mysql_update("UPDATE `players` SET `group_id` = '$acctype' WHERE `id` =$char_id;"); } // Set rule violation. // Return true if success, query error die if failed, and false if $config['website_char'] is not recognized. function set_rule_violation($charname, $typeid, $actionid, $reasonid, $time, $comment) { $charid = user_character_id($charname); $typeid = (int)$typeid; $actionid = (int)$actionid; $reasonid = (int)$reasonid; $time = (int)($time + time()); $data = user_character_data($charid, 'account_id', 'lastip'); $accountid = $data['account_id']; $charip = $data['lastip']; $comment = sanitize($comment); // ... $bannedby = config('website_char'); if (user_character_exist($bannedby)) { $bannedby = user_character_id($bannedby); if (Config('TFSVersion') === 'TFS_02') mysql_insert("INSERT INTO `bans` (`type` ,`ip` ,`mask` ,`player` ,`account` ,`time` ,`reason_id` ,`action_id` ,`comment` ,`banned_by`) VALUES ('$typeid', '$charip', '4294967295', '$charid', '$accountid', '$time', '$reasonid', '$actionid', '$comment', '$bannedby');"); elseif (Config('TFSVersion') === 'TFS_03') { $now = time(); switch ($typeid) { case 1: // IP ban mysql_insert("INSERT INTO `bans` (`type`, `value`, `param`, `active`, `expires`, `added`, `admin_id`, `comment`) VALUES ('$typeid', '$charip', '4294967295', '1', '$time', '$now', '$bannedby', '$comment');"); break; case 2: // namelock mysql_insert("INSERT INTO `bans` (`type`, `value`, `param`, `active`, `expires`, `added`, `admin_id`, `comment`) VALUES ('$typeid', '$charid', '4294967295', '1', '$time', '$now', '$bannedby', '$comment');"); break; case 3: // acc ban mysql_insert("INSERT INTO `bans` (`type`, `value`, `param`, `active`, `expires`, `added`, `admin_id`, `comment`) VALUES ('$typeid', '$accountid', '4294967295', '1', '$time', '$now', '$bannedby', '$comment');"); break; case 4: // notation mysql_insert("INSERT INTO `bans` (`type`, `value`, `param`, `active`, `expires`, `added`, `admin_id`, `comment`) VALUES ('$typeid', '$charid', '4294967295', '1', '$time', '$now', '$bannedby', '$comment');"); break; case 5: // deletion mysql_insert("INSERT INTO `bans` (`type`, `value`, `param`, `active`, `expires`, `added`, `admin_id`, `comment`) VALUES ('$typeid', '$charid', '4294967295', '1', '$time', '$now', '$bannedby', '$comment');"); break; } } elseif (Config('TFSVersion') === 'TFS_10') { $now = time(); switch ($typeid) { case 1: // IP ban mysql_insert("INSERT INTO `ip_bans` (`ip`, `reason`, `banned_at`, `expires_at`, `banned_by`) VALUES ('$charip', '$comment', '$now', '$time', '$bannedby');"); break; case 2: // namelock mysql_insert("INSERT INTO `player_namelocks` (`player_id`, `reason`, `namelocked_at`, `namelocked_by`) VALUES ('$charid', 'comment', '$now', '$bannedby');"); break; case 3: // acc ban mysql_insert("INSERT INTO `account_bans` (`account_id`, `reason`, `banned_at`, `expires_at`, `banned_by`) VALUES ('$accountid', '$comment', '$now', '$time', '$bannedby');"); break; case 4: // notation data_dump(false, array('status' => false), "Function deprecated. Ban option does not exist in TFS 1.0."); die(); break; case 5: // deletion data_dump(false, array('status' => false), "Function deprecated. Ban option does not exist in TFS 1.0."); die(); break; } } return true; } else { return false; } } // -- END admin // Fetch deathlist function user_fetch_deathlist($char_id) { $char_id = (int)$char_id; return mysql_select_multi("SELECT * FROM `player_deaths` WHERE `player_id`='$char_id' order by `time` DESC LIMIT 0, 10"); } // TFS .3 compatibility function user_fetch_deathlist03($char_id) { $char_id = (int)$char_id; $data = mysql_select_multi("SELECT * FROM `player_deaths` WHERE `player_id`='$char_id' order by `date` DESC LIMIT 0, 10"); if ($data !== false) { for ($i = 0; $i < count($data); $i++) { $data[$i]['time'] = $data[$i]['date']; } } return $data; } // same (death id ---> killer id) function user_get_kid($did) { $did = (int)$did; $data = mysql_select_single("SELECT `id` FROM `killers` WHERE `death_id`='$did';"); return ($data !== false) ? $data['id'] : false; } // same (killer id ---> player id) function user_get_killer_id($kn) { $kn = (int)$kn; $data = mysql_select_single("SELECT `player_id` FROM `player_killers` WHERE `kill_id`='$kn';"); return ($data !== false) ? $data['player_id'] : false; } // same (killer id ---> monster name) function user_get_killer_m_name($mn) { $mn = (int)$mn; $data = mysql_select_single("SELECT `name` FROM `environment_killers` WHERE `kill_id`='$mn';"); return ($data !== false) ? $data['name'] : false; } // Count character deaths. Counts up 10. function user_count_deathlist($char_id) { $char_id = (int)$char_id; $data = mysql_select_single("SELECT COUNT('id') AS `id` FROM `player_deaths` WHERE `player_id`='$char_id' order by `time` DESC LIMIT 0, 10"); return ($data !== false) ? $data['id'] : false; } // MY ACCOUNT RELATED \\ function user_update_comment($char_id, $comment) { $char_id = sanitize($char_id); $comment = sanitize($comment); mysql_update("UPDATE `znote_players` SET `comment`='$comment' WHERE `player_id`='$char_id'"); } // Permamently delete character id. (parameter: character id) function user_delete_character($char_id) { $char_id = (int)$char_id; mysql_delete("DELETE FROM `players` WHERE `id`='$char_id';"); mysql_delete("DELETE FROM `znote_players` WHERE `player_id`='$char_id';"); } // Delete character with supplied id with a delay. function user_delete_character_soft($char_id) { $char_id = (int)$char_id; $char_name = user_character_name($char_id); $original_acc_id = user_character_account_id($char_name); if(!user_character_pending_delete($char_name)) mysql_insert('INSERT INTO `znote_deleted_characters`(`original_account_id`, `character_name`, `time`, `done`) VALUES(' . $original_acc_id . ', "' . $char_name . '", (NOW() + INTERVAL ' . Config('delete_character_interval') . '), 0)'); else return false; } // Check if character will be deleted soon. function user_character_pending_delete($char_name) { $char_name = sanitize($char_name); $result = mysql_select_single('SELECT `done` FROM `znote_deleted_characters` WHERE `character_name` = "' . $char_name . '"'); return ($result === false) ? false : !$result['done']; } // Get pending character deletes for supplied account id. function user_pending_deletes($acc_id) { $acc_id = (int)$acc_id; return mysql_select_multi('SELECT `id`, `character_name`, `time` FROM `znote_deleted_characters` WHERE `original_account_id` = ' . $acc_id . ' AND `done` = 0'); } // Parameter: accounts.id returns: An array containing detailed information of every character on the account. // Array: [0] = name, [1] = level, [2] = vocation, [3] = town_id, [4] = lastlogin, [5] = online function user_character_list($account_id) { //$count = user_character_list_count($account_id); $account_id = (int)$account_id; if (config('TFSVersion') == 'TFS_10') { $characters = mysql_select_multi("SELECT `id`, `name`, `level`, `vocation`, `town_id`, `lastlogin` FROM `players` WHERE `account_id`='$account_id' ORDER BY `level` DESC"); if ($characters !== false) { $onlineArray = mysql_select_multi("SELECT `player_id` FROM `players_online`;"); $onlineIds = array(); if ($onlineArray !== false) foreach ($onlineArray as $row) $onlineIds[] = $row['player_id']; for ($i = 0; $i < count($characters); $i++) { $online = in_array($characters[$i]['id'], $onlineIds); if ($online) $characters[$i]['online'] = 1; else $characters[$i]['online'] = 0; unset($characters[$i]['id']); } } } else $characters = mysql_select_multi("SELECT `name`, `level`, `vocation`, `town_id`, `lastlogin`, `online` FROM `players` WHERE `account_id`='$account_id' ORDER BY `level` DESC"); if ($characters !== false) { $count = count($characters); for ($i = 0; $i < $count; $i++) { $characters[$i]['vocation'] = vocation_id_to_name($characters[$i]['vocation']); // Change vocation id to vocation name $characters[$i]['town_id'] = town_id_to_name($characters[$i]['town_id']); // Change town id to town name // Make lastlogin human read-able. if ($characters[$i]['lastlogin'] != 0) { $characters[$i]['lastlogin'] = getClock($characters[$i]['lastlogin'], true, false); } else { $characters[$i]['lastlogin'] = 'Never.'; } $characters[$i]['online'] = online_id_to_name($characters[$i]['online']); // 0 to "offline", 1 to "ONLINE". } } return $characters; } // Returns an array containing all(up to 30) player_IDs an account have. (parameter: account_ID). function user_character_list_player_id($account_id) { //$count = user_character_list_count($account_id); $account_id = sanitize($account_id); return mysql_select_multi("SELECT `id` FROM `players` WHERE `account_id`='$account_id' ORDER BY `level` DESC LIMIT 0, 30"); } // Parameter: accounts.id returns: number of characters on the account. function user_character_list_count($account_id) { $account_id = sanitize($account_id); $data = mysql_select_single("SELECT COUNT('id') AS `id` FROM `players` WHERE `account_id`='$account_id'"); return ($data !== false) ? $data['id'] : 0; } // END MY ACCOUNT RELATED // HIGHSCORE FUNCTIONS \\ function fetchAllScores($rows, $tfs, $g) { // Return scores ordered by type $data = array(); if ($tfs == 'TFS_10') { $data[1] = mysql_select_multi("SELECT `id`, `name`, `vocation`, `skill_club` AS `value` FROM `players` WHERE `group_id` < $g ORDER BY `skill_club` DESC LIMIT 0, $rows;"); $data[2] = mysql_select_multi("SELECT `id`, `name`, `vocation`, `skill_sword` AS `value` FROM `players` WHERE `group_id` < $g ORDER BY `skill_sword` DESC LIMIT 0, $rows;"); $data[3] = mysql_select_multi("SELECT `id`, `name`, `vocation`, `skill_axe` AS `value` FROM `players` WHERE `group_id` < $g ORDER BY `skill_axe` DESC LIMIT 0, $rows;"); $data[4] = mysql_select_multi("SELECT `id`, `name`, `vocation`, `skill_dist` AS `value` FROM `players` WHERE `group_id` < $g ORDER BY `skill_dist` DESC LIMIT 0, $rows;"); $data[5] = mysql_select_multi("SELECT `id`, `name`, `vocation`, `skill_shielding` AS `value` FROM `players` WHERE `group_id` < $g ORDER BY `skill_shielding` DESC LIMIT 0, $rows;"); $data[6] = mysql_select_multi("SELECT `id`, `name`, `vocation`, `skill_fishing` AS `value` FROM `players` WHERE `group_id` < $g ORDER BY `skill_fishing` DESC LIMIT 0, $rows;"); $data[7] = mysql_select_multi("SELECT `id`, `name`, `vocation`, `experience`, `level` AS `value` FROM `players` WHERE `group_id` < $g ORDER BY `experience` DESC LIMIT 0, $rows;"); $data[8] = mysql_select_multi("SELECT `id`, `name`, `vocation`, `maglevel` AS `value` FROM `players` WHERE `group_id` < $g ORDER BY `maglevel` DESC LIMIT 0, $rows;"); $data[9] = mysql_select_multi("SELECT `id`, `name`, `vocation`, `skill_fist` AS `value` FROM `players` WHERE `group_id` < $g ORDER BY `skill_fist` DESC LIMIT 0, $rows;"); } else { $data[9] = mysql_select_multi("SELECT `s`.`player_id` AS `id`, `s`.`value` AS `value`, `p`.`name` AS `name`, `p`.`vocation` AS `vocation` FROM `player_skills` AS `s` LEFT JOIN `players` AS `p` ON `s`.`player_id`=`p`.`id` WHERE `s`.`skillid` = 0 AND `p`.`group_id` < $g ORDER BY `s`.`value` DESC LIMIT 0, $rows;"); $data[1] = mysql_select_multi("SELECT `s`.`player_id` AS `id`, `s`.`value` AS `value`, `p`.`name` AS `name`, `p`.`vocation` AS `vocation` FROM `player_skills` AS `s` LEFT JOIN `players` AS `p` ON `s`.`player_id`=`p`.`id` WHERE `s`.`skillid` = 1 AND `p`.`group_id` < $g ORDER BY `s`.`value` DESC LIMIT 0, $rows;"); $data[2] = mysql_select_multi("SELECT `s`.`player_id` AS `id`, `s`.`value` AS `value`, `p`.`name` AS `name`, `p`.`vocation` AS `vocation` FROM `player_skills` AS `s` LEFT JOIN `players` AS `p` ON `s`.`player_id`=`p`.`id` WHERE `s`.`skillid` = 2 AND `p`.`group_id` < $g ORDER BY `s`.`value` DESC LIMIT 0, $rows;"); $data[3] = mysql_select_multi("SELECT `s`.`player_id` AS `id`, `s`.`value` AS `value`, `p`.`name` AS `name`, `p`.`vocation` AS `vocation` FROM `player_skills` AS `s` LEFT JOIN `players` AS `p` ON `s`.`player_id`=`p`.`id` WHERE `s`.`skillid` = 3 AND `p`.`group_id` < $g ORDER BY `s`.`value` DESC LIMIT 0, $rows;"); $data[4] = mysql_select_multi("SELECT `s`.`player_id` AS `id`, `s`.`value` AS `value`, `p`.`name` AS `name`, `p`.`vocation` AS `vocation` FROM `player_skills` AS `s` LEFT JOIN `players` AS `p` ON `s`.`player_id`=`p`.`id` WHERE `s`.`skillid` = 4 AND `p`.`group_id` < $g ORDER BY `s`.`value` DESC LIMIT 0, $rows;"); $data[5] = mysql_select_multi("SELECT `s`.`player_id` AS `id`, `s`.`value` AS `value`, `p`.`name` AS `name`, `p`.`vocation` AS `vocation` FROM `player_skills` AS `s` LEFT JOIN `players` AS `p` ON `s`.`player_id`=`p`.`id` WHERE `s`.`skillid` = 5 AND `p`.`group_id` < $g ORDER BY `s`.`value` DESC LIMIT 0, $rows;"); $data[6] = mysql_select_multi("SELECT `s`.`player_id` AS `id`, `s`.`value` AS `value`, `p`.`name` AS `name`, `p`.`vocation` AS `vocation` FROM `player_skills` AS `s` LEFT JOIN `players` AS `p` ON `s`.`player_id`=`p`.`id` WHERE `s`.`skillid` = 6 AND `p`.`group_id` < $g ORDER BY `s`.`value` DESC LIMIT 0, $rows;"); $data[7] = mysql_select_multi("SELECT `id`, `name`, `vocation`, `experience`, `level` AS `value` FROM `players` WHERE `group_id` < $g ORDER BY `experience` DESC limit 0, $rows;"); $data[8] = mysql_select_multi("SELECT `id`, `name`, `vocation`, `maglevel` AS `value` FROM `players` WHERE `group_id` < $g ORDER BY `maglevel` DESC limit 0, $rows;"); } return $data; } // END HIGHSCORE FUNCTIONS function user_recover($mode, $edom, $email, $character, $ip) { /* -- Lost account function - user_recovery -- $mode = username/password recovery definition $edom = The remembered value. (if mode is username, edom is players password and vice versa) $email = email address $character = character name $ip = character IP */ // Structure verify array data correctly if ($mode === 'username') { $verify_data = array( 'password' => sha1($edom), 'email' => $email ); } else { $verify_data = array( 'name' => $edom, 'email' => $email ); } // Determine if the submitted information is correct and herit from same account if (user_account_fields_verify_value($verify_data)) { // Structure account id fetch method correctly if ($mode == 'username') { $account_id = user_account_id_from_password($verify_data['password']); } else { $account_id = user_id($verify_data['name']); } // get account id from character name $player_account_id = user_character_account_id($character); //Verify that players.account_id matches account.id if ($player_account_id == $account_id) { // verify IP match (IP = accounts.email_new) \\ // Fetch IP data $ip_data = user_znote_account_data($account_id, 'ip'); if ($ip == $ip_data['ip']) { // IP Match, time to stop verifying SHIT and get on // With giving the visitor his goddamn username/password! if ($mode == 'username') { $name_data = user_data($account_id, 'name'); echo '<br><p>Your username is:</p> <h3>'. $name_data['name'] .'</h3>'; } else { $newpass = substr(sha1(rand(1000000, 99999999)), 8); echo '<br><p>Your new password is:</p> <h3>'. $newpass .'</h3><p>Remember to login and change it!</p>'; user_change_password($account_id, $newpass); } // END?! no, but almost. } else { echo'IP does not match.'; } } else { echo'Account data does not match.'; } } else { echo'Account data does not match.'; } } // Get account id from password. This can be inaccurate considering several people may have same password. function user_account_id_from_password($password) { $password = sanitize($password); $tmp = mysql_select_single("SELECT `id` FROM `accounts` WHERE `password`='".$password."' LIMIT 1;"); return $tmp['id']; } // Get account name from id. function user_account_id_from_name($id) { $id = (int)$id;; $result = mysql_select_single("SELECT `name` FROM `accounts` WHERE `id` = '" . $id . "' LIMIT 1;"); return $result['name']; } // Add additional premium days to account id function user_account_add_premdays($accid, $days) { $accid = (int)$accid; $days = (int)$days; $data = mysql_select_single("SELECT `premdays` FROM `accounts` WHERE `id`='$accid';"); $tmp = $data['premdays']; $tmp += $days; mysql_update("UPDATE `accounts` SET `premdays`='$tmp' WHERE `id`='$accid'"); } // Name = char name. Changes from male to female & vice versa. function user_character_change_gender($name) { $user_id = user_character_id($name); $data = mysql_select_single("SELECT `sex` FROM `players` WHERE `id`='$user_id';"); $gender = $data['sex']; if ($gender == 1) mysql_update("UPDATE `players` SET `sex`='0' WHERE `id`='$user_id'"); else mysql_update("UPDATE `players` SET `sex`='1' WHERE `id`='$user_id'"); } // Fetch account ID from player NAME function user_character_account_id($character) { $character = sanitize($character); $data = mysql_select_single("SELECT `account_id` FROM `players` WHERE `name`='$character';"); return ($data !== false) ? $data['account_id'] : false; } // Verify data from accounts table. Parameter is an array of <columnName> - <data to verify> // etc array('id' = 4, 'password' = 'test') will verify that logged in user have id 4 and password test. function user_account_fields_verify_value($verify_data) { $verify = array(); array_walk($verify_data, 'array_sanitize'); foreach ($verify_data as $field=>$data) { $verify[] = '`'. $field .'` = \''. $data .'\''; } $data = mysql_select_single("SELECT COUNT('id') AS `count` FROM `accounts` WHERE ". implode(' AND ', $verify) .";"); return ($data !== false && $data['count'] == 1) ? true : false; } // Update accounts, make sure user is logged in first. function user_update_account($update_data) { $update = array(); array_walk($update_data, 'array_sanitize'); foreach ($update_data as $field=>$data) { $update[] = '`'. $field .'` = \''. $data .'\''; } $user_id = sanitize($_SESSION['user_id']); mysql_update("UPDATE `accounts` SET ". implode(', ', $update) ." WHERE `id`=". $user_id .";"); } // Update znote_accounts table, make sure user is logged in for this. This is used to etc update lastIP function user_update_znote_account($update_data) { $update = array(); array_walk($update_data, 'array_sanitize'); foreach ($update_data as $field=>$data) { $update[] = '`'. $field .'` = \''. $data .'\''; } $user_id = sanitize($_SESSION['user_id']); mysql_update("UPDATE `znote_accounts` SET ". implode(', ', $update) ." WHERE `account_id`=". $user_id .";"); } // Change password on account_id (Note: You should verify that he knows the old password before doing this) function user_change_password($user_id, $password) { $user_id = sanitize($user_id); $password = sha1($password); mysql_update("UPDATE `accounts` SET `password`='$password' WHERE `id`=$user_id"); } // .3 compatibility function user_change_password03($user_id, $password) { if (config('salt') === true) { $user_id = sanitize($user_id); $salt = user_data($user_id, 'salt'); $password = sha1($salt['salt'].$password); mysql_update("UPDATE `accounts` SET `password`='$password' WHERE `id`=$user_id"); } else { user_change_password($user_id, $password); } } // Parameter: players.id, value[0 or 1]. Togge hide. function user_character_set_hide($char_id, $value) { $char_id = sanitize($char_id); $value = sanitize($value); mysql_update("UPDATE `znote_players` SET `hide_char`='$value' WHERE `player_id`=$char_id"); } // CREATE ACCOUNT function user_create_account($register_data) { array_walk($register_data, 'array_sanitize'); if (config('TFSVersion') == 'TFS_03' && config('salt') === true) { $register_data['salt'] = generate_recovery_key(18); $register_data['password'] = sha1($register_data['salt'].$register_data['password']); } else $register_data['password'] = sha1($register_data['password']); $ip = $register_data['ip']; $created = $register_data['created']; unset($register_data['ip']); unset($register_data['created']); if (config('TFSVersion') == 'TFS_10') $register_data['creation'] = $created; $fields = '`'. implode('`, `', array_keys($register_data)) .'`'; $data = '\''. implode('\', \'', $register_data) .'\''; mysql_insert("INSERT INTO `accounts` ($fields) VALUES ($data)"); $account_id = user_id($register_data['name']); mysql_insert("INSERT INTO `znote_accounts` (`account_id`, `ip`, `created`) VALUES ('$account_id', '$ip', '$created')"); //TO-DO: mail server and verification. // http://www.web-development-blog.com/archives/send-e-mail-messages-via-smtp-with-phpmailer-and-gmail/ } // CREATE CHARACTER function user_create_character($character_data) { array_walk($character_data, 'array_sanitize'); $cnf = fullConfig(); if ($character_data['sex'] == 1) { $outfit_type = $cnf['maleOutfitId']; } else { $outfit_type = $cnf['femaleOutfitId']; } // This is TFS 0.2 compatible import data with Znote AAC mysql schema $import_data = array( 'name' => $character_data['name'], 'group_id' => 1, 'account_id' => $character_data['account_id'], 'level' => $cnf['level'], 'vocation' => $character_data['vocation'], 'health' => $cnf['health'], 'healthmax' => $cnf['health'], 'experience' => 0, /* Will automatically be configured according to level after creating this array*/ 'lookbody' => $cnf['lookBody'], /* STARTER OUTFITS */ 'lookfeet' => $cnf['lookFeet'], 'lookhead' => $cnf['lookHead'], 'looklegs' => $cnf['lookLegs'], 'looktype' => $outfit_type, 'lookaddons' => 0, 'maglevel' => 0, 'mana' => $cnf['mana'], 'manamax' => $cnf['mana'], 'manaspent' => 0, 'soul' => $cnf['soul'], 'town_id' => $character_data['town_id'], 'posx' => $cnf['default_pos']['x'], 'posy' => $cnf['default_pos']['y'], 'posz' => $cnf['default_pos']['z'], 'conditions' => '', 'cap' => $cnf['cap'], 'sex' => $character_data['sex'], 'lastlogin' => 0, 'lastip' => $character_data['lastip'], 'save' => 1, 'skull' => 0, 'skulltime' => 0, 'rank_id' => 0, 'guildnick' => '', 'lastlogout' => 0, 'blessings' => 0, 'direction' => 0, 'loss_experience' => 10, 'loss_mana' => 10, 'loss_skills' => 10, 'premend' => 0, 'online' => 0, 'balance' => 0 ); // TFS 1.0 rules if (Config('TFSVersion') === 'TFS_10') { unset($import_data['rank_id']); unset($import_data['guildnick']); unset($import_data['direction']); unset($import_data['loss_experience']); unset($import_data['loss_mana']); unset($import_data['loss_skills']); unset($import_data['loss_mana']); unset($import_data['premend']); unset($import_data['online']); } // Set correct experience for level $import_data['experience'] = level_to_experience($import_data['level']); // If you are no vocation (id 0), use these details instead: if ($character_data['vocation'] === '0') { $import_data['level'] = $cnf['nvlevel']; $import_data['experience'] = level_to_experience($cnf['nvlevel']); $import_data['health'] = $cnf['nvHealth']; $import_data['healthmax'] = $cnf['nvHealth']; $import_data['cap'] = $cnf['nvCap']; $import_data['mana'] = $cnf['nvMana']; $import_data['manamax'] = $cnf['nvMana']; $import_data['soul'] = $cnf['nvSoul']; if ($cnf['nvForceTown'] == 1) { $import_data['town_id'] = $cnf['nvTown']; } } $fields = array_keys($import_data); // Fetch select fields $data = array_values($import_data); // Fetch insert data $fields_sql = implode("`, `", $fields); // Convert array into SQL compatible string $data_sql = implode("', '", $data); // Convert array into SQL compatible string echo 1; mysql_insert("INSERT INTO `players`(`$fields_sql`) VALUES ('$data_sql');"); $created = time(); $charid = user_character_id($import_data['name']); echo 2; mysql_insert("INSERT INTO `znote_players`(`player_id`, `created`, `hide_char`, `comment`) VALUES ('$charid', '$created', '0', '');"); } // Returns counted value of all players online function user_count_online() { if (config('TFSVersion') == 'TFS_10') { $online = mysql_select_single("SELECT COUNT(`player_id`) AS `value` FROM `players_online`;"); return ($online !== false) ? $online['value'] : 0; } else { $data = mysql_select_single("SELECT COUNT(`id`) AS `count` from `players` WHERE `online` = 1;"); return ($data !== false) ? $data['count'] : 0; } } // Returns counted value of all accounts. function user_count_accounts() { $result = mysql_select_single("SELECT COUNT(`id`) AS `id` from `accounts`;"); return ($result !== false) ? $result['id'] : 0; } /* user_character_data (fetches whatever data you want from players table)! Usage: $player = user_data(player_ID, 'name', 'level'); echo "Character name: ". $player['name'] .". Level: ". $player['level']; */ function user_character_data($user_id) { $data = array(); $user_id = sanitize($user_id); $func_num_args = func_num_args(); $func_get_args = func_get_args(); if ($func_num_args > 1) { unset($func_get_args[0]); $fields = '`'. implode('`, `', $func_get_args) .'`'; $data = mysql_select_single("SELECT $fields FROM `players` WHERE `id` = $user_id;"); return $data; } } // return query data from znote_players table function user_znote_character_data($character_id) { $data = array(); $charid = (int)$character_id; $func_num_args = func_num_args(); $func_get_args = func_get_args(); if ($func_num_args > 1) { unset($func_get_args[0]); $fields = '`'. implode('`, `', $func_get_args) .'`'; $data = mysql_select_single("SELECT $fields FROM `znote_players` WHERE `player_id` = $charid;"); return $data; } } // return query data from znote table // usage: $znoteAAC = user_znote_data('version'); // echo $znoteAAC['version']; function user_znote_data() { $data = array(); $func_num_args = func_num_args(); $func_get_args = func_get_args(); if ($func_num_args > 0) { $fields = '`'. implode('`, `', $func_get_args) .'`'; return mysql_select_single("SELECT $fields FROM `znote`;"); } else return false; } // return query data from znote_accounts table // See documentation on user_data. This fetches information from znote_accounts table. function user_znote_account_data($account_id) { $data = array(); $accid = (int)$account_id; $func_num_args = func_num_args(); $func_get_args = func_get_args(); if ($func_num_args > 1) { unset($func_get_args[0]); $fields = '`'. implode('`, `', $func_get_args) .'`'; return mysql_select_single("SELECT $fields FROM `znote_accounts` WHERE `account_id` = $accid LIMIT 1;"); } else return false; } // return query data from znote_visitors table // See documentation on user_data, but this uses $longip instead. function user_znote_visitor_data($longip) { $data = array(); $longip = (int)$longip; $func_num_args = func_num_args(); $func_get_args = func_get_args(); if ($func_num_args > 1) { unset($func_get_args[0]); $fields = '`'. implode('`, `', $func_get_args) .'`'; return mysql_select_single("SELECT $fields FROM `znote_visitors` WHERE `ip` = $longip;"); } else return false; } // return query data from znote_visitors_details table // See documentation on user_data, but this uses $longip instead. function user_znote_visitor_details_data($longip) { $data = array(); $longip = (int)$longip; $func_num_args = func_num_args(); $func_get_args = func_get_args(); if ($func_num_args > 1) { unset($func_get_args[0]); $fields = '`'. implode('`, `', $func_get_args) .'`'; return mysql_select_single("SELECT $fields FROM `znote_visitors_details` WHERE `ip` = $longip;"); } else return false; } /* user_data (fetches whatever data you want from accounts table)! Usage: $account = user_data(account_ID, 'password', 'email'); echo $account['email']; //Will then echo out that accounts mail address. */ function user_data($user_id) { $data = array(); $user_id = sanitize($user_id); $func_num_args = func_num_args(); $func_get_args = func_get_args(); if ($func_num_args > 1) { unset($func_get_args[0]); $fields = '`'. implode('`, `', $func_get_args) .'`'; return mysql_select_single("SELECT $fields FROM `accounts` WHERE `id` = $user_id LIMIT 1;"); } else return false; } // Checks if user is activated (Not in use atm) function user_activated($username) { $username = sanitize($username); // Deprecated, removed from DB. return false; } // Checks that username exist in database function user_exist($username) { $username = sanitize($username); $data = mysql_select_single("SELECT `id` FROM `accounts` WHERE `name`='$username';"); return ($data !== false) ? true : false; } function user_name($id) { //USERNAME FROM PLAYER ID $id = (int)$id; $name = mysql_select_single("SELECT `name` FROM `players` WHERE `id`='$id';"); if ($name !== false) return $name['name']; else return false; } // Checks that character name exist function user_character_exist($username) { $username = sanitize($username); $player = mysql_select_single("SELECT `id` FROM `players` WHERE `name`='$username';"); return ($player !== false) ? $player['id'] : false; } // Checks that this email exist. function user_email_exist($email) { $email = sanitize($email); $data = mysql_select_single("SELECT `id` FROM `accounts` WHERE `email`='$email';"); return ($data !== false) ? true : false; } // Fetch user account ID from registered email. (this is used by etc lost account) function user_id_from_email($email) { $email = sanitize($email); $data = mysql_select_single("SELECT `id` FROM `accounts` WHERE `email`='$email';"); return ($data !== false) ? $data['id'] : false; } // Checks that a password exist in the database. function user_password_exist($password) { $password = sha1($password); // No need to sanitize passwords since we encrypt them. $data = mysql_select_single("SELECT `id` FROM `accounts` WHERE `password`='$password';"); return ($data !== false) ? true : false; } // Verify that submitted password match stored password in account id function user_password_match($password, $account_id) { $password = sha1($password); // No need to sanitize passwords since we encrypt them. $account_id = (int)$account_id; $data = mysql_select_single("SELECT `id` FROM `accounts` WHERE `password`='$password' AND `id`='$account_id';"); return ($data !== false) ? true : false; } // Get user ID from name function user_id($username) { $username = sanitize($username); $data = mysql_select_single("SELECT `id` FROM `accounts` WHERE `name`='$username' LIMIT 1;"); if ($data !== false) return $data['id']; else return false; } // Get user login ID from username and password function user_login_id($username, $password) { $username = sanitize($username); $password = sha1($password); $data = mysql_select_single("SELECT `id` FROM `accounts` WHERE `name`='$username' AND `password`='$password' LIMIT 1;"); if ($data !== false) return $data['id']; else return false; } // TFS 0.3+ compatibility. function user_login_id_03($username, $password) { if (config('salt') === true) { if (user_exist($username)) { $user_id = user_id($username); $username = sanitize($username); $data = mysql_select_single("SELECT `salt`, `id`, `name`, `password` FROM `accounts` WHERE `id`='$user_id';"); $salt = $data['salt']; if (!empty($salt)) $password = sha1($salt.$password); else $password = sha1($password); return ($data !== false && $data['name'] == $username && $data['password'] == $password) ? $data['id'] : false; } else return false; } else return user_login_id($username, $password); } // Get character ID from character name function user_character_id($charname) { $charname = sanitize($charname); $char = mysql_select_single("SELECT `id` FROM `players` WHERE `name`='$charname';"); if ($char !== false) return $char['id']; else return false; } // Get character name from character ID function user_character_name($charID) { $charID = (int)$charID; $char = mysql_select_single('SELECT `name` FROM `players` WHERE `id` = ' . $charID); if ($char !== false) return $char['name']; else return false; } // Hide user character. function user_character_hide($username) { $username = sanitize($username); $username = user_character_id($username); $char = mysql_select_single("SELECT `hide_char` FROM `znote_players` WHERE `player_id`='$username';"); if ($char !== false) return $char['hide_char']; else return false; } // Login with a user. (TFS 0.2) function user_login($username, $password) { $username = sanitize($username); $password = sha1($password); $data = mysql_select_single("SELECT `id` FROM accounts WHERE name='$username' AND password='$password';"); return ($data !== false) ? $data['id'] : false; } // Login a user with TFS 0.3 compatibility function user_login_03($username, $password) { if (config('salt') === true) { $username = sanitize($username); $data = mysql_select_single("SELECT `salt`, `id`, `password`, `name` FROM `accounts` WHERE `name`='$username';"); $salt = $data['salt']; if (!empty($salt)) $password = sha1($salt.$password); else $password = sha1($password); return ($data !== false && $data['name'] == $username && $data['password'] == $password) ? $data['id'] : false; } else return user_login($username, $password); } // Verify that user is logged in function user_logged_in() { return (isset($_SESSION['user_id'])) ? true : false; } function guild_war_invitation($cid, $gid) { $cid = (int)$cid; $gid = (int)$gid; $gname = get_guild_name($cid); $ename = get_guild_name($gid); $time = time(); mysql_insert("INSERT INTO `guild_wars` (`guild1`, `guild2`, `name1`, `name2`, `status`, `started`, `ended`) VALUES ('$cid', '$gid', '$gname', '$ename', '0', '$time', '0');"); } function accept_war_invitation($cid, $gid) { $cid = (int)$cid; $gid = (int)$gid; mysql_update("UPDATE `guild_wars` SET `status` = 1 WHERE `guild1` = '$cid' AND `guild2` = '$gid' AND `status` = 0;"); } function reject_war_invitation($cid, $gid) { $cid = (int)$cid; $gid = (int)$gid; $time = time(); mysql_update("UPDATE `guild_wars` SET `status` = 2, `ended` = '$time' WHERE `guild1` = '$cid' AND `guild2` = '$gid';"); } function cancel_war_invitation($cid, $gid) { $cid = (int)$cid; $gid = (int)$gid; $time = time(); mysql_update("UPDATE `guild_wars` SET `status` = 3, `ended` = '$time' WHERE `guild2` = '$cid' AND `guild1` = '$gid';"); } ?> alguem me ajuda?
  19. Opa cara obrigado por responder, com outro database não funcionou, mas a partir doq vc falou eu criei o campo name na database antiga dai o site criou a conta =) mas.. nao deu pra logar, pq ele joga uma senha criptografada , exemplo coloco senha "3232" e la na database fica "asdg4f4245" e o login ele joga num campo errado, quando eu modifico manual la na database dai da pra logar o char, vc sabe alguma maneira de arrumar isso? caso não souber, nao tem problema, ja me ajudou muito, obrigado
  20. Quando vou criar a conta digito tudo dai dou OK, e aparece essa mensagem e não cria: string(54) "SELECT `id` FROM `accounts` WHERE `name`='tiagopedro';" (query - SQL error) Type: select_single (select single row from database) Unknown column 'name' in 'where clause' alguem pdoe me ajudar ? =)

Informação Importante

Confirmação de Termo