Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- // lock kvuli synchronizaci
- $lockFile = "prevod_lock";
- if(file_exists($lockFile) && file_get_contents($lockFile) == "1") {
- echo "Jiz se provadi";
- return;
- }
- $fh = fopen($lockFile, 'w') or die("can't open file");
- fwrite($fh, "1");
- fclose($fh);
- // spojeni s db
- $user = "czechwow_prevod";
- $pass = "urUThuhmvc7YbMH9";
- $spojeni = mysql_connect("durotan.czechdream.cz", $user, $pass);
- mysql_query("SET NAMES utf8");
- mysql_select_db("drago_335_proper_char", $spojeni);
- $query = mysql_query("SELECT id, postava, account, stav FROM cd_drupal.czechwow_prevody WHERE stav IN(0,3) ORDER BY id;");
- while($postava = mysql_fetch_object($query)) {
- echo "Zpracovavam postavu ".$postava->postava."\n";
- $vysl = zpracujPostavu($postava->id, $postava->postava, $postava->account, $postava->stav);
- mysql_query("UPDATE cd_drupal.czechwow_prevody SET stav = ".$vysl." WHERE id = ".$postava->id);
- sleep(10);
- }
- $fh = fopen($lockFile, 'w') or die("can't open file");
- fwrite($fh, "0");
- fclose($fh);
- return;
- function zpracujPostavu($id, $guid, $account, $stav) {
- // kontrola poctu postav na ucte
- $pocetPostav = mysql_fetch_object(mysql_query("SELECT count(guid) AS pocet FROM characters WHERE account = ".$account))->pocet;
- echo "Postav na uctu: ".$pocetPostav."\n";
- if($pocetPostav >= 10)
- return 5;
- // nacteni postavy
- $postava = mysql_fetch_array(mysql_query("SELECT
- `guid`, `account`, `name`, `race`, `class`, `gender`, `level`, `xp`, `money`, `playerBytes`, `playerBytes2`,
- `playerFlags`, `position_x`, `position_y`, `position_z`, `map`, `orientation`, `taximask`, `online`, `cinematic`,
- `totaltime`, `leveltime`, `logout_time`, `is_logout_resting`, `rest_bonus`, `resettalents_cost`, `resettalents_time`,
- `trans_x`, `trans_y`, `trans_z`, `trans_o`, `transguid`, `extra_flags`, `stable_slots`, `at_login`, `zone`,
- `death_expire_time`, `taxi_path`, `arenaPoints`, `totalHonorPoints`, `todayHonorPoints`, `yesterdayHonorPoints`,
- `totalKills`, `todayKills`, `yesterdayKills`, `chosenTitle`, `knownCurrencies`, `watchedFaction`, `drunk`, `health`,
- `power1`, `power2`, `power3`, `power4`, `power5`, `power6`, `power7`, `specCount`, `activeSpec`, `exploredZones`,
- `equipmentCache`, `ammoId`, `knownTitles`, `actionBars`, `deleteInfos_Account`, `deleteInfos_Name`, `deleteDate`,
- `instance_id`, `instance_mode_mask`, `latency`
- FROM czechwow.characters WHERE guid = ".$guid));
- echo "Postava nactena\n";
- // kontrola jmena
- $postavySeStejnymJmenem = mysql_query("SELECT name FROM characters WHERE name LIKE '".$postava["name"]."';");
- echo "Kontroluji stejna jmena\n";
- if(mysql_num_rows($postavySeStejnymJmenem) > 0) {
- echo "Postava se stejnym jmenem existuje, predavam rucnimu vyrizeni konfliktu\n";
- return 2;
- }
- $postava["at_login"] |= 4;
- // vytvoreni nove postavy s novym guid
- echo "Vytvarim postavu:";
- mysql_query("LOCK TABLES characters WRITE;");
- $query = mysql_query("SELECT max(guid) AS newguid FROM characters;");
- $newGuid = mysql_fetch_object($query)->newguid+1;
- $sql = "INSERT INTO characters
- (`guid`, `account`, `name`, `race`, `class`, `gender`, `level`, `xp`, `money`, `playerBytes`, `playerBytes2`,
- `playerFlags`, `position_x`, `position_y`, `position_z`, `map`, `orientation`, `taximask`, `online`, `cinematic`,
- `totaltime`, `leveltime`, `logout_time`, `is_logout_resting`, `rest_bonus`, `resettalents_cost`, `resettalents_time`,
- `trans_x`, `trans_y`, `trans_z`, `trans_o`, `transguid`, `extra_flags`, `stable_slots`, `at_login`, `zone`,
- `death_expire_time`, `taxi_path`, `arenaPoints`, `totalHonorPoints`, `todayHonorPoints`, `yesterdayHonorPoints`,
- `totalKills`, `todayKills`, `yesterdayKills`, `chosenTitle`, `knownCurrencies`, `watchedFaction`, `drunk`, `health`,
- `power1`, `power2`, `power3`, `power4`, `power5`, `power6`, `power7`, `speccount`, `activespec`, `exploredZones`,
- `equipmentCache`, `ammoId`, `knownTitles`, `actionBars`, `deleteInfos_Account`, `deleteInfos_Name`, `deleteDate`,
- `instance_id`, `instance_mode_mask`, `latency`)";
- $sql .= " VALUES (".$newGuid.",".$account;
- // pokud se ma postava prejmenovat
- if($stav == 3) {
- $postava["name"] .= rand(10,99);
- $postava["at_login"] |= 1;
- }
- echo "jmeno ".$postava["name"]."\n";
- $sloupcu = 70;
- for($i = 2 ; $i < $sloupcu ; $i++) {
- $sql .= ",'".$postava[$i]."'";
- }
- $sql .= ");";
- echo $sql."\n";
- mysql_query($sql);
- mysql_query("UNLOCK TABLES;");
- // prevod item_instance
- mysql_query("LOCK TABLES item_instance, czechwow.item_instance, czechwow.character_inventory, czechwow.mail_item WRITE, czechwow.mail;");
- // item_instance z character_inventory
- $nejvyssiItem = mysql_fetch_object(mysql_query("SELECT max(guid) AS maxguid FROM item_instance"))->maxguid+2-7044651;
- $sql = "INSERT INTO item_instance (SELECT ch.`guid`+$nejvyssiItem, ch.`itemEntry`, $newGuid, 0, 0, ch.`count`, ch.`duration`, ch.`charges`, ch.`flags`, ch.`enchantments`, ch.`randomPropertyId`, ch.`durability`, ch.`playedTime`, ch.`text` FROM czechwow.item_instance ch INNER JOIN czechwow.character_inventory chi ON chi.item = ch.guid WHERE chi.guid = $guid);";
- mysql_query($sql);
- echo mysql_error();
- if(mysql_error() != "")
- echo "Nepovedlo se zapsat do item_instance: ".$sql."\n";
- // item_instance z mail_items
- $sql = "INSERT INTO item_instance (SELECT ch.`guid`+$nejvyssiItem, ch.`itemEntry`, $newGuid, 0, 0, ch.`count`, ch.`duration`, ch.`charges`, ch.`flags`, ch.`enchantments`, ch.`randomPropertyId`, ch.`durability`, ch.`playedTime`, ch.`text` FROM czechwow.item_instance ch INNER JOIN czechwow.mail_items mi ON mi.item_guid = ch.guid INNER JOIN czechwow.mail m ON m.id = mi.mail_id WHERE m.receiver = $guid);";
- mysql_query($sql);
- echo mysql_error();
- if(mysql_error() != "")
- echo "Nepovedlo se zapsat do item_instance: ".$sql."\n";
- mysql_query("UNLOCK TABLES;");
- // prevod mail
- mysql_query("LOCK TABLES mail, czechwow.mail WRITE;");
- $nejvyssiMail = mysql_fetch_object(mysql_query("SELECT max(id) AS maxid FROM mail"))->maxid+2-7069439;
- $sql = "INSERT INTO mail (SELECT m.id+$nejvyssiMail, m.messageType, m.stationery, m.mailTemplateId, $newGuid, $newGuid, m.subject, m.body, m.has_items, m.expire_time, m.deliver_time, m.money, m.cod, m.checked FROM czechwow.mail m WHERE m.receiver = $guid);";
- mysql_query("UNLOCK TABLES;");
- $sql = array();
- $sql[] = "INSERT INTO character_achievement (SELECT $newGuid, achievement, date FROM czechwow.character_achievement WHERE guid = $guid);";
- $sql[] = "INSERT INTO character_achievement_progress (SELECT $newGuid, criteria, counter, date FROM czechwow.character_achievement_progress WHERE guid = $guid);";
- $sql[] = "INSERT INTO character_action (SELECT $newGuid, spec, button, action, type FROM czechwow.character_action WHERE guid = $guid);";
- $sql[] = "INSERT INTO character_aura (SELECT $newGuid, $newGuid, item_guid+$nejvyssiItem, spell, effect_mask, recalculate_mask, stackcount, amount0, amount1, amount2, base_amount0, base_amount1, base_amount2, maxduration, remaintime, remaincharges FROM czechwow.character_aura WHERE guid = $guid);";
- $sql[] = "INSERT INTO character_homebind (SELECT $newGuid, map, zone, position_x, position_y, position_z FROM czechwow.character_homebind WHERE guid = $guid);";
- $sql[] = "INSERT INTO character_inventory (SELECT $newGuid, bag, slot, item+$nejvyssiItem FROM czechwow.character_inventory WHERE guid = $guid AND bag = 0);";
- $sql[] = "INSERT INTO character_inventory (SELECT $newGuid, bag+$nejvyssiItem, slot, item+$nejvyssiItem FROM czechwow.character_inventory WHERE guid = $guid AND bag > 0);";
- $sql[] = "INSERT INTO character_queststatus (SELECT $newGuid, quest, status, explored, timer, mobcount1, mobcount2, mobcount3, mobcount4, itemcount1, itemcount2, itemcount3, itemcount4 FROM czechwow.character_queststatus WHERE guid = $guid);";
- $sql[] = "INSERT INTO character_queststatus_rewarded (SELECT $newGuid, quest FROM czechwow.character_queststatus_rewarded WHERE guid = $guid);";
- $sql[] = "INSERT INTO character_reputation (SELECT $newGuid, faction, standing, flags FROM czechwow.character_reputation WHERE guid = $guid);";
- $sql[] = "INSERT INTO character_skills (SELECT $newGuid, skill, value, max FROM czechwow.character_skills WHERE guid = $guid);";
- $sql[] = "INSERT INTO character_spell (SELECT $newGuid, spell, active, disabled FROM czechwow.character_spell WHERE guid = $guid);";
- $sql[] = "INSERT INTO mail_items (SELECT mi.mail_id+$nejvyssiMail, mi.item_guid+$nejvyssiItem, mi.receiver FROM czechwow.mail_items mi INNER JOIN czechwow.mail m ON m.id = mi.mail_id WHERE m.receiver = $guid);";
- foreach($sql AS $key => $val) {
- mysql_query($val);
- echo mysql_error();
- if(mysql_error() != "")
- echo $val."\n";
- }
- echo mysql_error();
- if(mysql_error() != "")
- echo "Nepovedlo se zapsat do ostatnich tabulek: ".$sql."\n";
- mysql_query("UPDATE cd_drupal.czechwow_prevody SET noveGuid = ".$newGuid." WHERE id = ".$id);
- echo "Postava uspesne prevedena";
- return 1;
- }
- ?>
Add Comment
Please, Sign In to add comment