fix bugs in admin panel, ban message and some conquer village bugs

This commit is contained in:
unknown
2012-05-24 14:37:04 +03:00
parent 42da7517d3
commit 870cc698a6
11 changed files with 635 additions and 28 deletions
-2
View File
@@ -16,8 +16,6 @@ include_once("../../Account.php");
mysql_connect(SQL_SERVER, SQL_USER, SQL_PASS);
mysql_select_db(SQL_DB);
if ($session->access < ADMIN) die("Access Denied: You are not Admin!");
$id = $_POST['id'];
$village = $database->getVillage($id);
$user = $database->getUserArray($village['owner'],1);
+1 -2
View File
@@ -13,7 +13,6 @@ include_once("../../config.php");
include_once("../../Session.php");
mysql_connect(SQL_SERVER, SQL_USER, SQL_PASS);
mysql_select_db(SQL_DB);
if ($session->access < ADMIN) die("Access Denied: You are not Admin!");
$id = $_POST['id'];
$amt = $_POST['vill_amount'];
@@ -27,7 +26,7 @@ for($i=1;$i<=$amt;$i++) {
$time = time();
$pop = rand(50,233);
$cp = $pop-1;
$q = "insert into `s1_vdata`(`wref`,`owner`,`name`,`capital`,`pop`,`cp`,`celebration`,`type`,`wood`,`clay`,`iron`,`maxstore`,`crop`,`maxcrop`,`lastupdate`,`loyalty`,`exp1`,`exp2`,`exp3`,`created`) values ('$wid','3','WW Buildingplan',0,$pop,$cp,0,0,80000.00,80000.00,80000.00,80000,80000.00,80000,1314974534,100,0,0,0,1314968914)";
$q = "insert into ".TB_PREFIX."vdata (`wref`,`owner`,`name`,`capital`,`pop`,`cp`,`celebration`,`type`,`wood`,`clay`,`iron`,`maxstore`,`crop`,`maxcrop`,`lastupdate`,`loyalty`,`exp1`,`exp2`,`exp3`,`created`) values ('$wid','3','WW Buildingplan',0,$pop,$cp,0,0,80000.00,80000.00,80000.00,80000,80000.00,80000,1314974534,100,0,0,0,1314968914)";
mysql_query($q) or die(mysql_error());
$q = "insert into ".TB_PREFIX."fdata (`vref`,`f1`,`f1t`,`f2`,`f2t`,`f3`,`f3t`,`f4`,`f4t`,`f5`,`f5t`,`f6`,`f6t`,`f7`,`f7t`,`f8`,`f8t`,`f9`,`f9t`,`f10`,`f10t`,`f11`,`f11t`,`f12`,`f12t`,`f13`,`f13t`,`f14`,`f14t`,`f15`,`f15t`,`f16`,`f16t`,`f17`,`f17t`,`f18`,`f18t`,`f19`,`f19t`,`f20`,`f20t`,`f21`,`f21t`,`f22`,`f22t`,`f23`,`f23t`,`f24`,`f24t`,`f25`,`f25t`,`f26`,`f26t`,`f27`,`f27t`,`f28`,`f28t`,`f29`,`f29t`,`f30`,`f30t`,`f31`,`f31t`,`f32`,`f32t`,`f33`,`f33t`,`f34`,`f34t`,`f35`,`f35t`,`f36`,`f36t`,`f37`,`f37t`,`f38`,`f38t`,`f39`,`f39t`,`f40`,`f40t`,`f99`,`f99t`,`wwname`) values ($wid,0,1,0,4,0,1,0,3,0,2,0,2,0,3,0,4,0,4,0,3,0,3,0,4,0,4,0,1,0,4,0,2,0,1,0,2,20,17,20,11,10,27,20,10,10,22,10,25,0,0,20,15,10,19,0,0,0,0,0,0,10,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,16,0,0,0,0,'World Wonder')";
mysql_query($q);
+1 -2
View File
@@ -13,7 +13,6 @@ include_once("../../config.php");
include_once("../../Session.php");
mysql_connect(SQL_SERVER, SQL_USER, SQL_PASS);
mysql_select_db(SQL_DB);
if ($session->access < ADMIN) die("Access Denied: You are not Admin!");
$id = $_POST['id'];
$amt = $_POST['vill_amount'];
@@ -27,7 +26,7 @@ for($i=1;$i<=$amt;$i++) {
$time = time();
$pop = rand(50,233);
$cp = $pop-1;
$q = "insert into `s1_vdata`(`wref`,`owner`,`name`,`capital`,`pop`,`cp`,`celebration`,`type`,`wood`,`clay`,`iron`,`maxstore`,`crop`,`maxcrop`,`lastupdate`,`loyalty`,`exp1`,`exp2`,`exp3`,`created`,`natar`) values ('$wid','3','WW village',0,$pop,$cp,0,0,80000.00,80000.00,80000.00,80000,80000.00,80000,1314974534,100,0,0,0,$time,1)";
$q = "insert into ".TB_PREFIX."vdata (`wref`,`owner`,`name`,`capital`,`pop`,`cp`,`celebration`,`type`,`wood`,`clay`,`iron`,`maxstore`,`crop`,`maxcrop`,`lastupdate`,`loyalty`,`exp1`,`exp2`,`exp3`,`created`,`natar`) values ('$wid','3','WW village',0,$pop,$cp,0,0,80000.00,80000.00,80000.00,80000,80000.00,80000,1314974534,100,0,0,0,$time,1)";
mysql_query($q) or die(mysql_error());
$q = "insert into ".TB_PREFIX."fdata (`vref`,`f1`,`f1t`,`f2`,`f2t`,`f3`,`f3t`,`f4`,`f4t`,`f5`,`f5t`,`f6`,`f6t`,`f7`,`f7t`,`f8`,`f8t`,`f9`,`f9t`,`f10`,`f10t`,`f11`,`f11t`,`f12`,`f12t`,`f13`,`f13t`,`f14`,`f14t`,`f15`,`f15t`,`f16`,`f16t`,`f17`,`f17t`,`f18`,`f18t`,`f19`,`f19t`,`f20`,`f20t`,`f21`,`f21t`,`f22`,`f22t`,`f23`,`f23t`,`f24`,`f24t`,`f25`,`f25t`,`f26`,`f26t`,`f27`,`f27t`,`f28`,`f28t`,`f29`,`f29t`,`f30`,`f30t`,`f31`,`f31t`,`f32`,`f32t`,`f33`,`f33t`,`f34`,`f34t`,`f35`,`f35t`,`f36`,`f36t`,`f37`,`f37t`,`f38`,`f38t`,`f39`,`f39t`,`f40`,`f40t`,`f99`,`f99t`,`wwname`) values ($wid,0,1,0,4,0,1,0,3,0,2,0,2,0,3,0,4,0,4,0,3,0,3,0,4,0,4,0,1,0,4,0,2,0,1,0,2,20,17,20,11,20,15,20,10,10,22,10,25,0,0,0,0,10,19,0,0,0,0,0,0,10,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,16,0,0,0,40,'World Wonder')";
mysql_query($q);
+64 -19
View File
@@ -1069,9 +1069,21 @@ class Automation {
//top 10 attack and defence update
$totaldead_att = $dead1+$dead2+$dead3+$dead4+$dead5+$dead6+$dead7+$dead8+$dead9+$dead10+$dead11;
$totalattackdead += $totaldead_att;
$troopsdead1 = $dead1;
$troopsdead2 = $dead2;
$troopsdead3 = $dead3;
$troopsdead4 = $dead4;
$troopsdead5 = $dead5;
$troopsdead6 = $dead6;
$troopsdead7 = $dead7;
$troopsdead8 = $dead8;
$troopsdead9 = $dead9;
$troopsdead10 = $dead10;
$troopsdead11 = $dead11;
for($i=1;$i<=50;$i++) {
$totaldead_def += $dead[''.$i.''];
}
$totaldead_def += $dead['hero'];
if ($Attacker['uhero'] != 0){
$heroxp = $totaldead_def;
$database->modifyHeroXp("experience",$heroxp,$from['owner']);
@@ -1763,10 +1775,45 @@ class Automation {
//chiefing village
//there are senators
if(($data['t9']-$dead9)>0){
$palacelevel = $database->getResourceLevel($from['wref']);
if($palacelevel < 10){
$canconquer = 0;
}
elseif($palacelevel < 15){
$canconquer = 1;
}
elseif($palacelevel < 20){
$canconquer = 2;
}
else{
$canconquer = 3;
}
$exp1 = $database->getVillageField($from['wref'],'exp1');
$exp2 = $database->getVillageField($from['wref'],'exp2');
$exp3 = $database->getVillageField($from['wref'],'exp3');
if($exp1 == 0){
$villexp = 0;
}
elseif($exp2 == 0){
$villexp = 1;
}
elseif($exp2 == 0){
$villexp = 2;
}
else{
$villexp = 3;
}
$varray = $database->getProfileVillages($to['owner']);
$varray1 = count($database->getProfileVillages($from['owner']));
$mode = CP;
$need_cps = ${'cp'.$mode}[$varray1];
$user_cps = $database->getUserField($from['owner'],"cp",0);
//kijken of laatste dorp is, of hoofddorp
if(count($varray)!='1' AND $to['capital']!='1'){
if($to['owenr']!=3 AND $to['name']!='WW Buildingplan'){
if($user_cps >= $need_cps){
if(count($varray)!='1' AND $to['capital']!='1' AND $villexp < $canconquer){
if($to['owenr']!=3 OR $to['name']!='WW Buildingplan'){
//if there is no Palace/Residence
for ($i=18; $i<39; $i++){
if ($database->getFieldLevel($data['to'],"".$i."t")==25 or $database->getFieldLevel($data['to'],"".$i."t")==26){
@@ -1854,6 +1901,9 @@ class Automation {
} else {
$info_chief = "".$chief_pic.",You cant take over this village.";
}
} else {
$info_chief = "".$chief_pic.",Not enough culture points.";
}
}
if($data['t11'] > 0){
@@ -2006,23 +2056,7 @@ $crannyimg = "<img src=\"".GP_LOCATE."img/g/g23.gif\" height=\"20\" width=\"15\"
if($chiefing_village != 1){
$database->addMovement(4,$to['wref'],$from['wref'],$data['ref'],time(),$endtime);
}else{
$villreinf = $database->addEnforce($data);
$villtribe = $database->getUserField($from['owner'],"tribe",0);
$unittribe = $villtribe-1;
if($unittribe == 0){
$unittribe = "";
}
$database->modifyEnforce($villreinf,$unittribe.'1',$data['t1']-$dead1,1);
$database->modifyEnforce($villreinf,$unittribe.'2',$data['t2']-$dead2,1);
$database->modifyEnforce($villreinf,$unittribe.'3',$data['t3']-$dead3,1);
$database->modifyEnforce($villreinf,$unittribe.'4',$data['t4']-$dead4,1);
$database->modifyEnforce($villreinf,$unittribe.'5',$data['t5']-$dead5,1);
$database->modifyEnforce($villreinf,$unittribe.'6',$data['t6']-$dead6,1);
$database->modifyEnforce($villreinf,$unittribe.'7',$data['t7']-$dead7,1);
$database->modifyEnforce($villreinf,$unittribe.'8',$data['t8']-$dead8,1);
$database->modifyEnforce($villreinf,$unittribe.'9',$data['t9']-$dead9-1,1);
$database->modifyEnforce($villreinf,$unittribe.'10',$data['t10']-$dead10,1);
$database->modifyEnforce($villreinf,$unittribe.'11',$data['t11']-$dead11,1);
$database->addEnforce2($data,$owntribe,$troopsdead1,$troopsdead2,$troopsdead3,$troopsdead4,$troopsdead5,$troopsdead6,$troopsdead7,$troopsdead8,$troopsdead9,$troopsdead10,$troopsdead11);
}
// send the bounty on type 6.
if($type !== 1)
@@ -2093,6 +2127,17 @@ $crannyimg = "<img src=\"".GP_LOCATE."img/g/g23.gif\" height=\"20\" width=\"15\"
unset($defheroxp);
unset($reinfheroxp);
unset($AttackerWref);
unset($troopsdead1);
unset($troopsdead2);
unset($troopsdead3);
unset($troopsdead4);
unset($troopsdead5);
unset($troopsdead6);
unset($troopsdead7);
unset($troopsdead8);
unset($troopsdead9);
unset($troopsdead10);
unset($troopsdead11);
}
if(file_exists("GameEngine/Prevention/sendunits.txt")) {
@unlink("GameEngine/Prevention/sendunits.txt");
+48 -2
View File
@@ -159,10 +159,56 @@ class Battle {
return $this->calculateBattle($attacker,$defender,$wall,$post['a1_v'],$deftribe,$post['palast'],$post['ew1'],$post['ew2'],1,$def_ab,$att_ab,$post['kata'],1,0,0,0);
}
public function getTypeLevel($tid,$vid) {
global $village,$database;
$keyholder = array();
$resourcearray = $database->getResourceLevel($vid);
foreach(array_keys($resourcearray,$tid) as $key) {
if(strpos($key,'t')) {
$key = preg_replace("/[^0-9]/", '', $key);
array_push($keyholder, $key);
}
}
$element = count($keyholder);
if($element >= 2) {
if($tid <= 4) {
$temparray = array();
for($i=0;$i<=$element-1;$i++) {
array_push($temparray,$resourcearray['f'.$keyholder[$i]]);
}
foreach ($temparray as $key => $val) {
if ($val == max($temparray))
$target = $key;
}
}
else {
$target = 0;
for($i=1;$i<=$element-1;$i++) {
if($resourcearray['f'.$keyholder[$i]] > $resourcearray['f'.$keyholder[$target]]) {
$target = $i;
}
}
}
}
else if($element == 1) {
$target = 0;
}
else {
return 0;
}
if($keyholder[$target] != "") {
return $resourcearray['f'.$keyholder[$target]];
}
else {
return 0;
}
}
//1 raid 0 normal
function calculateBattle($Attacker,$Defender,$def_wall,$att_tribe,$def_tribe,$residence,$attpop,$defpop,$type,$def_ab,$att_ab,$tblevel,$stonemason,$walllevel,$AttackerID,$DefenderID,$AttackerWref) {
global $database,$bid34;
global $database,$bid34,$bid35;
// Definieer de array met de eenheden
$calvary = array(4,5,6,15,16,23,24,25,26,35,36,45,46);
$catapult = array(8,18,28,38,48);
@@ -349,7 +395,7 @@ class Battle {
//
// Formule voor het berekenen van punten aanvallers (Infanterie & Cavalry)
//
$rap = ($ap+$cap)+(($ap+$cap)/100*$bid35[$automation->getTypeLevel(35,$AttackerWref)]['attri']);
$rap = ($ap+$cap)+(($ap+$cap)/100*$bid35[$this->getTypeLevel(35,$AttackerWref)]['attri']);
//
// Formule voor de berekening van Defensive Punten
//
+25
View File
@@ -2259,6 +2259,31 @@
$this->modifyEnforce($id,'hero',$data['t11'],1);
return mysql_insert_id($this->connection);
}
function addEnforce2($data,$tribe,$dead1,$dead2,$dead3,$dead4,$dead5,$dead6,$dead7,$dead8,$dead9,$dead10,$dead11) {
$q = "INSERT into " . TB_PREFIX . "enforcement (vref,`from`) values (" . $data['to'] . "," . $data['from'] . ")";
mysql_query($q, $this->connection);
$id = mysql_insert_id($this->connection);
$owntribe = $this->getUserField($this->getVillageField($data['from'], "owner"), "tribe", 0);
$start = ($owntribe - 1) * 10 + 1;
$end = ($owntribe * 10);
$start2 = ($tribe - 1) * 10 + 1;
$start3 = ($tribe - 1) * 10;
if($start3 == 0){
$start3 = "";
}
$end2 = ($tribe * 10);
//add unit
$j = '1';
for($i = $start; $i <= $end; $i++) {
$this->modifyEnforce($id, $i, $data['t' . $j . ''], 1);
$this->modifyEnforce($id, $i, ${dead.$j}, 0);
$j++;
}
$this->modifyEnforce($id,'hero',$data['t11'],1);
$this->modifyEnforce($id,'hero',$dead11,0);
return mysql_insert_id($this->connection);
}
function modifyEnforce($id, $unit, $amt, $mode) {
if($unit != 'hero') { $unit = 'u' . $unit; }