#1470 This is a huge update. It contains all changes we made to the system on the

official ryzom servers. I removed non open source content though. So this version
is running on live servers and works!

--HG--
branch : gsoc2012-achievements
This commit is contained in:
SirCotare 2012-12-10 15:07:13 +01:00
parent d39db0a4fd
commit 9283736c91
75 changed files with 52540 additions and 612 deletions

View file

@ -2,6 +2,13 @@
error_reporting(E_ALL ^ E_NOTICE);
ini_set("display_errors","1");
$tmp_log_xmlgen_time = 0;
$microstart = explode(' ',microtime());
$start_time = $microstart[0] + $microstart[1];
$MY_PATH = dirname(__FILE__);
if(file_exists("parser.stop")) {
exit(0);
}
@ -15,7 +22,6 @@
$_REQUEST['file'] = $argv[1];
}
$log = new Logfile();
if($CONF['logging'] == true) {
require_once("class/Logfile_class.php");
$log = new Logfile($CONF['logfile']);
@ -27,6 +33,7 @@
if(!$_REQUEST['file']) {
$log->logf("ERROR: no file given! EXITING!");
$log->close();
die();
}
@ -34,9 +41,6 @@
$DBc = new mySQL($CONF['mysql_error']);
$DBc->connect($CONF['mysql_server'],$CONF['mysql_user'],$CONF['mysql_pass'],$CONF['mysql_database']);
$DBc_char = new mySQL($_CONF['mysql_error']);
$DBc_char->connect($CONF['char_mysql_server'],$CONF['char_mysql_user'],$CONF['char_mysql_pass'],$CONF['char_mysql_database']);
require_once("class/DataDispatcher_class.php");
require_once("class/DataSourceHandler_class.php");
@ -44,9 +48,16 @@
require_once("class/Callback_class.php");
require_once("class/ValueCache_class.php");
require_once("class/Atom_class.php");
require_once("class/XMLgenerator_class.php");
require_once("class/XMLnode_class.php");
require_once("class/XMLfile_class.php");
require_once("class/Stats_class.php");
$_CACHE = new ValueCache();
//new generator for API xml files.
$XMLgenerator = new XMLgenerator();
//create datasource handler
$_DISPATCHER = new DataDispatcher();
$_DATASOURCE = new DataSourceHandler();
@ -61,135 +72,248 @@
$tmp = explode("/",$_REQUEST['file']);
$tmp2 = explode("_",$tmp[(sizeof($tmp)-1)]);
$DBc->database($CONF['char_mysql_database']);
$chars = array(($tmp2[1]*16+$tmp2[2]));
$res = $DBc->sendSQL("SELECT id FROM players WHERE cid='".$DBc->mre($tmp2[1]*16+$tmp2[2])."' AND deleted='0'","ARRAY");
#$res[0]['id'] = 1;
if(($res[0]['id'] > 0) == false) {
$log->logf("ERROR: no character found!");
$log->close();
die();
}
$cdata = array("cid"=>$res[0]['id'],"aid"=>$tmp2[1],"sid"=>$tmp2[2]);
#$cdata = array("cid"=>1,"aid"=>1,"sid"=>1);
$DBc->database($CONF['mysql_database']);
#echo var_export($cdata);
$log->logf(" done!");
foreach($chars as $cid) {
$microstop = explode(' ',microtime());
$stop_time = $microstop[0] + $microstop[1];
$log->logf("Expired time: ".($stop_time - $start_time));
#foreach($chars as $cid) {
#STEP 1: load and register atoms
$log->logf("Processing char '".$cid."' ...");
$log->logf("Processing char '".$cdata['cid']."' ...");
$log->logi("Loading and registering Atoms... ",false);
$atom_list = array();
$res = $DBc->sendSQL("SELECT at_id FROM ach_task WHERE NOT EXISTS (SELECT * FROM ach_player_task WHERE apt_player='".$cid."' AND apt_task=at_id)","ARRAY");
$res = $DBc->sendSQL("SELECT at_id FROM ach_task WHERE NOT EXISTS (SELECT * FROM ach_player_task WHERE apt_player='".$cdata['cid']."' AND apt_task=at_id) AND at_dev='0'","ARRAY");
foreach($res as $task) {
//get unfinished atoms belonging to unfinished objectives
$res2 = $DBc->sendSQL("SELECT ach_atom.* FROM ach_atom,ach_objective,ach_achievement WHERE ao_task='".$task['at_id']."' AND ao_id=atom_objective AND ap_achievement=aa_id AND NOT EXISTS (SELECT * FROM ach_player_objective WHERE apo_player='".$cid."' AND apo_objective=ao_id)","ARRAY");
$res2 = $DBc->sendSQL("SELECT ach_atom.* FROM ach_atom,ach_objective WHERE ao_task='".$task['at_id']."' AND ao_id=atom_objective AND NOT EXISTS (SELECT * FROM ach_player_objective WHERE apo_player='".$cdata['cid']."' AND apo_objective=ao_id)","ARRAY");
foreach($res2 as $atom) {
$a = new Atom($atom,$cid);
$a = new Atom($atom,$cdata);
$atom_list[] = $a;
$atom_list[] = $a;
$a->register();
}
}
$statsdb = new Stats();
$statsdb->register();
$log->logf("done!");
$log->logf("Memory load: ".memory_get_usage()." bytes");
$microstop = explode(' ',microtime());
$stop_time = $microstop[0] + $microstop[1];
$log->logf("Expired time: ".($stop_time - $start_time));
$log->logi("Driving data... ",false);
#STEP 2: drive data
$_CACHE->setChar($cid);
$_DATASOURCE->drive($cid);
$_CACHE->setChar($cdata);
$res = $DBc->sendSQL("SELECT sum(at_value) as anz FROM ach_task,ach_player_task WHERE at_id=apt_task AND apt_player='".$cdata['cid']."'","ARRAY");
$_DISPATCHER->dispatchValue("yubopoints",$res[0]['anz']);
$_DISPATCHER->dispatchValue("aid",$cdata['aid']);
$_DISPATCHER->dispatchValue("cid",$cdata['cid']);
$_DISPATCHER->dispatchValue("sid",$cdata['sid']);
$_DATASOURCE->drive($cdata);
//save daily stats
$res = $DBc->sendSQL("SELECT COUNT(*) as anz FROM stat_daily WHERE sdm_day='".date("Y-m-d",time())."'","ARRAY");
if($res[0]['anz'] == 0) {
$res = $DBc->sendSQL("SELECT SUM(sp_money) as all_money, AVG(sp_money) as avg_money, COUNT(*) as playercount FROM app_achievements.stat_players as s, webig.players as p, ring_live.characters as c, nel.user as n WHERE s.sp_char = p.id AND p.cid = c.char_id AND c.user_id = n.uid AND n.privilege=''","ARRAY");
$res2 = $DBc->sendSQL("SELECT sp_money FROM app_achievements.stat_players as s, webig.players as p, ring_live.characters as c, nel.user as n WHERE s.sp_char = p.id AND p.cid = c.char_id AND c.user_id = n.uid AND n.privilege='' ORDER by sp_money ASC LIMIT ".floor($res[0]['playercount']/2).",1","ARRAY");
$res3 = $DBc->sendSQL("SELECT SUM(sp_yubototal) as all_yubo, AVG(sp_yubototal) as avg_yubo FROM app_achievements.stat_players as s, webig.players as p, ring_live.characters as c, nel.user as n WHERE s.sp_char = p.id AND p.cid = c.char_id AND c.user_id = n.uid AND n.privilege=''","ARRAY");
$res4 = $DBc->sendSQL("SELECT sp_yubototal FROM app_achievements.stat_players as s, webig.players as p, ring_live.characters as c, nel.user as n WHERE s.sp_char = p.id AND p.cid = c.char_id AND c.user_id = n.uid AND n.privilege='' ORDER by sp_money ASC LIMIT ".floor($res[0]['playercount']/2).",1","ARRAY");
$res5 = $DBc->sendSQL("SELECT SUM(sp_mekcount) as all_mek, AVG(sp_mekcount) as avg_mek FROM app_achievements.stat_players as s, webig.players as p, ring_live.characters as c, nel.user as n WHERE s.sp_char = p.id AND p.cid = c.char_id AND c.user_id = n.uid AND n.privilege=''","ARRAY");
$res6 = $DBc->sendSQL("SELECT sp_mekcount FROM app_achievements.stat_players as s, webig.players as p, ring_live.characters as c, nel.user as n WHERE s.sp_char = p.id AND p.cid = c.char_id AND c.user_id = n.uid AND n.privilege='' ORDER by sp_money ASC LIMIT ".floor($res[0]['playercount']/2).",1","ARRAY");
$res7 = $DBc->sendSQL("SELECT SUM(sp_maxlevel) as all_lvl, AVG(sp_maxlevel) as avg_lvl FROM app_achievements.stat_players as s, webig.players as p, ring_live.characters as c, nel.user as n WHERE s.sp_char = p.id AND p.cid = c.char_id AND c.user_id = n.uid AND n.privilege=''","ARRAY");
$res8 = $DBc->sendSQL("SELECT sp_maxlevel FROM app_achievements.stat_players as s, webig.players as p, ring_live.characters as c, nel.user as n WHERE s.sp_char = p.id AND p.cid = c.char_id AND c.user_id = n.uid AND n.privilege='' ORDER by sp_money ASC LIMIT ".floor($res[0]['playercount']/2).",1","ARRAY");
$res9 = $DBc->sendSQL("SELECT SUM(sp_itemcount) as all_item, AVG(sp_itemcount) as avg_item FROM app_achievements.stat_players as s, webig.players as p, ring_live.characters as c, nel.user as n WHERE s.sp_char = p.id AND p.cid = c.char_id AND c.user_id = n.uid AND n.privilege=''","ARRAY");
$res10 = $DBc->sendSQL("SELECT sp_itemcount FROM app_achievements.stat_players as s, webig.players as p, ring_live.characters as c, nel.user as n WHERE s.sp_char = p.id AND p.cid = c.char_id AND c.user_id = n.uid AND n.privilege='' ORDER by sp_money ASC LIMIT ".floor($res[0]['playercount']/2).",1","ARRAY");
$DBc->sendSQL("INSERT IGNORE INTO stat_daily (sd_day,sd_players,sd_money_avg,sd_money_total,sd_money_mean,sd_mek_total,sd_mek_avg,sd_mek_mean,sd_yubo_total,sd_yubo_avg,sd_yubo_mean,sd_lvl_total,sd_lvl_avg,sd_lvl_mean,sd_item_total,sd_item_avg,sd_item_mean) VALUES ('".date("Y-m-d",time())."','".$res[0]['playercount']."','".$res[0]['avg_money']."','".$res[0]['all_money']."','".$res2[0]['sp_money']."','".$res5[0]['all_mek']."','".$res5[0]['avg_mek']."','".$res6[0]['sp_mekcount']."','".$res3[0]['all_yubo']."','".$res3[0]['avg_yubo']."','".$res4[0]['sp_yubototal']."','".$res7[0]['all_lvl']."','".$res7[0]['avg_lvl']."','".$res8[0]['sp_maxlevel']."','".$res9[0]['all_item']."','".$res9[0]['avg_item']."','".$res102[0]['sp_itemcounty']."')","NONE");
}
$log->logf("done!");
$microstop = explode(' ',microtime());
$stop_time = $microstop[0] + $microstop[1];
$log->logf("Expired time: ".($stop_time - $start_time));
$log->logf("xml-gen took: ".$tmp_log_xmlgen_time);
$log->logf("Memory load: ".memory_get_usage()." bytes");
$log->logi("Writing XML export... ",false);
$XMLgenerator->generate();
$log->logf("done!");
$log->logf("Memory load: ".memory_get_usage()." bytes");
$microstop = explode(' ',microtime());
$stop_time = $microstop[0] + $microstop[1];
$log->logf("Expired time: ".($stop_time - $start_time));
#STEP 3: detect obj/task progression
$log->logi("Detecting Objectives... ",false);
//obj
$res = $DBc->sendSQL("SELECT ao_id FROM ach_objective WHERE ao_condition='all' AND NOT EXISTS (SELECT * FROM ach_player_objective WHERE apo_objective=ao_id AND apo_player='".$cid."') AND NOT EXISTS (SELECT * FROM ach_atom WHERE atom_objective=ao_id AND NOT EXISTS (SELECT * FROM ach_player_atom WHERE apa_atom=atom_id AND apa_state='GRANT' AND apa_player='".$cid."')) AND EXISTS (SELECT * FROM ach_atom WHERE atom_objective=ao_id)","ARRAY");
$res = $DBc->sendSQL("SELECT ao_id FROM ach_objective WHERE ao_condition='all' AND NOT EXISTS (SELECT * FROM ach_player_objective WHERE apo_objective=ao_id AND apo_player='".$cdata['cid']."') AND NOT EXISTS (SELECT * FROM ach_atom WHERE atom_objective=ao_id AND NOT EXISTS (SELECT * FROM ach_player_atom WHERE apa_atom=atom_id AND apa_state='GRANT' AND apa_player='".$cdata['cid']."')) AND EXISTS (SELECT * FROM ach_atom WHERE atom_objective=ao_id)","ARRAY");
$sz = sizeof($res);
for($i=0;$i<$sz;$i++) {
$DBc->sendSQL("INSERT INTO ach_player_objective (apo_objective,apo_player,apo_date) VALUES ('".$res[$i]['ao_id']."','".$cid."','".time()."')","NONE");
$DBc->sendSQL("INSERT INTO ach_player_objective (apo_objective,apo_player,apo_date) VALUES ('".$res[$i]['ao_id']."','".$cdata['cid']."','".time()."')","NONE");
}
$res = $DBc->sendSQL("SELECT ao_id FROM ach_objective WHERE ao_condition='value' AND NOT EXISTS (SELECT * FROM ach_player_objective WHERE apo_objective=ao_id AND apo_player='".$cid."') AND ao_value<=(SELECT sum(apa_value) FROM ach_atom,ach_player_atom WHERE atom_objective=ao_id AND apa_atom=atom_id AND apa_state='GRANT' AND apa_player='".$cid."') AND EXISTS (SELECT * FROM ach_atom WHERE atom_objective=ao_id)","ARRAY");
$log->logf("1... ",false);
$res = $DBc->sendSQL("SELECT ao_id FROM ach_objective WHERE ao_condition='value' AND NOT EXISTS (SELECT * FROM ach_player_objective WHERE apo_objective=ao_id AND apo_player='".$cdata['cid']."') AND ao_value<=(SELECT sum(apa_value) FROM ach_atom,ach_player_atom WHERE atom_objective=ao_id AND apa_atom=atom_id AND apa_state='GRANT' AND apa_player='".$cdata['cid']."') AND EXISTS (SELECT * FROM ach_atom WHERE atom_objective=ao_id)","ARRAY");
$sz = sizeof($res);
for($i=0;$i<$sz;$i++) {
$DBc->sendSQL("INSERT INTO ach_player_objective (apo_objective,apo_player,apo_date) VALUES ('".$res[$i]['ao_id']."','".$cid."','".time()."')","NONE");
$DBc->sendSQL("INSERT INTO ach_player_objective (apo_objective,apo_player,apo_date) VALUES ('".$res[$i]['ao_id']."','".$cdata['cid']."','".time()."')","NONE");
}
$res = $DBc->sendSQL("SELECT ao_id FROM ach_objective WHERE ao_condition='any' AND NOT EXISTS (SELECT * FROM ach_player_objective WHERE apo_objective=ao_id AND apo_player='".$cid."') AND EXISTS (SELECT * FROM ach_atom WHERE atom_objective=ao_id AND EXISTS (SELECT * FROM ach_player_atom WHERE apa_atom=atom_id AND apa_state='GRANT' AND apa_player='".$cid."')) AND EXISTS (SELECT * FROM ach_atom WHERE atom_objective=ao_id)","ARRAY");
$log->logf("2... ",false);
$res = $DBc->sendSQL("SELECT ao_id FROM ach_objective WHERE ao_condition='any' AND NOT EXISTS (SELECT * FROM ach_player_objective WHERE apo_objective=ao_id AND apo_player='".$cdata['cid']."') AND EXISTS (SELECT * FROM ach_atom WHERE atom_objective=ao_id AND EXISTS (SELECT * FROM ach_player_atom WHERE apa_atom=atom_id AND apa_state='GRANT' AND apa_player='".$cdata['cid']."')) AND EXISTS (SELECT * FROM ach_atom WHERE atom_objective=ao_id)","ARRAY");
$sz = sizeof($res);
for($i=0;$i<$sz;$i++) {
$DBc->sendSQL("INSERT INTO ach_player_objective (apo_objective,apo_player,apo_date) VALUES ('".$res[$i]['ao_id']."','".$cid."','".time()."')","NONE");
$DBc->sendSQL("INSERT INTO ach_player_objective (apo_objective,apo_player,apo_date) VALUES ('".$res[$i]['ao_id']."','".$cdata['cid']."','".time()."')","NONE");
}
$log->logf("3... ",false);
//meta
$res = $DBc->sendSQL("SELECT ao_id FROM ach_objective,ach_task as t1,ach_achievement WHERE ao_display='meta' ao_task=t1.at_id AND t1.at_achievement=aa_id AND NOT EXISTS (SELECT * FROM ach_task as t2 WHERE t2.at_achievement=aa_metalink AND NOT EXISTS (SELECT * FROM ach_player_task WHERE apt_task=t2.at_id AND apt_player='".$cid."'))");
#$res = $DBc->sendSQL("SELECT ao_id FROM ach_objective,ach_task as t1,ach_achievement WHERE ao_display='meta' AND ao_task=t1.at_id AND t1.at_achievement=aa_id AND NOT EXISTS (SELECT * FROM ach_task as t2 WHERE t2.at_achievement=ao_metalink AND NOT EXISTS (SELECT * FROM ach_player_task WHERE apt_task=t2.at_id AND apt_player='".$cdata['cid']."'))","ARRAY");
$res = $DBc->sendSQL("SELECT ao_id FROM ach_objective WHERE ao_display='meta' AND NOT EXISTS (SELECT * FROM ach_player_objective WHERE apo_objective=ao_id AND apo_player='".$cdata['cid']."') AND NOT EXISTS (SELECT * FROM ach_task WHERE ao_metalink=at_achievement AND NOT EXISTS (SELECT * FROM ach_player_task WHERE apt_task=at_id AND apt_player='".$cdata['cid']."'))","ARRAY");
$sz = sizeof($res);
for($i=0;$i<$sz;$i++) {
$DBc->sendSQL("INSERT INTO ach_player_objective (apo_objective,apo_player,apo_date) VALUES ('".$res[$i]['ao_id']."','".$cid."','".time()."')","NONE");
$DBc->sendSQL("INSERT INTO ach_player_objective (apo_objective,apo_player,apo_date) VALUES ('".$res[$i]['ao_id']."','".$cdata['cid']."','".time()."')","NONE");
}
$log->logf("4... ",false);
$log->logf("done!");
$microstop = explode(' ',microtime());
$stop_time = $microstop[0] + $microstop[1];
$log->logf("Expired time: ".($stop_time - $start_time));
$log->logi("Clearing atom data... ",false);
//clear atom state for completed objectives
$DBc->sendSQL("DELETE FROM ach_player_atom WHERE EXISTS (SELECT * FROM ach_player_objective,ach_atom WHERE atom_id=apa_atom AND apa_player='".$cid."' AND atom_objective=ao_id)");
#$DBc->sendSQL("DELETE FROM ach_player_atom WHERE EXISTS (SELECT * FROM ach_player_objective,ach_atom WHERE atom_id=apa_atom AND apa_player='".$cdata['cid']."' AND atom_objective=apo_objective)");
$DBc->sendSQL("DELETE FROM ach_player_atom WHERE apa_player='".$cdata['cid']."' AND EXISTS (SELECT * FROM ach_player_objective,ach_atom WHERE atom_id=apa_atom AND apo_player='".$cdata['cid']."' AND atom_objective=apo_objective)");
$log->logf("done!");
$microstop = explode(' ',microtime());
$stop_time = $microstop[0] + $microstop[1];
$log->logf("Expired time: ".($stop_time - $start_time));
//task
$log->logi("Detecting Tasks... ",false);
$res = $DBc->sendSQL("SELECT at_id FROM ach_task WHERE at_condition='all' AND NOT EXISTS (SELECT * FROM ach_player_task WHERE apt_task=at_id AND aptp_player='".$cid."') AND NOT EXISTS (SELECT * FROM ach_objective WHERE ao_task=ap_id AND NOT EXISTS (SELECT * FROM ach_player_objective WHERE apo_objective=ao_id AND apo_player='".$cid."')) AND EXISTS (SELECT * FROM ach_objective WHERE ao_task=ap_id) AND at_dev='0'","ARRAY");
$res = $DBc->sendSQL("SELECT at_id FROM ach_task WHERE at_condition='all' AND NOT EXISTS (SELECT * FROM ach_player_task WHERE apt_task=at_id AND apt_player='".$cdata['cid']."') AND NOT EXISTS (SELECT * FROM ach_objective WHERE ao_task=at_id AND NOT EXISTS (SELECT * FROM ach_player_objective WHERE apo_objective=ao_id AND apo_player='".$cdata['cid']."')) AND EXISTS (SELECT * FROM ach_objective WHERE ao_task=at_id) AND at_dev='0'","ARRAY");
$sz = sizeof($res);
for($i=0;$i<$sz;$i++) {
$DBc->sendSQL("INSERT INTO ach_player_task (apt_task,apt_player,apt_date) VALUES ('".$res[$i]['ap_id']."','".$cid."','".time()."')","NONE");
$DBc->sendSQL("INSERT INTO ach_player_task (apt_task,apt_player,apt_date) VALUES ('".$res[$i]['at_id']."','".$cdata['cid']."','".time()."')","NONE");
}
$res = $DBc->sendSQL("SELECT ap_id FROM ach_task WHERE at_condition='value' AND NOT EXISTS (SELECT * FROM ach_player_task WHERE apt_task=at_id AND apt_player='".$cid."') AND at_value<=(SELECT count(*) FROM ach_objective WHERE ao_task=at_id AND EXISTS (SELECT * FROM ach_player_objective WHERE apo_objective=ao_id AND apo_player='".$cid."')) AND EXISTS (SELECT * FROM ach_objective WHERE ao_task=at_id) AND at_dev='0'","ARRAY");
$log->logf("1... ",false);
$res = $DBc->sendSQL("SELECT at_id FROM ach_task WHERE at_condition='value' AND NOT EXISTS (SELECT * FROM ach_player_task WHERE apt_task=at_id AND apt_player='".$cdata['cid']."') AND at_value<=(SELECT count(*) FROM ach_objective WHERE ao_task=at_id AND EXISTS (SELECT * FROM ach_player_objective WHERE apo_objective=ao_id AND apo_player='".$cdata['cid']."')) AND EXISTS (SELECT * FROM ach_objective WHERE ao_task=at_id) AND at_dev='0'","ARRAY");
$sz = sizeof($res);
for($i=0;$i<$sz;$i++) {
$DBc->sendSQL("INSERT INTO ach_player_task (apt_task,apt_player,apt_date) VALUES ('".$res[$i]['ap_id']."','".$cid."','".time()."')","NONE");
$DBc->sendSQL("INSERT INTO ach_player_task (apt_task,apt_player,apt_date) VALUES ('".$res[$i]['at_id']."','".$cdata['cid']."','".time()."')","NONE");
}
$res = $DBc->sendSQL("SELECT at_id FROM ach_task WHERE ap_condition='any' AND NOT EXISTS (SELECT * FROM ach_player_task WHERE apt_task=at_id AND apt_player='".$cid."') AND EXISTS (SELECT * FROM ach_objective WHERE ao_task=at_id AND EXISTS (SELECT * FROM ach_player_objective WHERE apo_objective=ao_id AND apo_player='".$cid."')) AND EXISTS (SELECT * FROM ach_objective WHERE ao_task=at_id) AND at_dev='0'","ARRAY");
$log->logf("2... ",false);
$res = $DBc->sendSQL("SELECT at_id FROM ach_task WHERE at_condition='any' AND NOT EXISTS (SELECT * FROM ach_player_task WHERE apt_task=at_id AND apt_player='".$cdata['cid']."') AND EXISTS (SELECT * FROM ach_objective WHERE ao_task=at_id AND EXISTS (SELECT * FROM ach_player_objective WHERE apo_objective=ao_id AND apo_player='".$cdata['cid']."')) AND EXISTS (SELECT * FROM ach_objective WHERE ao_task=at_id) AND at_dev='0'","ARRAY");
$sz = sizeof($res);
for($i=0;$i<$sz;$i++) {
$DBc->sendSQL("INSERT INTO ach_player_task (apt_task,apt_player,apt_date) VALUES ('".$res[$i]['ap_id']."','".$cid."','".time()."')","NONE");
$DBc->sendSQL("INSERT INTO ach_player_task (apt_task,apt_player,apt_date) VALUES ('".$res[$i]['at_id']."','".$cdata['cid']."','".time()."')","NONE");
}
if($CONF['facebook'] == true) {
$log->logf("3... ",false);
/*if($CONF['facebook'] == true) {
require_once("../fb/facebook.php");
$facebook = new Facebook(array(appId=>$CONF['fb_id'], secret=>$CONF['fb_secret']));
$res = $DBc->sendSQL("SELECT * FROM ach_fb_token WHERE aft_player='".$cid."'","ARRAY");
$res = $DBc->sendSQL("SELECT * FROM ach_fb_token WHERE aft_player='".$cdata['cid']."'","ARRAY");
$access_token = $res[0]['aft_token'];
if($res[0]['aft_allow'] == 1) {
$res2 = $DBc->sendSQL("SELECT * FROM ach_player_task WHERE apt_player='".$cid."' AND apt_fb='0'","ARRAY");
$res2 = $DBc->sendSQL("SELECT * FROM ach_player_task WHERE apt_player='".$cdata['cid']."' AND apt_fb='0'","ARRAY");
$sz = sizeof($res2);
for($i=0;$i<$sz;$i++) {
//this has to be adapted!
/*$result = $facebook->api(
'/me/feed/',
array('access_token' => $$access_token, 'message' => 'Playing around with FB Graph..')
);*/
#$result = $facebook->api(
# '/me/feed/',
# array('access_token' => $$access_token, 'message' => 'Playing around with FB Graph..')
#);
}
$DBc->sendSQL("UPDATE ach_player_task SET apt_fb='1' WHERE apt_player='".$cid."'","NONE");
$DBc->sendSQL("UPDATE ach_player_task SET apt_fb='1' WHERE apt_player='".$cdata['cid']."'","NONE");
}
}
}*/
$log->logf("done!");
}
#}
$microstop = explode(' ',microtime());
$stop_time = $microstop[0] + $microstop[1];
$log->logf("Total time: ".($stop_time - $start_time));
$log->logf("Run complete; exiting...");
$log->close();
exit(0);
?>

View file

@ -61,19 +61,19 @@
function grant($count = 1) { // grant an atom
global $DBc;
$DBc->sendSQL("INSERT INTO ach_player_atom (apa_atom,apa_player,apa_date,apa_expire,apa_state,apa_value) VALUES ('".$this->id."','".$this->user."','".time()."',null,'GRANT','".$count."')","NONE");
$DBc->sendSQL("INSERT INTO ach_player_atom (apa_atom,apa_player,apa_date,apa_expire,apa_state,apa_value) VALUES ('".$this->id."','".$this->user['cid']."','".time()."',null,'GRANT','".$count."')","NONE");
}
function deny() { // deny an atom
global $DBc;
$DBc->sendSQL("INSERT INTO ach_player_atom (apa_atom,apa_player,apa_date,apa_expire,apa_state) VALUES ('".$this->id."','".$this->user."','".time()."',null,'DENY','1')","NONE");
$DBc->sendSQL("INSERT INTO ach_player_atom (apa_atom,apa_player,apa_date,apa_expire,apa_state) VALUES ('".$this->id."','".$this->user['cid']."','".time()."',null,'DENY','1')","NONE");
}
function reset_() { // reset progress for this atom
global $DBc;
$DBc->sendSQL("DELETE FROM ach_player_atom WHERE apa_atom='".$this->id."' AND apa_player='".$this->user."'","NONE");
$DBc->sendSQL("DELETE FROM ach_player_atom WHERE apa_atom='".$this->id."' AND apa_player='".$this->user['cid']."'","NONE");
}
function reset_all() { // reset progress for all atoms of the same objective
@ -82,14 +82,14 @@
$res = $DBc->sendSQL("SELECT atom_id FROM ach_atom WHERE atom_objective='".$this->objective."'","ARRAY");
$sz = sizeof($res);
for($i=0;$i<$sz;$i++) {
$DBc->sendSQL("DELETE FROM ach_player_atom WHERE apa_atom='".$res[$i]['atom_id']."' AND apa_player='".$this->user."'","NONE");
$DBc->sendSQL("DELETE FROM ach_player_atom WHERE apa_atom='".$res[$i]['atom_id']."' AND apa_player='".$this->user['cid']."'","NONE");
}
}
function unlock() { // unlock atom
global $DBc;
$DBc->sendSQL("DELETE FROM ach_player_atom WHERE apa_atom='".$this->id."' AND apa_player='".$this->user."' AND apa_state='DENY'","NONE");
$DBc->sendSQL("DELETE FROM ach_player_atom WHERE apa_atom='".$this->id."' AND apa_player='".$this->user['cid']."' AND apa_state='DENY'","NONE");
}
function unlock_all() { // unlock all atoms of the same objective
@ -98,7 +98,7 @@
$res = $DBc->sendSQL("SELECT atom_id FROM ach_atom WHERE atom_objective='".$this->objective."'","ARRAY");
$sz = sizeof($res);
for($i=0;$i<$sz;$i++) {
$DBc->sendSQL("DELETE FROM ach_player_atom WHERE apa_atom='".$res[$i]['atom_id']."' AND apa_player='".$this->user."' AND apa_state='DENY'","NONE");
$DBc->sendSQL("DELETE FROM ach_player_atom WHERE apa_atom='".$res[$i]['atom_id']."' AND apa_player='".$this->user['cid']."' AND apa_state='DENY'","NONE");
}
}

View file

@ -13,9 +13,9 @@
$this->source[] = $src;
}
function drive($cid) { // tell the datasources to start reading data
function drive($cdata) { // tell the datasources to start reading data
foreach($this->source as $elem) {
$elem->drive($cid);
$elem->drive($cdata);
}
}

View file

@ -4,6 +4,7 @@
*/
abstract class Entity {
private $name;
private $_dataset = array();
function getName() {
return $this->name;
@ -12,5 +13,13 @@
function setName($n) {
$this->name = $n;
}
function setData($key,$data) {
$this->_dataset[$key] = $data;
}
function getData($key) {
return $this->_dataset[$key];
}
}
?>

View file

@ -7,33 +7,38 @@
private $logfile;
function Logfile($f = false) {
global $CONF,$MY_PATH;
$this->logfile = false;
if($f != false) {
$this->logfile = fopen($this->logfile.'.'.$_REQUEST['file'].'.'.date("Ymd",time()).'.txt','a');;
$this->logfile = fopen($MY_PATH.$CONF['logfile'].'.'.date("Ymd",time()).'.txt','a+');
#echo "kk";
}
}
function logf($t,$nl = true) {
$this->write($t);
$this->write("[".date("H:i:s")."] ".$t);
if($nl == true) {
$this->write("\n");
}
}
function logi($t,$nl = true) {
$this->write(" > ".$t);
#echo $t;
$this->write("[".date("H:i:s")."] > ".$t);
if($nl == true) {
$this->write("\n");
}
}
function write($txt) {
#echo $txt;
fwrite($this->logfile,$txt);
}
function close() {
fclose($this->logfile);
#echo "ii";
}
}
?>

View file

@ -4,6 +4,6 @@
*/
abstract class SourceDriver {
abstract function drive($cid);
abstract function drive($cdata);
}
?>

View file

@ -0,0 +1,42 @@
<?php
class Stats {
#private $user;
function Stats() {
#$this->user = $user;
}
function register() { // register the stats code
include_once("script/statsdb.php");
return null;
}
function registerValue($name,$func) { // register to listen for a value
global $_DISPATCHER;
$tmp = new Callback($this,$func);
$_DISPATCHER->registerValue($name,$tmp);
}
function unregisterValue($name,$callback) { // unregister listening
global $_DISPATCHER;
$_DISPATCHER->unregisterValue($name,$callback);
}
function registerEntity($name,$func) { // register to listen for an entity
global $_DISPATCHER;
$tmp = new Callback($this,$func);
$_DISPATCHER->registerEntity($name,$tmp);
}
function unregisterEntity($name,$callback) { // unregister
global $_DISPATCHER;
$_DISPATCHER->unregisterEntity($name,$callback);
}
}
?>

View file

@ -10,14 +10,14 @@
$this->char = false;
}
function setChar($c) { // select the character
$this->char = $c;
function setChar($cdata) { // select the character
$this->char = $cdata['cid'];
}
function writeData($key,$val) { // write to cache
global $DBc;
$DBc->sendSQL("INSERT INTO ach_player_valuecache (apv_name,apv_player,apv_value,apv_date) VALUES ('".$this->user."','".$DBc->mre($key)."','".$DBc->mre($val)."','".time()."') ON DUPLICATE KEY UPDATE apv_value='".$DBc->mre($val)."', apv_date='".time()."'","NONE");
$DBc->sendSQL("INSERT INTO ach_player_valuecache (apv_name,apv_player,apv_value,apv_date) VALUES ('".$DBc->mre($key)."','".$this->char."','".$DBc->mre($val)."','".time()."') ON DUPLICATE KEY UPDATE apv_value='".$DBc->mre($val)."', apv_date='".time()."'","NONE");
}
function getData($key) { // read from cache

View file

@ -0,0 +1,74 @@
<?php
class XMLfile {
private $ident;
private $xml;
private $curr;
function XMLfile($i) {
$this->ident = $i;
$this->xml = new XMLNode($this->ident);
$this->curr = $this->xml;
}
function getIdent() {
return $this->ident;
}
function addXML($name,$attrs,$open) {
if($open == true) {
if($name == "__KEY__") {
$x = explode(".",$attrs["VALUE"]);
if(sizeof($x) > 1) {
$v = $x[1];
$a = array("sheetid"=>$attrs["VALUE"]);
}
else {
$v = $attrs["VALUE"];
$a = array();
}
$this->curr = new XMLNode($v,null,$this->curr);
foreach($a as $key=>$elem) {
$this->curr->addArg($key,$elem);
}
$tmp = $this->curr->getParent();
$tmp->addChild($this->curr);
}
elseif($name == "__VAL__") {
$this->curr->setValue($attrs["VALUE"]);
}
else {
$this->curr = new XMLNode($name,null,$this->curr);
if(isset($attrs["VALUE"])) {
$this->curr->addArg("value",$attrs["VALUE"]);
}
$tmp = $this->curr->getParent();
$tmp->addChild($this->curr);
}
}
else {
if($name == "__KEY__") {
// do nothing
}
elseif($name == "__VAL__") {
$this->curr = $this->curr->getParent();
}
elseif($name == $this->curr->getName()) {
if($this->curr->getArg("value") !== null) {
$this->curr->setValue($this->curr->getArg("value"));
$this->curr->clearArg("value");
}
$this->curr = $this->curr->getParent();
}
else {
$this->curr = $this->curr->getParent();
}
}
}
function generate($i) {
return $this->xml->generate($i);
}
}
?>

View file

@ -0,0 +1,106 @@
<?php
class XMLgenerator {
private $def = array();
private $files = array();
private $wildcard = array();
function XMLgenerator() {
//load xml def & filegen
#$this->def['xml/CLEAR'] = array("stats");
require_once("xmldef/public.php");
$this->files["public"] = new XMLfile("public");
require_once("xmldef/logs.php");
$this->files["logs"] = new XMLfile("logs");
require_once("xmldef/stats.php");
$this->files["stats"] = new XMLfile("stats");
require_once("xmldef/faction.php");
$this->files["faction"] = new XMLfile("faction");
require_once("xmldef/inventory.php");
$this->files["inventory"] = new XMLfile("inventory");
require_once("xmldef/shop.php");
$this->files["shop"] = new XMLfile("shop");
require_once("xmldef/fame.php");
$this->files["fame"] = new XMLfile("fame");
require_once("xmldef/knowledge.php");
$this->files["knowledge"] = new XMLfile("knowledge");
require_once("xmldef/social.php");
$this->files["social"] = new XMLfile("social");
require_once("xmldef/skills.php");
$this->files["skills"] = new XMLfile("skills");
require_once("xmldef/missions.php");
$this->files["missions"] = new XMLfile("missions");
require_once("xmldef/debug.php");
$this->files["debug"] = new XMLfile("debug");
}
function addWildcard($w,$ident) {
$this->wildcard[] = array($ident,$w);
}
function xml_split($pathid,$name,$attrs,$open) {
global $tmp_log_xmlgen_time;
$microstart = explode(' ',microtime());
$start_time = $microstart[0] + $microstart[1];
#echo $pathid." => ".$name."<br>";
if(is_array($this->def[$pathid])) {
foreach($this->def[$pathid] as $elem) {
#echo $elem."<br>";
$this->files[$elem]->addXML($name,$attrs,$open);
}
}
foreach($this->wildcard as $elem) {
if($elem[1] == substr($pathid,0,strlen($elem[1]))) {
$this->files[$elem[0]]->addXML($name,$attrs,$open);
}
}
$microstop = explode(' ',microtime());
$stop_time = $microstop[0] + $microstop[1];
$tmp_log_xmlgen_time += ($stop_time - $start_time);
}
function generate() {
global $cdata,$CONF;
foreach($this->files as $elem) {
$xml = '<?xml version="1.0" encoding="UTF-8" ?>'."\n";
$xml .= "<xml>\n";
$xml .= " <cached>".time()."</cached>\n";
$xml .= " <uniqueid>".$cdata['cid']."</uniqueid>\n";
$xml .= " <accountid>".$cdata['aid']."</accountid>\n";
$xml .= " <charslotid>".$cdata['sid']."</charslotid>\n";
$xml .= $elem->generate(' ');
$xml .= "</xml>";
//store
$pth = $CONF['export_xml_path'].$elem->getIdent()."/".($cdata['cid']%10);
if(!is_dir($pth)) {
mkdir($pth,0777,true);
}
$f = fopen($pth."/".$cdata['cid'].".xml","w");
fwrite($f,$xml);
fclose($f);
}
}
}
?>

View file

@ -0,0 +1,77 @@
<?php
class XMLNode {
private $name;
private $value = null;
private $args = array();
private $children = array();
private $parent = null;
function XMLNode($n = null,$v = null,$p = null) {
$this->name = $n;
$this->value = $v;
$this->parent = $p;
}
function getParent() {
return $this->parent;
}
function getName() {
return $this->name;
}
function setName($n) {
$this->name = $n;
}
function setValue($v) {
$this->value = $v;
}
function addArg($k,$v) {
$this->args[$k] = $v;
}
function getArg($k) {
return $this->args[$k];
}
function clearArg($k) {
unset($this->args[$k]);
}
function addChild($c) {
$this->children[] = $c;
}
function generate($indent) {
$xml = "";
#for($i=0;$i<$indent;$i++) {
$xml .= $indent;
#}
$xml .= "<".strtolower($this->name);
foreach($this->args as $key=>$elem) {
$xml .= ' '.strtolower($key).'="'.$elem.'"';
}
if(sizeof($this->children) > 0) {
$xml .= ">\n";
foreach($this->children as $elem) {
$xml .= $elem->generate($indent.' ');
}
#for($i=0;$i<$indet;$i++) {
$xml .= $indent;
#}
$xml .= "</".strtolower($this->name).">\n";
}
elseif($this->value !== null) {
$xml .= ">".$this->value."</".strtolower($this->name).">\n";
}
else {
$xml .= " />\n";
}
return $xml;
}
}
?>

View file

@ -1,21 +1,27 @@
<?php
require_once("../../webig/config.php");
// necessary to include the server api
$_SERVER['HTTP_HOST'] = 'app.ryzom.com';
require_once("../../config.php");
$CONF = array();
$CONF['logging'] = true;
$CONF['logfile'] = "log/AchWebParser.log";
$CONF['logfile'] = "/log/AchWebParser.log";
$CONF['mysql_error'] = "PRINT";
$CONF['mysql_error'] = "LOG";
$CONF['mysql_server'] = RYAPI_WEBDB_HOST;
$CONF['mysql_user'] = RYAPI_WEBDB_LOGIN;
$CONF['mysql_pass'] = RYAPI_WEBDB_PASS;
$CONF['mysql_database'] = "app_achievements_test";
$CONF['mysql_database'] = "app_achievements";
$CONF['char_mysql_server'] = "localhost";
$CONF['char_mysql_user'] = "root";
$CONF['char_mysql_pass'] = "";
$CONF['char_mysql_database'] = "app_achievements";
#$CONF['char_mysql_server'] = RYAPI_NELDB_HOST;
#$CONF['char_mysql_user'] = RYAPI_NELDB_LOGIN;
#$CONF['char_mysql_pass'] = RYAPI_NELDB_PASS;
$CONF['char_mysql_database'] = "webig";
$CONF['export_xml_path'] = RYAPI_PATH."data/cache/players/";
#$CONF['export_xml_path'] = "testxml/";
$CONF['data_source'] = array("PDRtoXMLdriver");

View file

@ -0,0 +1,77 @@
<?php
/*
* Code from:
* http://www.assemblysys.com/dataServices/php_pointinpolygon.php
*
* Probably not free to use!!!
*/
class pointLocation {
var $pointOnVertex = true; // Check if the point sits exactly on one of the vertices
function pointLocation() {
}
function pointInPolygon($point, $polygon, $pointOnVertex = true) {
$this->pointOnVertex = $pointOnVertex;
// Transform string coordinates into arrays with x and y values
$point = $this->pointStringToCoordinates($point);
$vertices = array();
foreach($polygon as $vertex) {
$vertices[] = $this->pointStringToCoordinates($vertex);
}
// Check if the point sits exactly on a vertex
if($this->pointOnVertex == true and $this->pointOnVertex($point, $vertices) == true) {
return "vertex";
}
// Check if the point is inside the polygon or on the boundary
$intersections = 0;
$vertices_count = count($vertices);
for($i=1; $i < $vertices_count; $i++) {
$vertex1 = $vertices[$i-1];
$vertex2 = $vertices[$i];
if($vertex1['y'] == $vertex2['y'] and $vertex1['y'] == $point['y'] and $point['x'] > min($vertex1['x'], $vertex2['x']) and $point['x'] < max($vertex1['x'], $vertex2['x'])) { // Check if point is on an horizontal polygon boundary
return "boundary";
}
if($point['y'] > min($vertex1['y'], $vertex2['y']) and $point['y'] <= max($vertex1['y'], $vertex2['y']) and $point['x'] <= max($vertex1['x'], $vertex2['x']) and $vertex1['y'] != $vertex2['y']) {
$xinters = ($point['y'] - $vertex1['y']) * ($vertex2['x'] - $vertex1['x']) / ($vertex2['y'] - $vertex1['y']) + $vertex1['x'];
if($xinters == $point['x']) { // Check if point is on the polygon boundary (other than horizontal)
return "boundary";
}
if($vertex1['x'] == $vertex2['x'] || $point['x'] <= $xinters) {
$intersections++;
}
}
}
// If the number of edges we passed through is even, then it's in the polygon.
if ($intersections % 2 != 0) {
return "inside";
}
else {
return "outside";
}
}
function pointOnVertex($point, $vertices) {
foreach($vertices as $vertex) {
if ($point == $vertex) {
return true;
}
}
return false;
}
function pointStringToCoordinates($pointString) {
$coordinates = explode(" ", $pointString);
return array("x" => $coordinates[0], "y" => $coordinates[1]);
}
}
?>

View file

@ -0,0 +1,13 @@
<?php
function item_grade($item) {
global $DBc;
#echo $item;
$res = $DBc->sendSQL("SELECT grade FROM ryzom_nimetu_item_data WHERE sheetid='".str_replace(".sitem","",$item)."'","ARRAY");
#echo $res[0]['grade'];
return $res[0]['grade'];
}
?>

View file

@ -0,0 +1,6 @@
<?php
$region = array();
?>

View file

@ -0,0 +1,5 @@
<?php
$region = array();
$region['place_silan'] = array("8182 -12294","11346 -12300","11346 -10252","8172 -10250","8182 -12294");
?>

View file

@ -0,0 +1,26 @@
<?php
$region = array();
$region['place_starting_zone_arena'] = array("10056 -11594 ","10144 -11726 ","10280 -11670 ","10308 -11558 ","10132 -11498 ","10056 -11594");
$region['region_newbieland_blight_zone'] = array("9376 -10940","9120 -11148","9048 -11780","9624 -11988","9792 -11732","9960 -11388","9376 -10940");
$region['region_newbieland_hunting_grounds'] = array("10296 -10812","10232 -11164","10080 -11484","10320 -11540","10824 -11540","11112 -11268","11080 -10804","10640 -10644","10296 -10812");
$region['kami_enclave'] = array("10416 -11654","10352 -11718","10416 -11770","10488 -11710","10416 -11654");
$region['karavan embassy'] = array("10388 -11818","10320 -11874","10404 -11922","10456 -11858","10388 -11818");
$region['region_newbieland_kitins_jungle'] = array("8184 -11076","8680 -11036","8704 -10244","8160 -10252","8184 -11076");
$region['region_newbieland_starting_zone'] = array("9968 -11346","10384 -11582","10788 -11574","10760 -11962","9892 -12014","9812 -11682","9968 -11346");
$region['place_shattered_ruins_trone'] = array("9678 -10692","9574 -10778","9668 -10846","9784 -10748","9678 -10692");
$region['place_shattered_ruins_silan'] = array("9558 -10764 ","9700 -10910 ","9616 -11008 ","9864 -11238 ","10158 -11224 ","10280 -11070 ","10166 -10982 ","9986 -10880 ","9878 -10808 ","9684 -10660 ","9558 -10764");
$region['region_newbieland_the_shattered_ruins'] = array("9472 -10562 ","9336 -10974 ","9824 -11266 ","10252 -11354 ","10328 -11182 ","10272 -11126 ","10288 -11074 ","10356 -11070 ","10308 -10746 ","9804 -10458 ","9472 -10562");
$region['region_newbieland_shining_lake'] = array("8608 -11244","8840 -11356","9288 -11044","9488 -10644","9360 -10340","8776 -10380","8624 -10676","8608 -11244");
?>

View file

@ -0,0 +1,82 @@
<?php
$this->registerValue("_money","_statsdb_money");
function _statsdb_money($money,$_P,$_CB) {
global $cdata,$DBc;
$_IDENT = "_money";
$DBc->sendSQL("INSERT INTO stat_players (sp_char,sp_money) VALUES ('".$cdata['cid']."','".$money."') ON DUPLICATE KEY UPDATE sp_money='".$money."'","NONE");
$_P->unregisterValue($_IDENT,$_CB);
}
$this->registerValue("_race","_statsdb_race");
function _statsdb_race($race,$_P,$_CB) {
global $cdata,$DBc;
$_IDENT = "_race";
$race = "r_".strtolower($race);
$DBc->sendSQL("INSERT INTO stat_players (sp_char,sp_race) VALUES ('".$cdata['cid']."','".$race."') ON DUPLICATE KEY UPDATE sp_race='".$race."'","NONE");
$_P->unregisterValue($_IDENT,$_CB);
}
$this->registerValue("yubopoints","_statsdb_yubototal");
function _statsdb_yubototal($yubo,$_P,$_CB) {
global $cdata,$DBc;
$_IDENT = "yubopoints";
$DBc->sendSQL("INSERT INTO stat_players (sp_char,sp_yubototal) VALUES ('".$cdata['cid']."','".$yubo."') ON DUPLICATE KEY UPDATE sp_yubototal='".$yubo."'","NONE");
$_P->unregisterValue($_IDENT,$_CB);
}
$this->registerValue("petcount","_statsdb_mekcount");
function _statsdb_mekcount($count,$_P,$_CB) {
global $cdata,$DBc;
$_IDENT = "petcount";
$DBc->sendSQL("INSERT INTO stat_players (sp_char,sp_mekcount) VALUES ('".$cdata['cid']."','".$count."') ON DUPLICATE KEY UPDATE sp_mekcount='".$count."'","NONE");
$_P->unregisterValue($_IDENT,$_CB);
}
$this->registerValue("skilllist","_statsdb_maxlevel");
function _statsdb_maxlevel($skills,$_P,$_CB) {
global $cdata,$DBc,$log;
$_IDENT = "skilllist";
$log->logf("rcv skilllist: ".var_export($skills,true));
$lvl = 0;
foreach($skills->skills as $elem) {
if($elem->current > $lvl) {
$lvl = $elem->current;
}
}
$DBc->sendSQL("INSERT INTO stat_players (sp_char,sp_maxlevel) VALUES ('".$cdata['cid']."','".$lvl."') ON DUPLICATE KEY UPDATE sp_maxlevel='".$lvl."'","NONE");
$_P->unregisterValue($_IDENT,$_CB);
}
$this->registerValue("_guildid","_statsdb_guildid");
function _statsdb_guildid($id,$_P,$_CB) {
global $cdata,$DBc;
$_IDENT = "_guildid";
$DBc->sendSQL("INSERT INTO stat_players (sp_char,sp_guildid) VALUES ('".$cdata['cid']."','".$id."') ON DUPLICATE KEY UPDATE sp_guildid='".$id."'","NONE");
$_P->unregisterValue($_IDENT,$_CB);
}
$this->registerValue("itemcount","_statsdb_itemcount");
function _statsdb_itemcount($count,$_P,$_CB) {
global $cdata,$DBc;
$_IDENT = "itemcount";
$DBc->sendSQL("INSERT INTO stat_players (sp_char,sp_itemcount) VALUES ('".$cdata['cid']."','".$count."') ON DUPLICATE KEY UPDATE sp_itemcount='".$count."'","NONE");
$_P->unregisterValue($_IDENT,$_CB);
}
?>

View file

@ -15,12 +15,17 @@
require_once($BASE_PATH."/entity/PhysCharacs_entity.php");
require_once($BASE_PATH."/entity/PhysScores_entity.php");
require_once($BASE_PATH."/entity/SkillPoints_entity.php");
#require_once($BASE_PATH."/entity/Skills_entity.php");
require_once($BASE_PATH."/entity/Skill_entity.php");
require_once($BASE_PATH."/entity/SpentSkillPoints_entity.php");
require_once($BASE_PATH."/entity/Position_entity.php");
require_once($BASE_PATH."/entity/Gear_entity.php");
require_once($BASE_PATH."/entity/SkillList_entity.php");
require_once($BASE_PATH."/entity/MissionList_entity.php");
require_once($BASE_PATH."/entity/Friendlist_entity.php");
require_once($BASE_PATH."/entity/Friend_entity.php");
require_once($BASE_PATH."/entity/FriendOf_entity.php");
require_once($BASE_PATH."/entity/Title_entity.php");
require_once($BASE_PATH."/entity/RespawnPoints_entity.php");
class PDRtoXMLdriver extends SourceDriver {
private $ignore;
@ -32,17 +37,29 @@
private $iblock;
private $gear;
private $skills;
private $petcount;
private $friendlist;
private $itemcount;
private $respawn_outer = 0; // needed to fetch respawn points due to nested tags with same name...
private $pathid = array();
function PDRtoXMLdriver() {
$this->lock = 0;
$this->open = null;
$this->entity = null;
$this->inv = null;
$this->iblock = false;
$this->petcount = 0;
$this->itemcount = 0;
$this->gear = new Gear();
$this->skills = new SkillList();
$this->mission = new MissionList();
$this->friendlist = new Friendlist();
//these nodes are ignored, but children are processed
$this->ignore = array();
@ -75,15 +92,16 @@
$this->ignore_block[] = "_ENCYCLOCHAR";
$this->ignore_block[] = "_GAMEEVENT";
$this->ignore_block[] = "_ENTITYPOSITION";
$this->ignore_block[] = "_MISSIONHISTORIES";
$this->ignore_block[] = "_KNOWNBRICKS";
$this->ignore_block[] = "_BOUGHTPHRASES";
$this->ignore_block[] = "SKILLPOINTS";
$this->ignore_block[] = "SPENTSKILLPOINTS";
$this->ignore_block[] = "_LASTLOGSTATS";
}
function drive($cid) {
global $_DISPATCHER;
echo "kk";
#$uid = floor($cid/16);
#$slot = ($cid%16);
function drive($cdata) {
global $_DISPATCHER,$MY_PATH,$log;
#$file = $this->conf['xml_dir']."account_".$uid."_".$slot."_pdr.xml";
$file = $_REQUEST['file'];
@ -92,19 +110,36 @@
xml_set_object($xml_parser,$this);
xml_set_element_handler($xml_parser, "startElement", "endElement");
if(!xml_parse($xml_parser, file_get_contents($file))) {
#error
echo "error";
// temporary storage for xml files for debug purpose
$ftmp = fopen($MY_PATH."/log/xml_tmp/char_".$cdata['cid'].".xml","w");
$fcont = file_get_contents($file);
fwrite($ftmp,$fcont);
fclose($ftmp);
# end of temp xml store
if(!xml_parse($xml_parser, $fcont)) {
$log->logf("FATAL ERROR (PDRtoXMLdriver): unable to parse given XML!");
$log->close();
die();
}
xml_parser_free($xml_parser);
$_DISPATCHER->dispatchEntity($this->gear->getName(),$this->gear);
#echo var_export($this->gear,true);
$_DISPATCHER->dispatchEntity($this->skills->getName(),$this->skills);
$_DISPATCHER->dispatchEntity($this->skills->mission(),$this->mission);
$_DISPATCHER->dispatchEntity($this->friendlist->getName(),$this->friendlist);
#$_DISPATCHER->dispatchEntity($this->skills->mission(),$this->mission);
$_DISPATCHER->dispatchValue('petcount',$this->petcount);
$_DISPATCHER->dispatchValue('itemcount',$this->itemcount);
}
function startElement($parser, $name, $attrs) {
global $_DISPATCHER;
global $_DISPATCHER,$DBc,$XMLgenerator;
array_push($this->pathid,$name);
$XMLgenerator->xml_split(implode("/",$this->pathid),$name,$attrs,true);
if($this->lock == 1) {
return null;
@ -119,6 +154,20 @@
return null;
}
/* spawn points */
if($name == "RESPAWNPOINTS" && !$attrs["VALUE"]) {
$this->open = "RESPAWNPOINTS";
$this->entity = new RespawnPoints();
return null;
}
if($this->open == "RESPAWNPOINTS") {
if($name == "RESPAWNPOINTS") {
$this->respawn_outer = 0;
$this->entity->spawns[] = $attrs["VALUE"];
}
}
/* faction points */
if($name == "FACTIONPOINTS") {
$this->open = "FACTIONPOINTS";
@ -220,6 +269,20 @@
return null;
}
if($name == "_FRIENDSLIST") {
$this->entity = new Friend();
$this->entity->id = $attrs["VALUE"];
$this->friendlist->friends[] = $this->entity;
$_DISPATCHER->dispatchEntity($this->entity->getName(),$this->entity);
}
if($name == "_ISFRIENDOF") {
$this->entity = new FriendOf();
$this->entity->id = $attrs["VALUE"];
$this->friendlist->friendof[] = $this->entity;
$_DISPATCHER->dispatchEntity($this->entity->getName(),$this->entity);
}
/* permanent mod */
if($name == "SCOREPERMANENTMODIFIERS") {
$this->open = "SCOREPERMANENTMODIFIERS";
@ -262,6 +325,7 @@
}
if($name == "PETSHEETID") {
$this->entity->petsheetid = $attrs["VALUE"];
$this->petcount++;
return null;
}
if($name == "PRICE") {
@ -434,7 +498,7 @@
if($this->open == "SKILLS") {
if($name == "__KEY__") {
$this->entity = new Skills();
$this->entity = new Skill();
$this->entity->skill = $attrs["VALUE"];
return null;
}
@ -513,9 +577,11 @@
}
if($name == "_ITEMS" || $name == "_ITEM") {
#echo "i<br>";
$this->open = "_ITEM";
$this->entity = new Item();
$this->entity->inventory = $this->inv;
$this->itemcount++;
return null;
}
@ -535,6 +601,11 @@
return null;
}
if($name == "_SHEETID") {
if($attrs["VALUE"]{0} == "#") {
$tmp = str_replace("#","",$attrs["VALUE"]);
$res = $DBc->sendSQL("SELECT * FROM ryzom_nimetu_sheets WHERE nsh_numid='".$tmp."'","ARRAY");
$attrs["VALUE"] = $res[0]['nsh_name']."".$res[0]['nsh_suffix'];
}
$this->entity->_sheetid = $attrs["VALUE"];
return null;
}
@ -560,6 +631,9 @@
}
if($name == "_REFINVENTORYSLOT") {
$this->entity->_refinventoryslot = $attrs["VALUE"];
#if($this->entity->refinventoryid != null) {
$this->gear->items[] = $this->entity;
#}
return null;
}
if($name == "REFINVENTORYID") {
@ -602,12 +676,27 @@
}
function endElement($parser, $name) {
global $_DISPATCHER;
global $_DISPATCHER,$XMLgenerator;
$XMLgenerator->xml_split(implode("/",$this->pathid),$name,null,false);
array_pop($this->pathid);
if(in_array($name,$this->ignore_block)) {
$this->lock = 0;
}
/* respawn points */
if($name == "RESPAWNPOINTS") {
$this->respawn_outer++; // increment to track double close at end of block
}
if($name == "RESPAWNPOINTS" && $this->respawn_outer > 1) {
$this->open = null;
$_DISPATCHER->dispatchEntity($this->entity->getName(),$this->entity);
$this->entity = null;
return null;
}
/* faction points */
if($name == "FACTIONPOINTS") {
$this->open = null;
@ -710,18 +799,21 @@
/* position */
if($name == "POSSTATE") {
$this->entity->loadPlace();
$_DISPATCHER->dispatchEntity($this->entity->getName(),$this->entity);
$this->entity = null;
return null;
}
/* items */
if($name == "_ITEMS") {
if($name == "_ITEMS" || $name == "_ITEM") {
#echo "c<br>";
if($this->open == "_ITEM") {
#echo var_export($this->entity,true);
$_DISPATCHER->dispatchEntity($this->entity->getName(),$this->entity);
if($this->entity->refinventoryid != null) {
$this->gear->items[] = $this->entity;
}
$this->entity = null;
}
$this->open = null;
return null;
}
@ -730,11 +822,16 @@
return null;
}
if($name == "_ITEM" || $name == "_ITEMS") {
$this->open = null;
if($name == "_CRAFTPARAMETERS") {
$this->icraft = false;
return null;
}
/*if($name == "_ITEM" || $name == "_ITEMS") {
$this->open = null;
return null;
}*/
}

View file

@ -0,0 +1,15 @@
<?php
class FriendOf extends Entity {
public $id = null;
function FriendOf() {
$this->setName("friendof");
}
function getRealID() {
$tmp = explode(":",$this->id);
return $tmp[0];
}
}
?>

View file

@ -0,0 +1,15 @@
<?php
class Friend extends Entity {
public $id = null;
function Friend() {
$this->setName("friend");
}
function getRealID() {
$tmp = explode(":",$this->id);
return $tmp[0];
}
}
?>

View file

@ -0,0 +1,29 @@
<?php
class Friendlist extends Entity {
public $friends = array();
public $friendof = array();
public $confirmed = false;
function Friendlist() {
$this->setName("friendlist");
}
function countConfirmed() {
if($this->confirmed == false) {
$count = 0;
foreach($this->friends as $elem) {
$id = $elem->getRealID();
foreach($this->friendof as $elem2) {
if($elem2->getRealID() == $id) {
$count++;
}
}
}
$this->confirmed = $count;
}
return $this->confirmed;
}
}
?>

View file

@ -4,9 +4,71 @@
public $y;
public $z;
public $heading;
public $placeid;
function Position() {
$this->setName("position");
$this->placeid = "place_unknown";
}
function loadPlace() {
global $_DISPATCHER;
@include_once("script/include_InPoly_class.php");
$region = array();
$subregion = false;
include("script/places/global.php");
$point = floor($this->x/1000)." ".floor($this->y/1000);
$pointLocation = new pointLocation();
$res = $pointLocation->pointInPolygon($point, $region['place_silan'], false);
if($res != "outside") {
include("script/places/silan.php");
}
else {
include("script/places/continents.php");
$region2 = $region;
foreach($region2 as $key=>$r) {
$res = $pointLocation->pointInPolygon($point, $r, false);
if($res != "outside") {
include("script/places/".$key.".php");
if($subregion == true) {
foreach($region as $key2=>$r2) {
$res2 = $pointLocation->pointInPolygon($point, $r2, false);
if($res2 != "outside") {
include("script/places/".$key."/".$key2.".php");
break;
}
}
}
break;
}
}
}
foreach($region as $key=>$r) {
$res = $pointLocation->pointInPolygon($point, $r, false);
if($res != "outside") {
if($this->placeid == "place_unknown") {
$this->placeid = $key;
}
else {
$tmp = new Position();
$tmp->x = $this->x;
$tmp->y = $this->y;
$tmp->z = $this->z;
$tmp->heading = $this->heading;
$tmp->placeid = $key;
$_DISPATCHER->dispatchEntity($tmp->getName(),$tmp);
}
#break;
}
}
}
}
?>

View file

@ -0,0 +1,80 @@
<?php
class RespawnPoints extends Entity {
public $spawns;
private $region_map;
function RespawnPoints() {
$this->setName("respawn_points");
$this->spawns = array();
$this->region_map = array();
$this->region_map['spawn_global_bagne_matis'] = "roots";
$this->region_map['spawn_global_bagne_nexus'] = "roots";
$this->region_map['spawn_global_route_gouffre_fyros'] = "roots";
$this->region_map['spawn_global_route_gouffre_nexus'] = "roots";
$this->region_map['spawn_global_route_gouffre_tryker'] = "roots";
$this->region_map['spawn_global_route_gouffre_zorai'] = "roots";
$this->region_map['spawn_global_sources_fyros'] = "roots";
$this->region_map['spawn_global_sources_zorai'] = "roots";
$this->region_map['spawn_global_terre_nexus'] = "roots";
$this->region_map['spawn_global_terre_zorai'] = "roots";
$this->region_map['spawn_global_nexus_bagne'] = "roots";
$this->region_map['spawn_global_nexus_route_gouffre'] = "roots";
$this->region_map['spawn_global_nexus_terre'] = "roots";
// 13/13
$this->region_map['spawn_global_fyros_matis'] = "desert";
$this->region_map['spawn_global_fyros_route_gouffre'] = "desert";
$this->region_map['spawn_global_fyros_sources'] = "desert";
$this->region_map['spawn_global_fyros_to_zorai'] = "desert";
$this->region_map['spawn_kami_place_pyr'] = "desert";
$this->region_map['spawn_kami_place_thesos'] = "desert";
$this->region_map['spawn_karavan_place_pyr'] = "desert";
// 7/7
$this->region_map['spawn_global_matis_bagne'] = "forest";
$this->region_map['spawn_global_matis_fyros'] = "forest";
$this->region_map['spawn_global_matis_tryker'] = "forest";
$this->region_map['spawn_kami_place_dyron'] = "forest";
$this->region_map['spawn_kami_place_yrkanis'] = "forest";
$this->region_map['spawn_karavan_place_avalae'] = "forest";
$this->region_map['spawn_karavan_place_davae'] = "forest";
#$this->region_map['spawn_karavan_place_yrkanis'] = "forest";
// 8/7
$this->region_map['spawn_global_tryker_matis'] = "lakes";
$this->region_map['spawn_global_tryker_route_gouffre'] = "lakes";
#$this->region_map['spawn_kami_place_fairhaven'] = "lakes";
$this->region_map['spawn_karavan_place_avendale'] = "lakes";
$this->region_map['spawn_karavan_place_crystabell'] = "lakes";
$this->region_map['spawn_karavan_place_fairhaven'] = "lakes";
$this->region_map['spawn_karavan_place_windermeer'] = "lakes";
// 7/6
$this->region_map['spawn_kami_place_hoi_cho'] = "jungle";
$this->region_map['spawn_kami_place_jen_lai'] = "jungle";
$this->region_map['spawn_kami_place_min_cho'] = "jungle";
$this->region_map['spawn_global_zorai_route_gouffre'] = "jungle";
$this->region_map['spawn_global_zorai_sources'] = "jungle";
$this->region_map['spawn_global_zorai_terre'] = "jungle";
$this->region_map['spawn_global_zorai_to_fyros'] = "jungle";
$this->region_map['spawn_kami_place_zora'] = "jungle";
#$this->region_map['spawn_karavan_place_zora'] = "jungle";
// 9/8
}
function countRegion($r) {
$c = 0;
foreach($this->spawns as $elem) {
if($this->region_map[$elem] == $r) {
$c++;
}
}
return $c;
}
}
?>

View file

@ -4,6 +4,7 @@
function SkillList() {
$this->setName("skilllist");
$this->skills = array();
}
}
?>

View file

@ -0,0 +1,20 @@
<?php
class Title extends Entity {
public $title_id;
public $title;
function Title() {
$this->setName("title");
$this->title_id = "";
$this->title = null;
}
function loadID() {
global $DBc;
$res = $DBc->sendSQL("SELECT t_id FROM ryzom_title WHERE t_male='".$DBc->mre($this->title)."' OR t_female='".$DBc->mre($this->title)."'","ARRAY");
$this->title_id = $res[0]['t_id'];
}
}
?>

View file

@ -0,0 +1,84 @@
<?php
$this->def['XML/UTC__PVPFLAGLASTTIMECHANGE'] = array("debug");
$this->def['XML/UTC__PVPRECENTACTIONTIME'] = array("debug");
$this->def['XML/UTC__PVPFLAGTIMESETTEDON'] = array("debug");
$this->def['XML/_REGIONKILLEDINPVP'] = array("debug");
$this->def['XML/_CREATIONPOINTSREPARTITION'] = array("debug");
$this->def['XML/UTC__FORBIDAURAUSESTARTDATE'] = array("debug");
$this->def['XML/UTC__FORBIDAURAUSEENDDATE'] = array("debug");
array_push($this->def['XML/_TITLE'],"debug");
$this->def['XML/NAMESTRINGID'] = array("debug");
$this->def['XML/_HAIRCUTEDISCOUNT'] = array("debug");
$this->addWildcard("XML/_FORBIDPOWERDATES","debug");
$this->def['XML/_INEFFECTIVEAURAS'] = array("debug");
$this->def['XML/_INEFFECTIVEAURAS/_AURAACTIVATIONDATES'] = array("debug");
$this->def['XML/_INEFFECTIVEAURAS/_AURAACTIVATIONDATES/DEACTIVATIONDATE'] = array("debug");
$this->def['XML/_INEFFECTIVEAURAS/_AURAACTIVATIONDATES/ACTIVATIONDATE'] = array("debug");
$this->def['XML/_INEFFECTIVEAURAS/_AURAACTIVATIONDATES/CONSUMABLEFAMILYID'] = array("debug");
$this->def['XML/_INEFFECTIVEAURAS/_AURAACTIVATIONDATES/POWERTYPE'] = array("debug");
$this->def['XML/_MODIFIERSINDB'] = array("debug");
$this->addWildcard("XML/_MODIFIERSINDB/BONUS","debug");
$this->addWildcard("XML/_MODIFIERSINDB/MALUS","debug");
$this->def['XML/ENTITYBASE'] = array("debug");
$this->def['XML/ENTITYBASE/_SHEETID'] = array("debug");
$this->def['XML/ENTITYBASE/MELEEATTACKMODIFIERONENEMY'] = array("debug");
$this->def['XML/ENTITYBASE/MELEEATTACKMODIFIERONSELF'] = array("debug");
$this->def['XML/ENTITYBASE/MAGICCASTINGMODIFIERONSELF'] = array("debug");
$this->def['XML/ENTITYBASE/MAGICCASTINGMODIFIERONENEMY'] = array("debug");
$this->def['XML/ENTITYBASE/RANGEATTACKMODIFIERONENEMY'] = array("debug");
$this->def['XML/ENTITYBASE/RANGEATTACKMODIFIERONSELF'] = array("debug");
$this->def['XML/ENTITYBASE/ATTACKMODIFIERONSELF'] = array("debug");
$this->def['XML/ENTITYBASE/CHANCETOFAILSTRATEGY'] = array("debug");
$this->def['XML/ENTITYBASE/CHANCETOFAILSPELL'] = array("debug");
$this->def['XML/ENTITYBASE/CHANCETOFAILFABER'] = array("debug");
$this->def['XML/ENTITYBASE/CHANCETOFAILHARVEST'] = array("debug");
$this->def['XML/ENTITYBASE/CHANCETOFAILTRACKING'] = array("debug");
$this->def['XML/ENTITYBASE/MELEEATTACKSLOW'] = array("debug");
$this->def['XML/ENTITYBASE/MELEESLASHINGDAMAGEARMOR'] = array("debug");
$this->def['XML/ENTITYBASE/MELEEBLUNTDAMAGEARMOR'] = array("debug");
$this->def['XML/ENTITYBASE/MELEEPIERCINGDAMAGEARMOR'] = array("debug");
$this->def['XML/ENTITYBASE/MELEEDAMAGEMODIFIERFACTOR'] = array("debug");
$this->def['XML/ENTITYBASE/RANGEDAMAGEMODIFIERFACTOR'] = array("debug");
$this->def['XML/ENTITYBASE/CREATUREMELEETAKENDAMAGEFACTOR'] = array("debug");
$this->def['XML/ENTITYBASE/CREATURERANGETAKENDAMAGEFACTOR'] = array("debug");
$this->def['XML/ENTITYBASE/COMBATBRICKLATENCYMULTIPLIER'] = array("debug");
$this->def['XML/ENTITYBASE/MAGICBRICKLATENCYMULTIPLIER'] = array("debug");
$this->def['XML/ENTITYBASE/ARMORQUALITYMODIFIER'] = array("debug");
$this->def['XML/ENTITYBASE/WEAPONQUALITYMODIFIER'] = array("debug");
$this->def['XML/ENTITYBASE/ARMORABSORBTIONMULTIPLIER'] = array("debug");
$this->def['XML/RINGREWARDPOINTS'] = array("debug");
$this->def['XML/RINGREWARDPOINTS/RINGREWARDPOINTS/__KEY__'] = array("debug");
$this->def['XML/RINGREWARDPOINTS/RINGREWARDPOINTS/__VAL__'] = array("debug");
$this->addWildcard("XML/_PERSISTENTEFFECTS","debug");
$this->def['XML/_PACT'] = array("debug");
$this->def['XML/_PACT/PACTNATURE'] = array("debug");
$this->def['XML/_PACT/PACTTYPE'] = array("debug");
array_push($this->def['XML/_PLAYERPETS'],"debug");
array_push($this->def['XML/_PLAYERPETS/__KEY__'],"debug");
array_push($this->def['XML/_PLAYERPETS/__VAL__'],"debug");
$this->def['XML/_PLAYERPETS/__VAL__/TICKETPETSHEETID'] = array("debug");
$this->def['XML/_PLAYERPETS/__VAL__/PRICE'] = array("debug");
$this->def['XML/_PLAYERPETS/__VAL__/OWNERID'] = array("debug");
$this->def['XML/_PLAYERPETS/__VAL__/STABLEALIAS'] = array("debug");
$this->def['XML/_PLAYERPETS/__VAL__/SLOT'] = array("debug");
$this->def['XML/_PLAYERPETS/__VAL__/ISTPALLOWED'] = array("debug");
$this->def['XML/_PLAYERPETS/__VAL__/CUSTOMNAME'] = array("debug");
$this->def['XML/STARTINGCHARACTERISTICVALUES'] = array("debug");
$this->def['XML/STARTINGCHARACTERISTICVALUES/__KEY__'] = array("debug");
$this->def['XML/STARTINGCHARACTERISTICVALUES/__VAL__'] = array("debug");
$this->def['XML/_ENCYCLOCHAR'] = array("debug");
$this->def['XML/_ENCYCLOCHAR/_ENCYCHARALBUMS'] = array("debug");
$this->def['XML/_ENCYCLOCHAR/_ENCYCHARALBUMS/ALBUMSTATE'] = array("debug");
$this->def['XML/_ENCYCLOCHAR/_ENCYCHARALBUMS/THEMAS'] = array("debug");
$this->def['XML/_ENCYCLOCHAR/_ENCYCHARALBUMS/THEMAS/THEMASTATE'] = array("debug");
$this->def['XML/_ENCYCLOCHAR/_ENCYCHARALBUMS/THEMAS/RITETASKSTATEPACKED'] = array("debug");
$this->def['XML/_GAMEEVENT'] = array("debug");
$this->def['XML/_GAMEEVENT/UTC__DATE'] = array("debug");
$this->addWildcard("XML/ENTITYBASE/_ENTITYPOSITION","debug");
$this->addWildcard("XML/_ENTITYPOSITION","debug");
$this->def['XML/INVISIBLE'] = array("debug");
$this->def['XML/AGGROABLE'] = array("debug");
$this->def['XML/GODMODE'] = array("debug");
?>

View file

@ -0,0 +1,12 @@
<?php
$this->def['XML/FACTIONPOINTS'] = array("faction");
$this->def['XML/FACTIONPOINTS/__KEY__'] = array("faction");
$this->def['XML/FACTIONPOINTS/__VAL__'] = array("faction");
$this->def['XML/_ORGANIZATION'] = array("faction");
$this->def['XML/_ORGANIZATIONSTATUS'] = array("faction");
$this->def['XML/_ORGANIZATIONPOINTS'] = array("faction");
$this->def['XML/DECLAREDCULT'] = array("faction");
$this->def['XML/DECLAREDCIV'] = array("faction");
?>

View file

@ -0,0 +1,10 @@
<?php
#$this->def['XML/_FAMES/_FAME'] = array("fame");
$this->def['XML/_FAMES/_FAME/__KEY__'] = array("fame");
$this->def['XML/_FAMES/_FAME/__VAL__'] = array("fame");
$this->def['XML/_FAMES/_FAME/__VAL__/FAME'] = array("fame");
$this->def['XML/_FAMES/_FAME/__VAL__/FAMEMEMORY'] = array("fame");
$this->def['XML/_FAMES/_FAME/__VAL__/LASTFAMECHANGETREND'] = array("fame");
?>

View file

@ -0,0 +1,131 @@
<?php
$this->def['XML/_MONEY'] = array("inventory");
$this->def['XML/_PLAYERROOM'] = array("inventory");
$this->def['XML/_PLAYERROOM/BUILDING'] = array("inventory");
$this->def['XML/_PLAYERROOM/ROOMINVENTORY'] = array("inventory");
$this->def['XML/_PLAYERROOM/ROOMINVENTORY/_ITEMS'] = array("inventory");
$this->def['XML/_PLAYERROOM/ROOMINVENTORY/_ITEMS/_ITEMID'] = array("inventory");
$this->def['XML/_PLAYERROOM/ROOMINVENTORY/_ITEMS/_SHEETID'] = array("inventory");
$this->def['XML/_PLAYERROOM/ROOMINVENTORY/_ITEMS/_LOCSLOT'] = array("inventory");
$this->def['XML/_PLAYERROOM/ROOMINVENTORY/_ITEMS/_HP'] = array("inventory");
$this->def['XML/_PLAYERROOM/ROOMINVENTORY/_ITEMS/_RECOMMENDED'] = array("inventory");
$this->def['XML/_PLAYERROOM/ROOMINVENTORY/_ITEMS/_CREATORID'] = array("inventory");
$this->def['XML/_PLAYERROOM/ROOMINVENTORY/_ITEMS/_PHRASEID'] = array("inventory");
$this->def['XML/_PLAYERROOM/ROOMINVENTORY/_ITEMS/_USENEWSYSTEMREQUIREMENT'] = array("inventory");
$this->def['XML/_PLAYERROOM/ROOMINVENTORY/_ITEMS/_REQUIREDSKILLLEVEL'] = array("inventory");
$this->def['XML/_PLAYERROOM/ROOMINVENTORY/_ITEMS/_CUSTOMTEXT'] = array("inventory");
$this->def['XML/_PLAYERROOM/ROOMINVENTORY/_ITEMS/_LOCKEDBYOWNER'] = array("inventory");
$this->def['XML/_PLAYERROOM/ROOMINVENTORY/_ITEMS/STACKSIZE'] = array("inventory");
$this->def['XML/_PLAYERROOM/ROOMINVENTORY/_ITEMS/_CRAFTPARAMETERS'] = array("inventory");
$this->def['XML/_PLAYERROOM/ROOMINVENTORY/_ITEMS/_CRAFTPARAMETERS/DURABILITY'] = array("inventory");
$this->def['XML/_PLAYERROOM/ROOMINVENTORY/_ITEMS/_CRAFTPARAMETERS/WEIGHT'] = array("inventory");
$this->def['XML/_PLAYERROOM/ROOMINVENTORY/_ITEMS/_CRAFTPARAMETERS/STATENERGY'] = array("inventory");
$this->def['XML/_PLAYERROOM/ROOMINVENTORY/_ITEMS/_CRAFTPARAMETERS/DODGEMODIFIER'] = array("inventory");
$this->def['XML/_PLAYERROOM/ROOMINVENTORY/_ITEMS/_CRAFTPARAMETERS/PARRYMODIFIER'] = array("inventory");
$this->def['XML/_PLAYERROOM/ROOMINVENTORY/_ITEMS/_CRAFTPARAMETERS/PROTECTIONFACTOR'] = array("inventory");
$this->def['XML/_PLAYERROOM/ROOMINVENTORY/_ITEMS/_CRAFTPARAMETERS/MAXSLASHINGPROTECTION'] = array("inventory");
$this->def['XML/_PLAYERROOM/ROOMINVENTORY/_ITEMS/_CRAFTPARAMETERS/MAXBLUNTPROTECTION'] = array("inventory");
$this->def['XML/_PLAYERROOM/ROOMINVENTORY/_ITEMS/_CRAFTPARAMETERS/MAXPIERCINGPROTECTION'] = array("inventory");
$this->def['XML/_PLAYERROOM/ROOMINVENTORY/_ITEMS/_CRAFTPARAMETERS/COLOR'] = array("inventory");
$this->def['XML/_PLAYERROOM/ROOMINVENTORY/_ITEMS/_CRAFTPARAMETERS/FOCUSBUFF'] = array("inventory");
$this->def['XML/_PLAYERROOM/ROOMINVENTORY/_ITEMS/_CRAFTPARAMETERS/HPBUFF'] = array("inventory");
$this->def['XML/_PLAYERROOM/ROOMINVENTORY/_ITEMS/_CRAFTPARAMETERS/SAPBUFF'] = array("inventory");
$this->def['XML/_PLAYERROOM/ROOMINVENTORY/_ITEMS/_CRAFTPARAMETERS/STABUFF'] = array("inventory");
$this->def['XML/_PLAYERROOM/ROOMINVENTORY/_ITEMS/_CRAFTPARAMETERS/PROTECTION'] = array("inventory");
$this->def['XML/_PLAYERROOM/ROOMINVENTORY/_ITEMS/_CRAFTPARAMETERS/PROTECTION1'] = array("inventory");
$this->def['XML/_PLAYERROOM/ROOMINVENTORY/_ITEMS/_CRAFTPARAMETERS/PROTECTION2'] = array("inventory");
$this->def['XML/_PLAYERROOM/ROOMINVENTORY/_ITEMS/_CRAFTPARAMETERS/PROTECTION3'] = array("inventory");
$this->def['XML/_PLAYERROOM/ROOMINVENTORY/_ITEMS/_CRAFTPARAMETERS/SAPLOAD'] = array("inventory");
$this->def['XML/_PLAYERROOM/ROOMINVENTORY/_ITEMS/_CRAFTPARAMETERS/DMG'] = array("inventory");
$this->def['XML/_PLAYERROOM/ROOMINVENTORY/_ITEMS/_CRAFTPARAMETERS/SPEED'] = array("inventory");
$this->def['XML/_PLAYERROOM/ROOMINVENTORY/_ITEMS/_CRAFTPARAMETERS/RANGE'] = array("inventory");
$this->def['XML/_PLAYERROOM/ROOMINVENTORY/_ITEMS/_CRAFTPARAMETERS/ADVERSARYDODGEMODIFIER'] = array("inventory");
$this->def['XML/_PLAYERROOM/ROOMINVENTORY/_ITEMS/_CRAFTPARAMETERS/ADVERSARYPARRYMODIFIER'] = array("inventory");
$this->def['XML/_PLAYERROOM/ROOMINVENTORY/_ITEMS/_CRAFTPARAMETERS/PROTECTION1FACTOR'] = array("inventory");
$this->def['XML/_PLAYERROOM/ROOMINVENTORY/_ITEMS/_CRAFTPARAMETERS/PROTECTION2FACTOR'] = array("inventory");
$this->def['XML/_PLAYERROOM/ROOMINVENTORY/_ITEMS/_CRAFTPARAMETERS/PROTECTION3FACTOR'] = array("inventory");
$this->def['XML/_PLAYERROOM/ROOMINVENTORY/_ITEMS/_CRAFTPARAMETERS/DESERTRESISTANCEFACTOR'] = array("inventory");
$this->def['XML/_PLAYERROOM/ROOMINVENTORY/_ITEMS/_CRAFTPARAMETERS/FORESTRESISTANCEFACTOR'] = array("inventory");
$this->def['XML/_PLAYERROOM/ROOMINVENTORY/_ITEMS/_CRAFTPARAMETERS/LACUSTRERESISTANCEFACTOR'] = array("inventory");
$this->def['XML/_PLAYERROOM/ROOMINVENTORY/_ITEMS/_CRAFTPARAMETERS/JUNGLERESISTANCEFACTOR'] = array("inventory");
$this->def['XML/_PLAYERROOM/ROOMINVENTORY/_ITEMS/_CRAFTPARAMETERS/PRIMARYROOTRESISTANCEFACTOR'] = array("inventory");
$this->def['XML/_PLAYERROOM/ROOMINVENTORY/_ITEMS/_CRAFTPARAMETERS/ELEMENTALCASTINGTIMEFACTOR'] = array("inventory");
$this->def['XML/_PLAYERROOM/ROOMINVENTORY/_ITEMS/_CRAFTPARAMETERS/ELEMENTALPOWERFACTOR'] = array("inventory");
$this->def['XML/_PLAYERROOM/ROOMINVENTORY/_ITEMS/_CRAFTPARAMETERS/OFFENSIVEAFFLICTIONCASTINGTIMEFACTOR'] = array("inventory");
$this->def['XML/_PLAYERROOM/ROOMINVENTORY/_ITEMS/_CRAFTPARAMETERS/OFFENSIVEAFFLICTIONPOWERFACTOR'] = array("inventory");
$this->def['XML/_PLAYERROOM/ROOMINVENTORY/_ITEMS/_CRAFTPARAMETERS/HEALCASTINGTIMEFACTOR'] = array("inventory");
$this->def['XML/_PLAYERROOM/ROOMINVENTORY/_ITEMS/_CRAFTPARAMETERS/HEALPOWERFACTOR'] = array("inventory");
$this->def['XML/_PLAYERROOM/ROOMINVENTORY/_ITEMS/_CRAFTPARAMETERS/DEFENSIVEAFFLICTIONCASTINGTIMEFACTOR'] = array("inventory");
$this->def['XML/_PLAYERROOM/ROOMINVENTORY/_ITEMS/_CRAFTPARAMETERS/DEFENSIVEAFFLICTIONPOWERFACTOR'] = array("inventory");
$this->def['XML/_PLAYERPETS'] = array("inventory");
$this->def['XML/_PLAYERPETS/__KEY__'] = array("inventory");
$this->def['XML/_PLAYERPETS/__VAL__'] = array("inventory");
$this->def['XML/_PLAYERPETS/__VAL__/PETSHEETID'] = array("inventory");
$this->def['XML/_PLAYERPETS/__VAL__/LANDSCAPE_X'] = array("inventory");
$this->def['XML/_PLAYERPETS/__VAL__/LANDSCAPE_Y'] = array("inventory");
$this->def['XML/_PLAYERPETS/__VAL__/LANDSCAPE_Z'] = array("inventory");
$this->def['XML/_PLAYERPETS/__VAL__/UTC_DEATHTICK'] = array("inventory");
$this->def['XML/_PLAYERPETS/__VAL__/PETSTATUS'] = array("inventory");
$this->def['XML/_PLAYERPETS/__VAL__/SATIETY'] = array("inventory");
$this->def['XML/INVENTORY'] = array("inventory");
$this->def['XML/INVENTORY/__KEY__'] = array("inventory");
$this->def['XML/INVENTORY/__VAL__'] = array("inventory");
$this->def['XML/INVENTORY/__VAL__/_ITEM'] = array("inventory");
$this->def['XML/INVENTORY/__VAL__/_ITEM/_ITEMID'] = array("inventory");
$this->def['XML/INVENTORY/__VAL__/_ITEM/_SHEETID'] = array("inventory");
$this->def['XML/INVENTORY/__VAL__/_ITEM/_LOCSLOT'] = array("inventory");
$this->def['XML/INVENTORY/__VAL__/_ITEM/_HP'] = array("inventory");
$this->def['XML/INVENTORY/__VAL__/_ITEM/_RECOMMENDED'] = array("inventory");
$this->def['XML/INVENTORY/__VAL__/_ITEM/_CREATORID'] = array("inventory");
$this->def['XML/INVENTORY/__VAL__/_ITEM/_PHRASEID'] = array("inventory");
$this->def['XML/INVENTORY/__VAL__/_ITEM/_USENEWSYSTEMREQUIREMENT'] = array("inventory");
$this->def['XML/INVENTORY/__VAL__/_ITEM/_REQUIREDSKILLLEVEL'] = array("inventory");
$this->def['XML/INVENTORY/__VAL__/_ITEM/_CUSTOMTEXT'] = array("inventory");
$this->def['XML/INVENTORY/__VAL__/_ITEM/_LOCKEDBYOWNER'] = array("inventory");
$this->def['XML/INVENTORY/__VAL__/_ITEM/STACKSIZE'] = array("inventory");
$this->def['XML/INVENTORY/__VAL__/_ITEM/_CRAFTPARAMETERS'] = array("inventory");
$this->def['XML/INVENTORY/__VAL__/_ITEM/_CRAFTPARAMETERS/DURABILITY'] = array("inventory");
$this->def['XML/INVENTORY/__VAL__/_ITEM/_CRAFTPARAMETERS/WEIGHT'] = array("inventory");
$this->def['XML/INVENTORY/__VAL__/_ITEM/_CRAFTPARAMETERS/STATENERGY'] = array("inventory");
$this->def['XML/INVENTORY/__VAL__/_ITEM/_CRAFTPARAMETERS/DODGEMODIFIER'] = array("inventory");
$this->def['XML/INVENTORY/__VAL__/_ITEM/_CRAFTPARAMETERS/PARRYMODIFIER'] = array("inventory");
$this->def['XML/INVENTORY/__VAL__/_ITEM/_CRAFTPARAMETERS/PROTECTIONFACTOR'] = array("inventory");
$this->def['XML/INVENTORY/__VAL__/_ITEM/_CRAFTPARAMETERS/MAXSLASHINGPROTECTION'] = array("inventory");
$this->def['XML/INVENTORY/__VAL__/_ITEM/_CRAFTPARAMETERS/MAXBLUNTPROTECTION'] = array("inventory");
$this->def['XML/INVENTORY/__VAL__/_ITEM/_CRAFTPARAMETERS/MAXPIERCINGPROTECTION'] = array("inventory");
$this->def['XML/INVENTORY/__VAL__/_ITEM/_CRAFTPARAMETERS/COLOR'] = array("inventory");
$this->def['XML/INVENTORY/__VAL__/_ITEM/_CRAFTPARAMETERS/FOCUSBUFF'] = array("inventory");
$this->def['XML/INVENTORY/__VAL__/_ITEM/_CRAFTPARAMETERS/HPBUFF'] = array("inventory");
$this->def['XML/INVENTORY/__VAL__/_ITEM/_CRAFTPARAMETERS/SAPBUFF'] = array("inventory");
$this->def['XML/INVENTORY/__VAL__/_ITEM/_CRAFTPARAMETERS/STABUFF'] = array("inventory");
$this->def['XML/INVENTORY/__VAL__/_ITEM/_CRAFTPARAMETERS/PROTECTION'] = array("inventory");
$this->def['XML/INVENTORY/__VAL__/_ITEM/_CRAFTPARAMETERS/PROTECTION1'] = array("inventory");
$this->def['XML/INVENTORY/__VAL__/_ITEM/_CRAFTPARAMETERS/PROTECTION2'] = array("inventory");
$this->def['XML/INVENTORY/__VAL__/_ITEM/_CRAFTPARAMETERS/PROTECTION3'] = array("inventory");
$this->def['XML/INVENTORY/__VAL__/_ITEM/_CRAFTPARAMETERS/SAPLOAD'] = array("inventory");
$this->def['XML/INVENTORY/__VAL__/_ITEM/_CRAFTPARAMETERS/DMG'] = array("inventory");
$this->def['XML/INVENTORY/__VAL__/_ITEM/_CRAFTPARAMETERS/SPEED'] = array("inventory");
$this->def['XML/INVENTORY/__VAL__/_ITEM/_CRAFTPARAMETERS/RANGE'] = array("inventory");
$this->def['XML/INVENTORY/__VAL__/_ITEM/_CRAFTPARAMETERS/ADVERSARYDODGEMODIFIER'] = array("inventory");
$this->def['XML/INVENTORY/__VAL__/_ITEM/_CRAFTPARAMETERS/ADVERSARYPARRYMODIFIER'] = array("inventory");
$this->def['XML/INVENTORY/__VAL__/_ITEM/_CRAFTPARAMETERS/PROTECTION1FACTOR'] = array("inventory");
$this->def['XML/INVENTORY/__VAL__/_ITEM/_CRAFTPARAMETERS/PROTECTION2FACTOR'] = array("inventory");
$this->def['XML/INVENTORY/__VAL__/_ITEM/_CRAFTPARAMETERS/PROTECTION3FACTOR'] = array("inventory");
$this->def['XML/INVENTORY/__VAL__/_ITEM/_CRAFTPARAMETERS/DESERTRESISTANCEFACTOR'] = array("inventory");
$this->def['XML/INVENTORY/__VAL__/_ITEM/_CRAFTPARAMETERS/FORESTRESISTANCEFACTOR'] = array("inventory");
$this->def['XML/INVENTORY/__VAL__/_ITEM/_CRAFTPARAMETERS/LACUSTRERESISTANCEFACTOR'] = array("inventory");
$this->def['XML/INVENTORY/__VAL__/_ITEM/_CRAFTPARAMETERS/JUNGLERESISTANCEFACTOR'] = array("inventory");
$this->def['XML/INVENTORY/__VAL__/_ITEM/_CRAFTPARAMETERS/PRIMARYROOTRESISTANCEFACTOR'] = array("inventory");
$this->def['XML/INVENTORY/__VAL__/_ITEM/_CRAFTPARAMETERS/ELEMENTALCASTINGTIMEFACTOR'] = array("inventory");
$this->def['XML/INVENTORY/__VAL__/_ITEM/_CRAFTPARAMETERS/ELEMENTALPOWERFACTOR'] = array("inventory");
$this->def['XML/INVENTORY/__VAL__/_ITEM/_CRAFTPARAMETERS/OFFENSIVEAFFLICTIONCASTINGTIMEFACTOR'] = array("inventory");
$this->def['XML/INVENTORY/__VAL__/_ITEM/_CRAFTPARAMETERS/OFFENSIVEAFFLICTIONPOWERFACTOR'] = array("inventory");
$this->def['XML/INVENTORY/__VAL__/_ITEM/_CRAFTPARAMETERS/HEALCASTINGTIMEFACTOR'] = array("inventory");
$this->def['XML/INVENTORY/__VAL__/_ITEM/_CRAFTPARAMETERS/HEALPOWERFACTOR'] = array("inventory");
$this->def['XML/INVENTORY/__VAL__/_ITEM/_CRAFTPARAMETERS/DEFENSIVEAFFLICTIONCASTINGTIMEFACTOR'] = array("inventory");
$this->def['XML/INVENTORY/__VAL__/_ITEM/_CRAFTPARAMETERS/DEFENSIVEAFFLICTIONPOWERFACTOR'] = array("inventory");
$this->def['XML/INVENTORY/__VAL__/_ITEM/_REFINVENTORYSLOT'] = array("inventory");
$this->def['XML/INVENTORY/__VAL__/_ITEM/REFINVENTORYID'] = array("inventory");
?>

View file

@ -0,0 +1,11 @@
<?php
$this->def['XML/_BOUGHTPHRASES'] = array("knowledge");
$this->def['XML/_KNOWNBRICKS'] = array("knowledge");
$this->def['XML/_KNOWNPHRASES'] = array("knowledge");
$this->def['XML/_MEMORIZEDPHRASES'] = array("knowledge");
$this->def['XML/_MEMORIZEDPHRASES/PHRASEDESC/NAME'] = array("knowledge");
$this->def['XML/_MEMORIZEDPHRASES/PHRASEDESC/BRICKS'] = array("knowledge");
$this->def['XML/RESPAWNPOINTS/RESPAWNPOINTS'] = array("knowledge");
?>

View file

@ -0,0 +1,11 @@
<?php
$this->def['XML/_FIRSTCONNECTEDTIME'] = array("logs");
$this->def['XML/_LASTCONNECTEDTIME'] = array("logs");
$this->def['XML/_PLAYEDTIME'] = array("logs");
$this->def['XML/_LASTLOGSTATS'] = array("logs");
$this->def['XML/_LASTLOGSTATS/LOGINTIME'] = array("logs");
$this->def['XML/_LASTLOGSTATS/DURATION'] = array("logs");
$this->def['XML/_LASTLOGSTATS/LOGOFFTIME'] = array("logs");
?>

View file

@ -0,0 +1,3 @@
<?php
$this->addWildcard("XML/_MISSIONS","missions");
?>

View file

@ -0,0 +1,40 @@
<?php
$this->def['XML/_HAIRTYPE'] = array("public");
$this->def['XML/HAIRTYPE'] = array("public");
$this->def['XML/_HAIRCOLOR'] = array("public");
$this->def['XML/HAIRCOLOR'] = array("public");
$this->def['XML/_HATCOLOR'] = array("public");
$this->def['XML/_JACKETCOLOR'] = array("public");
$this->def['XML/_ARMSCOLOR'] = array("public");
$this->def['XML/_TROUSERSCOLOR'] = array("public");
$this->def['XML/_FEETCOLOR'] = array("public");
$this->def['XML/_HANDSCOLOR'] = array("public");
$this->def['XML/_PVPFLAG'] = array("public");
$this->def['XML/_GUILDID'] = array("public");
$this->def['XML/_TITLE'] = array("public");
$this->def['XML/GABARITHEIGHT'] = array("public");
$this->def['XML/GABARITTORSOWIDTH'] = array("public");
$this->def['XML/GABARITARMSWIDTH'] = array("public");
$this->def['XML/GABARITLEGSWIDTH'] = array("public");
$this->def['XML/GABARITBREASTSIZE'] = array("public");
$this->def['XML/MORPHTARGET1'] = array("public");
$this->def['XML/MORPHTARGET2'] = array("public");
$this->def['XML/MORPHTARGET3'] = array("public");
$this->def['XML/MORPHTARGET4'] = array("public");
$this->def['XML/MORPHTARGET5'] = array("public");
$this->def['XML/MORPHTARGET6'] = array("public");
$this->def['XML/MORPHTARGET7'] = array("public");
$this->def['XML/MORPHTARGET8'] = array("public");
$this->def['XML/EYESCOLOR'] = array("public");
$this->def['XML/TATTOO'] = array("public");
$this->def['XML/NORMALPOSITIONS/VEC/POSSTATE'] = array("public");
$this->def['XML/NORMALPOSITIONS/VEC/POSSTATE/X'] = array("public");
$this->def['XML/NORMALPOSITIONS/VEC/POSSTATE/Y'] = array("public");
$this->def['XML/NORMALPOSITIONS/VEC/POSSTATE/Z'] = array("public");
$this->def['XML/NORMALPOSITIONS/VEC/POSSTATE/HEADING'] = array("public");
$this->def['XML/ENTITYBASE/_NAME'] = array("public");
$this->def['XML/ENTITYBASE/_GENDER'] = array("public");
$this->def['XML/ENTITYBASE/_SIZE'] = array("public");
?>

View file

@ -0,0 +1,66 @@
<?php
$this->def['XML/_ITEMSINSHOPSTORE'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_PRICE'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_RETIREPRICE'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/UTC__STARTSALECYCLE'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_OWNER'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_CONTINENT'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_QUANTITY'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_IDENTIFIER'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_ITEMPTR'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_ITEMPTR/_ITEMID'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_ITEMPTR/_SHEETID'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_ITEMPTR/_LOCSLOT'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_ITEMPTR/_HP'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_ITEMPTR/_RECOMMENDED'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_ITEMPTR/_CREATORID'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_ITEMPTR/_PHRASEID'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_ITEMPTR/STACKSIZE'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_ITEMPTR/_USENEWSYSTEMREQUIREMENT'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_ITEMPTR/_CUSTOMTEXT'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_ITEMPTR/_LOCKEDBYOWNER'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_ITEMPTR/_CRAFTPARAMETERS'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_ITEMPTR/_CRAFTPARAMETERS/DURABILITY'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_ITEMPTR/_CRAFTPARAMETERS/WEIGHT'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_ITEMPTR/_CRAFTPARAMETERS/STATENERGY'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_ITEMPTR/_CRAFTPARAMETERS/DODGEMODIFIER'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_ITEMPTR/_CRAFTPARAMETERS/PARRYMODIFIER'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_ITEMPTR/_CRAFTPARAMETERS/PROTECTIONFACTOR'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_ITEMPTR/_CRAFTPARAMETERS/MAXSLASHINGPROTECTION'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_ITEMPTR/_CRAFTPARAMETERS/MAXBLUNTPROTECTION'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_ITEMPTR/_CRAFTPARAMETERS/MAXPIERCINGPROTECTION'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_ITEMPTR/_CRAFTPARAMETERS/COLOR'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_ITEMPTR/_CRAFTPARAMETERS/FOCUSBUFF'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_ITEMPTR/_CRAFTPARAMETERS/HPBUFF'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_ITEMPTR/_CRAFTPARAMETERS/SAPBUFF'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_ITEMPTR/_CRAFTPARAMETERS/STABUFF'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_ITEMPTR/_CRAFTPARAMETERS/PROTECTION'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_ITEMPTR/_CRAFTPARAMETERS/PROTECTION1'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_ITEMPTR/_CRAFTPARAMETERS/PROTECTION2'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_ITEMPTR/_CRAFTPARAMETERS/PROTECTION3'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_ITEMPTR/_CRAFTPARAMETERS/SAPLOAD'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_ITEMPTR/_CRAFTPARAMETERS/DMG'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_ITEMPTR/_CRAFTPARAMETERS/SPEED'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_ITEMPTR/_CRAFTPARAMETERS/RANGE'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_ITEMPTR/_CRAFTPARAMETERS/ADVERSARYDODGEMODIFIER'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_ITEMPTR/_CRAFTPARAMETERS/ADVERSARYPARRYMODIFIER'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_ITEMPTR/_CRAFTPARAMETERS/PROTECTION1FACTOR'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_ITEMPTR/_CRAFTPARAMETERS/PROTECTION2FACTOR'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_ITEMPTR/_CRAFTPARAMETERS/PROTECTION3FACTOR'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_ITEMPTR/_CRAFTPARAMETERS/DESERTRESISTANCEFACTOR'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_ITEMPTR/_CRAFTPARAMETERS/FORESTRESISTANCEFACTOR'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_ITEMPTR/_CRAFTPARAMETERS/LACUSTRERESISTANCEFACTOR'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_ITEMPTR/_CRAFTPARAMETERS/JUNGLERESISTANCEFACTOR'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_ITEMPTR/_CRAFTPARAMETERS/PRIMARYROOTRESISTANCEFACTOR'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_ITEMPTR/_CRAFTPARAMETERS/ELEMENTALCASTINGTIMEFACTOR'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_ITEMPTR/_CRAFTPARAMETERS/ELEMENTALPOWERFACTOR'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_ITEMPTR/_CRAFTPARAMETERS/OFFENSIVEAFFLICTIONCASTINGTIMEFACTOR'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_ITEMPTR/_CRAFTPARAMETERS/OFFENSIVEAFFLICTIONPOWERFACTOR'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_ITEMPTR/_CRAFTPARAMETERS/HEALCASTINGTIMEFACTOR'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_ITEMPTR/_CRAFTPARAMETERS/HEALPOWERFACTOR'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_ITEMPTR/_CRAFTPARAMETERS/DEFENSIVEAFFLICTIONCASTINGTIMEFACTOR'] = array("shop");
$this->def['XML/_ITEMSINSHOPSTORE/_ITEMSFORSALE/_ITEMPTR/_CRAFTPARAMETERS/DEFENSIVEAFFLICTIONPOWERFACTOR'] = array("shop");
?>

View file

@ -0,0 +1,21 @@
<?php
$this->def['XML/ENTITYBASE/_SKILLS/SKILLS'] = array("skills");
$this->def['XML/ENTITYBASE/_SKILLS/SKILLS/__KEY__'] = array("skills");
$this->def['XML/ENTITYBASE/_SKILLS/SKILLS/__VAL__'] = array("skills");
$this->def['XML/ENTITYBASE/_SKILLS/SKILLS/__VAL__/BASE'] = array("skills");
$this->def['XML/ENTITYBASE/_SKILLS/SKILLS/__VAL__/CURRENT'] = array("skills");
$this->def['XML/ENTITYBASE/_SKILLS/SKILLS/__VAL__/MAXLVLREACHED'] = array("skills");
$this->def['XML/ENTITYBASE/_SKILLS/SKILLS/__VAL__/XP'] = array("skills");
$this->def['XML/ENTITYBASE/_SKILLS/SKILLS/__VAL__/XPNEXTLVL'] = array("skills");
$this->def['XML/SKILLPOINTS'] = array("skills");
$this->def['XML/SKILLPOINTS/__KEY__'] = array("skills");
$this->def['XML/SKILLPOINTS/__VAL__'] = array("skills");
$this->def['XML/SPENTSKILLPOINTS'] = array("skills");
$this->def['XML/SPENTSKILLPOINTS/__KEY__'] = array("skills");
$this->def['XML/SPENTSKILLPOINTS/__VAL__'] = array("skills");
$this->def['XML/SCOREPERMANENTMODIFIERS'] = array("skills");
$this->def['XML/SCOREPERMANENTMODIFIERS/__KEY__'] = array("skills");
$this->def['XML/SCOREPERMANENTMODIFIERS/__VAL__'] = array("skills");
?>

View file

@ -0,0 +1,7 @@
<?php
$this->def['XML/_FRIENDSLIST'] = array("social");
$this->def['XML/_ISFRIENDOF'] = array("social");
$this->def['XML/FRIENDVISIBILITy'] = array("social");
?>

View file

@ -0,0 +1,27 @@
<?php
$this->def['XML/_HPB'] = array("stats");
$this->def['XML/_PVPPOINT'] = array("stats");
$this->def['XML/_DEATHPENALTIES'] = array("stats");
$this->def['XML/_DEATHPENALTIES/_NBDEATH'] = array("stats");
$this->def['XML/_DEATHPENALTIES/_CURRENTDEATHXP'] = array("stats");
$this->def['XML/_DEATHPENALTIES/_DEATHXPTOGAIN'] = array("stats");
$this->def['XML/_DEATHPENALTIES/_BONUSUPDATETIME'] = array("stats");
$this->def['XML/ENTITYBASE/_DODGEASDEFENSE'] = array("stats");
$this->def['XML/ENTITYBASE/_PHYSCHARACS/_PHYSICALCHARACTERISTICS'] = array("stats");
$this->def['XML/ENTITYBASE/_PHYSCHARACS/_PHYSICALCHARACTERISTICS/__KEY__'] = array("stats");
$this->def['XML/ENTITYBASE/_PHYSCHARACS/_PHYSICALCHARACTERISTICS/__VAL__'] = array("stats");
$this->def['XML/ENTITYBASE/_PHYSSCORES'] = array("stats");
$this->def['XML/ENTITYBASE/_PHYSSCORES/BASEWALKSPEED'] = array("stats");
$this->def['XML/ENTITYBASE/_PHYSSCORES/BASERUNSPEED'] = array("stats");
$this->def['XML/ENTITYBASE/_PHYSSCORES/CURRENTWALKSPEED'] = array("stats");
$this->def['XML/ENTITYBASE/_PHYSSCORES/CURRENTRUNSPEED'] = array("stats");
$this->def['XML/ENTITYBASE/_PHYSSCORES/__KEY__'] = array("stats");
$this->def['XML/ENTITYBASE/_PHYSSCORES/__VAL__/CURRENT'] = array("stats");
$this->def['XML/ENTITYBASE/_PHYSSCORES/__VAL__/BASE'] = array("stats");
$this->def['XML/ENTITYBASE/_PHYSSCORES/__VAL__/MAX'] = array("stats");
$this->def['XML/ENTITYBASE/_PHYSSCORES/__VAL__/BASEREGENERATEREPOS'] = array("stats");
$this->def['XML/ENTITYBASE/_PHYSSCORES/__VAL__/BASEREGENERATEACTION'] = array("stats");
$this->def['XML/ENTITYBASE/_PHYSSCORES/__VAL__/CURRENTREGENERATE'] = array("stats");
?>

View file

@ -1,235 +0,0 @@
-- phpMyAdmin SQL Dump
-- version 3.5.1
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Aug 20, 2012 at 01:48 PM
-- Server version: 5.5.24-log
-- PHP Version: 5.4.3
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
--
-- Database: `app_achievements_test`
--
-- --------------------------------------------------------
--
-- Table structure for table `ach_achievement`
--
CREATE TABLE IF NOT EXISTS `ach_achievement` (
`aa_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`aa_category` bigint(20) unsigned NOT NULL,
`aa_parent` bigint(20) unsigned DEFAULT NULL,
`aa_tie_race` varchar(64) COLLATE utf8_bin DEFAULT NULL,
`aa_tie_cult` varchar(64) COLLATE utf8_bin DEFAULT NULL,
`aa_tie_civ` varchar(64) COLLATE utf8_bin DEFAULT NULL,
`aa_image` varchar(64) COLLATE utf8_bin NOT NULL,
`aa_dev` tinyint(1) unsigned NOT NULL DEFAULT '0',
`aa_sticky` tinyint(1) unsigned NOT NULL,
PRIMARY KEY (`aa_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=346 ;
-- --------------------------------------------------------
--
-- Table structure for table `ach_achievement_lang`
--
CREATE TABLE IF NOT EXISTS `ach_achievement_lang` (
`aal_achievement` bigint(20) unsigned NOT NULL,
`aal_lang` varchar(2) COLLATE utf8_bin NOT NULL,
`aal_name` varchar(255) COLLATE utf8_bin NOT NULL,
`aal_template` varchar(255) COLLATE utf8_bin DEFAULT NULL,
PRIMARY KEY (`aal_achievement`,`aal_lang`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
-- --------------------------------------------------------
--
-- Table structure for table `ach_atom`
--
CREATE TABLE IF NOT EXISTS `ach_atom` (
`atom_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`atom_objective` bigint(20) unsigned NOT NULL,
`atom_mandatory` tinyint(1) unsigned NOT NULL,
`atom_ruleset` blob NOT NULL,
`atom_ruleset_parsed` blob NOT NULL,
PRIMARY KEY (`atom_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=25 ;
-- --------------------------------------------------------
--
-- Table structure for table `ach_category`
--
CREATE TABLE IF NOT EXISTS `ach_category` (
`ac_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`ac_parent` bigint(20) unsigned DEFAULT NULL,
`ac_order` smallint(5) unsigned NOT NULL,
`ac_image` varchar(64) COLLATE utf8_bin DEFAULT NULL,
`ac_dev` tinyint(1) unsigned NOT NULL DEFAULT '0',
`ac_heroic` tinyint(1) unsigned NOT NULL,
PRIMARY KEY (`ac_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=50 ;
-- --------------------------------------------------------
--
-- Table structure for table `ach_category_lang`
--
CREATE TABLE IF NOT EXISTS `ach_category_lang` (
`acl_category` bigint(20) unsigned NOT NULL,
`acl_lang` varchar(2) COLLATE utf8_bin NOT NULL,
`acl_name` varchar(255) COLLATE utf8_bin NOT NULL,
PRIMARY KEY (`acl_category`,`acl_lang`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
-- --------------------------------------------------------
--
-- Table structure for table `ach_fb_token`
--
CREATE TABLE IF NOT EXISTS `ach_fb_token` (
`aft_player` bigint(20) unsigned NOT NULL,
`aft_token` varchar(255) NOT NULL,
`aft_date` bigint(20) unsigned NOT NULL,
`aft_allow` tinyint(1) unsigned NOT NULL,
PRIMARY KEY (`aft_player`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-- --------------------------------------------------------
--
-- Table structure for table `ach_objective`
--
CREATE TABLE IF NOT EXISTS `ach_objective` (
`ao_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`ao_task` bigint(20) unsigned NOT NULL,
`ao_condition` enum('all','any','value') COLLATE utf8_bin NOT NULL,
`ao_value` bigint(20) unsigned DEFAULT NULL,
`ao_display` enum('simple','meta','value','hidden') COLLATE utf8_bin NOT NULL DEFAULT 'hidden',
`ao_metalink` bigint(20) unsigned DEFAULT NULL,
PRIMARY KEY (`ao_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=2026 ;
-- --------------------------------------------------------
--
-- Table structure for table `ach_objective_lang`
--
CREATE TABLE IF NOT EXISTS `ach_objective_lang` (
`aol_objective` bigint(20) unsigned NOT NULL,
`aol_lang` varchar(2) COLLATE utf8_bin NOT NULL,
`aol_name` varchar(255) COLLATE utf8_bin DEFAULT NULL,
PRIMARY KEY (`aol_objective`,`aol_lang`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
-- --------------------------------------------------------
--
-- Table structure for table `ach_player_atom`
--
CREATE TABLE IF NOT EXISTS `ach_player_atom` (
`apa_atom` bigint(20) unsigned NOT NULL,
`apa_player` bigint(20) unsigned NOT NULL,
`apa_date` bigint(20) unsigned NOT NULL,
`apa_expire` blob,
`apa_state` enum('GRANT','DENY') COLLATE utf8_bin NOT NULL,
`apa_value` bigint(20) unsigned NOT NULL,
KEY `apa_atom` (`apa_atom`,`apa_player`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
-- --------------------------------------------------------
--
-- Table structure for table `ach_player_objective`
--
CREATE TABLE IF NOT EXISTS `ach_player_objective` (
`apo_objective` bigint(20) unsigned NOT NULL,
`apo_player` bigint(20) unsigned NOT NULL,
`apo_date` bigint(20) unsigned NOT NULL,
PRIMARY KEY (`apo_objective`,`apo_player`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
-- --------------------------------------------------------
--
-- Table structure for table `ach_player_task`
--
CREATE TABLE IF NOT EXISTS `ach_player_task` (
`apt_task` bigint(20) unsigned NOT NULL,
`apt_player` bigint(20) unsigned NOT NULL,
`apt_date` bigint(20) unsigned NOT NULL,
`apt_fb` tinyint(1) unsigned NOT NULL,
PRIMARY KEY (`apt_task`,`apt_player`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
-- --------------------------------------------------------
--
-- Table structure for table `ach_player_valuecache`
--
CREATE TABLE IF NOT EXISTS `ach_player_valuecache` (
`apv_name` bigint(20) unsigned NOT NULL,
`apv_player` bigint(20) unsigned NOT NULL,
`apv_value` varchar(255) COLLATE utf8_bin NOT NULL,
`apv_date` bigint(20) unsigned NOT NULL,
PRIMARY KEY (`apv_name`,`apv_player`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
-- --------------------------------------------------------
--
-- Table structure for table `ach_task`
--
CREATE TABLE IF NOT EXISTS `ach_task` (
`at_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`at_achievement` bigint(20) unsigned NOT NULL,
`at_parent` bigint(20) unsigned DEFAULT NULL,
`at_value` int(10) unsigned NOT NULL,
`at_condition` enum('all','any','value') COLLATE utf8_bin NOT NULL DEFAULT 'all',
`at_condition_value` int(10) unsigned DEFAULT NULL,
`at_dev` tinyint(1) unsigned NOT NULL DEFAULT '0',
`at_torder` smallint(5) unsigned NOT NULL,
PRIMARY KEY (`at_id`),
UNIQUE KEY `ap_parent` (`at_parent`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=635 ;
-- --------------------------------------------------------
--
-- Table structure for table `ach_task_lang`
--
CREATE TABLE IF NOT EXISTS `ach_task_lang` (
`atl_task` bigint(20) unsigned NOT NULL,
`atl_lang` varchar(2) COLLATE utf8_bin NOT NULL,
`atl_name` varchar(255) COLLATE utf8_bin NOT NULL,
`atl_template` varchar(255) COLLATE utf8_bin DEFAULT NULL,
PRIMARY KEY (`atl_task`,`atl_lang`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,278 @@
-- --------------------------------------------------------
-- Host: 178.33.225.92
-- Server version: 5.5.28-0ubuntu0.12.04.2-log - (Ubuntu)
-- Server OS: debian-linux-gnu
-- HeidiSQL version: 7.0.0.4053
-- Date/time: 2012-12-10 14:52:03
-- --------------------------------------------------------
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET NAMES utf8 */;
/*!40014 SET FOREIGN_KEY_CHECKS=0 */;
-- Dumping structure for table app_achievements.ach_achievement
CREATE TABLE IF NOT EXISTS `ach_achievement` (
`aa_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`aa_category` bigint(20) unsigned NOT NULL,
`aa_parent` bigint(20) unsigned DEFAULT NULL,
`aa_tie_race` varchar(64) COLLATE utf8_bin DEFAULT NULL,
`aa_tie_cult` varchar(64) COLLATE utf8_bin DEFAULT NULL,
`aa_tie_civ` varchar(64) COLLATE utf8_bin DEFAULT NULL,
`aa_image` varchar(64) COLLATE utf8_bin NOT NULL,
`aa_dev` tinyint(1) unsigned NOT NULL DEFAULT '0',
`aa_sticky` tinyint(1) unsigned NOT NULL,
PRIMARY KEY (`aa_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
-- Data exporting was unselected.
-- Dumping structure for table app_achievements.ach_achievement_lang
CREATE TABLE IF NOT EXISTS `ach_achievement_lang` (
`aal_achievement` bigint(20) unsigned NOT NULL,
`aal_lang` varchar(2) COLLATE utf8_bin NOT NULL,
`aal_name` varchar(255) COLLATE utf8_bin NOT NULL,
`aal_template` varchar(255) COLLATE utf8_bin DEFAULT NULL,
PRIMARY KEY (`aal_achievement`,`aal_lang`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
-- Data exporting was unselected.
-- Dumping structure for table app_achievements.ach_atom
CREATE TABLE IF NOT EXISTS `ach_atom` (
`atom_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`atom_objective` bigint(20) unsigned NOT NULL,
`atom_mandatory` tinyint(1) unsigned NOT NULL,
`atom_ruleset` blob NOT NULL,
`atom_ruleset_parsed` blob NOT NULL,
PRIMARY KEY (`atom_id`),
KEY `atom_objective` (`atom_objective`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
-- Data exporting was unselected.
-- Dumping structure for table app_achievements.ach_category
CREATE TABLE IF NOT EXISTS `ach_category` (
`ac_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`ac_parent` bigint(20) unsigned DEFAULT NULL,
`ac_order` smallint(5) unsigned NOT NULL,
`ac_image` varchar(64) COLLATE utf8_bin DEFAULT NULL,
`ac_dev` tinyint(1) unsigned NOT NULL DEFAULT '0',
`ac_heroic` tinyint(1) unsigned NOT NULL,
`ac_contest` tinyint(1) unsigned NOT NULL,
PRIMARY KEY (`ac_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
-- Data exporting was unselected.
-- Dumping structure for table app_achievements.ach_category_lang
CREATE TABLE IF NOT EXISTS `ach_category_lang` (
`acl_category` bigint(20) unsigned NOT NULL,
`acl_lang` varchar(2) COLLATE utf8_bin NOT NULL,
`acl_name` varchar(255) COLLATE utf8_bin NOT NULL,
PRIMARY KEY (`acl_category`,`acl_lang`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
-- Data exporting was unselected.
-- Dumping structure for table app_achievements.ach_fb_token
CREATE TABLE IF NOT EXISTS `ach_fb_token` (
`aft_player` bigint(20) unsigned NOT NULL,
`aft_token` varchar(255) NOT NULL,
`aft_date` bigint(20) unsigned NOT NULL,
`aft_allow` tinyint(1) unsigned NOT NULL,
PRIMARY KEY (`aft_player`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-- Data exporting was unselected.
-- Dumping structure for table app_achievements.ach_objective
CREATE TABLE IF NOT EXISTS `ach_objective` (
`ao_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`ao_task` bigint(20) unsigned NOT NULL,
`ao_condition` enum('all','any','value') COLLATE utf8_bin NOT NULL,
`ao_value` bigint(20) unsigned DEFAULT NULL,
`ao_display` enum('simple','meta','value','hidden') COLLATE utf8_bin NOT NULL DEFAULT 'hidden',
`ao_metalink` bigint(20) unsigned DEFAULT NULL,
PRIMARY KEY (`ao_id`),
KEY `ao_task` (`ao_task`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
-- Data exporting was unselected.
-- Dumping structure for table app_achievements.ach_objective_lang
CREATE TABLE IF NOT EXISTS `ach_objective_lang` (
`aol_objective` bigint(20) unsigned NOT NULL,
`aol_lang` varchar(2) COLLATE utf8_bin NOT NULL,
`aol_name` varchar(255) COLLATE utf8_bin DEFAULT NULL,
PRIMARY KEY (`aol_objective`,`aol_lang`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
-- Data exporting was unselected.
-- Dumping structure for table app_achievements.ach_player_atom
CREATE TABLE IF NOT EXISTS `ach_player_atom` (
`apa_atom` bigint(20) unsigned NOT NULL,
`apa_player` bigint(20) unsigned NOT NULL,
`apa_date` bigint(20) unsigned NOT NULL,
`apa_expire` blob,
`apa_state` enum('GRANT','DENY') COLLATE utf8_bin NOT NULL,
`apa_value` bigint(20) unsigned NOT NULL,
KEY `apa_atom` (`apa_atom`,`apa_player`),
KEY `apa_state` (`apa_state`),
KEY `apa_atom_2` (`apa_atom`,`apa_player`,`apa_state`),
KEY `apa_player` (`apa_player`),
KEY `apa_atom_3` (`apa_atom`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
-- Data exporting was unselected.
-- Dumping structure for table app_achievements.ach_player_objective
CREATE TABLE IF NOT EXISTS `ach_player_objective` (
`apo_objective` bigint(20) unsigned NOT NULL,
`apo_player` bigint(20) unsigned NOT NULL,
`apo_date` bigint(20) unsigned NOT NULL,
PRIMARY KEY (`apo_objective`,`apo_player`),
KEY `apo_player` (`apo_player`),
KEY `apo_objective` (`apo_objective`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
-- Data exporting was unselected.
-- Dumping structure for table app_achievements.ach_player_task
CREATE TABLE IF NOT EXISTS `ach_player_task` (
`apt_task` bigint(20) unsigned NOT NULL,
`apt_player` bigint(20) unsigned NOT NULL,
`apt_date` bigint(20) unsigned NOT NULL,
`apt_fb` tinyint(1) unsigned NOT NULL,
PRIMARY KEY (`apt_task`,`apt_player`),
KEY `apt_player` (`apt_player`),
KEY `apt_task` (`apt_task`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
-- Data exporting was unselected.
-- Dumping structure for table app_achievements.ach_player_valuecache
CREATE TABLE IF NOT EXISTS `ach_player_valuecache` (
`apv_name` varchar(64) COLLATE utf8_bin NOT NULL,
`apv_player` bigint(20) unsigned NOT NULL,
`apv_value` varchar(255) COLLATE utf8_bin NOT NULL,
`apv_date` bigint(20) unsigned NOT NULL,
PRIMARY KEY (`apv_name`,`apv_player`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
-- Data exporting was unselected.
-- Dumping structure for table app_achievements.ach_task
CREATE TABLE IF NOT EXISTS `ach_task` (
`at_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`at_achievement` bigint(20) unsigned NOT NULL,
`at_parent` bigint(20) unsigned DEFAULT NULL,
`at_value` int(10) unsigned NOT NULL,
`at_condition` enum('all','any','value') COLLATE utf8_bin NOT NULL DEFAULT 'all',
`at_condition_value` int(10) unsigned DEFAULT NULL,
`at_dev` tinyint(1) unsigned NOT NULL DEFAULT '0',
`at_torder` smallint(5) unsigned NOT NULL,
`at_inherit` tinyint(1) unsigned NOT NULL,
PRIMARY KEY (`at_id`),
UNIQUE KEY `ap_parent` (`at_parent`),
KEY `at_achievement` (`at_achievement`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
-- Data exporting was unselected.
-- Dumping structure for table app_achievements.ach_task_lang
CREATE TABLE IF NOT EXISTS `ach_task_lang` (
`atl_task` bigint(20) unsigned NOT NULL,
`atl_lang` varchar(2) COLLATE utf8_bin NOT NULL,
`atl_name` varchar(255) COLLATE utf8_bin NOT NULL,
`atl_template` varchar(255) COLLATE utf8_bin DEFAULT NULL,
PRIMARY KEY (`atl_task`,`atl_lang`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
-- Data exporting was unselected.
-- Dumping structure for table app_achievements.ach_task_tie_civ
CREATE TABLE IF NOT EXISTS `ach_task_tie_civ` (
`attciv_task` bigint(20) unsigned NOT NULL,
`attciv_civ` varchar(64) NOT NULL,
PRIMARY KEY (`attciv_task`,`attciv_civ`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-- Data exporting was unselected.
-- Dumping structure for table app_achievements.ach_task_tie_cult
CREATE TABLE IF NOT EXISTS `ach_task_tie_cult` (
`attcult_task` bigint(20) unsigned NOT NULL,
`attcult_cult` varchar(64) NOT NULL,
PRIMARY KEY (`attcult_task`,`attcult_cult`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-- Data exporting was unselected.
-- Dumping structure for table app_achievements.ach_task_tie_race
CREATE TABLE IF NOT EXISTS `ach_task_tie_race` (
`attr_task` bigint(20) unsigned NOT NULL,
`attr_race` varchar(64) NOT NULL,
PRIMARY KEY (`attr_task`,`attr_race`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-- Data exporting was unselected.
-- Dumping structure for table app_achievements.stat_daily
CREATE TABLE IF NOT EXISTS `stat_daily` (
`sd_day` date NOT NULL DEFAULT '0000-00-00',
`sd_players` bigint(20) unsigned DEFAULT NULL,
`sd_money_total` bigint(20) unsigned DEFAULT NULL,
`sd_money_avg` int(10) unsigned DEFAULT NULL,
`sd_money_mean` int(10) unsigned DEFAULT NULL,
`sd_mek_total` bigint(20) unsigned DEFAULT NULL,
`sd_mek_avg` smallint(5) unsigned DEFAULT NULL,
`sd_mek_mean` smallint(5) unsigned DEFAULT NULL,
`sd_lvl_total` bigint(20) unsigned DEFAULT NULL,
`sd_lvl_avg` int(10) unsigned DEFAULT NULL,
`sd_lvl_mean` int(10) unsigned DEFAULT NULL,
`sd_item_total` bigint(20) unsigned DEFAULT NULL,
`sd_item_avg` int(10) unsigned DEFAULT NULL,
`sd_item_mean` int(10) unsigned DEFAULT NULL,
`sd_yubo_total` bigint(20) unsigned DEFAULT NULL,
`sd_yubo_avg` int(10) unsigned DEFAULT NULL,
`sd_yubo_mean` int(10) unsigned DEFAULT NULL,
PRIMARY KEY (`sd_day`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- Data exporting was unselected.
-- Dumping structure for table app_achievements.stat_players
CREATE TABLE IF NOT EXISTS `stat_players` (
`sp_char` bigint(20) unsigned NOT NULL DEFAULT '0',
`sp_money` bigint(20) unsigned DEFAULT NULL,
`sp_race` enum('r_matis','r_tryker','r_fyros','r_zorai') DEFAULT NULL,
`sp_yubototal` int(10) unsigned DEFAULT NULL,
`sp_mekcount` int(10) unsigned DEFAULT NULL,
`sp_maxlevel` smallint(5) unsigned DEFAULT NULL,
`sp_guildid` int(10) unsigned DEFAULT NULL,
`sp_itemcount` int(10) unsigned DEFAULT NULL,
PRIMARY KEY (`sp_char`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- Data exporting was unselected.
/*!40014 SET FOREIGN_KEY_CHECKS=1 */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;

View file

@ -36,16 +36,16 @@
protected $parent_id;
protected $category;
protected $tie_race;
protected $tie_civ;
protected $tie_cult;
#protected $tie_race;
#protected $tie_civ;
#protected $tie_cult;
protected $image;
protected $name;
protected $template;
protected $sticky;
function AchAchievement($data,$parent) {
global $DBc,$_USER;
global $DBc,$_USER,$_CONF;
parent::__construct();
@ -53,15 +53,21 @@
$this->setID($data['aa_id']);
$this->parent_id = $data['aa_parent']; // id of parent
$this->category = $data['aa_category'];
$this->tie_race = $data['aa_tie_race'];
$this->tie_civ = $data['aa_tie_civ'];
$this->tie_cult = $data['aa_tie_cult'];
#$this->tie_race = $data['aa_tie_race'];
#$this->tie_civ = $data['aa_tie_civ'];
#$this->tie_cult = $data['aa_tie_cult'];
$this->image = $data['aa_image'];
$this->name = $data['aal_name'];
$this->template = $data['aal_template'];
$this->dev = $data['aa_dev'];
$this->sticky = $data['aa_sticky'];
if($this->name == null) {
$res = $DBc->sqlQuery("SELECT * FROM ach_achievement_lang WHERE aal_lang='".$_CONF['default_lang']."' AND aal_achievement='".$this->id."'");
$this->name = $res[0]['aal_name'];
$this->template = $res[0]['aal_template'];
}
$res = $DBc->sqlQuery("SELECT * FROM ach_task LEFT JOIN (ach_task_lang) ON (atl_lang='".$_USER->getLang()."' AND atl_task=at_id) LEFT JOIN (ach_player_task) ON (apt_task=at_id AND apt_player='".$_USER->getID()."') WHERE at_achievement='".$this->id."' ORDER by at_torder ASC");
$sz = sizeof($res);
@ -89,6 +95,9 @@
}
else {
$p = $this->parent->getChildDataByID($this->parent_id);
if($p == null) {
return true;
}
return ($p->hasOpen() == false);
}
@ -104,15 +113,81 @@
}
function getTieRace() {
return $this->tie_race;
#return $this->tie_race;
$iter = $this->nodes->getIterator();
while($iter->hasNext()) {
$curr = $iter->getNext();
if($curr->hasTieRace()) {
return true;
}
}
return false;
}
function getTieCiv() {
return $this->tie_civ;
#return $this->tie_civ;
$iter = $this->nodes->getIterator();
while($iter->hasNext()) {
$curr = $iter->getNext();
if($curr->hasTieCiv()) {
return true;
}
}
return false;
}
function getTieCult() {
return $this->tie_cult;
#return $this->tie_cult;
$iter = $this->nodes->getIterator();
while($iter->hasNext()) {
$curr = $iter->getNext();
if($curr->hasTieCult()) {
return true;
}
}
return false;
}
function isTiedRace($r) {
#return $this->tie_race;
$iter = $this->nodes->getIterator();
while($iter->hasNext()) {
$curr = $iter->getNext();
if($curr->isTiedRace($r)) {
return true;
}
}
return false;
}
function isTiedCiv($c) {
#return $this->tie_civ;
$iter = $this->nodes->getIterator();
while($iter->hasNext()) {
$curr = $iter->getNext();
if($curr->isTiedCiv($c)) {
return true;
}
}
return false;
}
function isTiedCult($c) {
#return $this->tie_cult;
$iter = $this->nodes->getIterator();
while($iter->hasNext()) {
$curr = $iter->getNext();
if($curr->isTiedCult($c)) {
return true;
}
}
return false;
}
function getImage() {
@ -177,5 +252,9 @@
return $this->parent->isHeroic();
}
function isContest() {
return $this->parent->isContest();
}
}
?>

View file

@ -12,7 +12,9 @@
protected $ties_civ_dev;
protected $cult;
protected $civ;
protected $race;
protected $heroic;
protected $contest;
function AchCategory($id,$race = null,$cult = null,$civ = null) {
global $DBc,$_USER;
@ -40,7 +42,7 @@
$this->id = $DBc->sqlEscape($id);
$res = $DBc->sqlQuery("SELECT * FROM ach_achievement LEFT JOIN (ach_achievement_lang) ON (aal_lang='".$_USER->getLang()."' AND aal_achievement=aa_id) WHERE aa_category='".$this->id."' AND (aa_tie_race IS NULL OR aa_tie_race LIKE '".$race."') AND (aa_tie_cult IS NULL OR aa_tie_cult LIKE '".$cult."') AND (aa_tie_civ IS NULL OR aa_tie_civ LIKE '".$civ."') ORDER by aa_sticky DESC, aal_name ASC");
$res = $DBc->sqlQuery("SELECT * FROM ach_achievement LEFT JOIN (ach_achievement_lang) ON (aal_lang='".$_USER->getLang()."' AND aal_achievement=aa_id) WHERE aa_category='".$this->id."' ORDER by aa_sticky DESC, aal_name ASC");
$sz = sizeof($res);
for($i=0;$i<$sz;$i++) {
@ -54,11 +56,12 @@
}
}
$res = $DBc->sqlQuery("SELECT ac_heroic FROM ach_category WHERE ac_id='".$this->id."'");
$res = $DBc->sqlQuery("SELECT ac_heroic,ac_contest FROM ach_category WHERE ac_id='".$this->id."'");
$this->heroic = $res[0]['ac_heroic'];
$this->contest = $res[0]['ac_contest'];
//load counts for tie determination
$res = $DBc->sqlQuery("SELECT count(*) as anz FROM ach_achievement WHERE aa_tie_cult IS NOT NULL AND aa_category='".$this->id."' AND aa_dev='0'");
/*$res = $DBc->sqlQuery("SELECT count(*) as anz FROM ach_achievement WHERE aa_tie_cult IS NOT NULL AND aa_category='".$this->id."' AND aa_dev='0'");
$this->ties_cult = $res[0]['anz'];
$res = $DBc->sqlQuery("SELECT count(*) as anz FROM ach_achievement WHERE aa_tie_civ IS NOT NULL AND aa_category='".$this->id."' AND aa_dev='0'");
@ -74,7 +77,40 @@
$this->ties_cult_dev = $res[0]['anz'];
$res = $DBc->sqlQuery("SELECT count(*) as anz FROM ach_achievement WHERE aa_tie_civ IS NOT NULL AND aa_category='".$this->id."'");
$this->ties_civ_dev = $res[0]['anz'];
$this->ties_civ_dev = $res[0]['anz'];*/
$iter = $this->nodes->getIterator();
$tmp = false;
while($iter->hasNext()) {
$curr = $iter->getNext();
if($curr->getTieRace()) {
$tmp = true;
break;
}
}
$this->ties_race = $tmp;
$iter = $this->nodes->getIterator();
$tmp = false;
while($iter->hasNext()) {
$curr = $iter->getNext();
if($curr->getTieCiv()) {
$tmp = true;
break;
}
}
$this->ties_civ = $tmp;
$iter = $this->nodes->getIterator();
$tmp = false;
while($iter->hasNext()) {
$curr = $iter->getNext();
if($curr->getTieCult()) {
$tmp = true;
break;
}
}
$this->ties_cult = $tmp;
}
#@override Parentum::makeChild()
@ -82,6 +118,10 @@
return new AchAchievement($a,$this);
}
function isTiedRace() {
return ($this->ties_race > 0);
}
function isTiedCult() {
return ($this->ties_cult > 0);
}
@ -90,6 +130,10 @@
return ($this->ties_civ > 0);
}
function isTiedRaceDev() {
return ($this->ties_race_dev > 0);
}
function isTiedCultDev() {
return ($this->ties_cult_dev > 0);
}
@ -106,8 +150,16 @@
return $this->cult;
}
function getCurrentRace() {
return $this->race;
}
function isHeroic() {
return ($this->heroic == 1);
}
function isContest() {
return ($this->contest == 1);
}
}
?>

View file

@ -36,7 +36,7 @@
protected $order;
function AchMenuNode($data,$parent) {
global $DBc,$_USER;
global $DBc,$_USER,$_CONF;
parent::__construct();
@ -49,6 +49,11 @@
$this->open = ($this->id == $data['open']);
$this->dev = $data['ac_dev'];
if($this->name == null) {
$res = $DBc->sqlQuery("SELECT * FROM ach_category_lang WHERE acl_lang='".$_CONF['default_lang']."' AND acl_category='".$this->id."'");
$this->name = $res[0]['acl_name'];
}
$res = $DBc->sqlQuery("SELECT * FROM ach_category LEFT JOIN (ach_category_lang) ON (acl_lang='".$_USER->getLang()."' AND acl_category=ac_id) WHERE ac_parent='".$this->id."' ORDER by ac_order ASC, acl_name ASC");
$sz = sizeof($res);

View file

@ -19,7 +19,7 @@
$tmp['ac_id'] = 0;
$tmp['ac_parent'] = null;
$tmp['acl_name'] = get_translation('ach_summary',$_USER->getLang());
$tmp['ac_image'] = "test.png";
$tmp['ac_image'] = "summary.png";
$tmp['ac_order'] = -1;
$tmp['open'] = $open;
$this->addChild(new AchMenuNode($tmp,$this));

View file

@ -11,7 +11,7 @@
protected $metalink;
function AchObjective($data,$parent) {
global $DBc,$_USER;
global $DBc,$_USER,$_CONF;
parent::__construct();
@ -28,6 +28,17 @@
if($this->metalink != null) {
$this->name = $data['aal_name'];
if($this->name == null) {
$res = $DBc->sqlQuery("SELECT * FROM ach_achievement_lang WHERE aal_lang='".$_CONF['default_lang']."' AND aal_achievement='".$this->metalink."'");
$this->name = $res[0]['aal_name'];
}
}
else {
if($this->name == null) {
$res = $DBc->sqlQuery("SELECT * FROM ach_objective_lang WHERE aol_lang='en' AND aol_objective='".$this->id."'");
$this->name = $res[0]['aol_name'];
}
}
$this->progress = $this->value;

View file

@ -10,10 +10,14 @@
$this->menu = $menu;
#die("x:".$size);
//read all recent tasks of user
//make distinct achievement list
$res = $DBc->sqlQuery("SELECT DISTINCT aa_id,ach.*,(SELECT aal_name FROM ach_achievement_lang WHERE aal_lang='".$_USER->getLang()."' AND aal_achievement=ach.aa_id) as aal_name, (SELECT aal_template FROM ach_achievement_lang WHERE aal_lang='".$_USER->getLang()."' AND aal_achievement=ach.aa_id) as aal_template FROM ach_achievement as ach,ach_task,ach_player_task WHERE at_achievement=aa_id AND apt_player='".$_USER->getID()."' AND apt_task=at_id ORDER by apt_date DESC LIMIT 0,".($size-1));
$res = $DBc->sqlQuery("SELECT DISTINCT aa_id,ach.*,(SELECT aal_name FROM ach_achievement_lang WHERE aal_lang='".$_USER->getLang()."' AND aal_achievement=ach.aa_id) as aal_name, (SELECT aal_template FROM ach_achievement_lang WHERE aal_lang='".$_USER->getLang()."' AND aal_achievement=ach.aa_id) as aal_template FROM ach_achievement as ach,ach_task,ach_player_task WHERE at_achievement=aa_id AND apt_player='".$_USER->getID()."' AND apt_task=at_id ORDER by apt_date DESC LIMIT 0,".$size);
#echo var_export($res,true);
$sz = sizeof($res);
for($i=0;$i<$sz;$i++) {
@ -106,5 +110,9 @@
function isHeroic() {
return false;
}
function isContest() {
return false;
}
}
?>

View file

@ -37,13 +37,16 @@
protected $parent_id;
protected $inherit_obj;
private $heritage_list;
protected $tie_race;
protected $tie_cult;
protected $tie_civ;
function AchTask($data,$parent) {
global $DBc,$_USER;
global $DBc,$_USER,$_CONF;
parent::__construct();
$this->heritage_list = array();
#$this->heritage_list = array();
$this->setParent($parent);
$this->setID($data['at_id']);
@ -56,7 +59,18 @@
$this->parent_id = $data['at_parent'];
$this->inherit_obj = $data['at_inherit'];
#if($this->inherit_obj == 0) {
if($this->inherit_obj == 1) {
$this->heritage_list = new AVLTree();
}
else {
$this->heritage_list = null;
}
if($this->name == null) {
$res = $DBc->sqlQuery("SELECT * FROM ach_task_lang WHERE atl_lang='".$_CONF['default_lang']."' AND atl_task='".$this->id."'");
$this->name = $res[0]['atl_name'];
$this->template = $res[0]['atl_template'];
}
$res = $DBc->sqlQuery("SELECT * FROM ach_objective LEFT JOIN (ach_objective_lang) ON (aol_lang='".$_USER->getLang()."' AND aol_objective=ao_id) LEFT JOIN (ach_player_objective) ON (apo_objective=ao_id AND apo_player='".$_USER->getID()."') LEFT JOIN (ach_achievement,ach_achievement_lang) ON (aa_id=ao_metalink AND aa_id=aal_achievement AND aal_lang='".$_USER->getLang()."') WHERE ao_task='".$this->id."' ORDER by aol_name ASC,aal_name ASC");
@ -64,7 +78,31 @@
for($i=0;$i<$sz;$i++) {
$this->addChild($this->makeChild($res[$i]));
}
#}
//load ties
$res = $DBc->sqlQuery("SELECT attr_race FROM ach_task_tie_race WHERE attr_task='".$this->id."'");
$sz = sizeof($res);
$this->tie_race = array();
for($i=0;$i<$sz;$i++) {
$this->tie_race[] = $res[$i]['attr_race'];
}
$res = $DBc->sqlQuery("SELECT attcult_cult FROM ach_task_tie_cult WHERE attcult_task='".$this->id."'");
$sz = sizeof($res);
$this->tie_cult = array();
for($i=0;$i<$sz;$i++) {
$this->tie_cult[] = $res[$i]['attcult_cult'];
}
$res = $DBc->sqlQuery("SELECT attciv_civ FROM ach_task_tie_civ WHERE attciv_task='".$this->id."'");
$sz = sizeof($res);
$this->tie_civ = array();
for($i=0;$i<$sz;$i++) {
$this->tie_civ[] = $res[$i]['attciv_civ'];
}
}
function loadHeritage() {
@ -79,7 +117,7 @@
while($iter->hasNext()) {
$curr = $iter->getNext();
$this->addChild($curr);
$this->heritage_list[] = $curr->getID();
$this->heritage_list->insert($curr);
}
}
@ -93,7 +131,46 @@
}
function isInherited($id) {
return in_array($id,$this->heritage_list);
if($this->getHeritage() == 0) {
return false;
}
if($this->heritage_list == null) {
return false;
}
return ($this->heritage_list->find($id) != null);
}
function hasTieRace() {
return (sizeof($this->tie_race) != 0);
}
function hasTieCult() {
return (sizeof($this->tie_cult) != 0);
}
function hasTieCiv() {
return (sizeof($this->tie_civ) != 0);
}
function isTiedRace($r) {
if(sizeof($this->tie_race) == 0) {
return true;
}
return in_array($r,$this->race);
}
function isTiedCult($c) {
if(sizeof($this->tie_cult) == 0) {
return true;
}
return in_array($c,$this->tie_cult);
}
function isTiedCiv($c) {
if(sizeof($this->tie_civ) == 0) {
return true;
}
return in_array($c,$this->tie_civ);
}
function getAchievement() {

View file

@ -83,7 +83,7 @@
}
function removeNode($id) { // remove a node
$this->avl->inorder();
#$this->avl->inorder();
$n = $this->findNode($id);
if($n != null) {

View file

@ -7,7 +7,7 @@
}
function getID() {
return $this->data["cid"];
return $this->data["id"];
}
function getLang() {
@ -35,7 +35,7 @@
}
function getName() {
return $this->data['name'];
return $this->data['char_name'];
}
}
?>

View file

@ -5,11 +5,12 @@
$_CONF = array();
$_CONF['summary_size'] = 5;
#$_CONF['default_lang'] = 'en';
$_CONF['summary_size'] = 3;
$_CONF['default_lang'] = 'en';
$_CONF['enable_webig'] = true;
$_CONF['enable_offgame'] = true;
$_CONF['image_url'] = "http://www.3025-game.de/special/app_achievements/";
$_CONF['image_cdate'] = 0; // timestamp to bybass image cache ingame
$_CONF['use_fb'] = false;
$_CONF['fb_id'] = "447985781893176";

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

View file

@ -1,6 +1,6 @@
<?php
function ach_render() {
global $_USER;
global $_USER,$_CONF;
$c = "<table>
<tr>
@ -25,7 +25,7 @@
$cat = new AchCategory($open,$_REQUEST['cult'],$_REQUEST['civ']);
}
else {
$cat = new AchSummary($menu,8);
$cat = new AchSummary($menu,$_CONF['summary_size']);
$c .= ach_render_summary_header();
}
@ -110,9 +110,9 @@
function ach_render_yubopoints() {
global $DBc,$_USER,$_CONF;
$res = $DBc->sqlQuery("SELECT sum(at_value) as anz FROM ach_task,ach_player_task WHERE ap_id=apt_task AND apt_player='".$_USER->getID()."'");
$res = $DBc->sqlQuery("SELECT sum(at_value) as anz FROM ach_task,ach_player_task WHERE at_id=apt_task AND apt_player='".$_USER->getID()."'");
$html = "<font size='32px'>".$_USER->getName()."&nbsp;<img src='".$_CONF['image_url']."pic/yubo_done.png'>&nbsp;".max(0,$res[0]['anz'])."</font>";
$html = "<font size='32px'>".$_USER->getName()."&nbsp;<img src='".$_CONF['image_url']."pic/yubo_done.png?cacheid=".$_CONF['image_cdate']."'>&nbsp;".max(0,$res[0]['anz'])."</font>";
return $html;
}
@ -148,10 +148,10 @@
$html .= "<tr><td>";
if($sub == 0) {
$html .= "<img src='".$_CONF['image_url']."pic/menu/ig_".$curr->getImage()."' />";
$html .= "<img src='".$_CONF['image_url']."pic/menu/ig_".$curr->getImage()."?cacheid=".$_CONF['image_cdate']."' />";
}
else {
$html .= "<img src='".$_CONF['image_url']."pic/menu_space.png' />";
$html .= "<img src='".$_CONF['image_url']."pic/menu_space.png?cacheid=".$_CONF['image_cdate']."' />";
}
$html .= "</td><td><a href='?lang=en&cat=".$curr->getID()."'><font size='".(16-$sub)."px'";
if($curr->isOpen()) {
@ -173,11 +173,12 @@
}
function ach_render_category(&$cat) {
#return "";
global $_USER;
$html = "";
if($cat->isHeroic() && !$cat->hasDone()) {
return "<center style='font-size:24px;'>You haven't earned any Heroic Deeds so far.</center>";
return "<center style='font-size:24px;'>".get_translation('ach_no_heroic_deeds',$_USER->getLang())."</center>";
}
if($cat->isTiedCult() || $cat->isTiedCiv()) {
@ -220,13 +221,16 @@
<td width='450px' bgcolor='#D2CBDC88'>
<table width='450px' cellpadding='3px'>
<tr>
<td width='70px'><img src='".$_CONF['image_url']."pic/icon/".$ach->getImage()."'></td>
<td width='70px'><img src='".$_CONF['image_url']."pic/icon/".$ach->getImage()."?cacheid=".$_CONF['image_cdate']."'></td>
<td><center><font size='22px'><b>".$ach->getName()."</b></font></center>
<table>".ach_render_task_done($ach)."</table>
</td>
<td width='35px'>";
if(!$ach->isHeroic()) {
$html .= "<font size='24px' color='#000000'>".$ach->getValueDone()."</font><br><img src='".$_CONF['image_url']."pic/yubo_done.png'>";
if((!$ach->isHeroic() && !$ach->isContest()) && $ach->getValueDone() > 0) {
$html .= "<font size='24px' color='#000000'>".$ach->getValueDone()."</font><br><img src='".$_CONF['image_url']."pic/yubo_done.png?cacheid=".$_CONF['image_cdate']."'>";
}
else {
$html .= '<img src="'.$_CONF['image_url'].'pic/star_done.png?cacheid='.$_CONF['image_cdate'].'"><br>';
}
$html .= "</td>
</tr>
@ -248,11 +252,15 @@
<td width='450px' bgcolor='#D2CBDC33'>
<table width='450px' cellpadding='3px'>
<tr>
<td width='70px'><img src='".$_CONF['image_url']."pic/icon/grey/".$ach->getImage()."'></td>
<td width='70px'><img src='".$_CONF['image_url']."pic/icon/grey/".$ach->getImage()."?cacheid=".$_CONF['image_cdate']."'></td>
<td><center><font size='22px'><b>".$ach->getName()."</b></font></center>
<table>".ach_render_task_open($ach)."</table>
</td>
<td width='35px'><font size='22px' color='#000000'>".$ach->getValueOpen()."</font><br><img src='".$_CONF['image_url']."pic/yubo_pending.png'></td>
<td width='35px'>";
if(!$ach->isHeroic() && !$ach->isContest()) {
$html .= "<font size='22px' color='#000000'>".$ach->getValueOpen()."</font><br><img src='".$_CONF['image_url']."pic/yubo_pending.png?cacheid=".$_CONF['image_cdate']."'>";
}
$html .= "</td>
</tr>
</table>
</td>
@ -294,7 +302,11 @@
if($task->inDev()) {
continue;
}
$html .= "<tr><td><font color='#66CC00'><b>".$task->getDisplayName()."</b></font> ( ".date('d.m.Y',$task->getDone())." ) <img src='".$_CONF['image_url']."pic/yubo_done_small.png' /> ".$task->getValue()."</td></tr>";
$html .= "<tr><td><font color='#66CC00'><b>".$task->getDisplayName()."</b></font><br>( ".date('d.m.Y',$task->getDone())." )";
if($task->getValue() > 0) {
$html .= " <img src='".$_CONF['image_url']."pic/yubo_done_small.png?cacheid=".$_CONF['image_cdate']."' /> ".$task->getValue();
}
$html .= "</td></tr>";
}
return $html;
@ -358,10 +370,10 @@
$html = "";
if($obj->isdone()) {
$html .= "<img src='".$_CONF['image_url']."pic/check.png' height='10px' />&nbsp;<font color='#71BE02;'>";
$html .= "<img src='".$_CONF['image_url']."pic/check.png?cacheid=".$_CONF['image_cdate']."' height='10px' />&nbsp;<font color='#71BE02;'>";
}
else {
$html .= "<img src='".$_CONF['image_url']."pic/pending.png' height='10px' />&nbsp;<font color='#999999;'>";
$html .= "<img src='".$_CONF['image_url']."pic/pending.png?cacheid=".$_CONF['image_cdate']."' height='10px' />&nbsp;<font color='#999999;'>";
}
$html .= $obj->getDisplayName()."</font>";
@ -383,8 +395,9 @@
return "<table cellspacing='0' cellpadding='0'>
<tr>
<td><img src='".$_CONF['image_url']."pic/icon/".$grey."small/".$obj->getMetaImage()."' /></td>
<td><font color='".$col."'>&nbsp;".$obj->getDisplayName()."</font></td>
<td><img src='".$_CONF['image_url']."pic/icon/".$grey."small/".$obj->getMetaImage()."?cacheid=".$_CONF['image_cdate']."' /></td>
<td>&nbsp;</td>
<td><font color='".$col."'>".$obj->getDisplayName()."</font></td>
</tr>
</table>";
}
@ -466,7 +479,7 @@
$html .= "<tr>";
}
$html .= "<td width='225px'>".$elem[0]."<br>";
$html .= "<td width='225px'>".$elem[0];
if($elem[3] == false) {
$html .= ach_render_progressbar($elem[1],$elem[2],150);
}
@ -474,7 +487,7 @@
$html .= ach_render_progressbar($elem[1],false,150);
}
$html .= "</td>";
$html .= "<br></td>";
$sum_done += $elem[1];
$sum_total += $elem[2];
@ -494,7 +507,7 @@
<font size='30px' color='#FFFFFF'>".get_translation('ach_summary_stats',$_USER->getLang())."</font>
<table width='450px'>
<tr>
<td width='450px'>".get_translation('ach_summary_stats_total',$_USER->getLang())."<br>".ach_render_progressbar($sum_done,$sum_total,350)."<br></td>
<td width='450px'>".get_translation('ach_summary_stats_total',$_USER->getLang()).ach_render_progressbar($sum_done,$sum_total,350)."<br></td>
</tr>
<tr>
<td width='450px'><table width='450px'>".$html."</table></td>

View file

@ -1,6 +1,6 @@
<?php
function ach_render() {
global $user;
global $user,$_CONF;
$c = "<center><table>
<tr>
@ -34,7 +34,8 @@
$cat = new AchCategory($open,null,$_REQUEST['cult'],$_REQUEST['civ']);
}
else {
$cat = new AchSummary($menu,8);
#die($_CONF['summary_size']);
$cat = new AchSummary($menu,$_CONF['summary_size']);
$c .= ach_render_summary_header();
}
@ -133,6 +134,8 @@
}
function ach_render_facebook() {
return "";
return "<div id='auth-status'>
<div id='auth-loggedout'>
<a href='#' id='auth-loginlink'><img src='pic/f-connect.png' height='30px'></a>
@ -164,6 +167,7 @@
border:1px solid #000000;
margin-bottom:2px;
color:#FFFFFF;
width:100%;
}
.ach_menu:hover {
color:orange;
@ -192,7 +196,7 @@
$html .= "<span class='ach_mspan'><a href='?lang=en&cat=".$curr->getID()."'><table class='ach_menu'>
<tr>";
if($sub == 0) {
$html .= "<td><img src='".$_CONF['image_url']."pic/menu/".$curr->getImage()."' /></td>";
$html .= "<td style='width:32px;'><img src='".$_CONF['image_url']."pic/menu/".$curr->getImage()."' /></td>";
}
$html .= "<td style='font-size:".(20-$sub)."px;font-weight:bold;";
if($curr->isOpen()) {
@ -210,10 +214,11 @@
}
function ach_render_category(&$cat) {
global $_USER;
$html = "";
if($cat->isHeroic() && !$cat->hasDone()) {
return "<center style='font-size:24px;'>You haven't earned any Heroic Deeds so far.</center>";
return "<center style='font-size:24px;'>".get_translation('ach_no_heroic_deeds',$_USER->getLang())."</center>";
}
if($cat->isTiedCult() || $cat->isTiedCiv()) {
@ -264,13 +269,16 @@
<td rowspan="2" valign="top"><img src="'.$_CONF['image_url'].'pic/icon/'.$ach->getImage().'"></td>
<td width="100%"><center><span style="font-weight:bold;font-size:24px;color:#000000;">'.$ach->getName().'</span></center></td>
<td rowspan="2" valign="top" style="font-weight: bold; text-align: center; font-size: 30px;color:#000000;padding-right:10px;">';
if(!$ach->isHeroic()) {
if((!$ach->isHeroic() && !$ach->isContest()) && $ach->getValueDone() > 0) {
$html .= $ach->getValueDone().'<br><img src="'.$_CONF['image_url'].'pic/yubo_done.png">';
}
else {
$html .= '<img src="'.$_CONF['image_url'].'pic/star_done.png"><br>&nbsp;';
}
$html .= '</td>
</tr><tr><td align="center" valign="top">';
</tr><tr><td align="center" valign="top"><table>';
$html .= ach_render_task_done($ach);
$html .= '</td></tr></tbody></table></center>
$html .= '</table></td></tr></tbody></table></center>
</td>
<td style="background-image: url('.$_CONF['image_url'].'pic/bar_done_r.png);"></td>
</tr>
@ -300,9 +308,14 @@
<tbody><tr>
<td rowspan="2" valign="top"><img src="'.$_CONF['image_url'].'pic/icon/grey/'.$ach->getImage().'"></td>
<td width="100%"><center><span style="font-weight:bold;font-size:24px;color:#FFFFFF;">'.$ach->getName().'</span></center></td>
<td rowspan="2" valign="top" style="font-weight: bold; text-align: center; font-size: 30px;color:#FFFFFF;padding-right:10px;">
'.$ach->getValueOpen().'<br><img src="'.$_CONF['image_url'].'pic/yubo_pending.png">
</td>
<td rowspan="2" valign="top" style="font-weight: bold; text-align: center; font-size: 30px;color:#FFFFFF;padding-right:10px;">';
if(!$ach->isHeroic() && !$ach->isContest()) {
$html .= $ach->getValueOpen().'<br><img src="'.$_CONF['image_url'].'pic/yubo_pending.png">';
}
else {
$html .= '<img src="pic/star_pending.png">';
}
$html .= '</td>
</tr><tr><td align="center" valign="top">';
$html .= ach_render_task_open($ach);
$html .= '</td></tr></tbody></table></center>
@ -350,7 +363,11 @@
if($task->inDev()) {
continue;
}
$html .= "<div style='display:block;'><span style='color:#66CC00;font-weight:bold;'>".$task->getDisplayName()."</span> ( ".date('d.m.Y',$task->getDone())." ) <img src='".$_CONF['image_url']."pic/yubo_done.png' width='15px' /> ".$task->getValue()."</div>";
$html .= "<tr><td><span style='color:#66CC00;font-weight:bold;'>".$task->getDisplayName()."</span></td><td>( ".date('d.m.Y',$task->getDone())." )</td>";
if($task->getValue() > 0) {
$html .= "<td><img src='".$_CONF['image_url']."pic/yubo_done.png' width='15px' /> ".$task->getValue()."</td>";
}
$html .= "</tr>";
}
return $html;

View file

@ -5,18 +5,20 @@ ini_set("display_errors","1");
define('APP_NAME', 'app_achievements');
require_once('../webig/config.php');
include_once('../webig/lang.php');
require_once('../config.php');
include_once('../lang.php');
include_once('lang.php');
require_once('conf.php');
// Ask to authenticate user (using ingame or session method) and fill $user with all information
ryzom_app_authenticate($user, false);
ryzom_app_authenticate($user, true);
#echo var_export($user,true);
#$user['id'] = $user['char_id'];
#$user['name'] = $user['char_name'];
$user = array();
/*$user = array();
$user['cid'] = 1;
$user['lang'] = 'en';
$user['name'] = 'Talvela';
@ -24,7 +26,7 @@ $user['race'] = "r_matis";
$user['civilization'] = "c_neutral";
$user['cult'] = "c_neutral";
$user['ig'] = ($_REQUEST['ig']==1);
#$user['ig'] = true;
#$user['ig'] = true;*/
require_once("class/RyzomUser_class.php");
$_USER = new RyzomUser($user);
@ -55,15 +57,15 @@ require_once("class/AchAchievement_class.php");
require_once("class/AchTask_class.php");
require_once("class/AchObjective_class.php");
require_once("fb/facebook.php");
#require_once("fb/facebook.php");
// Update user acces on Db
$DBc = ryDB::getInstance(APP_NAME."_test");
#$DBc = ryDB::getInstance(APP_NAME);
#$DBc = ryDB::getInstance(APP_NAME."_test");
$DBc = ryDB::getInstance(APP_NAME);
$c = "";
if(!$_USER->isIG()) {
$facebook = new Facebook(array(
/*$facebook = new Facebook(array(
'appId' => $_CONF['fb_id'],
'secret' => $_CONF['fb_secret'],
'cookie' => true
@ -87,7 +89,7 @@ if(!$_USER->isIG()) {
}
else {
$DBc->sqlQuery("INSERT INTO ach_fb_token (aft_player,aft_token,aft_date,aft_allow) VALUES ('".$_USER->getID()."','".$DBc->sqlEscape($facebook->getAccessToken())."','".time()."','1') ON DUPLICATE KEY UPDATE aft_token='".$DBc->sqlEscape($facebook->getAccessToken())."', aft_date='".time()."'");
}
}*/
}

View file

@ -1,88 +1,91 @@
<?php
<?php // %2012-10-03T19:19:10+02:00
$__texts = array (
'ach_summary' =>
array (
'en' => 'Summary',
'fr' => '',
'de' => '',
'ru' => '',
'fr' => 'Résumé',
'de' => 'Übersicht',
'ru' => 'Резюме',
),
'ach_summary_header' =>
array (
'en' => 'Recent Achievements',
'fr' => '',
'de' => '',
'ru' => '',
'fr' => 'Derniers Accomplissements',
'de' => 'Aktuelle Erfolge',
'ru' => 'недавние достижения',
),
'ach_summary_stats' =>
array (
'en' => 'Statistics',
'fr' => '',
'de' => '',
'fr' => 'Statistiques',
'de' => 'Statistik',
'ru' => '',
),
'ach_summary_stats_total' =>
array (
'en' => 'Total',
'fr' => '',
'de' => '',
'fr' => 'Total',
'de' => 'Gesamt',
'ru' => '',
),
'ach_c_neutral' =>
array (
'en' => 'neutral',
'fr' => '',
'de' => '',
'en' => 'Neutral',
'fr' => 'Neutre',
'de' => 'Neutral',
'ru' => '',
),
'ach_allegiance_neutral_cult' =>
array (
'en' => 'While being of %s allegiance with the higher powers',
'fr' => '',
'fr' => 'En ayant %s de renommée avec les puissances',
'de' => '',
'ru' => '',
),
'ach_allegiance_neutral_civ' =>
array (
'en' => 'While being of %s allegiance with the homin civilizations',
'fr' => '',
'fr' => 'En ayant %s de renommée avec les nations homines',
'de' => '',
'ru' => '',
),
'ach_allegiance_neutral' =>
array (
'en' => 'While being of %s allegiance',
'fr' => '',
'fr' => 'En ayant %s de renommée',
'de' => '',
'ru' => '',
),
'ach_allegiance_start' =>
array (
'en' => 'While being aligned with the ',
'fr' => '',
'fr' => 'En appartenant à',
'de' => '',
'ru' => '',
),
'ach_allegiance_and' =>
array (
'en' => ' and the ',
'fr' => '',
'fr' => ' et le',
'de' => '',
'ru' => '',
),
'ach_allegiance_end' =>
array (
'en' => ', accomplish the following achievements:',
'fr' => '',
'de' => '',
'fr' => ', effectuez les accomplissements suivants : ',
'de' => ', erfüllen die folgenden Leistungen: ',
'ru' => '',
),
'ach_no_heroic_deeds' =>
array (
'en' => 'You haven\'t earned any Heroic Deeds so far.',
'fr' => 'Vous n\'avez gagné aucun acte héroïque jusqu\'à présent.',
'de' => 'Du hast noch keine Heldentaten vollbracht.',
'ru' => '',
),
);
if(isset($ryzom_texts))
$ryzom_texts = array_merge ($__texts, $ryzom_texts);
else
$ryzom_texts = $__texts;
?>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

View file

@ -101,7 +101,7 @@
function update() {
global $DBc;
$DBc->sqlQuery("UPDATE ach_achievement SET aa_category='".$this->getCategory()."',aa_parent=".mkn($this->getParentID()).",aa_tie_race=".mkn($this->getTieRace()).",aa_tie_cult=".mkn($this->getTieCult()).",aa_tie_civ=".mkn($this->getTieCiv()).",aa_image='".$DBc->sqlEscape($this->getImage())."',aa_dev='".$this->getDev()."',aa_sticky='".$DBc->sqlEscape($this->getSticky())."' WHERE aa_id='".$this->getID()."'");
$DBc->sqlQuery("UPDATE ach_achievement SET aa_category='".$this->getCategory()."',aa_parent=".mkn($this->getParentID()).",aa_image='".$DBc->sqlEscape($this->getImage())."',aa_dev='".$this->getDev()."',aa_sticky='".$DBc->sqlEscape($this->getSticky())."' WHERE aa_id='".$this->getID()."'");
#MISSING: update lang entry
$DBc->sqlQuery("INSERT INTO ach_achievement_lang (aal_achievement,aal_lang,aal_name,aal_template) VALUES ('".$this->getID()."','en','".$DBc->sqlEscape($this->getName())."',".mkn($this->getTemplate()).") ON DUPLICATE KEY UPDATE aal_name='".$DBc->sqlEscape($this->getName())."',aal_template=".mkn($this->getTemplate())."");
@ -112,7 +112,7 @@
$this->dev = 1;
$DBc->sqlQuery("INSERT INTO ach_achievement (aa_category,aa_parent,aa_tie_race,aa_tie_cult,aa_tie_civ,aa_image,aa_dev,aa_sticky) VALUES ('".$this->getCategory()."',".mkn($this->getParentID()).",".mkn($this->getTieRace()).",".mkn($this->getTieCult()).",".mkn($this->getTieCiv()).",'".$DBc->sqlEscape($this->getImage())."','1','".$DBc->sqlEscape($this->getSticky())."')");
$DBc->sqlQuery("INSERT INTO ach_achievement (aa_category,aa_parent,aa_image,aa_dev,aa_sticky) VALUES ('".$this->getCategory()."',".mkn($this->getParentID()).",'".$DBc->sqlEscape($this->getImage())."','1','".$DBc->sqlEscape($this->getSticky())."')");
$id = $DBc->insertID();
$this->setID($id);

View file

@ -312,9 +312,9 @@ function '.$func.'('.$match[2][$key].',$_P,$_CB) {
#CACHE ([^ ]+) AS ([$][^ ]+);#
$match = array();
preg_match_all("#CACHE ([^ ]+) AS ([$][^ ]+);#",$this->ruleset,$match);
preg_match_all("#CACHE ([^ ]+) AS ([$][^;]+);#",$this->ruleset,$match);
foreach($match[0] as $key=>$elem) {
$tmp = $match[2][$key].' = $_CACHE->getData('.$match[1][$key].');';
$tmp = $match[2][$key].' = $_CACHE->getData(\''.$match[1][$key].'\');';
//replace
$res = str_replace($elem,$tmp,$res);
@ -322,9 +322,9 @@ function '.$func.'('.$match[2][$key].',$_P,$_CB) {
#CACHE ([^ ]+) SET ([$][^ ]+);#
$match = array();
preg_match_all("#CACHE ([^ ]+) SET ([$][^ ]+);#",$this->ruleset,$match);
preg_match_all("#CACHE ([^ ]+) SET ([$][^;]+);#",$this->ruleset,$match);
foreach($match[0] as $key=>$elem) {
$tmp = '$_CACHE->writeData('.$match[1][$key].','.$match[2][$key].');';
$tmp = '$_CACHE->writeData(\''.$match[1][$key].'\','.$match[2][$key].');';
//replace
$res = str_replace($elem,$tmp,$res);
@ -332,7 +332,7 @@ function '.$func.'('.$match[2][$key].',$_P,$_CB) {
#SCRIPT ([^ ]+) AS ([$][^ ]+);#
$match = array();
preg_match_all("#SCRIPT ([^\(]+)\(([^\)]*)\) AS ([$][^ ]+);#",$this->ruleset,$match);
preg_match_all("#SCRIPT ([^\(]+)\(([^\)]*)\) AS ([$][^;]+);#",$this->ruleset,$match);
foreach($match[0] as $key=>$elem) {
$tmp = '@include_once("script/'.$match[1][$key].'_script.php");
'.$match[3][$key].' = '.$match[1][$key].'('.$match[2][$key].');';

View file

@ -65,5 +65,22 @@
$n->insert();
$this->addOpen($n);
}
function setLang($lang,$txt) {
global $DBc;
$DBc->sqlQuery("INSERT INTO ach_category_lang (acl_category,acl_lang,acl_name) VALUES ('".$this->getID()."','".$DBc->sqlEscape($lang)."','".$DBc->sqlEscape($txt)."') ON DUPLICATE KEY UPDATE acl_name='".$DBc->sqlEscape($txt)."'");
}
function getLang($lang) {
global $DBc;
$res = $DBc->sqlQuery("SELECT acl_name FROM ach_category_lang WHERE acl_category='".$this->getID()."' AND acl_lang='".$DBc->sqlEscape($lang)."'");
return $res[0]['acl_name'];
}
function update() {
global $DBc;
}
}
?>

View file

@ -83,7 +83,7 @@
function setLang($lang,$txt) { // write language
global $DBc,$_USER;
$DBc->sqlQuery("INSERT INTO ach_objective_lang (aol_task,aol_lang,aol_name) VALUES ('".$this->getID()."','".$DBc->sqlEscape($lang)."','".$DBc->sqlEscape($txt)."') ON DUPLICATE KEY UPDATE aol_name='".$DBc->sqlEscape($txt)."'");
$DBc->sqlQuery("INSERT INTO ach_objective_lang (aol_objective,aol_lang,aol_name) VALUES ('".$this->getID()."','".$DBc->sqlEscape($lang)."','".$DBc->sqlEscape($txt)."') ON DUPLICATE KEY UPDATE aol_name='".$DBc->sqlEscape($txt)."'");
if($_USER->getLang() == $lang) {
$this->name = $txt;

View file

@ -83,7 +83,7 @@
function setLang($lang,$txt,$tpl) { // write language
global $DBc,$_USER;
$DBc->sqlQuery("INSERT INTO ach_task_lang (atl_task,atl_lang,atl_name,atl_template) VALUES ('".$this->getID()."','".$DBc->sqlEscape($lang)."','".$DBc->sqlEscape($txt)."',".mkn($tpl).") ON DUPLICATE KEY UPDATE apl_name='".$DBc->sqlEscape($txt)."',apl_template=".mkn($tpl)."");
$DBc->sqlQuery("INSERT INTO ach_task_lang (atl_task,atl_lang,atl_name,atl_template) VALUES ('".$this->getID()."','".$DBc->sqlEscape($lang)."','".$DBc->sqlEscape($txt)."',".mkn($tpl).") ON DUPLICATE KEY UPDATE atl_name='".$DBc->sqlEscape($txt)."',atl_template=".mkn($tpl)."");
if($_USER->getLang() == $lang) {
$this->name = $txt;

View file

@ -12,10 +12,10 @@
$_CONF['enable_CSR'] = true;
$_CONF['enable_ADM'] = true;
$_CONF['char_mysql_server'] = "localhost";
/*$_CONF['char_mysql_server'] = "localhost";
$_CONF['char_mysql_user'] = "root";
$_CONF['char_mysql_pass'] = "";
$_CONF['char_mysql_database'] = "app_achievements";
$_CONF['char_mysql_database'] = "app_achievements";*/
$_CONF['langs'] = array('en','de','fr','es','ru');
?>

View file

@ -544,7 +544,7 @@
</tr>
<tr>
<td class='bw'>condition value:</td>
<td><input type='text' name='ap_condition_value' value='".htmlspecialchars($task->getConditionValue(),ENT_QUOTES)."' /></td>
<td><input type='text' name='at_condition_value' value='".htmlspecialchars($task->getConditionValue(),ENT_QUOTES)."' /></td>
</tr>
<tr>
<td colspan='2'><input type='submit' value='save' /></td>

View file

@ -23,6 +23,8 @@
function adm_render_mnode(&$menu,$sub) {
global $_CONF;
$html = "";
$iter = $menu->getIterator();
while($iter->hasNext()) {
$curr = $iter->getNext();
@ -182,7 +184,7 @@ function catchTab(item,e){
while($obj->hasNext()) {
$elem = $obj->getNext();
if($task->isInherited($elem->getID())) {
if($task->isInherited($elem->getID()) || $elem->getDisplay() == "meta") {
continue;
}

View file

@ -2,7 +2,7 @@
function is_user($id) {
global $DBc_char;
$res = $DBc_char->sendSQL("SELECT count(*) as anz FROM characters WHERE char_id='".mysql_real_escape_string($id)."'","ARRAY");
$res = $DBc_char->sqlQuery("SELECT count(*) as anz FROM players WHERE id='".$DBc_char->sqlEscape($id)."'");
if($res[0]['anz'] > 0) {
return true;
@ -10,6 +10,14 @@
return false;
}
function user_get_name($id) {
global $DBc_char;
$res = $DBc_char->sqlQuery("SELECT name FROM players WHERE id='".$DBc_char->sqlEscape($id)."'");
return $res[0]['name'];
}
function csr_render_yubopoints() {
global $DBc,$_USER,$_CONF;
@ -41,7 +49,7 @@
if($_REQUEST['pname'] != "") {
$html .= "<div style='display:block;color:#000000;background-color:#FFFFFF;margin-top:5px;'>";
$res = $DBc_char->sendSQL("SELECT char_id,char_name FROM characters WHERE char_name LIKE '".mysql_real_escape_string($_REQUEST['pname'])."%'","ARRAY");
$res = $DBc_char->sqlQuery("SELECT * FROM players WHERE (name LIKE '".$DBc_char->sqlEscape(strtolower($_REQUEST['pname']))."%' OR id='".$DBc_char->sqlEscape(strtolower($_REQUEST['pname']))."') AND deleted='0' LIMIT 0,100");
$sz = sizeof($res);
if($sz == 0) {
@ -60,7 +68,7 @@
$html .= "</tr><tr>";
}
$html .= "<td><a href='?mode=player&pid=".$res[$i]['char_id']."'><b>".$res[$i]['char_name']."</b></a></td>";
$html .= "<td><a href='?mode=player&pid=".$res[$i]['id']."'><b>".$res[$i]['name']."</b></a></td>";
}
$html .= "</tr></table>";
@ -248,7 +256,7 @@
$html .= "<span style='color:#999999;font-weight:bold;display:block;'>";
if($task->getName() != null) {
$html .= $task->getName();
$html .= $task->getDisplayName();
}
else {
$html .= "[untitled]";
@ -273,7 +281,7 @@
if($task->inDev()) {
continue;
}
$html .= "<div style='display:block;'><span style='color:#66CC00;font-weight:bold;'>".$task->getName()."</span> ( ".date('d.m.Y',$task->getDone())." ) <img src='".$_CONF['image_url']."pic/yubo_done.png' width='15px' /> ".$task->getValue()." <a href='?mode=player&pid=".$_REQUEST['pid']."&cat=".$_REQUEST['cat']."&deny=".$task->getPath()."'>Task: deny</a></div>";
$html .= "<div style='display:block;'><span style='color:#66CC00;font-weight:bold;'>".$task->getDisplayName()."</span> ( ".date('d.m.Y',$task->getDone())." ) <img src='".$_CONF['image_url']."pic/yubo_done.png' width='15px' /> ".$task->getValue()." <a href='?mode=player&pid=".$_REQUEST['pid']."&cat=".$_REQUEST['cat']."&deny=".$task->getPath()."'>Task: deny</a></div>";
}
return $html;
@ -343,7 +351,7 @@
$html .= "<img src='".$_CONF['image_url']."pic/pending.png' height='10px' />&nbsp;<span style='color:#999999;'>";
}
$html .= $obj->getName();
$html .= $obj->getDisplayName();
if($obj->isdone()) {
$html .= " <a href='?mode=player&pid=".$_REQUEST['pid']."&cat=".$_REQUEST['cat']."&deny=".$obj->getPath()."'>Obj: deny</a>";
}
@ -370,7 +378,7 @@
$html .= "<table cellspacing='0' cellpadding='0'>
<tr>
<td><img src='".$_CONF['image_url']."pic/icon/".$grey.$obj->getMetaImage()."' width='20px' /></td>
<td valign='middle'><span style='color:".$col.";'>&nbsp;".$obj->getName();
<td valign='middle'><span style='color:".$col.";'>&nbsp;".$obj->getDisplayName();
if($obj->isdone()) {
$html .= " <a href='?mode=player&pid=".$_REQUEST['pid']."&cat=".$_REQUEST['cat']."&deny=".$obj->getPath()."'>Obj: deny</a>";
}
@ -393,7 +401,7 @@
else {
$col = "#999999";
}
$html .= "<div style='color:".$col.";display:block;'>".$obj->getName()."</div>";
$html .= "<div style='color:".$col.";display:block;'>".$obj->getDisplayName()."</div>";
}
$html .= "<table>

View file

@ -38,9 +38,17 @@
if($curr->isOpen()) {
$html .= "color:orange;";
}
$html .= "'>".$curr->getName()."</td>
$html .= "'>";
if($curr->inDev()) {
$html .= "<s>".$curr->getName()."</s>";
}
else {
$html .= $curr->getName();
}
$html .= "</td>
</tr>
</table></a></span>";
if($curr->hasOpenCat() != 0) {
$html .= "<div style='display:block;margin-left:25px;'>".adm_render_mnode($curr,($sub+4))."</div>";
}
@ -50,6 +58,8 @@
}
function atom_render_category(&$cat) {
global $_CONF;
$html = "<style>
.bar {
background-color:#FFFFFF;
@ -65,6 +75,30 @@
}
</style>";
$html .= "<div style='display: block; margin-bottom: 5px;'>
<div style='display:block;font-size:22px;' class='bar'>Category:<form method='post' action='?mode=lang&cat=".$_REQUEST['cat']."&act=cat_save&id=".$cat->getID()."'>
<table>
<tr>
<td>&nbsp;</td>
<td style='color:#454545;'>name</td>
</tr>";
foreach($_CONF['langs'] as $elem) {
$html .= "<tr>
<td style='color:#454545;'>".$elem."</td>
<td><input type='text' name='c_name[".$elem."]' style='width:270px;' value='".htmlspecialchars($cat->getLang($elem),ENT_QUOTES)."' /></td>
</tr>";
}
$html .= "<tr>
<td>&nbsp;</td>
<td colspan='2'><input type='submit' value='save' /></td>
</tr>
</table>
</form></div></div>";
$iter = $cat->getOpen();
while($iter->hasNext()) {
$curr = $iter->getNext();
@ -86,10 +120,10 @@
}
$html = "<div style='display: block; margin-bottom: 5px;'>
<div style='display:block;font-size:22px;' class='bar'><a href='javascript:hs(\"ach_".$ach->getID()."\",\"block\");'>[+]</a> ".$ach->getName()." <span style='font-size:12px;'>(ties= race: ".$ach->getTieRace()."; civ: ".$ach->getTieCiv()."; cult: ".$ach->getTieCult().")</span>
<div style='display:block;font-size:22px;' class='bar'><a name='jach_".$ach->getID()."'></a><a href='javascript:hs(\"ach_".$ach->getID()."\",\"block\");'>[+]</a> ".$ach->getName()."</span>
<div style='margin-left:35px;'>
<form method='post' action='?mode=lang&cat=".$_REQUEST['cat']."&act=ach_save&id=".$ach->getPathID()."'>
<form method='post' action='?mode=lang&cat=".$_REQUEST['cat']."&act=ach_save&id=".$ach->getPathID()."#jach_".$ach->getID()."'>
<table>
<tr>
<td>&nbsp;</td>
@ -139,11 +173,15 @@
$o = "block";
}
$tmp = $task->getLang('en');
if($tmp[0] != "" || $tmp[1] != '') {
$html .= "<div style='display: block; margin-bottom: 5px;'>
<div style='display:block;font-size:16px;' class='bar'><a href='javascript:hs(\"task_".$task->getID()."\",\"block\");'>[+]</a> ".$task->getDisplayName()."
<div style='display:block;font-size:16px;' class='bar'><a name='jtask_".$task->getID()."'></a><a href='javascript:hs(\"task_".$task->getID()."\",\"block\");'>[+]</a> ".$task->getDisplayName()."
<div style='margin-left:35px;'>
<form method='post' action='?mode=lang&cat=".$_REQUEST['cat']."&act=task_save&id=".$task->getPathID()."'>
<form method='post' action='?mode=lang&cat=".$_REQUEST['cat']."&act=task_save&id=".$task->getPathID()."#jtask_".$task->getID()."'>
<table>
<tr>
<td>&nbsp;</td>
@ -173,6 +211,10 @@
<div style='margin-left:25px;display:".$o.";' id='task_".$task->getID()."'>".ach_render_obj_list($task->getIterator(),$task)."</div>
</div>";
}
else {
$html .= "<div style='display: block; margin-bottom: 5px;'><div style='margin-left:25px;display:block;' id='task_".$task->getID()."'>".ach_render_obj_list($task->getIterator(),$task)."</div></div>";
}
}
return $html;
}
@ -186,17 +228,17 @@
while($obj->hasNext()) {
$elem = $obj->getNext();
if($task->isInherited($elem->getID())) {
if($task->isInherited($elem->getID()) || $elem->getDisplay() == 'hidden' || $elem->getDisplay() == "meta" || $elem->getLang('en') == "") {
continue;
}
$html .= "<div style='display: block; margin-bottom: 5px;'>
<div style='display:block;' class='bar'>&nbsp;&nbsp;".$elem->getDisplayName()."</span>
<div style='display:block;' class='bar'><a name='jobj_".$elem->getID()."'></a>&nbsp;&nbsp;".$elem->getDisplayName()."</span>
<div style='margin-left:35px;'>
<form method='post' action='?mode=lang&cat=".$_REQUEST['cat']."&act=obj_save&id=".$elem->getPathID()."'>
<form method='post' action='?mode=lang&cat=".$_REQUEST['cat']."&act=obj_save&id=".$elem->getPathID()."#jobj_".$elem->getID()."'>
<table>
<tr>
<td>&nbsp;</td>
@ -208,7 +250,7 @@
$html .= "<tr>
<td style='color:#454545;'>".$lang."</td>
<td><input type='text' name='' style='width:246px;' value='".htmlspecialchars($tmp,ENT_QUOTES)."' /></td>
<td><input type='text' name='o_name[".$lang."]' style='width:246px;' value='".htmlspecialchars($tmp,ENT_QUOTES)."' /></td>
</tr>";
}

View file

@ -0,0 +1,24 @@
<?php
function stats_render() {
global $DBc;
$html = "";
$res = $DBc->sqlQuery("SELECT SUM(sp_money) as all_money, AVG(sp_money) as avg_money, COUNT(*) as playercount FROM app_achievements.stat_players as s, webig.players as p, ring_live.characters as c, nel.user as n WHERE s.sp_char = p.id AND p.cid = c.char_id AND c.user_id = n.uid AND n.privilege=''");
$html .= "<b>Total characters</b>: ".nf($res[0]['playercount'])."<p>";
#$res = $DBc->sqlQuery("SELECT SUM(sp_money) as anz FROM stat_players");
$html .= "<b>Total money</b>: ".nf($res[0]['all_money'])."<p>";
#$res = $DBc->sqlQuery("SELECT AVG(sp_money) as anz FROM stat_players");
$html .= "<b>Average money</b>: ".nf($res[0]['avg_money'])."<p>";
$res = $DBc->sqlQuery("SELECT sp_money FROM app_achievements.stat_players as s, webig.players as p, ring_live.characters as c, nel.user as n WHERE s.sp_char = p.id AND p.cid = c.char_id AND c.user_id = n.uid AND n.privilege='' ORDER by sp_money ASC LIMIT ".floor($res[0]['playercount']/2).",1");
$html .= "<b>Mean money</b>: ".nf($res[0]['sp_money'])."<p>";
return $html;
}
?>

View file

@ -8,22 +8,24 @@ ini_set("display_errors","1");
define('APP_NAME', 'app_achievements_admin');
require_once('../webig/config.php');
include_once('../webig/lang.php');
require_once('../config.php');
include_once('../lang.php');
include_once('lang.php');
require_once('conf.php');
// Ask to authenticate user (using ingame or session method) and fill $user with all information
ryzom_app_authenticate($user, false);
ryzom_app_authenticate($user, true);
$user = array();
#echo var_export($user,true);
/*$user = array();
$user['id'] = 1;
$user['lang'] = 'en';
$user['name'] = 'Talvela';
$user['race'] = "r_matis";
$user['civilization'] = "c_neutral";
$user['cult'] = "c_neutral";
$user['admin'] = true;
$user['admin'] = true;*/
require_once($_CONF['app_achievements_path']."class/RyzomUser_class.php");
require_once("class/RyzomAdmin_class.php");
@ -72,7 +74,7 @@ require_once("class/CSRTask_class.php");
require_once("class/CSRObjective_class.php");
require_once("class/CSRAtom_class.php");
$DBc = ryDB::getInstance("app_achievements_test");
$DBc = ryDB::getInstance("app_achievements");
function mkn($x) { // make NULL function for SQL
global $DBc;
@ -123,6 +125,7 @@ $c = "<script type='text/javascript'>
<li><a href='?mode=ach'>achievement settings</a></li>
<li><a href='?mode=atom'>trigger settings</a></li>
<li><a href='?mode=lang'>language editor</a></li>
<li><a href='?mode=stats'>statistics</a></li>
</ul><p />";
}
if($_ADMIN->isCSR()) {
@ -172,6 +175,14 @@ $c .= "</div></td>
if($open != 0) {
$cat = new AdmCategory($open,'%','%','%');
if($_REQUEST['act'] == "cat_save") {
if(is_array($_REQUEST['c_name'])) {
foreach($_REQUEST['c_name'] as $key=>$elem) {
$cat->setLang($key,$_REQUEST['c_name'][$key]);
}
}
}
if($_REQUEST['act'] == "ach_save") {
$ach = $cat->getElementByPath($_REQUEST['id']);
@ -219,7 +230,7 @@ $c .= "</div></td>
*/
if($_REQUEST['mode'] == "atom" && $_ADMIN->isAdmin()) {
$c .= "<h1>Tigger Settings</h1>";
$c .= "<h1>Trigger Settings</h1>";
$user = array();
$user['id'] = 0;
@ -556,14 +567,28 @@ $c .= "</div></td>
}
/*
* Statistics page
*/
if($_REQUEST['mode'] == "stats" && $_ADMIN->isCSR()) {
require_once("include/adm_render_stats.php");
$c .= "<h1>Statistics</h1>";
$c .= stats_render();
}
/*
* CSR player manager
*/
if($_REQUEST['mode'] == "player" && $_ADMIN->isCSR()) {
$c .= "<h1>Player Administration</h1>";
$DBc_char = new mySQL($_CONF['mysql_error']);
$DBc_char->connect($_CONF['char_mysql_server'],$_CONF['char_mysql_user'],$_CONF['char_mysql_pass'],$_CONF['char_mysql_database']);
#$DBc_char = new mySQL($_CONF['mysql_error']);
#$DBc_char->connect($_CONF['char_mysql_server'],$_CONF['char_mysql_user'],$_CONF['char_mysql_pass'],$_CONF['char_mysql_database']);
$DBc_char = ryDB::getInstance("webig");
//menu
require_once("include/adm_render_csr.php");
@ -574,7 +599,7 @@ $c .= "</div></td>
$user = array();
$user['id'] = $_REQUEST['pid'];
$user['lang'] = 'en';
$user['name'] = 'Talvela';
$user['char_name'] = user_get_name($_REQUEST['pid']);
$user['race'] = "r_matis";
$user['civilization'] = "c_neutral";
$user['cult'] = "c_neutral";
@ -616,7 +641,7 @@ $c .= "</div></td>
$c .= csr_render_category($cat);
}
else {
$cat = new AchSummary($menu,8);
$cat = new AchSummary($menu,3);
$c .= ach_render_summary_header();
}

View file

@ -1,88 +1,84 @@
<?php
<?php // %2012-10-03T19:04:52+02:00
$__texts = array (
'ach_summary' =>
array (
'en' => 'Summary',
'fr' => '',
'de' => '',
'ru' => '',
'fr' => 'Résumé ',
'de' => 'Übersicht',
'ru' => 'Резюме',
),
'ach_summary_header' =>
array (
'en' => 'Recent Achievements',
'fr' => '',
'de' => '',
'ru' => '',
'fr' => 'Derniers Accomplissements',
'de' => 'Aktuelle Erfolge',
'ru' => 'недавние достижения',
),
'ach_summary_stats' =>
array (
'en' => 'Statistics',
'fr' => '',
'de' => '',
'fr' => 'Statistiques',
'de' => 'Statistiken',
'ru' => '',
),
'ach_summary_stats_total' =>
array (
'en' => 'Total',
'fr' => '',
'de' => '',
'fr' => 'Total',
'de' => 'Gesamt',
'ru' => '',
),
'ach_c_neutral' =>
array (
'en' => 'neutral',
'fr' => '',
'de' => '',
'en' => 'Neutral',
'fr' => 'Neutre',
'de' => 'Neutral',
'ru' => '',
),
'ach_allegiance_neutral_cult' =>
array (
'en' => 'While being of %s allegiance with the higher powers',
'fr' => '',
'fr' => 'En ayant %s de renommée envers les Puissances',
'de' => '',
'ru' => '',
),
'ach_allegiance_neutral_civ' =>
array (
'en' => 'While being of %s allegiance with the homin civilizations',
'fr' => '',
'fr' => 'En ayant %s de renommée envers les nations homines',
'de' => '',
'ru' => '',
),
'ach_allegiance_neutral' =>
array (
'en' => 'While being of %s allegiance',
'fr' => '',
'fr' => 'En ayant %s de réputation',
'de' => '',
'ru' => '',
),
'ach_allegiance_start' =>
array (
'en' => 'While being aligned with the ',
'fr' => '',
'fr' => 'En appartenant à',
'de' => '',
'ru' => '',
),
'ach_allegiance_and' =>
array (
'en' => ' and the ',
'fr' => '',
'de' => '',
'fr' => ' et le',
'de' => 'und',
'ru' => '',
),
'ach_allegiance_end' =>
array (
'en' => ', accomplish the following achievements:',
'fr' => '',
'de' => '',
'fr' => ', effectuez les accomplissements suivants : ',
'de' => ', erfüllen die folgenden Leistungen:',
'ru' => '',
),
);
if(isset($ryzom_texts))
$ryzom_texts = array_merge ($__texts, $ryzom_texts);
else
$ryzom_texts = $__texts;
?>