Updated config management

Updated install

Signed-off-by: Gregory PLANCHAT <g.planchat@gmail.com>
This commit is contained in:
Gregory PLANCHAT 2011-12-14 23:45:09 +01:00
commit fcd1f5b740
58 changed files with 1579 additions and 1695 deletions

View file

@ -33,16 +33,15 @@ define('INSTALL' , false);
define('IN_ADMIN', true);
require_once dirname(dirname(__FILE__)) .'/application/bootstrap.php';
if (in_array($user['authlevel'], array(LEVEL_ADMIN))) {
$lang['PHP_SELF'] = 'options.'.PHPEXT;
doquery("UPDATE {{table}} SET `banaday` =` banaday` - '1' WHERE `banaday` != '0';",'users');
doquery("UPDATE {{table}} SET `bana` = '0' WHERE `banaday` < '1';",'users');
$parse = $gameConfig;
$parse['dpath'] = $dpath;
$parse['debug'] = ($gameConfig['debug'] == 1) ? " checked='checked'/":'';
} else {
message ( $lang['sys_noalloaw'], $lang['sys_noaccess'] );
}
if (in_array($user['authlevel'], array(LEVEL_ADMIN))) {
doquery("UPDATE {{table}} SET `banaday` =` banaday` - '1' WHERE `banaday` != '0';",'users');
doquery("UPDATE {{table}} SET `bana` = '0' WHERE `banaday` < '1';",'users');
?>
$response = Wootook::getResponse()
->setRedirect(Wootook::getUrl('admin/overview.php'))
->sendHeaders();
exit(0);
} else {
message ( $lang['sys_noalloaw'], $lang['sys_noaccess'] );
}

View file

@ -1,66 +0,0 @@
<?php
/**
* This file is part of Wootook
*
* @license http://www.gnu.org/licenses/gpl-3.0.txt
* @see http://www.wootook.com/
*
* Copyright (c) 2009-Present, Wootook Support Team <http://www.xnova-ng.org>
* All rights reserved.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* --> NOTICE <--
* This file is part of the core development branch, changing its contents will
* make you unable to use the automatic updates manager. Please refer to the
* documentation for further information about customizing Wootook.
*
*/
define('INSIDE' , true);
define('INSTALL' , false);
define('IN_ADMIN', true);
function mass_message_run($parent){
if($_POST["mode"] == "change"){
if(isset($_POST["tresc"])&& $_POST["tresc"] != ''){
$gameConfig['tresc'] = $parent->safe_get_post_var("tresc");
}
if(isset($_POST["temat"])&& $_POST["temat"] != ''){
$gameConfig['temat'] = $parent->safe_get_post_var("temat");
}
$kolor = 'red';
if($gameConfig['tresc'] !='' and $gameConfig['temat']){
$sq = $parent->db->query("SELECT `id` FROM {{table}}","users");
while($u = $parent->db->fetch_assoc($sq)){
doquery("INSERT INTO {{table}} SET
`message_owner`='{$u['id']}',
`message_sender`='1' ,
`message_time`='".time()."',
`message_type`='0',
`message_from`='<font color=\"$kolor\">Administracja</font>',
`message_subject`='<font color=\"$kolor\">{$gameConfig['temat']}</font>',
`message_text`='<font color=\"$kolor\"><b>{$gameConfig['tresc']}</b></font>'
","messages");
$parent->db->query("UPDATE {{table}} SET new_message=new_message+1 WHERE id='{$u['id']}'",'users');
}
$parent->smarty->assign("message","<font color=\"lime\">Wys<79>a<EFBFBD>e<EFBFBD> wiadomo<6D><6F> do wszystkich graczy</font>");
}
}
$parent->smarty->display("mass_message.tpl");
}
function mass_message_info(){
return array("name" => "Send MassMessages","description"=>"Sends messagess to all players","default_weight"=>"0");
}

View file

@ -31,45 +31,45 @@
define('INSIDE' , true);
define('INSTALL' , false);
define('IN_ADMIN', true);
require_once dirname(dirname(__FILE__)) .'/application/bootstrap.php';
if (in_array($user['authlevel'], array(LEVEL_ADMIN, LEVEL_OPERATOR, LEVEL_MODERATOR))) {
if ($_POST && $mode == "change") {
if (isset($_POST["tresc"]) && $_POST["tresc"] != '') {
$gameConfig['tresc'] = $_POST['tresc'];
if (in_array($user['authlevel'], array(LEVEL_ADMIN, LEVEL_OPERATOR, LEVEL_MODERATOR))) {
if (!empty($_POST)) {
if (isset($_POST["tresc"]) && $_POST["tresc"] != '') {
$tresc = $_POST['tresc'];
}
if (isset($_POST["temat"]) && $_POST["temat"] != '') {
$temat = $_POST['temat'];
}
if ($user['authlevel'] == LEVEL_ADMIN) {
$kolor = 'red';
$ranga = 'Administrator';
} elseif ($user['authlevel'] == LEVEL_OPERATOR) {
$kolor = 'skyblue';
$ranga = 'Operator';
} elseif ($user['authlevel'] == LEVEL_MODERATOR) {
$kolor = 'yellow';
$ranga = 'Moderator';
}
if (isset($tresc) && isset($temat)) {
$sq = doquery("SELECT `id` FROM {{table}}", "users");
$Time = time();
$From = "<font color=\"". $kolor ."\">". $ranga ." ".$user['username']."</font>";
$Subject = "<font color=\"". $kolor ."\">". $temat ."</font>";
$Message = "<font color=\"". $kolor ."\"><b>". $tresc ."</b></font>";
while ($u = $sq->fetch(PDO::FETCH_BOTH)) {
SendSimpleMessage($u['id'], $user['id'], $Time, 97, $From, $Subject, $Message);
}
if (isset($_POST["temat"]) && $_POST["temat"] != '') {
$gameConfig['temat'] = $_POST['temat'];
}
if ($user['authlevel'] == LEVEL_ADMIN) {
$kolor = 'red';
$ranga = 'Administrator';
} elseif ($user['authlevel'] == LEVEL_OPERATOR) {
$kolor = 'skyblue';
$ranga = 'Operator';
} elseif ($user['authlevel'] == LEVEL_MODERATOR) {
$kolor = 'yellow';
$ranga = 'Moderator';
}
if ($gameConfig['tresc'] != '' and $gameConfig['temat']) {
$sq = doquery("SELECT `id` FROM {{table}}", "users");
$Time = time();
$From = "<font color=\"". $kolor ."\">". $ranga ." ".$user['username']."</font>";
$Subject = "<font color=\"". $kolor ."\">". $gameConfig['temat'] ."</font>";
$Message = "<font color=\"". $kolor ."\"><b>". $gameConfig['tresc'] ."</b></font>";
while ($u = $sq->fetch(PDO::FETCH_BOTH)) {
SendSimpleMessage ( $u['id'], $user['id'], $Time, 97, $From, $Subject, $Message);
}
message("<font color=\"lime\">Wys<79>a<EFBFBD>e<EFBFBD> wiadomo<6D><6F> do wszystkich graczy</font>", "Complete", "../overview." . PHPEXT, 3);
}
} else {
$parse = $gameConfig;
$parse['dpath'] = $dpath;
$parse['debug'] = ($gameConfig['debug'] == 1) ? " checked='checked'/":'';
$page .= parsetemplate(gettemplate('admin/messall_body'), $parse);
display($page, '', false,'', true);
message("<font color=\"lime\">Wys<79>a<EFBFBD>e<EFBFBD> wiadomo<6D><6F> do wszystkich graczy</font>", "Complete", "../overview." . PHPEXT, 3);
}
} else {
message($lang['sys_noalloaw'], $lang['sys_noaccess']);
$parse = array();
$parse['dpath'] = $dpath;
$parse['debug'] = (defined('DEBUG')) ? " checked='checked'/":'';
$page .= parsetemplate(gettemplate('admin/messall_body'), $parse);
display($page, '', false,'', true);
}
?>
} else {
message($lang['sys_noalloaw'], $lang['sys_noaccess']);
}

View file

@ -34,8 +34,8 @@ define('IN_ADMIN', true);
require_once dirname(dirname(__FILE__)) .'/application/bootstrap.php';
function DisplayGameSettingsPage ( $CurrentUser ) {
global $lang, $gameConfig;
function DisplayGameSettingsPage($CurrentUser) {
global $lang;
includeLang('admin/settings');
@ -43,208 +43,197 @@ function DisplayGameSettingsPage ( $CurrentUser ) {
if (isset($_POST['opt_save']) && $_POST['opt_save'] == "1") {
// Jeu Ouvert ou Ferm<72> !
if (isset($_POST['closed']) && $_POST['closed'] == 'on') {
$gameConfig['game_disable'] = "1";
$gameConfig['close_reason'] = addslashes( $_POST['close_reason'] );
Wootook::setConfig('game/general/active', true, 1, 1);
} else {
$gameConfig['game_disable'] = "0";
$gameConfig['close_reason'] = "";
Wootook::setConfig('game/general/active', false, 1, 1);
}
if (isset($_POST['close_reason'])) {
Wootook::setConfig('game/general/closing-message', $_POST['close_reason'], 1, 1);
}
// Y a un News Frame ? !
if (isset($_POST['newsframe']) && $_POST['newsframe'] == 'on') {
$gameConfig['OverviewNewsFrame'] = "1";
$gameConfig['OverviewNewsText'] = addslashes( $_POST['NewsText'] );
Wootook::setConfig('game/news/active', true, 1, 1);
} else {
$gameConfig['OverviewNewsFrame'] = "0";
$gameConfig['OverviewNewsText'] = "";
Wootook::setConfig('game/news/active', false, 1, 1);
}
if (isset($_POST['NewsText'])) {
Wootook::setConfig('game/news/content', $_POST['NewsText'], 1, 1);
}
// Y a un TCHAT externe ??
if (isset($_POST['chatframe']) && $_POST['chatframe'] == 'on') {
$gameConfig['OverviewExternChat'] = "1";
$gameConfig['OverviewExternChatCmd'] = addslashes( $_POST['ExternChat'] );
Wootook::setConfig('engine/options/chat', true, 1, 1);
} else {
$gameConfig['OverviewExternChat'] = "0";
$gameConfig['OverviewExternChatCmd'] = "";
Wootook::setConfig('engine/options/chat', false, 1, 1);
}
if (isset($_POST['googlead']) && $_POST['googlead'] == 'on') {
$gameConfig['OverviewBanner'] = "1";
$gameConfig['OverviewClickBanner'] = addslashes( $_POST['GoogleAds'] );
if (isset($_POST['ga']) && $_POST['ga'] == 'on') {
Wootook::setConfig('engine/options/ga', true, 1, 1);
} else {
$gameConfig['OverviewBanner'] = "0";
$gameConfig['OverviewClickBanner'] = "";
Wootook::setConfig('engine/options/ga', false, 1, 1);
}
if (isset($_POST['ga_id']) && !empty($_POST['ga_id'])) {
Wootook::setConfig('engine/options/ga-id', $_POST['ga_id'], 1, 1);
}
// Y a un BANNER Frame ?
if (isset($_POST['bannerframe']) && $_POST['bannerframe'] == 'on') {
$gameConfig['ForumBannerFrame'] = "1";
Wootook::setConfig('engine/options/banner', true, 1, 1);
} else {
$gameConfig['ForumBannerFrame'] = "0";
}
// Mode Debug ou pas !
if (isset($_POST['debug']) && $_POST['debug'] == 'on') {
$gameConfig['debug'] = "1";
} else {
$gameConfig['debug'] = "0";
Wootook::setConfig('engine/options/banner', false, 1, 1);
}
// Nom du Jeu
if (isset($_POST['game_name']) && $_POST['game_name'] != '') {
$gameConfig['game_name'] = $_POST['game_name'];
if (isset($_POST['game_name']) && !empty($_POST['game_name'])) {
Wootook::setConfig('game/general/name', $_POST['game_name'], 1, 1);
}
// Adresse du Forum
if (isset($_POST['forum_url']) && $_POST['forum_url'] != '') {
$gameConfig['forum_url'] = $_POST['forum_url'];
if (isset($_POST['forum_url']) && !empty($_POST['forum_url'])) {
Wootook::setConfig('game/general/boards-url', $_POST['forum_url'], 1, 1);
}
// Vitesse du Jeu
if (isset($_POST['game_speed']) && is_numeric($_POST['game_speed'])) {
$gameConfig['game_speed'] = $_POST['game_speed'];
Wootook::setConfig('game/speed/general', $_POST['game_speed'], 1, 1);
}
// Vitesse des Flottes
if (isset($_POST['fleet_speed']) && is_numeric($_POST['fleet_speed'])) {
$gameConfig['fleet_speed'] = $_POST['fleet_speed'];
Wootook::setConfig('game/speed/fleet', $_POST['fleet_speed'], 1, 1);
}
// Multiplicateur de Production
if (isset($_POST['resource_multiplier']) && is_numeric($_POST['resource_multiplier'])) {
$gameConfig['resource_multiplier'] = $_POST['resource_multiplier'];
Wootook::setConfig('game/resource/multiplier', $_POST['resource_multiplier'], 1, 1);
}
// Taille de la planete mère
if (isset($_POST['initial_fields']) && is_numeric($_POST['initial_fields'])) {
$gameConfig['initial_fields'] = $_POST['initial_fields'];
Wootook::setConfig('resource/initial/fields', $_POST['initial_fields'], 1, 1);
}
// Revenu de base Metal
if (isset($_POST['metal_basic_income']) && is_numeric($_POST['metal_basic_income'])) {
$gameConfig['metal_basic_income'] = $_POST['metal_basic_income'];
Wootook::setConfig('resource/initial/metal', $_POST['metal_basic_income'], 1, 1);
}
// Revenu de base Cristal
if (isset($_POST['crystal_basic_income']) && is_numeric($_POST['crystal_basic_income'])) {
$gameConfig['crystal_basic_income'] = $_POST['crystal_basic_income'];
Wootook::setConfig('resource/initial/cristal', $_POST['crystal_basic_income'], 1, 1);
}
// Revenu de base Deuterium
if (isset($_POST['deuterium_basic_income']) && is_numeric($_POST['deuterium_basic_income'])) {
$gameConfig['deuterium_basic_income'] = $_POST['deuterium_basic_income'];
Wootook::setConfig('resource/initial/deuterium', $_POST['deuterium_basic_income'], 1, 1);
}
// Revenu de base Energie
if (isset($_POST['energy_basic_income']) && is_numeric($_POST['energy_basic_income'])) {
$gameConfig['energy_basic_income'] = $_POST['energy_basic_income'];
Wootook::setConfig('resource/initial/energy', $_POST['energy_basic_income'], 1, 1);
}
// Lien supplémentaire dans le menu
if (isset($_POST['enable_link_']) && is_numeric($_POST['enable_link_'])) {
$gameConfig['link_enable'] = $_POST['enable_link_'];
if (isset($_POST['url_link_']) && is_numeric($_POST['url_link_'])) {
Wootook::setConfig('game/general/boards-url', $_POST['url_link_'], 1, 1);
}
// Texte de ce lien...
$gameConfig['link_name'] = addslashes( $_POST['name_link_']);
// URL de ce lien...
$gameConfig['link_url'] = $_POST['url_link_'];
// Image de la bannière
$gameConfig['banner_source_post'] = $_POST['banner_source_post'];
if (isset($_POST['banner_source_post'])) {
Wootook::setConfig('engine/options/banner', $_POST['banner_source_post'], 1, 1);
}
// 1 point = ??? Ressources ?
if (isset($_POST['stat_settings']) && is_numeric($_POST['stat_settings'])) {
$gameConfig['stat_settings'] = $_POST['stat_settings'];
if (isset($_POST['stat_settings']) && is_numeric($_POST['stat_settings'])) {
Wootook::setConfig('game/resource/multiplier', $_POST['stat_settings'], 1, 1);
}
// Activation -ou non- des annonces
if (isset($_POST['enable_announces_']) && is_numeric($_POST['enable_announces_'])) {
$gameConfig['enable_announces'] = $_POST['enable_announces_'];
// Activation -ou non- des annonces
if (isset($_POST['enable_announces_']) && is_numeric($_POST['enable_announces_'])) {
Wootook::setConfig('engine/options/announces', $_POST['enable_announces_'], 1, 1);
}
// Activation -ou non- du marchand
if (isset($_POST['enable_marchand_']) && is_numeric($_POST['enable_marchand_'])) {
$gameConfig['enable_marchand'] = $_POST['enable_marchand_'];
// Activation -ou non- du marchand
if (isset($_POST['enable_marchand_']) && is_numeric($_POST['enable_marchand_'])) {
Wootook::setConfig('engine/options/retailer', $_POST['enable_marchand_'], 1, 1);
}
// Activation -ou non- des notes
if (isset($_POST['enable_notes_']) && is_numeric($_POST['enable_notes_'])) {
$gameConfig['enable_notes'] = $_POST['enable_notes_'];
// Activation -ou non- des notes
if (isset($_POST['enable_notes_']) && is_numeric($_POST['enable_notes_'])) {
Wootook::setConfig('engine/options/notes', $_POST['enable_notes_'], 1, 1);
}
// Nom du bot antimulti
$gameConfig['bot_name'] = addslashes( $_POST['name_bot']);
// email du bot antimulti
$gameConfig['bot_adress'] = addslashes( $_POST['adress_bot']);
// Activation -ou non- des notes
if (isset($_POST['duration_ban']) && is_numeric($_POST['duration_ban'])) {
$gameConfig['ban_duration'] = $_POST['duration_ban'];
// Nom du bot antimulti
if (isset($_POST['name_bot'])) {
Wootook::setConfig('engine/bot/name', $_POST['name_bot'], 1, 1);
}
// email du bot antimulti
if (isset($_POST['adress_bot'])) {
Wootook::setConfig('engine/bot/email', $_POST['adress_bot'], 1, 1);
}
// Activation -ou non- du bot
if (isset($_POST['bot_enable']) && is_numeric($_POST['bot_enable'])) {
$gameConfig['enable_bot'] = $_POST['bot_enable'];
// Activation -ou non- des notes
if (isset($_POST['duration_ban']) && is_numeric($_POST['duration_ban'])) {
Wootook::setConfig('engine/ban/duration', $_POST['duration_ban'], 1, 1);
}
// BBCode ou pas ?
if (isset($_POST['bbcode_field']) && is_numeric($_POST['bbcode_field'])) {
$gameConfig['enable_bbcode'] = $_POST['bbcode_field'];
// Activation -ou non- du bot
if (isset($_POST['bot_enable']) && is_numeric($_POST['bot_enable'])) {
Wootook::setConfig('engine/bot/active', $_POST['bot_enable'], 1, 1);
}
$gameConfig->save();
// BBCode ou pas ?
if (isset($_POST['bbcode_field']) && is_numeric($_POST['bbcode_field'])) {
Wootook::setConfig('engine/options/bbcode', $_POST['bbcode_field'], 1, 1);
}
AdminMessage ('Options changees avec succes !', 'Succes', '?');
AdminMessage('Options changees avec succes !', 'Succes', '?');
} else {
$parse = $lang;
$parse['game_name'] = $gameConfig['game_name'];
$parse['game_speed'] = $gameConfig['game_speed'];
$parse['fleet_speed'] = $gameConfig['fleet_speed'];
$parse['resource_multiplier'] = $gameConfig['resource_multiplier'];
$parse['forum_url'] = $gameConfig['forum_url'];
$parse['initial_fields'] = $gameConfig['initial_fields'];
$parse['metal_basic_income'] = $gameConfig['metal_basic_income'];
$parse['crystal_basic_income'] = $gameConfig['crystal_basic_income'];
$parse['deuterium_basic_income'] = $gameConfig['deuterium_basic_income'];
$parse['energy_basic_income'] = $gameConfig['energy_basic_income'];
$parse['enable_link'] = $gameConfig['link_enable'];
$parse['name_link'] = $gameConfig['link_name'];
$parse['url_link'] = $gameConfig['link_url'];
$parse['enable_announces'] = $gameConfig['enable_announces'];
$parse['enable_marchand'] = $gameConfig['enable_marchand'];
$parse['enable_notes'] = $gameConfig['enable_notes'];
$parse['bot_name'] = stripslashes($gameConfig['bot_name']);
$parse['bot_adress'] = stripslashes($gameConfig['bot_adress']);
$parse['ban_duration'] = stripslashes($gameConfig['ban_duration']);
$parse['enable_bot'] = stripslashes($gameConfig['enable_bot']);
$parse['enable_bbcode'] = stripslashes($gameConfig['enable_bbcode']);
$parse['game_name'] = Wootook::getGameConfig('game/general/name');
$parse['game_speed'] = Wootook::getGameConfig('game/speed/general');
$parse['fleet_speed'] = Wootook::getGameConfig('game/speed/fleet');
$parse['resource_multiplier'] = Wootook::getGameConfig('game/resource/multiplier');
$parse['forum_url'] = Wootook::getGameConfig('game/general/boards-url');
$parse['initial_fields'] = Wootook::getGameConfig('resource/initial/fields');
$parse['metal_basic_income'] = Wootook::getGameConfig('resource/initial/metal');
$parse['crystal_basic_income'] = Wootook::getGameConfig('resource/initial/cristal');
$parse['deuterium_basic_income'] = Wootook::getGameConfig('resource/initial/deuterium');
$parse['energy_basic_income'] = Wootook::getGameConfig('resource/initial/energy');
$parse['enable_link'] = $gameConfig['link_enable'];
$parse['name_link'] = Wootook::getGameConfig('game/general/extra-url-title');
$parse['url_link'] = Wootook::getGameConfig('game/general/extra-url');
$parse['enable_announces'] = Wootook::getGameConfig('engine/options/announces');
$parse['enable_marchand'] = Wootook::getGameConfig('engine/options/retailer');
$parse['enable_notes'] = Wootook::getGameConfig('engine/options/notes');
$parse['bot_name'] = Wootook::getGameConfig('engine/bot/name');
$parse['bot_adress'] = Wootook::getGameConfig('engine/bot/email');
$parse['ban_duration'] = Wootook::getGameConfig('engine/ban/duration');
$parse['enable_bot'] = Wootook::getGameConfig('engine/bot/active');
$parse['enable_bbcode'] = Wootook::getGameConfig('engine/options/bbcode');
$parse['banner_source_post'] = $gameConfig['banner_source_post'];
$parse['stat_settings'] = stripslashes($gameConfig['stat_settings']);
$parse['banner_source_post'] = Wootook::getGameConfig('engine/options/banner');
$parse['stat_settings'] = Wootook::getGameConfig('game/resource/multiplier');
$parse['closed'] = (!Wootook::getGameConfig('game/general/active')) ? " checked = 'checked' ":"";
$parse['close_reason'] = Wootook::getGameConfig('game/general/closing-message');
$parse['closed'] = ($gameConfig['game_disable'] == 1) ? " checked = 'checked' ":"";
$parse['close_reason'] = stripslashes( $gameConfig['close_reason'] );
$parse['newsframe'] = ($gameConfig['OverviewNewsFrame'] == 1) ? " checked = 'checked' ":"";
$parse['NewsTextVal'] = stripslashes( $gameConfig['OverviewNewsText'] );
$parse['newsframe'] = (Wootook::getGameConfig('game/news/active')) ? " checked = 'checked' ":"";
$parse['NewsTextVal'] = Wootook::getGameConfig('game/news/content');
$parse['chatframe'] = ($gameConfig['OverviewExternChat'] == 1) ? " checked = 'checked' ":"";
$parse['ExtTchatVal'] = stripslashes( $gameConfig['OverviewExternChatCmd'] );
$parse['googlead'] = ($gameConfig['OverviewBanner'] == 1) ? " checked = 'checked' ":"";
$parse['GoogleAdVal'] = stripslashes( $gameConfig['OverviewClickBanner'] );
$parse['debug'] = ($gameConfig['debug'] == 1) ? " checked = 'checked' ":"";
$parse['ga'] = (Wootook::getGameConfig('engine/options/ga')) ? " checked = 'checked' ":"";
$parse['ga_id'] = Wootook::getGameConfig('engine/options/ga-id');
$parse['bannerframe'] = ($gameConfig['ForumBannerFrame'] == 1) ? " checked = 'checked' ":"";
$PageTPL = gettemplate('admin/options_body');
$Page = parsetemplate( $PageTPL, $parse );
$Page = parsetemplate($PageTPL, $parse);
display ( $Page, $lang['adm_opt_title'], false, '', true );
display($Page, $lang['adm_opt_title'], false, '', true);
}
} else {
AdminMessage ( $lang['sys_noalloaw'], $lang['sys_noaccess'] );
AdminMessage($lang['sys_noalloaw'], $lang['sys_noaccess']);
}
return $Page;
}

View file

@ -47,6 +47,8 @@ if (strtolower(substr(PHP_SAPI, 0, 3)) == 'cli' || in_array($user['authlevel'],
$GameUsers = doquery("SELECT * FROM {{table}} WHERE authlevel<3", 'users');
$resourceMultiplier = Wootook::getGameConfig('game/resource/multiplier');
while ($CurUser = $GameUsers->fetch(PDO::FETCH_ASSOC)) {
// Recuperation des anciennes statistiques
$OldStatRecord = doquery ("SELECT * FROM {{table}} WHERE `stat_type` = '1' AND `id_owner` = '".$CurUser['id']."';", 'statpoints', true);
@ -69,7 +71,7 @@ if (strtolower(substr(PHP_SAPI, 0, 3)) == 'cli' || in_array($user['authlevel'],
// Total des unitées consommée pour la recherche
$Points = GetTechnoPoints ( $CurUser );
$TTechCount = $Points['TechCount'];
$TTechPoints = ($Points['TechPoint'] / $gameConfig['stat_settings']);
$TTechPoints = ($Points['TechPoint'] / $resourceMultiplier);
// Totalisation des points accumulés par planete
$TBuildCount = 0;
@ -85,20 +87,20 @@ if (strtolower(substr(PHP_SAPI, 0, 3)) == 'cli' || in_array($user['authlevel'],
$Points = GetBuildPoints ( $CurPlanet );
$TBuildCount += $Points['BuildCount'];
$GCount += $Points['BuildCount'];
$PlanetPoints = ($Points['BuildPoint'] / $gameConfig['stat_settings']);
$TBuildPoints += ($Points['BuildPoint'] / $gameConfig['stat_settings']);
$PlanetPoints = ($Points['BuildPoint'] / $resourceMultiplier);
$TBuildPoints += ($Points['BuildPoint'] / $resourceMultiplier);
$Points = GetDefensePoints ( $CurPlanet );
$TDefsCount += $Points['DefenseCount'];;
$GCount += $Points['DefenseCount'];
$PlanetPoints += ($Points['DefensePoint'] / $gameConfig['stat_settings']);
$TDefsPoints += ($Points['DefensePoint'] / $gameConfig['stat_settings']);
$PlanetPoints += ($Points['DefensePoint'] / $resourceMultiplier);
$TDefsPoints += ($Points['DefensePoint'] / $resourceMultiplier);
$Points = GetFleetPoints ( $CurPlanet );
$TFleetCount += $Points['FleetCount'];
$GCount += $Points['FleetCount'];
$PlanetPoints += ($Points['FleetPoint'] / $gameConfig['stat_settings']);
$TFleetPoints += ($Points['FleetPoint'] / $gameConfig['stat_settings']);
$PlanetPoints += ($Points['FleetPoint'] / $resourceMultiplier);
$TFleetPoints += ($Points['FleetPoint'] / $resourceMultiplier);
$GPoints += $PlanetPoints;
$QryUpdatePlanet = "UPDATE {{table}} SET ";

View file

@ -100,9 +100,9 @@ include(ROOT_PATH . 'includes/strings.' . PHPEXT);
if (!defined('IN_INSTALL')) {
$gameConfig = Wootook_Core_Model_Config::getSingleton();
if (isset($gameConfig['cookie_name']) && !empty($gameConfig['cookie_name'])) {
Wootook_Empire_Model_User::setCookieName($gameConfig['cookie_name']);
$cookieName = Wootook::getGameConfig('web/cookie/name');
if ($cookieName !== null) {
Wootook_Empire_Model_User::setCookieName($cookieName);
}
$user = Wootook_Empire_Model_User::getSingleton();
@ -112,8 +112,15 @@ if (!defined('IN_INSTALL')) {
exit(0);
}
if ($gameConfig->isEnabled() && $user !== null && !in_array($user->getData('authlevel'), array(LEVEL_ADMIN, LEVEL_MODERATOR, LEVEL_OPERATOR))) {
message(stripslashes($gameConfig->getData('close_reason')), $gameConfig->getData('game_name'));
if (Wootook::getGameConfig('game/general/active') && $user !== null && !in_array($user->getData('authlevel'), array(LEVEL_ADMIN, LEVEL_MODERATOR, LEVEL_OPERATOR))) {
$layout = new Wootook_Core_Layout();
$layout->load('message');
$block = $layout->getBlock('message');
$block['title'] = Wootook::__('Game is disabled.');
$block['message'] = Wootook::getGameConfig('game/general/closing-message');
echo $layout->render();
exit(0);
}
}

View file

@ -108,13 +108,12 @@ class Legacies_Empire_Model_Planet_Building_ResearchLab_Builder
{
$prices = Wootook_Empire_Model_Game_Prices::getSingleton();
$types = Wootook_Empire_Model_Game_Types::getSingleton();
$gameConfig = Wootook_Core_Model_Config::getSingleton();
Math::setPrecision(50);
// FIXME: Resource dependency
$totalCost = Math::mul(Math::add($prices[$technologyId][Legacies_Empire::RESOURCE_METAL], $prices[$technologyId][Legacies_Empire::RESOURCE_CRISTAL]), $level);
$speedFactor = $gameConfig->getData('game_speed');
$speedFactor = Wootook::getGameConfig('game/speed/general');
// FIXME: Building & Technology dependency
$extraLaboratoriesLevels = 0;

View file

@ -185,12 +185,11 @@ class Legacies_Empire_Model_Planet_Building_Shipyard_Builder
public function getBuildingTime($shipId, $qty)
{
$prices = Wootook_Empire_Model_Game_Prices::getSingleton();
$gameConfig = Wootook_Core_Model_Config::getSingleton();
Math::setPrecision(50);
$buildingTime = Math::mul($prices[$shipId][Legacies_Empire::BASE_BUILDING_TIME], $qty);
$speedFactor = $gameConfig->getData('game_speed');
$speedFactor = Wootook::getGameConfig('game/speed/general');
$baseTime = Math::div($buildingTime, $speedFactor);
Math::setPrecision();

View file

@ -130,71 +130,206 @@ SQL_EOF;
$this->query($sql);
$sql = <<<SQL_EOF
CREATE TABLE IF NOT EXISTS {$this->getTableName('config')} (
`config_name` VARCHAR(64) NOT NULL,
`config_value` TEXT NOT NULL,
UNIQUE KEY (`config_name`)
CREATE TABLE IF NOT EXISTS {$this->getTableName('core_website')} (
`website_id` TINYINT UNSIGNED NOT NULL,
`code` VARCHAR(64) NOT NULL,
`name` VARCHAR(255) NOT NULL,
`sort_order` TINYINT UNSIGNED NOT NULL,
`default_group_id` TINYINT UNSIGNED NOT NULL,
`is_default` BOOL NOT NULL,
`is_staging` BOOL NOT NULL,
`is_active` BOOL NOT NULL,
PRIMARY KEY (`webste_id`),
UNIQUE (`code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
SQL_EOF;
$this->query($sql);
$sql = <<<SQL_EOF
INSERT IGNORE INTO {$this->getTableName('config')} (`config_name`, `config_value`) VALUES
-- ('game/1/resource/income/base/metal', '20'),
-- ('game/1/resource/income/base/cristal', '10'),
-- ('game/1/resource/income/base/deuterium', '0'),
-- ('game/1/resource/income/base/energy', '0'),
-- ('game/1/resource/multiplier', '1000'),
CREATE TABLE IF NOT EXISTS {$this->getTableName('core_game_group')} (
`group_id` TINYINT UNSIGNED NOT NULL,
`website_id` TINYINT UNSIGNED NOT NULL,
`code` VARCHAR(64) NOT NULL,
`name` VARCHAR(255) NOT NULL,
`sort_order` TINYINT UNSIGNED NOT NULL,
`is_default` BOOL NOT NULL,
PRIMARY KEY (`group_id`),
INDEX (`webste_id`),
UNIQUE (`code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
SQL_EOF;
-- ('game/1/speed/general', '2500'),
-- ('game/1/speed/fleet', '2500'),
$this->query($sql);
('game_speed', '2500'),
('fleet_speed', '2500'),
('resource_multiplier', '1000'),
$sql = <<<SQL_EOF
CREATE TABLE IF NOT EXISTS {$this->getTableName('core_game')} (
`game_id` SMALLINT UNSIGNED NOT NULL,
`group_id` TINYINT UNSIGNED NOT NULL,
`website_id` TINYINT UNSIGNED NOT NULL,
`code` VARCHAR(64) NOT NULL,
`name` VARCHAR(255) NOT NULL,
`sort_order` TINYINT UNSIGNED NOT NULL,
`is_default` BOOL NOT NULL,
`is_staging` BOOL NOT NULL,
`is_active` BOOL NOT NULL,
PRIMARY KEY (`group_id`),
INDEX (`webste_id`),
UNIQUE (`code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
SQL_EOF;
('metal_basic_income', '20'),
('cristal_basic_income', '10'),
('deuterium_basic_income', '0'),
('energy_basic_income', '0'),
$this->query($sql);
('Fleet_Cdr', '30'),
('Defs_Cdr', '30'),
('initial_fields', '5000'),
('COOKIE_NAME', 'wootook'),
('game_name', 'Wootook'),
('game_disable', '1'),
('close_reason', 'Le jeu est clos pour le moment!'),
('BuildLabWhileRun', '0'),
('urlaubs_modus_erz', '1'),
('noobprotection', '1'),
('noobprotectiontime', '5000'),
('noobprotectionmulti', '5'),
('forum_url', 'http://board.xnova-ng.org/'),
('OverviewNewsFrame', '1'),
('OverviewNewsTEXT', 'Bienvenue sur le nouveau serveur Wootook'),
('OverviewExternChat', '0'),
('OverviewExternChatCmd', ''),
('OverviewBanner', '0'),
('OverviewClickBanner', ''),
('ExtCopyFrame', '0'),
('ExtCopyOwner', ''),
('ExtCopyFunct', ''),
('ForumBannerFrame', '0'),
('stat_settings', '1000'),
('link_enable', '0'),
('link_name', ''),
('link_url', ''),
('enable_announces', '1'),
('enable_marchand', '1'),
('enable_notes', '1'),
('bot_name', 'XNoviana Reali'),
('bot_adress', 'contact@wootook.org'),
('banner_source_post', '../images/bann.png'),
('ban_duration', '30'),
('enable_bot', '0'),
('enable_bbcode', '1');
$sql = <<<SQL_EOF
INSERT INTO {$this->getTableName('core_website')} (`website_id`, `code`, `name`, `sort_order`, `default_group_id`, `is_default`, `is_staging`, `is_active`)
VALUES
(0, "admin", "Administration", 0, 0, 0, 0, 1),
(1, "default", "Default Website", 1, 1, 1, 0, 1);
SQL_EOF;
$this->query($sql);
$sql = <<<SQL_EOF
INSERT INTO {$this->getTableName('core_game_group')} (`group_id`, `website_id`, `code`, `name`, `sort_order`, `is_default`)
VALUES
(0, 0, "admin", "Administration", 0, 0),
(1, 1, "default", "Default Group", 1, 1);
SQL_EOF;
$this->query($sql);
$sql = <<<SQL_EOF
INSERT INTO {$this->getTableName('core_game')} (`game_id`, `group_id`, `website_id`, `code`, `name`, `sort_order`, `is_default`, `is_staging`, `is_active`)
VALUES
(0, 0, 0, "admin", "Administration", 0, 0, 0, 1),
(1, 1, 1, "default", "Default Game", 1, 1, 0, 1);
SQL_EOF;
$this->query($sql);
$sql = <<<SQL_EOF
CREATE TABLE IF NOT EXISTS {$this->getTableName('core_config')} (
`website_id` TINYINT UNSIGNED NOT NULL,
`game_id` TINYINT UNSIGNED NOT NULL,
`config_path` VARCHAR(64) NOT NULL,
`config_value` VARCHAR(255) NOT NULL,
PRIMARY KEY (`website_id`, `game_id`, `config_path`),
INDEX (`website_id`),
INDEX (`game_id`),
INDEX (`config_path`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
SQL_EOF;
$this->query($sql);
$sql = <<<SQL_EOF
INSERT IGNORE INTO {$this->getTableName('core_config')} (`webste_id`, `game_id`, `config_path`, `config_value`) VALUES
(1, 1, 'resource/base-income/metal', '20'),
(1, 1, 'resource/base-income/cristal', '10'),
(1, 1, 'resource/base-income/deuterium', '0'),
(1, 1, 'resource/base-income/energy', '0'),
(1, 1, 'resource/initial/fields', '163'),
(1, 1, 'resource/initial/metal', '500'),
(1, 1, 'resource/initial/cristal', '500'),
(1, 1, 'resource/initial/deuterium', '0'),
(1, 1, 'resource/initial/energy', '0'),
(1, 1, 'game/general/name', 'Wootook'),
(1, 1, 'game/general/boards-url', 'http://wootook.org/board/'),
(1, 1, 'game/general/extra-url-title', 'Wootook!'),
(1, 1, 'game/general/extra-url', 'http://wootook.org/'),
(1, 1, 'game/general/active', '1'),
(1, 1, 'game/general/closing-message', 'Le jeu est clos pour le moment.'),
(1, 1, 'game/general/locale', 'fr_FR'),
(1, 1, 'game/resource/multiplier', '1000'),
(1, 1, 'game/speed/general', '2500'),
(1, 1, 'game/speed/fleet', '2500'),
(1, 1, 'game/debris/metal-percent', '30'),
(1, 1, 'game/debris/cristal-percent', '30'),
(1, 1, 'game/debris/deuterium-percent', '0'),
(1, 1, 'game/debris/energy-percent', '0'),
(1, 1, 'game/debris/fleet', '1'),
(1, 1, 'game/debris/defense', '0'),
(1, 1, 'game/noob-protection/active', '0'),
(1, 1, 'game/noob-protection/points-cap', '5000'),
(1, 1, 'game/noob-protection/multiplier', '5'),
(0, 0, 'web/cookie/name', '__wtk'),
(0, 0, 'web/cookie/time', '2592000'),
(0, 0, 'web/cookie/domain', ''),
(0, 0, 'web/cookie/path', ''),
(0, 0, 'engine/options/bbcode', '1'),
(0, 0, 'engine/options/ga', '1'),
(0, 0, 'engine/options/announces', '0'),
(0, 0, 'engine/options/retailer', '0'),
(0, 0, 'engine/options/notes', '0'),
(0, 0, 'engine/options/chat', '0'),
(0, 0, 'engine/options/banner', '0'),
(0, 0, 'engine/options/vacation-min-time', '172800'),
(0, 0, 'game/news/active', '0'),
(0, 0, 'game/news/content', 'Bienvenue sur le nouveau serveur de jeu Wootook!'),
(0, 0, 'engine/ban/duration', '86400'),
(0, 0, 'engine/bot/active', '0'),
(0, 0, 'engine/bot/name', 'Woot'),
(0, 0, 'engine/bot/email', 'contact@wootook.org'),
--------------------------------------------------------------------------------
-- (0, 0, 'game_speed', '2500'),
-- (0, 0, 'fleet_speed', '2500'),
-- (0, 0, 'resource_multiplier', '1000'),
-- (0, 0, 'metal_basic_income', '20'),
-- (0, 0, 'cristal_basic_income', '10'),
-- (0, 0, 'deuterium_basic_income', '0'),
-- (0, 0, 'energy_basic_income', '0'),
-- (0, 0, 'Fleet_Cdr', '30'),
-- (0, 0, 'Defs_Cdr', '30'),
-- (0, 0, 'initial_fields', '5000'),
-- (0, 0, 'COOKIE_NAME', 'wootook'),
-- (0, 0, 'game_name', 'Wootook'),
-- (0, 0, 'game_disable', '1'),
-- (0, 0, 'close_reason', 'Le jeu est clos pour le moment.'),
(0, 0, 'BuildLabWhileRun', '0'),
-- (0, 0, 'urlaubs_modus_erz', '1'),
-- (0, 0, 'noobprotection', '1'),
-- (0, 0, 'noobprotectiontime', '5000'),
-- (0, 0, 'noobprotectionmulti', '5'),
-- (0, 0, 'forum_url', 'http://wootook.org/board/'),
-- (0, 0, 'OverviewNewsFrame', '1'),
-- (0, 0, 'OverviewNewsTEXT', 'Bienvenue sur le nouveau serveur Wootook'),
-- (0, 0, 'OverviewExternChat', '0'),
-- (0, 0, 'OverviewExternChatCmd', ''),
-- (0, 0, 'OverviewBanner', '0'),
-- (0, 0, 'OverviewClickBanner', ''),
(0, 0, 'ExtCopyFrame', '0'),
(0, 0, 'ExtCopyOwner', ''),
(0, 0, 'ExtCopyFunct', ''),
-- (0, 0, 'ForumBannerFrame', '0'),
-- (0, 0, 'stat_settings', '1000'),
-- (0, 0, 'link_enable', '0'),
-- (0, 0, 'link_name', ''),
-- (0, 0, 'link_url', ''),
-- (0, 0, 'enable_announces', '1'),
-- (0, 0, 'enable_marchand', '1'),
-- (0, 0, 'enable_notes', '1'),
-- (0, 0, 'bot_name', 'Isaac'),
-- (0, 0, 'bot_adress', 'contact@wootook.org'),
-- (0, 0, 'banner_source_post', '../images/bann.png'),
-- (0, 0, 'ban_duration', '30'),
-- (0, 0, 'enable_bot', '0'),
-- (0, 0, 'enable_bbcode', '1');
SQL_EOF;
$this->query($sql);
@ -259,7 +394,7 @@ $this->query($sql);
$sql = <<<SQL_EOF
CREATE TABLE IF NOT EXISTS {$this->getTableName('galaxy')} (
`galaxy` TINYINT UNSIGNED NOT NULL,
`galaxy` SMALLINT UNSIGNED NOT NULL,
`system` SMALLINT UNSIGNED NOT NULL,
`planet` TINYINT UNSIGNED NOT NULL,
`id_planet` BIGINT UNSIGNED NOT NULL,
@ -617,3 +752,320 @@ SQL_EOF;
$this->query($sql);
/*
* Galaxy positions generation
*/
$galaxyCount = Wootook::getConfig('default/engine/universe/galaxies');
$systemCount = Wootook::getConfig('default/engine/universe/systems');
$sql = <<<SQL_EOF
INSERT INTO {$this->getTableName('galaxy')}
(`galaxy`, `system`, `planet`, `id_planet`, `metal`, `crystal`, `id_luna`, `luna`)
SELECT
_increment.galaxy AS `galaxy`,
_increment.system AS `system`,
0 AS `planet`,
0 AS `id_planet`,
0 AS `metal`,
0 AS `crystal`,
0 AS `id_luna`,
0 AS `luna`
FROM (
SELECT
(1 + _galaxy_10e0.galaxy + _galaxy_10e1.galaxy + _galaxy_10e2.galaxy + _galaxy_10e3.galaxy + _galaxy_10e4.galaxy) AS galaxy,
(1 + _system_10e0.system + _system_10e1.system + _system_10e2.system + _system_10e3.system + _system_10e4.system) AS system
FROM (
SELECT 0 AS system
UNION ALL
SELECT 1 AS system
UNION ALL
SELECT 2 AS system
UNION ALL
SELECT 3 AS system
UNION ALL
SELECT 4 AS system
UNION ALL
SELECT 5 AS system
UNION ALL
SELECT 6 AS system
UNION ALL
SELECT 7 AS system
UNION ALL
SELECT 8 AS system
UNION ALL
SELECT 9 AS system
) AS _system_10e0
SQL_EOF;
if ($systemCount > 10) {
$sql .= <<<SQL_EOF
CROSS JOIN (
SELECT 0 AS system
UNION ALL
SELECT 10 AS system
UNION ALL
SELECT 20 AS system
UNION ALL
SELECT 30 AS system
UNION ALL
SELECT 40 AS system
UNION ALL
SELECT 50 AS system
UNION ALL
SELECT 60 AS system
UNION ALL
SELECT 70 AS system
UNION ALL
SELECT 80 AS system
UNION ALL
SELECT 90 AS system
) AS _system_10e1
SQL_EOF;
} else {
$sql .= <<<SQL_EOF
CROSS JOIN (SELECT 0 AS system) AS _system_10e1
SQL_EOF;
}
if ($systemCount > 100) {
$sql .= <<<SQL_EOF
CROSS JOIN (
SELECT 0 AS system
UNION ALL
SELECT 100 AS system
UNION ALL
SELECT 200 AS system
UNION ALL
SELECT 300 AS system
UNION ALL
SELECT 400 AS system
UNION ALL
SELECT 500 AS system
UNION ALL
SELECT 600 AS system
UNION ALL
SELECT 700 AS system
UNION ALL
SELECT 800 AS system
UNION ALL
SELECT 900 AS system
) AS _system_10e2
SQL_EOF;
} else {
$sql .= <<<SQL_EOF
CROSS JOIN (SELECT 0 AS system) AS _system_10e2
SQL_EOF;
}
if ($systemCount > 1000) {
$sql .= <<<SQL_EOF
CROSS JOIN (
SELECT 0 AS system
UNION ALL
SELECT 1000 AS system
UNION ALL
SELECT 2000 AS system
UNION ALL
SELECT 3000 AS system
UNION ALL
SELECT 4000 AS system
UNION ALL
SELECT 5000 AS system
UNION ALL
SELECT 6000 AS system
UNION ALL
SELECT 7000 AS system
UNION ALL
SELECT 8000 AS system
UNION ALL
SELECT 9000 AS system
) AS _system_10e3
SQL_EOF;
} else {
$sql .= <<<SQL_EOF
CROSS JOIN (SELECT 0 AS system) AS _system_10e3
SQL_EOF;
}
if ($systemCount > 10000) {
$sql .= <<<SQL_EOF
CROSS JOIN (
SELECT 0 AS system
UNION ALL
SELECT 10000 AS system
UNION ALL
SELECT 20000 AS system
UNION ALL
SELECT 30000 AS system
UNION ALL
SELECT 40000 AS system
UNION ALL
SELECT 50000 AS system
UNION ALL
SELECT 60000 AS system
UNION ALL
SELECT 70000 AS system
UNION ALL
SELECT 80000 AS system
UNION ALL
SELECT 90000 AS system
) AS _system_10e4
SQL_EOF;
} else {
$sql .= <<<SQL_EOF
CROSS JOIN (SELECT 0 AS system) AS _system_10e4
SQL_EOF;
}
$sql .= <<<SQL_EOF
CROSS JOIN (
SELECT 0 AS galaxy
UNION ALL
SELECT 1 AS galaxy
UNION ALL
SELECT 2 AS galaxy
UNION ALL
SELECT 3 AS galaxy
UNION ALL
SELECT 4 AS galaxy
UNION ALL
SELECT 5 AS galaxy
UNION ALL
SELECT 6 AS galaxy
UNION ALL
SELECT 7 AS galaxy
UNION ALL
SELECT 8 AS galaxy
UNION ALL
SELECT 9 AS galaxy
) AS _galaxy_10e0
SQL_EOF;
if ($systemCount > 10) {
$sql .= <<<SQL_EOF
CROSS JOIN (
SELECT 0 AS galaxy
UNION ALL
SELECT 10 AS galaxy
UNION ALL
SELECT 20 AS galaxy
UNION ALL
SELECT 30 AS galaxy
UNION ALL
SELECT 40 AS galaxy
UNION ALL
SELECT 50 AS galaxy
UNION ALL
SELECT 60 AS galaxy
UNION ALL
SELECT 70 AS galaxy
UNION ALL
SELECT 80 AS galaxy
UNION ALL
SELECT 90 AS galaxy
) AS _galaxy_10e1
SQL_EOF;
} else {
$sql .= <<<SQL_EOF
CROSS JOIN (SELECT 0 AS galaxy) AS _galaxy_10e1
SQL_EOF;
}
if ($systemCount > 100) {
$sql .= <<<SQL_EOF
CROSS JOIN (
SELECT 0 AS galaxy
UNION ALL
SELECT 100 AS galaxy
UNION ALL
SELECT 200 AS galaxy
UNION ALL
SELECT 300 AS galaxy
UNION ALL
SELECT 400 AS galaxy
UNION ALL
SELECT 500 AS galaxy
UNION ALL
SELECT 600 AS galaxy
UNION ALL
SELECT 700 AS galaxy
UNION ALL
SELECT 800 AS galaxy
UNION ALL
SELECT 900 AS galaxy
) AS _galaxy_10e2
SQL_EOF;
} else {
$sql .= <<<SQL_EOF
CROSS JOIN (SELECT 0 AS galaxy) AS _galaxy_10e2
SQL_EOF;
}
if ($systemCount > 1000) {
$sql .= <<<SQL_EOF
CROSS JOIN (
SELECT 0 AS galaxy
UNION ALL
SELECT 1000 AS galaxy
UNION ALL
SELECT 2000 AS galaxy
UNION ALL
SELECT 3000 AS galaxy
UNION ALL
SELECT 4000 AS galaxy
UNION ALL
SELECT 5000 AS galaxy
UNION ALL
SELECT 6000 AS galaxy
UNION ALL
SELECT 7000 AS galaxy
UNION ALL
SELECT 8000 AS galaxy
UNION ALL
SELECT 9000 AS galaxy
) AS _galaxy_10e3
SQL_EOF;
} else {
$sql .= <<<SQL_EOF
CROSS JOIN (SELECT 0 AS galaxy) AS _galaxy_10e3
SQL_EOF;
}
if ($systemCount > 10000) {
$sql .= <<<SQL_EOF
CROSS JOIN (
SELECT 0 AS galaxy
UNION ALL
SELECT 10000 AS galaxy
UNION ALL
SELECT 20000 AS galaxy
UNION ALL
SELECT 30000 AS galaxy
UNION ALL
SELECT 40000 AS galaxy
UNION ALL
SELECT 50000 AS galaxy
UNION ALL
SELECT 60000 AS galaxy
UNION ALL
SELECT 70000 AS galaxy
UNION ALL
SELECT 80000 AS galaxy
UNION ALL
SELECT 90000 AS galaxy
) AS _galaxy_10e4
SQL_EOF;
} else {
$sql .= <<<SQL_EOF
CROSS JOIN (SELECT 0 AS galaxy) AS _galaxy_10e4
SQL_EOF;
}
$sql .= <<<SQL_EOF
) _increment
WHERE _increment.galaxy<={$galaxyCount}
AND _increment.system<={$systemCount}
SQL_EOF;
$this->query($sql);

View file

@ -81,10 +81,31 @@ class Wootook
/**
*
* Enter description here ...
* @var array
* @var Wootook_Core_Config_Adapter_Abstract
*/
protected static $_config = null;
/**
*
* Enter description here ...
* @var Wootook_Core_Config_Adapter_Abstract
*/
protected static $_globalConfig = null;
/**
*
* Enter description here ...
* @var array
*/
protected static $_websiteConfigs = array();
/**
*
* Enter description here ...
* @var array
*/
protected static $_gameConfigs = array();
/**
* Registers an event listener to be called later in the application.
*
@ -179,7 +200,7 @@ class Wootook
public static function getLocale()
{
$availableLocales = self::getConfig('global/locales');
$availableLocales = self::$_config->getConfig('global/locales');
return self::getPreferredLocale($availableLocales);
}
@ -287,68 +308,172 @@ class Wootook
self::$_response = $response;
}
public static function loadConfig()
public static function loadConfig($filename = null)
{
self::$_config = include ROOT_PATH . DIRECTORY_SEPARATOR . 'config.php';
if (!is_array(self::$_config)) {
self::$_config = array();
if ($filename === null) {
$filename = ROOT_PATH . DIRECTORY_SEPARATOR . 'config.php';
}
self::$_config = new Wootook_Core_Config_Adapter_Array($filename);
self::$_globalConfig = clone self::$_config['default'];
self::$_globalConfig->merge(self::$_config['global']);
self::_appendDatabaseConfig(self::$_globalConfig);
self::$_websiteConfigs = array();
self::$_gameConfigs = array();
return self::$_config;
}
protected static function _appendDatabaseConfig(Wootook_Core_Config_Node $config, $type = 'global', $id = 0)
{
$collection = new Wootook_Core_Collection('core_config', 'Wootook_Core_Model_Config');
switch ($type) {
case 'website':
$collection->where('website_id = :website_id');
$collection->load(array('website_id' => $id));
break;
case 'game':
$collection->where('game_id = :game_id');
$collection->load(array('game_id' => $id));
break;
default:
$collection->where('website_id = 0');
$collection->where('game_id = 0');
$collection->load(array());
break;
}
foreach ($collection as $row) {
$config->setConfig($row->getData('config_path'), $row->getData('config_value'));
}
return $config;
}
protected static function _initWebsiteConfig($websiteId)
{
if (self::$_config === null) {
self::loadConfig();
}
$websiteId = 1;
if (!isset(self::$_websiteConfigs[$websiteId])) {
self::$_websiteConfigs[$websiteId] = clone self::$_globalConfig;
$websiteConfig = self::$_config->getConfig("website/{$websiteId}");
if ($websiteConfig !== null) {
self::$_websiteConfigs[$websiteId]->merge($websiteConfig);
}
self::_appendDatabaseConfig(self::$_websiteConfigs[$websiteId], 'website', $websiteId);
}
return self::$_websiteConfigs[$websiteId];
}
protected static function _initGameConfig($gameId)
{
if (self::$_config === null) {
self::loadConfig();
}
$websiteId = 1;
$gameId = 1;
if (!isset(self::$_gameConfigs[$gameId])) {
self::_initWebsiteConfig($websiteId);
self::$_gameConfigs[$gameId] = clone self::$_websiteConfigs[$websiteId];
$gameConfig = self::$_config->getConfig("game/{$gameId}");
if ($gameConfig !== null) {
self::$_gameConfigs[$gameId]->merge($gameConfig);
}
self::_appendDatabaseConfig(self::$_gameConfigs[$gameId], 'game', $gameId);
}
return self::$_gameConfigs[$gameId];
}
public static function getConfig($path = null)
{
if (self::$_config === null) {
self::loadConfig();
}
if ($path === null || !is_string($path)) {
return self::$_config;
if ($path !== null) {
return self::$_globalConfig->getConfig($path);
}
$config = self::$_config;
foreach (explode('/', $path) as $chunk) {
if (!isset($config[$chunk])) {
return null;
}
$config = $config[$chunk];
}
return $config;
return self::$_globalConfig;
}
public static function setConfig($path, $value)
public static function getWebsiteConfig($path = null, $websiteId = null)
{
if (self::$_config === null) {
self::loadConfig();
}
if ($path === null || !is_string($path)) {
return self::$_config = $value;
$websiteId = 1;
self::_initWebsiteConfig($websiteId);
if ($path !== null) {
return self::$_websiteConfigs[$websiteId]->getConfig($path);
}
$config = &self::$_config;
foreach (explode('/', $path) as $chunk) {
if (!isset($config[$chunk])) {
$config[$chunk] = array();
return self::$_websiteConfigs[$websiteId];
}
public static function getGameConfig($path = null, $gameId = null)
{
if (self::$_config === null) {
self::loadConfig();
}
$gameId = 1;
self::_initGameConfig($gameId);
if ($path !== null) {
return self::$_gameConfigs[$gameId]->getConfig($path);
}
return self::$_gameConfigs[$gameId];
}
public static function setConfig($path, $value, $websiteId = null, $gameId = null)
{
if (self::$_config === null) {
self::loadConfig();
}
$updater = new Wootook_Core_Model_Config();
$updater->setPath($path)->setValue($value);
if ($websiteId !== null) {
$updater->setWebsiteId($websiteId);
if ($gameId !== null) {
$updater->setGameId($gameId);
self::$_gameConfigs[$gameId]->setConfig($path, $value);
} else {
self::$_websiteConfigs[$websiteId]->setConfig($path, $value);
}
$config = &$config[$chunk];
} else {
self::$_globalConfig->setConfig($path, $value);
}
$config = $value;
$updater->save();
return true;
}
public static function writeConfig(Array $config)
{
file_put_contents(ROOT_PATH . DIRECTORY_SEPARATOR . 'config.php',
'<' . '?p' . 'hp ' . var_export($config, true) . ';');
self::$_config = $config;
}
public static function getBaseUrl()
{
return self::getConfig('global/web/base_url');
return self::$_config->getConfig('global/web/base_url');
}
public static function getSkinUrl($package, $theme, $uri, Array $params = array())

View file

@ -14,10 +14,14 @@ class Wootook_Core_Block_Messages
{
$messages = array();
var_dump($this->_storages);
foreach ($this->_storages as $namespace) {
$session = Wootook::getSession($namespace);
var_dump($session);
foreach ($session->getMessages() as $messageLevel => $messageList) {
var_dump(array($messageLevel => $messageList));
foreach ($session->getData('messages') as $messageLevel => $messageList) {
if (!isset($messages[$messageLevel])) {
$messages[$messageLevel] = $messageList;
} else {

View file

@ -1,7 +1,7 @@
<?php
class Wootook_Core_Collection
extends Wootook_Core_Model
extends Wootook_Core_Database_Resource
implements Iterator, Countable
{
protected $_tableName = null;
@ -254,7 +254,7 @@ SQL_EOF;
{
$sql = $this->_prepareSql();
$database = Wootook_Database::getSingleton();
$database = $this->getReadConnection();
$statement = $database->prepare($sql);
$args = func_get_args();

View file

@ -0,0 +1,6 @@
<?php
abstract class Wootook_Core_Config_Adapter_Abstract
extends Wootook_Core_Config_Node
{
}

View file

@ -0,0 +1,33 @@
<?php
class Wootook_Core_Config_Adapter_Array
extends Wootook_Core_Config_Adapter_Abstract
{
public function __construct($filename = null)
{
if ($filename !== null) {
$this->load($filename);
}
}
public function load($filename)
{
$data = include $filename;
if (!is_array($data)) {
throw new Wootook_Core_Exception_DataAccessException(
Wootook::__('Configuration file could not be loaded.'));
}
$this->_init($data);
return $this;
}
public function save($filename)
{
file_put_contents($filename, '<' . '?p' . 'hp return ' . var_export($this->toArray(), true) . ';');
return $this;
}
}

View file

@ -0,0 +1,204 @@
<?php
class Wootook_Core_Config_Node
implements ArrayAccess
{
protected $_children = array();
protected $_parent = null;
protected static $_attributeNameCache = array();
public function __construct(Array $data = array(), $parent = null)
{
$this->_init($data, $parent);
}
public function setData(Array $data = array())
{
$this->_init($data);
return $this;
}
protected function _init(Array $data, $parent = null)
{
if ($parent !== null) {
$this->_parent = $parent;
}
$this->_children = array();
foreach ($data as $key => $value) {
if (is_array($value)) {
$this->offsetSet($key, new self($value, $this));
} else {
$this->offsetSet($key, $value);
}
}
return $this;
}
public function setConfig($path, $value)
{
$explodedPath = explode('/', $path);
$length = count($explodedPath);
$currentNode = $this;
for ($i = 0; $i < $length; $i++) {
if (!$currentNode->offsetExists($explodedPath[$i])) {
$newNode = new Wootook_Core_Config_Node(array(), $currentNode);
$currentNode->offsetSet($explodedPath[$i], $newNode);
}
$currentNode = $currentNode->offsetGet($explodedPath[$i]);
if ($i >= ($length - 1)) {
if (is_array($value)) {
$currentNode->offsetSet($explodedPath[$i], new self($value, $this));
} else {
$currentNode->offsetSet($explodedPath[$i], $value);
}
break;
} else if (!$currentNode instanceof Wootook_Core_Config_Node) {
throw new Wootook_Core_Exception_RuntimeException();
}
}
return $this;
}
public function getConfig($path)
{
$explodedPath = explode('/', $path);
$length = count($explodedPath);
$currentNode = $this;
for ($i = 0; $i < $length; $i++) {
if (!$currentNode instanceof Wootook_Core_Config_Node) {
throw new Wootook_Core_Exception_RuntimeException();
}
if (!$currentNode->offsetExists($explodedPath[$i])) {
return null;
}
$currentNode = $currentNode->offsetGet($explodedPath[$i]);
}
return $currentNode;
}
public function toArray()
{
$result = array();
foreach ($this->_children as $key => $child) {
if ($child instanceof self) {
$result[$key] = $child->toArray();
} else if ($child instanceof Wootook_Core_Config_Leaf) {
$result[$key] = $child->getValue();
} else {
$result[$key] = $child;
}
}
return $result;
}
public function reset()
{
$this->_children = array();
$this->_parent = null;
return $this;
}
public function merge(self $node)
{
foreach ($node->_children as $offset => $value) {
if ($value instanceof self) {
if (!$this->offsetExists($offset)) {
$this->offsetSet($offset, new self(array(), $this));
}
$this->offsetGet($offset)->merge($value);
} else {
$this->offsetSet($offset, $value);
}
}
return $this;
}
private function _resolveAttributeName($key)
{
if (!isset(self::$_attributeNameCache[$key])) {
self::$_attributeNameCache[$key] = str_replace(' ', '-', strtolower(preg_replace('#[A-Z]#', ' \\1', $key)));
}
return self::$_attributeNameCache[$key];
}
public function __get($offset)
{
return $this->offsetGet($this->_resolveAttributeName($offset));
}
public function __set($offset, $value)
{
return $this->offsetSet($this->_resolveAttributeName($offset), $value);
}
public function __isset($offset)
{
return $this->offsetExists($this->_resolveAttributeName($offset));
}
public function __unset($offset)
{
return $this->offsetUnset($this->_resolveAttributeName($offset));
}
public function __clone()
{
$clone = new self();
foreach ($this->_children as $childName => $childNode) {
if ($childNode instanceof self) {
$childNode = clone $childNode;
$childNode->_parent = $clone;
}
$clone->offsetSet($childName, $childNode);
}
return $clone;
}
public function offsetGet($offset)
{
if ($this->offsetExists($offset)) {
return $this->_children[$offset];
}
return null;
}
public function offsetSet($offset, $value)
{
$this->_children[$offset] = $value;
return $value;
}
public function offsetExists($offset)
{
if (isset($this->_children[$offset])) {
return true;
}
return false;
}
public function offsetUnset($offset)
{
if ($this->offsetExists($offset)) {
unset($this->_children[$offset]);
}
}
}

View file

@ -0,0 +1,67 @@
<?php
abstract class Wootook_Core_Database_Resource
extends Wootook_Core_Model
{
protected $_readConnection = null;
protected $_writeConnection = null;
protected $_tableName = null;
public function setTableName($tableName)
{
$this->_tableName = $tableName;
return $this;
}
public function getTableName()
{
return $this->_tableName;
}
public function getReadConnection()
{
if ($this->_readConnection === null) {
$this->_readConnection = Wootook_Database::getConnection('core_read');
}
return $this->_readConnection;
}
public function setReadConnection($connection)
{
if ($connection instanceof Wootook_Database) {
$this->_readConnection = $connection;
} else if (is_string($connection)) {
$this->_readConnection = Wootook_Database::getConnection($connection);
} else {
throw new Wootook_Core_Exception_RuntimeException(
'First parameter should be either a database connection object or a string identifier.');
}
return $this;
}
public function getWriteConnection()
{
if ($this->_writeConnection === null) {
$this->_writeConnection = Wootook_Database::getConnection('core_write');
}
return $this->_writeConnection;
}
public function setWriteConnection($connection)
{
if ($connection instanceof Wootook_Database) {
$this->_readConnection = $connection;
} else if (is_string($connection)) {
$this->_readConnection = Wootook_Database::getConnection($connection);
} else {
throw new Wootook_Core_Exception_RuntimeException(
'First parameter should be either a database connection object or a string identifier.');
}
return $this;
}
}

View file

@ -1,11 +1,10 @@
<?php
abstract class Wootook_Core_Entity
extends Wootook_Core_Model
extends Wootook_Core_Database_Resource
implements Wootook_Core_EntityInterface
{
protected $_idFieldName = null;
protected $_tableName = null;
public function setIdFieldName($fieldName)
{
@ -19,18 +18,6 @@ abstract class Wootook_Core_Entity
return $this->_idFieldName;
}
public function setTableName($tableName)
{
$this->_tableName = $tableName;
return $this;
}
public function getTableName()
{
return $this->_tableName;
}
public function setId($id)
{
$this->setData($this->getIdFieldName(), $id);
@ -48,10 +35,10 @@ abstract class Wootook_Core_Entity
$id = func_get_arg(0);
$idFieldName = self::getIdFieldName();
$database = Wootook_Database::getSingleton();
$database = $this->getReadConnection();
$sql =<<<SQL_EOF
SELECT * FROM {$database->getTable(self::getTableName())}
SELECT * FROM {$database->getTable($this->getTableName())}
WHERE {$idFieldName}=:id
LIMIT 1
SQL_EOF;
@ -89,9 +76,9 @@ SQL_EOF;
$idFieldName = self::getIdFieldName();
$values[$idFieldName] = $this->getId();
$database = Wootook_Database::getSingleton();
$database = $this->getWriteConnection();
$sql =<<<SQL_EOF
UPDATE {$database->getTable(self::getTableName())}
UPDATE {$database->getTable($this->getTableName())}
SET {$fieldsImploded}
WHERE {$idFieldName}=:{$idFieldName}
SQL_EOF;
@ -113,9 +100,9 @@ SQL_EOF;
}
$tokensImploded = implode(', ', $tokens);
$database = Wootook_Database::getSingleton();
$database = $this->getWriteConnection();
$sql =<<<SQL_EOF
INSERT INTO {$database->getTable(self::getTableName())} ($fieldsImploded)
INSERT INTO {$database->getTable($this->getTableName())} ($fieldsImploded)
VALUES ({$tokensImploded})
SQL_EOF;
$statement = $database->prepare($sql);
@ -140,9 +127,9 @@ SQL_EOF;
$fieldsImploded = implod(', ', $fields);
$idFieldName = self::getIdFieldName();
$database = Wootook_Database::getSingleton();
$database = $this->getWriteConnection();
$sql =<<<SQL_EOF
DELETE {$database->getTable(self::getTableName())}
DELETE {$database->getTable($this->getTableName())}
WHERE {$idFieldName}=:{$idFieldName}
SQL_EOF;

View file

@ -7,10 +7,9 @@
* @uses Wootook_Empire_Model_User
*/
abstract class Wootook_Core_Entity_SubTable
extends Wootook_Core_Model
extends Wootook_Core_Database_Resource
{
private $_isLoaded = false;
protected $_tableName = null;
protected $_idFieldNames = array();
protected $_eventPrefix = 'entity.sub-table';
@ -118,16 +117,4 @@ SQL_EOF;
return $this;
}
public function setTableName($tableName)
{
$this->_tableName = $tableName;
return $this;
}
public function getTableName()
{
return $this->_tableName;
}
}

View file

@ -16,6 +16,10 @@ class Wootook_Core_ErrorProfiler
private $_mute = false;
/**
*
* @return Wootook_Core_ErrorProfiler
*/
public static function getSingleton()
{
if (self::$_singleton === null) {

View file

@ -8,81 +8,56 @@
* @uses Legacies_Empire
*/
class Wootook_Core_Model_Config
extends Wootook_Core_Model
implements Wootook_Core_Singleton
extends Wootook_Core_Entity_SubTable
{
private static $_singleton = null;
protected $_eventPrefix = 'core.config';
protected $_eventObject = 'config';
public static function getSingleton()
{
if (self::$_singleton === null) {
self::$_singleton = new self();
}
return self::$_singleton;
}
protected function _init()
{
$this->load();
$this->_tableName = 'core_config';
$this->_idFieldNames = array('config_path', 'website_id', 'game_id');
}
protected function _load()
public function setWebsiteId($websiteId)
{
$database = Wootook_Database::getSingleton();
$sql =<<<SQL_EOF
SELECT config_name AS attribute, config_value AS value
FROM {$database->getTable('config')} AS config
SQL_EOF;
$attributeName = null;
$attributeValue = null;
$statement = $database->prepare($sql);
$statement->execute();
$statement->bindColumn('attribute', $attributeName, PDO::PARAM_STR);
$statement->bindColumn('value', $attributeValue, PDO::PARAM_STR);
while ($statement->fetch(PDO::FETCH_BOUND)) {
$this->setData($attributeName, $attributeValue);
}
return $this;
return $this->setData('website_id', $websiteId);
}
protected function _save()
public function getWebsiteId()
{
$database = Wootook_Database::getSingleton();
$fields = array();
$sql =<<<SQL_EOF
UPDATE {{table}}
SET config_value=:value
WHERE config_name=:name
SQL_EOF;
$statement = $database->prepare($sql);
foreach ($this->getAllDatas() as $attributeName => $attributeValue) {
$statement->execute(array(
'name' => $attributeName,
'value' => $attributeValue
));
}
return $this;
return $this->getData('website_id');
}
protected function _delete()
public function setGameId($gameId)
{
// NOP
return $this;
return $this->setData('game_id', $gameId);
}
public function isEnabled()
public function getGameId()
{
return (bool) $this->getData('game_disable');
return $this->getData('game_id');
}
public function setPath($path)
{
return $this->setData('config_path', $path);
}
public function getPath()
{
return $this->getData('config_path');
}
public function setValue($value)
{
return $this->setData('config_value', $value);
}
public function getValue()
{
return $this->getData('config_value');
}
}

View file

@ -58,7 +58,8 @@ class Wootook_Core_Model_Session
{
$messages = $this->_data['messages'];
if ($clear == true) {
$this->_data['messages'] = array();
var_dump($this->_data['messages']);
//$this->_data['messages'] = array();
}
return $messages;
}

View file

@ -33,8 +33,10 @@ class Wootook_Database
return self::$_connectionAliases[$connectionName];
}
if ($alias = Wootook::getConfig("global/database/{$connectionName}/use")) {
if ($alias = Wootook::getConfig("database/{$connectionName}/use")) {
self::$_connectionAliases[$connectionName] = self::getConnection($alias);
return self::$_connectionAliases[$connectionName];
}
self::$_connections[$connectionName] = self::_initConnection($connectionName);
@ -45,23 +47,23 @@ class Wootook_Database
private static function _initConnection($connectionName)
{
$hostname = Wootook::getConfig("global/database/{$connectionName}/params/hostname");
$username = Wootook::getConfig("global/database/{$connectionName}/params/username");
$password = Wootook::getConfig("global/database/{$connectionName}/params/password");
$database = Wootook::getConfig("global/database/{$connectionName}/params/database");
$hostname = Wootook::getConfig("database/{$connectionName}/params/hostname");
$username = Wootook::getConfig("database/{$connectionName}/params/username");
$password = Wootook::getConfig("database/{$connectionName}/params/password");
$database = Wootook::getConfig("database/{$connectionName}/params/database");
if (empty($hostname) || empty($username) || empty($database)) {
return null;
}
$dsn = "mysql:dbname={$database};host={$hostname}";
if (($port = Wootook::getConfig("global/database/{$connectionName}/params/port")) && is_numeric($port)) {
if (($port = Wootook::getConfig("database/{$connectionName}/params/port")) && is_numeric($port)) {
$dsn .= ";port={$port}";
}
$event = Wootook::dispatchEvent('database.prepare-options', array(
'name' => $connectionName,
'options' => array_merge(self::$options, Wootook::getConfig("global/database/{$connectionName}/options"))
'options' => array_merge(self::$options, Wootook::getConfig("database/{$connectionName}/options")->toArray())
));
$options = $event->getData('options');
@ -71,7 +73,7 @@ class Wootook_Database
$connection->_username = $username;
$connection->_password = $password;
if (($prefix = Wootook::getConfig("global/database/{$connectionName}/table_prefix")) !== null) {
if (($prefix = Wootook::getConfig("database/{$connectionName}/table_prefix")) !== null) {
$connection->setTablePrefix($prefix);
}

View file

@ -46,6 +46,10 @@ abstract class Wootook_Empire_Model_BuilderAbstract
public function enqueue($params, $index = null)
{
if ($this->_currentUser->getVacation()) {
return $this;
}
$item = $this->_initItem($params);
if ($item === null) {
return $this;

View file

@ -260,6 +260,14 @@ class Wootook_Empire_Model_Planet
return $this;
}
if ($this->getUser()->isVacation()) {
$resourceConfig = Wootook::getGameConfig('resource/base-income');
foreach ($resources->getAllDatas() as $resource => $resourceData) {
$this->setData($resourceData['production_field'], $resourceConfig[$resource]);
}
return $this;
}
/*
* Compute resources consumers and resources producers
*/
@ -952,22 +960,14 @@ class Wootook_Empire_Model_Planet
$key = array_rand($positions, 1);
$finalPosition = $positions[$key];
$config = Wootook_Core_Model_Config::getSingleton();
$planet = new self();
$planet
->setData('id_owner', $user->getId())
->setData('name', Wootook::getRequest()->getParam('planet'))
->setData('galaxy', $systemInfo->getData('galaxy'))
->setData('system', $systemInfo->getData('system'))
->setData('planet', $finalPosition)
->setData('planet_type', 1)
->setData('field_max', $config->getData('initial_fields'))
->setData('field_current', 0)
->setData('metal', 500) // TODO: use config
->setData('cristal', 500) // TODO: use config
;
$planet->save();
$user->createNewPlanet(
$systemInfo->getData('galaxy'),
$systemInfo->getData('system'),
$finalPosition,
Wootook_Empire_Model_Planet::TYPE_PLANET,
Wootook::getRequest()->getParam('planet'),
Wootook::getGameConfig('resource/initial/fields')
);
$user
->setData('id_planet', $planet->getId())
@ -976,13 +976,6 @@ class Wootook_Empire_Model_Planet
->setData('system', $planet->getSystem())
->setData('planet', $planet->getPosition())
;
Wootook::dispatchEvent('planet.init', array(
'planet' => $planet,
'user' => $user
));
$planet->save();
}
}

View file

@ -68,14 +68,13 @@ class Wootook_Empire_Model_Planet_Builder
public function getBuildingTime($buildingId, $level)
{
$prices = Wootook_Empire_Model_Game_Prices::getSingleton();
$gameConfig = Wootook_Core_Model_Config::getSingleton();
Math::setPrecision(50);
$firstLevelTime = $prices[$buildingId][Legacies_Empire::BASE_BUILDING_TIME];
$partialLevelTime = Math::mul($firstLevelTime, Math::pow($prices[$buildingId][Legacies_Empire::RESOURCE_MULTIPLIER], $level));
$levelTime = Math::sub($partialLevelTime, $firstLevelTime);
$speedFactor = $gameConfig->getData('game_speed');
$speedFactor = Wootook::getGameConfig('game/speed/general');
$baseTime = $levelTime / $speedFactor * 3600;
Math::setPrecision();

View file

@ -174,6 +174,7 @@ class Wootook_Empire_Model_User
$user->setData('banaday', 0)
->setData('bana', 0)
->setData('urlaubs_modus', 0)
->setData('urlaubs_until', null)
->save()
;
} else {
@ -186,18 +187,25 @@ class Wootook_Empire_Model_User
Wootook::getResponse()->setCookie(self::$_cookieName, array('id' => $login['id'], 'key' => $login['login_rememberme']), self::COOKIE_LIFETIME);
}
self::$_singleton = self::factory($login['id']);
self::$_singleton->_updateActivity();
$session->setData('user_id', intval($login['id']));
return self::$_singleton;
return self::setLoggedIn(self::factory($login['id']));
}
$session->addError('Your username or credential is invalid, please check your input.');
return null;
}
public static function setLoggedIn(self $user)
{
$session = Wootook::getSession(self::SESSION_KEY);
self::$_singleton = $user;
self::$_singleton->_updateActivity();
$session->setData('user_id', intval(self::$_singleton->getId()));
return self::$_singleton;
}
public static function register($username, $email, $password)
{
try {
@ -225,7 +233,7 @@ class Wootook_Empire_Model_User
} catch (Wootook_Core_Exception_DataAccessException $e) {
$session = Wootook_Core_Model_Session::factory(Wootook_Empire_Model_User::SESSION_KEY);
trigger_error($e->getMessage(), E_USER_ERROR);
Wootook_Core_ErrorProfiler::getSingleton()->exceptionManager($e);
$session->addError($e->getMessage());
return null;
}
@ -233,6 +241,44 @@ class Wootook_Empire_Model_User
return $user;
}
public function createNewPlanet($galaxy, $system, $position, $type, $name, $size = null)
{
if ($size === null) {
$baseSize = Wootook::getGameConfig('resource/initial/fields');
$factor = $position * 10 / (1 + log($position * 10));
$fuzz = 2 * $factor * pow(sin($factor), 2) / 2 + $factor / 4;
$size = mt_rand(floor($factor / 10), ceil($factor * 5 / 4)) + mt_rand(0, $fuzz);
}
$planet = new self();
$planet
->setData('id_owner', $user->getId())
->setData('name', $name)
->setData('galaxy', $galaxy)
->setData('system', $system)
->setData('planet', $position)
->setData('planet_type', $type)
->setData('field_max', $size)
->setData('diameter', pow($size, 2) + mt_rand(0, $size * $position))
->setData('field_current', 0)
;
$resourceConfig = Wootook::getGameConfig('resource/initial');
$resourceList = Wootook_Empire_Model_Game_Resources::getSingleton();
foreach ($resourceList as $resource => $resourceData) {
$planet->setData($resourceData['production_field'], $resourceConfig[$resource]);
}
Wootook::dispatchEvent('planet.init', array(
'planet' => $planet,
'user' => $user
));
$planet->save();
}
/**
*
* Enter description here ...
@ -561,4 +607,34 @@ class Wootook_Empire_Model_User
$navigation->addLink('tools/back', 'Go back to the game', 'Go back to the game', 'overview.php', array(), array('admin'));
}
}
public function getVacation()
{
return $this->getData('urlaubs_modus') ? true : false;
}
public function getVacationEndDate()
{
return $this->getData('urlaubs_until');
}
public function setVacation($active = true)
{
$this->setData('urlaubs_modus', $active);
foreach ($this->getPlanetCollection() as $planet) {
$planet->updateResources();
$planet->updateResourceProduction();
$planet->save();
}
if ($active) {
$this->setData('urlaubs_until', time() + Wootook::getConfig('engine/options/vacation-min-time'));
} else {
$this->setData('urlaubs_until', null);
}
$this->save();
return $this;
}
}

View file

@ -3,13 +3,13 @@
<table width="519">
<tbody>
<tr>
<td class="c" colspan="2">Message G&eacute;n&eacute;ral</td>
<td class="c" colspan="2"><?php echo $this->__('General message')?></td>
</tr><tr>
<th>Sujet</th>
<th><input name="temat" maxlength="100" size="20" value="" type="text"></th>
</tr><tr>
<th>Texte (<span id="cntChars">0</span> / 5000 Caract&egrave;re)</th>
<th><textarea name="tresc" cols="40" rows="10" size="100">Message Administratif</textarea></th>
<th><?php echo $this->__('Content <span id="cntChars">0</span> / %1$d chars)', 5000)?></th>
<th><textarea name="tresc" cols="40" rows="10" size="100"><?php echo $this->__('Admin message')?></textarea></th>
</tr><tr>
<th colspan="2"><input value="Envoyer" type="submit"></th>
</tr>

View file

@ -102,24 +102,17 @@
</tr><tr>
<th colspan="2"><textarea name="NewsText" cols="80" rows="5" size="80" ><?php echo $this->getData('NewsTextVal')?></textarea></th>
</tr><tr>
<th><?php echo $this->getData('adm_opt_game_oth_chat')?></th>
<th><input name="chatframe"<?php echo $this->getData('chatframe')?> type="checkbox" /></th>
<th><?php echo $this->__('Enable Google Analytics')?></th>
<td><input name="ga"<?php echo $this->getData('ga')?> type="checkbox" /></td>
</tr><tr>
<th colspan="2"><textarea name="ExternChat" cols="80" rows="5" size="80" ><?php echo $this->getData('ExtTchatVal')?></textarea></th>
</tr><tr>
<th><?php echo $this->getData('adm_opt_game_oth_adds')?></th>
<th><input name="googlead"<?php echo $this->getData('googlead')?> type="checkbox" /></th>
</tr><tr>
<th colspan="2"><textarea name="GoogleAds" cols="80" rows="5" size="80" ><?php echo $this->getData('GoogleAdVal')?></textarea></th>
</tr><tr>
<th><?php echo $this->getData('adm_opt_game_debugmod')?></a></th>
<th><input name="debug"<?php echo $this->getData('debug')?> type="checkbox" /></th>
</tr>
<th><?php echo $this->__('Google Analytics Identifier')?></th>
<td><input name=ga_id type="text" value="<?php echo $this->escape($this->getData('ga_id'))?>" /></td>
</tr>
<tr>
<th><?php echo $this->getData('banner')?></th>
<th><textarea name="banner_source_post" cols="80" rows="1" size="80" ><?php echo $this->getData('banner_source_post')?></textarea></th>
</tr>
<tr>
<th colspan="2"><img src="<?php echo $this->getData('banner_source_post')?>" alt="<?php echo $this->getData('banner_source_post')?>" title="<?php echo $this->getData('banner_source_post')?>"></th>

View file

@ -2,16 +2,6 @@
'install' => array(
'update' => '2columns-left',
'reference' => array(
'messages' => array(
'actions' => array(
array(
'method' => 'prepareMessages',
'params' => array(
'namespace' => 'install'
)
)
)
),
'content' => array(
'children' => array(
'navigation' => array(
@ -155,5 +145,19 @@
)
)
)
)
),
'install.summary' => array(
'update' => 'install',
'reference' => array(
'content' => array(
'children' => array(
'overview' => array(
'type' => 'core/template',
'template' => 'summary.phtml'
),
)
)
)
),
);

View file

@ -3,7 +3,7 @@
<h1><?php echo $this->__('Welcome to the Wootook! installer')?></h1>
<h2><?php echo $this->__('Admin Profile Config')?></h2>
<?php echo $this->getLayout()->getMessagesblock()->renderGroupedHtml()?>
<form method="post" action="?mode=install&step=3" id="form:database">
<form method="post" action="?mode=install&step=4" id="form:database">
<input type="hidden" id="form_key" name="__formkey" value="<?php echo $session->getFormKey()?>" />
<p>
<label for="account:username"><?php echo $this->__('Root admin account name:')?></label>

View file

@ -50,10 +50,9 @@ $position = isset($session['position']) ? $session['position'] : 0;
$type = isset($session['type']) ? $session['type'] : 0;
$speed = isset($session['speed']) ? $session['speed'] : 10;
$protection = $gameConfig['noobprotection'];
$protectiontime = $gameConfig['noobprotectiontime'];
$protectionmulti = $gameConfig['noobprotectionmulti'];
$protection = Wootook::getGameConfig('game/noob-protection/active');
$protectiontime = Wootook::getGameConfig('game/noob-protection/points-cap');
$protectionmulti = Wootook::getGameConfig('game/noob-protection/multiplier');
if ($protectiontime < 1) {
$protectiontime = 9999999999999999;

View file

@ -70,9 +70,9 @@ require_once dirname(__FILE__) .'/application/bootstrap.php';
}
}
$PrNoob = $gameConfig['noobprotection'];
$PrNoobTime = $gameConfig['noobprotectiontime'];
$PrNoobMulti = $gameConfig['noobprotectionmulti'];
$PrNoob = Wootook::getGameConfig('game/noob-protection/active');
$PrNoobTime = Wootook::getGameConfig('game/noob-protection/points-cap');
$PrNoobMulti = Wootook::getGameConfig('game/noob-protection/multiplier');
// Petit Test de coherance
$galaxy = intval($_POST['galaxy']);

View file

@ -29,7 +29,7 @@
*/
function walka ($CurrentSet, $TargetSet, $CurrentTechno, $TargetTechno) {
global $pricelist, $CombatCaps, $gameConfig;
global $pricelist, $CombatCaps;
$runda = array();
$atakujacy_n = array();
$wrog_n = array();
@ -259,11 +259,11 @@ function walka ($CurrentSet, $TargetSet, $CurrentTechno, $TargetTechno) {
$wygrana = "w";
}
$zlom['metal'] = ((($atakujacy_zlom_poczatek['metal'] - $atakujacy_zlom_koniec['metal']) + ($wrog_zlom_poczatek['metal'] - $wrog_zlom_koniec['metal'])) * ($gameConfig['Fleet_Cdr'] / 100));
$zlom['crystal'] = ((($atakujacy_zlom_poczatek['crystal'] - $atakujacy_zlom_koniec['crystal']) + ($wrog_zlom_poczatek['crystal'] - $wrog_zlom_koniec['crystal'])) * ($gameConfig['Fleet_Cdr'] / 100));
$zlom['metal'] = ((($atakujacy_zlom_poczatek['metal'] - $atakujacy_zlom_koniec['metal']) + ($wrog_zlom_poczatek['metal'] - $wrog_zlom_koniec['metal'])) * (Wootook::getGameConfig('game/debris/fleet') ? (Wootook::getGameConfig('game/debris/metal-percent') / 100) : 0));
$zlom['crystal'] = ((($atakujacy_zlom_poczatek['crystal'] - $atakujacy_zlom_koniec['crystal']) + ($wrog_zlom_poczatek['crystal'] - $wrog_zlom_koniec['crystal'])) * (Wootook::getGameConfig('game/debris/fleet') ? (Wootook::getGameConfig('game/debris/cristal-percent') / 100) : 0));
$zlom['metal'] += ((($atakujacy_zlom_poczatek['metal'] - $atakujacy_zlom_koniec['metal']) + ($wrog_zlom_poczatek['metal'] - $wrog_zlom_koniec['metal'])) * ($gameConfig['Defs_Cdr'] / 100));
$zlom['crystal'] += ((($atakujacy_zlom_poczatek['crystal'] - $atakujacy_zlom_koniec['crystal']) + ($wrog_zlom_poczatek['crystal'] - $wrog_zlom_koniec['crystal'])) * ($gameConfig['Defs_Cdr'] / 100));
$zlom['metal'] += ((($atakujacy_zlom_poczatek['metal'] - $atakujacy_zlom_koniec['metal']) + ($wrog_zlom_poczatek['metal'] - $wrog_zlom_koniec['metal'])) * (Wootook::getGameConfig('game/debris/defense') ? (Wootook::getGameConfig('game/debris/metal-percent') / 100) : 0));
$zlom['crystal'] += ((($atakujacy_zlom_poczatek['crystal'] - $atakujacy_zlom_koniec['crystal']) + ($wrog_zlom_poczatek['crystal'] - $wrog_zlom_koniec['crystal'])) * (Wootook::getGameConfig('game/debris/defense') ? (Wootook::getGameConfig('game/debris/cristal-percent') / 100) : 0));
$zlom["atakujacy"] = (($atakujacy_zlom_poczatek['metal'] - $atakujacy_zlom_koniec['metal']) + ($atakujacy_zlom_poczatek['crystal'] - $atakujacy_zlom_koniec['crystal']));
$zlom["wrog"] = (($wrog_zlom_poczatek['metal'] - $wrog_zlom_koniec['metal']) + ($wrog_zlom_poczatek['crystal'] - $wrog_zlom_koniec['crystal']) + $straty_obrona_wrog);

View file

@ -33,9 +33,9 @@ defined('E_USER_DEPRECATED') || define('E_USER_DEPRECATED', E_USER_WARNING); //
define('ADMINEMAIL', "no-reply@wootook.org");
// Definition du monde connu !
defined('MAX_GALAXY_IN_WORLD') || define('MAX_GALAXY_IN_WORLD', Wootook::getConfig('default/engine/universe/galaxies'));
defined('MAX_SYSTEM_IN_GALAXY') || define('MAX_SYSTEM_IN_GALAXY', Wootook::getConfig('default/engine/universe/systems'));
defined('MAX_PLANET_IN_SYSTEM') || define('MAX_PLANET_IN_SYSTEM', Wootook::getConfig('default/engine/universe/positions'));
defined('MAX_GALAXY_IN_WORLD') || define('MAX_GALAXY_IN_WORLD', Wootook::getGameConfig('engine/universe/galaxies'));
defined('MAX_SYSTEM_IN_GALAXY') || define('MAX_SYSTEM_IN_GALAXY', Wootook::getGameConfig('engine/universe/systems'));
defined('MAX_PLANET_IN_SYSTEM') || define('MAX_PLANET_IN_SYSTEM', Wootook::getGameConfig('engine/universe/positions'));
defined('BCNUMBERS') || define('BCNUMBERS', Wootook::getConfig('default/engine/core/use_large_numbers'));

View file

@ -127,9 +127,7 @@ EOF;
*/
public function error($message, $title)
{
$gameConfig = Legacies_Core_Model_Config::getSingleton();
if ($gameConfig['debug'] == 1) {
if (defined('DEBUG')) {
echo "<h2>$title</h2><br><font color=red>$message</font><br><hr>";
echo "<table>".$this->log."</table>";
}

View file

@ -657,4 +657,25 @@ function doquery($query, $table, $fetch = false)
} else {
return $statement;
}
}
/**
*
* @deprecated
* @param unknown_type $UserID
*/
function ResetThisFuckingCheater($userId)
{
defined('DEPRECATION') || trigger_error(sprintf('%s is deprecated', __FUNCTION__), E_USER_DEPRECATED);
$user = Wootook_Empire_Model_User::factory($userId);
$username = $user->getData('username');
$email = $user->getData('email');
$password = $user->getData('password');
$user->delete();
$user = Wootook_Empire_Model_User::register($TheUser['username'], $TheUser['email'], 'password');
$user->setData('password', $password);
$user->save();
return;
}

View file

@ -35,17 +35,15 @@ function check_urlaubmodus ($user) {
}
function check_urlaubmodus_time () {
global $user, $gameConfig;
if ($gameConfig['urlaubs_modus_erz'] == 1) {
$begrenzung = 86400; //24x60x60= 24h
$urlaub_modus_time = $user['urlaubs_modus_time'];
$urlaub_modus_time_soll = $urlaub_modus_time + $begrenzung;
$time_jetzt = time();
if ($user['urlaubs_modus'] == 1 && $urlaub_modus_time_soll > $time_jetzt) {
$soll_datum = date("d.m.Y", $urlaub_modus_time_soll);
$soll_uhrzeit = date("H:i:s", $urlaub_modus_time_soll);
message("Vous <20>tes en mode vacances!<br>Le mode vacance dure jusque $soll_datum $soll_uhrzeit<br> Ce n'est qu'apr<70>s cette p<>riode que vous pouvez changer vos options.", "Mode vacance");
}
global $user;
$begrenzung = 86400; //24x60x60= 24h
$urlaub_modus_time = $user['urlaubs_modus_time'];
$urlaub_modus_time_soll = $urlaub_modus_time + $begrenzung;
$time_jetzt = time();
if ($user['urlaubs_modus'] == 1 && $urlaub_modus_time_soll > $time_jetzt) {
$soll_datum = date("d.m.Y", $urlaub_modus_time_soll);
$soll_uhrzeit = date("H:i:s", $urlaub_modus_time_soll);
message("Vous <20>tes en mode vacances!<br>Le mode vacance dure jusque $soll_datum $soll_uhrzeit<br> Ce n'est qu'apr<70>s cette p<>riode que vous pouvez changer vos options.", "Mode vacance");
}
}

View file

@ -1,129 +0,0 @@
<?php
/**
* This file is part of Wootook
*
* @license http://www.gnu.org/licenses/gpl-3.0.txt
* @see http://www.wootook.com/
*
* Copyright (c) 2009-Present, Wootook Support Team <http://www.xnova-ng.org>
* All rights reserved.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* --> NOTICE <--
* This file is part of the core development branch, changing its contents will
* make you unable to use the automatic updates manager. Please refer to the
* documentation for further information about customizing Wootook.
*
*/
/**
*
* @deprecated
* @param unknown_type $Galaxy
* @param unknown_type $System
* @param unknown_type $Planet
* @param unknown_type $Owner
* @param unknown_type $MoonID
* @param unknown_type $MoonName
* @param unknown_type $Chance
*/
function CreateOneMoonRecord ( $Galaxy, $System, $Planet, $Owner, $MoonID, $MoonName, $Chance ) {
global $lang;
$PlanetName = "";
$QryGetMoonPlanetData = "SELECT * FROM {{table}} ";
$QryGetMoonPlanetData .= "WHERE ";
$QryGetMoonPlanetData .= "`galaxy` = '". $Galaxy ."' AND ";
$QryGetMoonPlanetData .= "`system` = '". $System ."' AND ";
$QryGetMoonPlanetData .= "`planet` = '". $Planet ."';";
$MoonPlanet = doquery ( $QryGetMoonPlanetData, 'planets', true);
$QryGetMoonGalaxyData = "SELECT * FROM {{table}} ";
$QryGetMoonGalaxyData .= "WHERE ";
$QryGetMoonGalaxyData .= "`galaxy` = '". $Galaxy ."' AND ";
$QryGetMoonGalaxyData .= "`system` = '". $System ."' AND ";
$QryGetMoonGalaxyData .= "`planet` = '". $Planet ."';";
$MoonGalaxy = doquery ( $QryGetMoonGalaxyData, 'galaxy', true);
if ($MoonGalaxy['id_luna'] == 0) {
if ($MoonPlanet['id'] != 0) {
$SizeMin = 2000 + ( $Chance * 100 );
$SizeMax = 6000 + ( $Chance * 200 );
$PlanetName = $MoonPlanet['name'];
$maxtemp = $MoonPlanet['temp_max'] - rand(10, 45);
$mintemp = $MoonPlanet['temp_min'] - rand(10, 45);
$size = rand ($SizeMin, $SizeMax);
$QryInsertMoonInLunas = "INSERT INTO {{table}} SET ";
$QryInsertMoonInLunas .= "`name` = '". ( ($MoonName == '') ? $lang['sys_moon'] : $MoonName ) ."', ";
$QryInsertMoonInLunas .= "`galaxy` = '". $Galaxy ."', ";
$QryInsertMoonInLunas .= "`system` = '". $System ."', ";
$QryInsertMoonInLunas .= "`lunapos` = '". $Planet ."', ";
$QryInsertMoonInLunas .= "`id_owner` = '". $Owner ."', ";
$QryInsertMoonInLunas .= "`temp_max` = '". $maxtemp ."', ";
$QryInsertMoonInLunas .= "`temp_min` = '". $mintemp ."', ";
$QryInsertMoonInLunas .= "`diameter` = '". $size ."', ";
$QryInsertMoonInLunas .= "`id_luna` = '". $MoonID ."';";
doquery( $QryInsertMoonInLunas , 'lunas' );
$QryGetMoonIdFromLunas = "SELECT * FROM {{table}} ";
$QryGetMoonIdFromLunas .= "WHERE ";
$QryGetMoonIdFromLunas .= "`galaxy` = '". $Galaxy ."' AND ";
$QryGetMoonIdFromLunas .= "`system` = '". $System ."' AND ";
$QryGetMoonIdFromLunas .= "`lunapos` = '". $Planet ."';";
$lunarow = doquery( $QryGetMoonIdFromLunas , 'lunas', true);
$QryUpdateMoonInGalaxy = "UPDATE {{table}} SET ";
$QryUpdateMoonInGalaxy .= "`id_luna` = '". $lunarow['id'] ."', ";
$QryUpdateMoonInGalaxy .= "`luna` = '0' ";
$QryUpdateMoonInGalaxy .= "WHERE ";
$QryUpdateMoonInGalaxy .= "`galaxy` = '". $Galaxy ."' AND ";
$QryUpdateMoonInGalaxy .= "`system` = '". $System ."' AND ";
$QryUpdateMoonInGalaxy .= "`planet` = '". $Planet ."';";
doquery( $QryUpdateMoonInGalaxy , 'galaxy');
$QryInsertMoonInPlanet = "INSERT INTO {{table}} SET ";
$QryInsertMoonInPlanet .= "`name` = '" .$lang['sys_moon'] ."', ";
$QryInsertMoonInPlanet .= "`id_owner` = '". $Owner ."', ";
$QryInsertMoonInPlanet .= "`galaxy` = '". $Galaxy ."', ";
$QryInsertMoonInPlanet .= "`system` = '". $System ."', ";
$QryInsertMoonInPlanet .= "`planet` = '". $Planet ."', ";
$QryInsertMoonInPlanet .= "`last_update` = '". time() ."', ";
$QryInsertMoonInPlanet .= "`planet_type` = '3', ";
$QryInsertMoonInPlanet .= "`image` = 'mond', ";
$QryInsertMoonInPlanet .= "`diameter` = '". $size ."', ";
$QryInsertMoonInPlanet .= "`field_max` = '1', ";
$QryInsertMoonInPlanet .= "`temp_min` = '". $maxtemp ."', ";
$QryInsertMoonInPlanet .= "`temp_max` = '". $mintemp ."', ";
$QryInsertMoonInPlanet .= "`metal` = '0', ";
$QryInsertMoonInPlanet .= "`metal_perhour` = '0', ";
$QryInsertMoonInPlanet .= "`metal_max` = '".BASE_STORAGE_SIZE."', ";
$QryInsertMoonInPlanet .= "`crystal` = '0', ";
$QryInsertMoonInPlanet .= "`crystal_perhour` = '0', ";
$QryInsertMoonInPlanet .= "`crystal_max` = '".BASE_STORAGE_SIZE."', ";
$QryInsertMoonInPlanet .= "`deuterium` = '0', ";
$QryInsertMoonInPlanet .= "`deuterium_perhour` = '0', ";
$QryInsertMoonInPlanet .= "`deuterium_max` = '".BASE_STORAGE_SIZE."';";
doquery( $QryInsertMoonInPlanet , 'planets');
}
}
return $PlanetName;
}
?>

View file

@ -1,227 +0,0 @@
<?php
/**
* This file is part of Wootook
*
* @license http://www.gnu.org/licenses/gpl-3.0.txt
* @see http://www.wootook.com/
*
* Copyright (c) 2009-Present, Wootook Support Team <http://www.xnova-ng.org>
* All rights reserved.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* --> NOTICE <--
* This file is part of the core development branch, changing its contents will
* make you unable to use the automatic updates manager. Please refer to the
* documentation for further information about customizing Wootook.
*
*/
/**
*
* @deprecated
* @param unknown_type $Position
* @param unknown_type $HomeWorld
*/
function PlanetSizeRandomiser ($Position, $HomeWorld = false) {
global $gameConfig;
if (!$HomeWorld) {
$ClassicBase = 163;
$SettingSize = $gameConfig['initial_fields'];
$PlanetRatio = floor ( ($ClassicBase / $SettingSize) * 10000 ) / 100;
$RandomMin = array ( 40, 50, 55, 100, 95, 80, 115, 120, 125, 75, 80, 85, 60, 40, 50);
$RandomMax = array ( 90, 95, 95, 240, 240, 230, 180, 180, 190, 125, 120, 130, 160, 300, 150);
$CalculMin = floor ( $RandomMin[$Position - 1] + ( $RandomMin[$Position - 1] * $PlanetRatio ) / 100 );
$CalculMax = floor ( $RandomMax[$Position - 1] + ( $RandomMax[$Position - 1] * $PlanetRatio ) / 100 );
$RandomSize = mt_rand($CalculMin, $CalculMax);
$MaxAddon = mt_rand(0, 110);
$MinAddon = mt_rand(0, 100);
$Addon = ($MaxAddon - $MinAddon);
$PlanetFields = ($RandomSize + $abweichung);
} else {
$PlanetFields = $gameConfig['initial_fields'];
}
$PlanetSize = ($PlanetFields ^ (14 / 1.5)) * 75;
$return['diameter'] = $PlanetSize;
$return['field_max'] = $PlanetFields;
return $return;
}
/**
*
* @deprecated
* @param unknown_type $Galaxy
* @param unknown_type $System
* @param unknown_type $Position
* @param unknown_type $PlanetOwnerID
* @param unknown_type $PlanetName
* @param unknown_type $HomeWorld
*/
function CreateOnePlanetRecord($Galaxy, $System, $Position, $PlanetOwnerID, $PlanetName = '', $HomeWorld = false) {
global $lang;
// Avant tout, on verifie s'il existe deja une planete a cet endroit
$QrySelectPlanet = "SELECT `id` ";
$QrySelectPlanet .= "FROM {{table}} ";
$QrySelectPlanet .= "WHERE ";
$QrySelectPlanet .= "`galaxy` = '". $Galaxy ."' AND ";
$QrySelectPlanet .= "`system` = '". $System ."' AND ";
$QrySelectPlanet .= "`planet` = '". $Position ."';";
$PlanetExist = doquery( $QrySelectPlanet, 'planets', true);
// Si $PlanetExist est autre chose que false ... c'est qu'il y a quelque chose l<> bas ...
// C'est donc aussi que je ne peux pas m'y poser !!
if (!$PlanetExist) {
$planet = PlanetSizeRandomiser ($Position, $HomeWorld);
$planet['diameter'] = ($planet['field_max'] ^ (14 / 1.5)) * 75 ;
$planet['metal'] = BUILD_METAL;
$planet['crystal'] = BUILD_CRISTAL;
$planet['deuterium'] = BUILD_DEUTERIUM;
$planet['metal_perhour'] = $gameConfig['metal_basic_income'];
$planet['crystal_perhour'] = $gameConfig['crystal_basic_income'];
$planet['deuterium_perhour'] = $gameConfig['deuterium_basic_income'];
$planet['metal_max'] = BASE_STORAGE_SIZE;
$planet['crystal_max'] = BASE_STORAGE_SIZE;
$planet['deuterium_max'] = BASE_STORAGE_SIZE;
// Posistion 1 - 3: 80% entre 40 et 70 Cases ( 55+ / -15 )
// Posistion 4 - 6: 80% entre 120 et 310 Cases ( 215+ / -95 )
// Posistion 7 - 9: 80% entre 105 et 195 Cases ( 150+ / -45 )
// Posistion 10 - 12: 80% entre 75 et 125 Cases ( 100+ / -25 )
// Posistion 13 - 15: 80% entre 60 et 190 Cases ( 125+ / -65 )
$planet['galaxy'] = $Galaxy;
$planet['system'] = $System;
$planet['planet'] = $Position;
if ($Position == 1 || $Position == 2 || $Position == 3) {
$PlanetType = array('trocken');
$PlanetClass = array('planet');
$PlanetDesign = array('01', '02', '03', '04', '05', '06', '07', '08', '09', '10');
$planet['temp_min'] = rand(0, 100);
$planet['temp_max'] = $planet['temp_min'] + 40;
} elseif ($Position == 4 || $Position == 5 || $Position == 6) {
$PlanetType = array('dschjungel');
$PlanetClass = array('planet');
$PlanetDesign = array('01', '02', '03', '04', '05', '06', '07', '08', '09', '10');
$planet['temp_min'] = rand(-25, 75);
$planet['temp_max'] = $planet['temp_min'] + 40;
} elseif ($Position == 7 || $Position == 8 || $Position == 9) {
$PlanetType = array('normaltemp');
$PlanetClass = array('planet');
$PlanetDesign = array('01', '02', '03', '04', '05', '06', '07');
$planet['temp_min'] = rand(-50, 50);
$planet['temp_max'] = $planet['temp_min'] + 40;
} elseif ($Position == 10 || $Position == 11 || $Position == 12) {
$PlanetType = array('wasser');
$PlanetClass = array('planet');
$PlanetDesign = array('01', '02', '03', '04', '05', '06', '07', '08', '09');
$planet['temp_min'] = rand(-75, 25);
$planet['temp_max'] = $planet['temp_min'] + 40;
} elseif ($Position == 13 || $Position == 14 || $Position == 15) {
$PlanetType = array('eis');
$PlanetClass = array('planet');
$PlanetDesign = array('01', '02', '03', '04', '05', '06', '07', '08', '09', '10');
$planet['temp_min'] = rand(-100, 10);
$planet['temp_max'] = $planet['temp_min'] + 40;
} else {
$PlanetType = array('dschjungel', 'gas', 'normaltemp', 'trocken', 'wasser', 'wuesten', 'eis');
$PlanetClass = array('planet');
$PlanetDesign = array('01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '00',);
$planet['temp_min'] = rand(-120, 10);
$planet['temp_max'] = $planet['temp_min'] + 40;
}
$planet['image'] = $PlanetType[ rand( 0, count( $PlanetType ) -1 ) ];
$planet['image'] .= $PlanetClass[ rand( 0, count( $PlanetClass ) - 1 ) ];
$planet['image'] .= $PlanetDesign[ rand( 0, count( $PlanetDesign ) - 1 ) ];
$planet['planet_type'] = 1;
$planet['id_owner'] = $PlanetOwnerID;
$planet['last_update'] = time();
$planet['name'] = ($PlanetName == '') ? $lang['sys_colo_defaultname'] : $PlanetName;
$QryInsertPlanet = "INSERT INTO {{table}} SET ";
$QryInsertPlanet .= "`name` = '". $planet['name'] ."', ";
$QryInsertPlanet .= "`id_owner` = '". $planet['id_owner'] ."', ";
$QryInsertPlanet .= "`galaxy` = '". $planet['galaxy'] ."', ";
$QryInsertPlanet .= "`system` = '". $planet['system'] ."', ";
$QryInsertPlanet .= "`planet` = '". $planet['planet'] ."', ";
$QryInsertPlanet .= "`last_update` = '". $planet['last_update'] ."', ";
$QryInsertPlanet .= "`planet_type` = '". $planet['planet_type'] ."', ";
$QryInsertPlanet .= "`image` = '". $planet['image'] ."', ";
$QryInsertPlanet .= "`diameter` = '". $planet['diameter'] ."', ";
$QryInsertPlanet .= "`field_max` = '". $planet['field_max'] ."', ";
$QryInsertPlanet .= "`temp_min` = '". $planet['temp_min'] ."', ";
$QryInsertPlanet .= "`temp_max` = '". $planet['temp_max'] ."', ";
$QryInsertPlanet .= "`metal` = '". $planet['metal'] ."', ";
$QryInsertPlanet .= "`metal_perhour` = '". $planet['metal_perhour'] ."', ";
$QryInsertPlanet .= "`metal_max` = '". $planet['metal_max'] ."', ";
$QryInsertPlanet .= "`crystal` = '". $planet['crystal'] ."', ";
$QryInsertPlanet .= "`crystal_perhour` = '". $planet['crystal_perhour'] ."', ";
$QryInsertPlanet .= "`crystal_max` = '". $planet['crystal_max'] ."', ";
$QryInsertPlanet .= "`deuterium` = '". $planet['deuterium'] ."', ";
$QryInsertPlanet .= "`deuterium_perhour` = '". $planet['deuterium_perhour'] ."', ";
$QryInsertPlanet .= "`deuterium_max` = '". $planet['deuterium_max'] ."';";
doquery( $QryInsertPlanet, 'planets');
// On recupere l'id de planete nouvellement cr<63><72>
$QrySelectPlanet = "SELECT `id` ";
$QrySelectPlanet .= "FROM {{table}} ";
$QrySelectPlanet .= "WHERE ";
$QrySelectPlanet .= "`galaxy` = '". $planet['galaxy'] ."' AND ";
$QrySelectPlanet .= "`system` = '". $planet['system'] ."' AND ";
$QrySelectPlanet .= "`planet` = '". $planet['planet'] ."' AND ";
$QrySelectPlanet .= "`id_owner` = '". $planet['id_owner'] ."';";
$GetPlanetID = doquery( $QrySelectPlanet , 'planets', true);
// Testons s'il y a deja eu une planete ici
$QrySelectGalaxy = "SELECT * ";
$QrySelectGalaxy .= "FROM {{table}} ";
$QrySelectGalaxy .= "WHERE ";
$QrySelectGalaxy .= "`galaxy` = '". $planet['galaxy'] ."' AND ";
$QrySelectGalaxy .= "`system` = '". $planet['system'] ."' AND ";
$QrySelectGalaxy .= "`planet` = '". $planet['planet'] ."';";
$GetGalaxyID = doquery( $QrySelectGalaxy, 'galaxy', true);
if ($GetGalaxyID) {
// Ah ... Ce secteur de ce vaste monde a deja ete occup<75>
$QryUpdateGalaxy = "UPDATE {{table}} SET ";
$QryUpdateGalaxy .= "`id_planet` = '". $GetPlanetID['id'] ."' ";
$QryUpdateGalaxy .= "WHERE ";
$QryUpdateGalaxy .= "`galaxy` = '". $planet['galaxy'] ."' AND ";
$QryUpdateGalaxy .= "`system` = '". $planet['system'] ."' AND ";
$QryUpdateGalaxy .= "`planet` = '". $planet['planet'] ."';";
doquery( $QryUpdateGalaxy, 'galaxy');
} else {
// C'est tout vide ... y a que dalle ... j'm'y pose !!
$QryInsertGalaxy = "INSERT INTO {{table}} SET ";
$QryInsertGalaxy .= "`galaxy` = '". $planet['galaxy'] ."', ";
$QryInsertGalaxy .= "`system` = '". $planet['system'] ."', ";
$QryInsertGalaxy .= "`planet` = '". $planet['planet'] ."', ";
$QryInsertGalaxy .= "`id_planet` = '". $GetPlanetID['id'] ."';";
doquery( $QryInsertGalaxy, 'galaxy');
}
$RetValue = true;
} else {
$RetValue = false;
}
return $RetValue;
}
?>

View file

@ -1,78 +0,0 @@
<?php
/**
* This file is part of Wootook
*
* @license http://www.gnu.org/licenses/gpl-3.0.txt
* @see http://www.wootook.com/
*
* Copyright (c) 2009-Present, Wootook Support Team <http://www.xnova-ng.org>
* All rights reserved.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* --> NOTICE <--
* This file is part of the core development branch, changing its contents will
* make you unable to use the automatic updates manager. Please refer to the
* documentation for further information about customizing Wootook.
*
*/
/**
*
* @deprecated
* @param unknown_type $CurrentUser
* @param unknown_type $CurrentPlanet
* @param unknown_type $Element
* @param unknown_type $Incremental
* @param unknown_type $ForDestroy
*/
function IsElementBuyable ($CurrentUser, $CurrentPlanet, $Element, $Incremental = true, $ForDestroy = false) {
global $pricelist, $resource;
trigger_error(sprintf('%s is deprecated', __FUNCTION__), E_USER_DEPRECATED);
if (IsVacationMode($CurrentUser)) {
return false;
}
if ($Incremental) {
$level = ($CurrentPlanet[$resource[$Element]]) ? $CurrentPlanet[$resource[$Element]] : $CurrentUser[$resource[$Element]];
}
$array = array(
Legacies_Empire::RESOURCE_METAL,
Legacies_Empire::RESOURCE_CRISTAL,
Legacies_Empire::RESOURCE_DEUTERIUM,
'energy_max'
);
$cost = array();
foreach ($array as $ResType) {
if ($pricelist[$Element][$ResType] != 0) {
if ($Incremental) {
$cost[$ResType] = bcmul($pricelist[$Element][$ResType], bcpow($pricelist[$Element]['factor'], $level), 0);
} else {
$cost[$ResType] = $pricelist[$Element][$ResType];
}
if ($ForDestroy) {
$cost[$ResType] = bcdiv($cost[$ResType], 2, 0);
}
if (bccomp($cost[$ResType], $CurrentPlanet[$ResType]) > 0) {
return false;
}
}
}
return true;
}

View file

@ -1,59 +0,0 @@
<?php
/**
* This file is part of Wootook
*
* @license http://www.gnu.org/licenses/gpl-3.0.txt
* @see http://www.wootook.com/
*
* Copyright (c) 2009-Present, Wootook Support Team <http://www.xnova-ng.org>
* All rights reserved.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* --> NOTICE <--
* This file is part of the core development branch, changing its contents will
* make you unable to use the automatic updates manager. Please refer to the
* documentation for further information about customizing Wootook.
*
*/
/**
*
* @deprecated
* @param unknown_type $CurrentUser
*/
function IsVacationMode($CurrentUser){
global $gameConfig;
trigger_error(sprintf('%s is deprecated', __FUNCTION__), E_USER_DEPRECATED);
if($CurrentUser['urlaubs_modus'] == 1){
$query = doquery("SELECT * FROM {{table}} WHERE id_owner = '{$CurrentUser['id']}'", 'planets');
while ($id = $query->fetch(PDO::FETCH_BOTH)){
doquery("UPDATE {{table}} SET
metal_perhour = '".$gameConfig['metal_basic_income']."',
crystal_perhour = '".$gameConfig['crystal_basic_income']."',
deuterium_perhour = '".$gameConfig['deuterium_basic_income']."',
metal_mine_porcent = '0',
crystal_mine_porcent = '0',
deuterium_sintetizer_porcent = '0',
solar_plant_porcent = '0',
fusion_plant_porcent = '0',
solar_satelit_porcent = '0'
WHERE id = '{$id['id']}' AND `planet_type` = '1' ", 'planets');
}
return true;
}
return false;
}
?>

View file

@ -214,8 +214,15 @@ function MissionCaseAttack($FleetRow)
}
if (($UserChance > 0) and ($UserChance <= $MoonChance) and $galenemyrow['id_luna'] == 0) {
$targetPlanetName = CreateOneMoonRecord ($FleetRow['fleet_end_galaxy'], $FleetRow['fleet_end_system'], $FleetRow['fleet_end_planet'], $TargetUserID, $FleetRow['fleet_start_time'], '', $MoonChance);
$GottenMoon = sprintf ($lang['sys_moonbuilt'], $targetPlanetName, $FleetRow['fleet_end_galaxy'], $FleetRow['fleet_end_system'], $FleetRow['fleet_end_planet']);
$user = Wootook_Empire_Model_User::factory($TargetUserID);
$user->createNewPlanet(
intval($FleetRow['fleet_end_galaxy']),
intval($FleetRow['fleet_end_system']),
intval($FleetRow['fleet_end_planet']),
Wootook_Empire_Model_Planet::TYPE_MOON,
Wootook::__('Moon')
);
$GottenMoon = Wootook::_('A moon has been created!');
} elseif ($UserChance = 0 or $UserChance > $MoonChance) {
$GottenMoon = "";
}

View file

@ -50,7 +50,15 @@ function MissionCaseColonisation ( $FleetRow ) {
SendSimpleMessage ( $FleetRow['fleet_owner'], '', $FleetRow['fleet_start_time'], 0, $lang['sys_colo_mess_from'], $lang['sys_colo_mess_report'], $TheMessage);
doquery("UPDATE {{table}} SET `fleet_mess` = '1' WHERE `fleet_id` = ". $FleetRow["fleet_id"], 'fleets');
} else {
$NewOwnerPlanet = CreateOnePlanetRecord($FleetRow['fleet_end_galaxy'], $FleetRow['fleet_end_system'], $FleetRow['fleet_end_planet'], $FleetRow['fleet_owner'], $lang['sys_colo_defaultname'], false);
$user = Wootook_Empire_Model_User::factory($FleetRow['fleet_owner']);
$user->createNewPlanet(
intval($FleetRow['fleet_end_galaxy']),
intval($FleetRow['fleet_end_system']),
intval($FleetRow['fleet_end_planet']),
Wootook_Empire_Model_Planet::TYPE_PLANET,
Wootook::__('Colony')
);
if ( $NewOwnerPlanet == true ) {
$TheMessage = $lang['sys_colo_arrival'] . $TargetAdress . $lang['sys_colo_allisok'];
SendSimpleMessage ( $FleetRow['fleet_owner'], '', $FleetRow['fleet_start_time'], 0, $lang['sys_colo_mess_from'], $lang['sys_colo_mess_report'], $TheMessage);

View file

@ -35,7 +35,7 @@
*/
function MissionCaseDestruction($FleetRow)
{
global $user, $pricelist, $lang, $resource, $CombatCaps, $gameConfig;
global $user, $pricelist, $lang, $resource, $CombatCaps;
includeLang('system');
@ -156,7 +156,7 @@ function MissionCaseDestruction($FleetRow)
$gravitonPower = 1 + pow(1 - $gravitonLevel, 2);
$rawChances = pow(sqrt(1 / floatval($TargetPlanet['diameter'])) * $destructionPower * $gravitonPower, 2);
$chances = (1 - (1 / ((2500 / floatval($gameConfig['game_speed'])) * pow(1 + $rawChances, 2)))) * .5;
$chances = (1 - (1 / ((2500 / floatval(Wootook::getGameConfig('game/speed/general'))) * pow(1 + $rawChances, 2)))) * .5;
$tirage = mt_rand(0, 100000000);
$probalune = sprintf($lang['sys_destruc_lune'], (int) ($chances * 100));
@ -252,266 +252,143 @@ function MissionCaseDestruction($FleetRow)
$introdestruc = sprintf ($lang['sys_destruc_mess'], $DepName , $FleetRow['fleet_start_galaxy'], $FleetRow['fleet_start_system'], $FleetRow['fleet_start_planet'], $FleetRow['fleet_end_galaxy'], $FleetRow['fleet_end_system'], $FleetRow['fleet_end_planet']);
// Mise a jour de l'enregistrement de la planete attaqu<71>e
$QryUpdateTarget = "UPDATE {{table}} SET ";
$QryUpdateTarget .= $TargetPlanetUpd;
$QryUpdateTarget .= "`metal` = `metal` - '". $Mining['metal'] ."', ";
$QryUpdateTarget .= "`crystal` = `crystal` - '". $Mining['crystal'] ."', ";
$QryUpdateTarget .= "`deuterium` = `deuterium` - '". $Mining['deuter'] ."' ";
$QryUpdateTarget .= "WHERE ";
$QryUpdateTarget .= "`galaxy` = '". $FleetRow['fleet_end_galaxy'] ."' AND ";
$QryUpdateTarget .= "`system` = '". $FleetRow['fleet_end_system'] ."' AND ";
$QryUpdateTarget .= "`planet` = '". $FleetRow['fleet_end_planet'] ."' AND ";
$QryUpdateTarget .= "`planet_type` = '". $FleetRow['fleet_end_type'] ."' ";
$QryUpdateTarget .= "LIMIT 1;";
doquery( $QryUpdateTarget , 'planets');
// Mise a jour du champ de ruine devant la planete attaqu<71>e
$QryUpdateGalaxy = "UPDATE {{table}} SET ";
$QryUpdateGalaxy .= "`metal` = `metal` + '". $zlom['metal'] ."', ";
$QryUpdateGalaxy .= "`crystal` = `crystal` + '". $zlom['crystal'] ."' ";
$QryUpdateGalaxy .= "WHERE ";
$QryUpdateGalaxy .= "`galaxy` = '". $FleetRow['fleet_end_galaxy'] ."' AND ";
$QryUpdateGalaxy .= "`system` = '". $FleetRow['fleet_end_system'] ."' AND ";
$QryUpdateGalaxy .= "`planet` = '". $FleetRow['fleet_end_planet'] ."' ";
$QryUpdateGalaxy .= "LIMIT 1;";
doquery( $QryUpdateGalaxy , 'galaxy');
// L<> on va discuter le bout de gras pour voir s'il y a moyen d'avoir une Lune !
$FleetDebris = $zlom['metal'] + $zlom['crystal'];
$StrAttackerUnits = sprintf ($lang['sys_attacker_lostunits'], $zlom["atakujacy"]);
$StrDefenderUnits = sprintf ($lang['sys_defender_lostunits'], $zlom["wrog"]);
$StrRuins = sprintf ($lang['sys_gcdrunits'], $zlom["metal"], $lang['Metal'], $zlom['crystal'], $lang['Crystal']);
$DebrisField = $StrAttackerUnits ."<br />". $StrDefenderUnits ."<br />". $StrRuins;
$MoonChance = $FleetDebris / 100000;
if ($FleetDebris > 2000000) {
$MoonChance = 20;
}
if ($FleetDebris < 100000) {
$UserChance = 0;
$ChanceMoon = "";
} elseif ($FleetDebris >= 100000) {
$UserChance = mt_rand(1, 100);
$ChanceMoon = sprintf ($lang['sys_moonproba'], $MoonChance);
}
if (($UserChance > 0) and ($UserChance <= $MoonChance) and $galenemyrow['id_luna'] == 0) {
$TargetPlanetName = CreateOneMoonRecord ( $FleetRow['fleet_end_galaxy'], $FleetRow['fleet_end_system'], $FleetRow['fleet_end_planet'], $TargetUserID, $FleetRow['fleet_start_time'], '', $MoonChance );
$GottenMoon = sprintf ($lang['sys_moonbuilt'], $TargetPlanetName, $FleetRow['fleet_end_galaxy'], $FleetRow['fleet_end_system'], $FleetRow['fleet_end_planet']);
$user = Wootook_Empire_Model_User::factory($TargetUserID);
$user->createNewPlanet(
intval($FleetRow['fleet_end_galaxy']),
intval($FleetRow['fleet_end_system']),
intval($FleetRow['fleet_end_planet']),
Wootook_Empire_Model_Planet::TYPE_MOON,
Wootook::__('Moon')
);
$GottenMoon = Wootook::_('A moon has been created!');
} elseif ($UserChance = 0 or $UserChance > $MoonChance) {
$GottenMoon = "";
}
$AttackDate = date("r", $FleetRow["fleet_start_time"]);
$title = sprintf ($lang['sys_destruc_title'], $AttackDate);
$raport = "<center><table><tr><td>". $title ."<br />";
$zniszczony = false;
$a_zestrzelona = 0;
$AttackTechon['A'] = $CurrentTechno["military_tech"] * 10;
$AttackTechon['B'] = $CurrentTechno["defence_tech"] * 10;
$AttackTechon['C'] = $CurrentTechno["shield_tech"] * 10;
$AttackerData = sprintf ($lang['sys_attack_attacker_pos'], $CurrentUser["username"], $FleetRow['fleet_start_galaxy'], $FleetRow['fleet_start_system'], $FleetRow['fleet_start_planet'] );
$AttackerTech = sprintf ($lang['sys_attack_techologies'], $AttackTechon['A'], $AttackTechon['B'], $AttackTechon['C']);
$DefendTechon['A'] = $TargetTechno["military_tech"] * 10;
$DefendTechon['B'] = $TargetTechno["defence_tech"] * 10;
$DefendTechon['C'] = $TargetTechno["shield_tech"] * 10;
$DefenderData = sprintf ($lang['sys_attack_defender_pos'], $TargetUser["username"], $FleetRow['fleet_end_galaxy'], $FleetRow['fleet_end_system'], $FleetRow['fleet_end_planet'] );
$DefenderTech = sprintf ($lang['sys_attack_techologies'], $DefendTechon['A'], $DefendTechon['B'], $DefendTechon['C']);
foreach ($dane_do_rw as $a => $b) {
$raport .= "<table border=1 width=100%><tr><th><br /><center>".$AttackerData."<br />".$AttackerTech."<table border=1>";
if ($b["atakujacy"]['count'] > 0) {
$raport1 = "<tr><th>".$lang['sys_ship_type']."</th>";
$raport2 = "<tr><th>".$lang['sys_ship_count']."</th>";
$raport3 = "<tr><th>".$lang['sys_ship_weapon']."</th>";
$raport4 = "<tr><th>".$lang['sys_ship_shield']."</th>";
$raport5 = "<tr><th>".$lang['sys_ship_armour']."</th>";
foreach ($b["atakujacy"] as $Ship => $Data) {
if (is_numeric($Ship)) {
if ($Data['count'] > 0) {
$raport1 .= "<th>". $lang["tech_rc"][$Ship] ."</th>";
$raport2 .= "<th>". $Data['count'] ."</th>";
$raport3 .= "<th>". round($Data["atak"] / $Data['count']) ."</th>";
$raport4 .= "<th>". round($Data["tarcza"] / $Data['count']) ."</th>";
$raport5 .= "<th>". round($Data["obrona"] / $Data['count']) ."</th>";
}
}
}
$raport1 .= "</tr>";
$raport2 .= "</tr>";
$raport3 .= "</tr>";
$raport4 .= "</tr>";
$raport5 .= "</tr>";
$raport .= $raport1 . $raport2 . $raport3 . $raport4 . $raport5;
} else {
if ($a == 2) {
$a_zestrzelona = 1;
}
$zniszczony = true;
$raport .= "<br />". $lang['sys_destroyed'];
}
$raport .= "</table></center></th></tr></table>";
$raport .= "<table border=1 width=100%><tr><th><br /><center>".$DefenderData."<br />".$DefenderTech."<table border=1>";
if ($b["wrog"]['count'] > 0) {
$raport1 = "<tr><th>".$lang['sys_ship_type']."</th>";
$raport2 = "<tr><th>".$lang['sys_ship_count']."</th>";
$raport3 = "<tr><th>".$lang['sys_ship_weapon']."</th>";
$raport4 = "<tr><th>".$lang['sys_ship_shield']."</th>";
$raport5 = "<tr><th>".$lang['sys_ship_armour']."</th>";
foreach ($b["wrog"] as $Ship => $Data) {
if (is_numeric($Ship)) {
if ($Data['count'] > 0) {
$raport1 .= "<th>". $lang["tech_rc"][$Ship] ."</th>";
$raport2 .= "<th>". $Data['count'] ."</th>";
$raport3 .= "<th>". round($Data["atak"] / $Data['count']) ."</th>";
$raport4 .= "<th>". round($Data["tarcza"] / $Data['count']) ."</th>";
$raport5 .= "<th>". round($Data["obrona"] / $Data['count']) ."</th>";
}
}
}
$raport1 .= "</tr>";
$raport2 .= "</tr>";
$raport3 .= "</tr>";
$raport4 .= "</tr>";
$raport5 .= "</tr>";
$raport .= $raport1 . $raport2 . $raport3 . $raport4 . $raport5;
} else {
$zniszczony = true;
$raport .= "<br />". $lang['sys_destroyed'];
}
$raport .= "</table></center></th></tr></table>";
if (($zniszczony == false) and !($a == 8)) {
$AttackWaveStat = sprintf ($lang['sys_attack_attack_wave'], floor($b["atakujacy"]["atak"]), floor($b["wrog"]["tarcza"]));
$DefendWavaStat = sprintf ($lang['sys_attack_defend_wave'], floor($b["wrog"]["atak"]), floor($b["atakujacy"]["tarcza"]));

View file

@ -1,78 +0,0 @@
<?php
/**
* This file is part of Wootook
*
* @license http://www.gnu.org/licenses/gpl-3.0.txt
* @see http://www.wootook.com/
*
* Copyright (c) 2009-Present, Wootook Support Team <http://www.xnova-ng.org>
* All rights reserved.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* --> NOTICE <--
* This file is part of the core development branch, changing its contents will
* make you unable to use the automatic updates manager. Please refer to the
* documentation for further information about customizing Wootook.
*
*/
/**
*
* @deprecated
* @param unknown_type $UserID
*/
function ResetThisFuckingCheater ( $UserID ) {
trigger_error(sprintf('%s is deprecated', __FUNCTION__), E_USER_DEPRECATED);
$TheUser = doquery ("SELECT * FROM {{table}} WHERE `id` = '". $UserID ."';", 'users', true);
$UserPlanet = doquery ("SELECT `name` FROM {{table}} WHERE `id` = '". $TheUser['id_planet']."';", 'planets', true);
DeleteSelectedUser ( $UserID );
if ($UserPlanet['name'] != "") {
// Creation de l'utilisateur
$QryInsertUser = "INSERT INTO {{table}} SET ";
$QryInsertUser .= "`id` = '". $TheUser['id'] ."', ";
$QryInsertUser .= "`username` = '". $TheUser['username'] ."', ";
$QryInsertUser .= "`email` = '". $TheUser['email'] ."', ";
$QryInsertUser .= "`email_2` = '". $TheUser['email_2'] ."', ";
$QryInsertUser .= "`sex` = '". $TheUser['sex'] ."', ";
$QryInsertUser .= "`id_planet` = '0', ";
$QryInsertUser .= "`authlevel` = '". $TheUser['authlevel'] ."', ";
$QryInsertUser .= "`dpath` = '". $TheUser['dpath'] ."', ";
$QryInsertUser .= "`galaxy` = '". $TheUser['galaxy'] ."', ";
$QryInsertUser .= "`system` = '". $TheUser['system'] ."', ";
$QryInsertUser .= "`planet` = '". $TheUser['planet'] ."', ";
$QryInsertUser .= "`register_time` = '". $TheUser['register_time'] ."', ";
$QryInsertUser .= "`password` = '". $TheUser['password'] ."';";
doquery( $QryInsertUser, 'users');
// On cherche le numero d'enregistrement de l'utilisateur fraichement cr??
$NewUser = doquery("SELECT `id` FROM {{table}} WHERE `username` = '". $TheUser['username'] ."' LIMIT 1;", 'users', true);
CreateOnePlanetRecord ($TheUser['galaxy'], $TheUser['system'], $TheUser['planet'], $NewUser['id'], $UserPlanet['name'], true);
// Recherche de la reference de la nouvelle planete (qui est unique normalement !
$PlanetID = doquery("SELECT `id` FROM {{table}} WHERE `id_owner` = '". $NewUser['id'] ."' LIMIT 1;", 'planets', true);
// Mise a jour de l'enregistrement utilisateur avec les infos de sa planete mere
$QryUpdateUser = "UPDATE {{table}} SET ";
$QryUpdateUser .= "`id_planet` = '". $PlanetID['id'] ."', ";
$QryUpdateUser .= "`current_planet` = '". $PlanetID['id'] ."' ";
$QryUpdateUser .= "WHERE ";
$QryUpdateUser .= "`id` = '". $NewUser['id'] ."';";
doquery( $QryUpdateUser, 'users');
}
return;
}
?>

View file

@ -48,12 +48,9 @@ include(ROOT_PATH . 'includes/functions/SendSimpleMessage.'.PHPEXT);
include(ROOT_PATH . 'includes/functions/SpyTarget.'.PHPEXT);
include(ROOT_PATH . 'includes/functions/RestoreFleetToPlanet.'.PHPEXT);
include(ROOT_PATH . 'includes/functions/StoreGoodsToPlanet.'.PHPEXT);
include(ROOT_PATH . 'includes/functions/CreateOneMoonRecord.'.PHPEXT); // <- TODO: delete
include(ROOT_PATH . 'includes/functions/CreateOnePlanetRecord.'.PHPEXT); // <- TODO: delete
include(ROOT_PATH . 'includes/functions/InsertJavaScriptChronoApplet.'.PHPEXT);
include(ROOT_PATH . 'includes/functions/IsTechnologieAccessible.'.PHPEXT); // <- TODO: delete
include(ROOT_PATH . 'includes/functions/GetRestPrice.'.PHPEXT); // <- TODO: delete
include(ROOT_PATH . 'includes/functions/IsElementBuyable.'.PHPEXT);
include(ROOT_PATH . 'includes/functions/InsertGalaxyScripts.'.PHPEXT);
include(ROOT_PATH . 'includes/functions/GalaxyCheckFunctions.'.PHPEXT);
include(ROOT_PATH . 'includes/functions/ShowGalaxyRows.'.PHPEXT);
@ -80,8 +77,6 @@ include(ROOT_PATH . 'includes/functions/MipCombatEngine.'.PHPEXT);
include(ROOT_PATH . 'includes/functions/DeleteSelectedUser.'.PHPEXT);
include(ROOT_PATH . 'includes/functions/SortUserPlanets.'.PHPEXT);
include(ROOT_PATH . 'includes/functions/BuildFleetEventTable.'.PHPEXT);
include(ROOT_PATH . 'includes/functions/ResetThisFuckingCheater.'.PHPEXT);
include(ROOT_PATH . 'includes/functions/IsVacationMode.'.PHPEXT);
/**
* }}}
*/

View file

@ -54,9 +54,7 @@ function GetMissionDuration ($GameSpeed, $MaxFleetSpeed, $Distance, $SpeedFactor
// Retourne la valeur ajustée de vitesse des flottes
function GetGameSpeedFactor () {
global $gameConfig;
return $gameConfig['fleet_speed'] / 2500;
return Wootook::getGameConfig('game/speed/fleet') / 2500;
}
/**

View file

@ -82,17 +82,18 @@ function BuildJumpableMoonCombo ( $CurrentUser, $CurrentPlanet ) {
// Tient compte aussi du multiplicateur de ressources
//
function ShowProductionTable ($CurrentUser, $CurrentPlanet, $BuildID, $Template) {
global $ProdGrid, $resource, $gameConfig;
global $ProdGrid, $resource;
$BuildLevelFactor = $CurrentPlanet[ $resource[$BuildID]."_porcent" ];
$BuildTemp = $CurrentPlanet[ 'temp_max' ];
$CurrentBuildtLvl = $CurrentPlanet[ $resource[$BuildID] ];
$BuildLevel = ($CurrentBuildtLvl > 0) ? $CurrentBuildtLvl : 1;
$Prod[1] = (floor(eval($ProdGrid[$BuildID]['formule']['metal']) * $gameConfig['resource_multiplier']) * (1 + ($CurrentUser['rpg_geologue'] * 0.05)));
$Prod[2] = (floor(eval($ProdGrid[$BuildID]['formule']['crystal']) * $gameConfig['resource_multiplier']) * (1 + ($CurrentUser['rpg_geologue'] * 0.05)));
$Prod[3] = (floor(eval($ProdGrid[$BuildID]['formule']['deuterium']) * $gameConfig['resource_multiplier']) * (1 + ($CurrentUser['rpg_geologue'] * 0.05)));
$Prod[4] = (floor(eval($ProdGrid[$BuildID]['formule']['energy']) * $gameConfig['resource_multiplier']) * (1 + ($CurrentUser['rpg_ingenieur'] * 0.05)));
$multiplier = Wootook::getGameConfig('game/resource/multiplier');
$Prod[1] = (floor(eval($ProdGrid[$BuildID]['formule']['metal']) * $multiplier) * (1 + ($CurrentUser['rpg_geologue'] * 0.05)));
$Prod[2] = (floor(eval($ProdGrid[$BuildID]['formule']['crystal']) * $multiplier) * (1 + ($CurrentUser['rpg_geologue'] * 0.05)));
$Prod[3] = (floor(eval($ProdGrid[$BuildID]['formule']['deuterium']) * $multiplier) * (1 + ($CurrentUser['rpg_geologue'] * 0.05)));
$Prod[4] = (floor(eval($ProdGrid[$BuildID]['formule']['energy']) * $multiplier) * (1 + ($CurrentUser['rpg_ingenieur'] * 0.05)));
$BuildLevel = "";
$ActualProd = floor($Prod[$BuildID]);
@ -110,10 +111,10 @@ function ShowProductionTable ($CurrentUser, $CurrentPlanet, $BuildID, $Template)
$ProdFirst = 0;
for ( $BuildLevel = $BuildStartLvl; $BuildLevel < $BuildStartLvl + 10; $BuildLevel++ ) {
if ($BuildID != 42) {
$Prod[1] = (floor(eval($ProdGrid[$BuildID]['formule']['metal']) * $gameConfig['resource_multiplier']) * (1 + ($CurrentUser['rpg_geologue'] * 0.05)));
$Prod[2] = (floor(eval($ProdGrid[$BuildID]['formule']['crystal']) * $gameConfig['resource_multiplier']) * (1 + ($CurrentUser['rpg_geologue'] * 0.05)));
$Prod[3] = (floor(eval($ProdGrid[$BuildID]['formule']['deuterium']) * $gameConfig['resource_multiplier']) * (1 + ($CurrentUser['rpg_geologue'] * 0.05)));
$Prod[4] = (floor(eval($ProdGrid[$BuildID]['formule']['energy']) * $gameConfig['resource_multiplier']) * (1 + ($CurrentUser['rpg_ingenieur'] * 0.05)));
$Prod[1] = (floor(eval($ProdGrid[$BuildID]['formule']['metal']) * $multiplier) * (1 + ($CurrentUser['rpg_geologue'] * 0.05)));
$Prod[2] = (floor(eval($ProdGrid[$BuildID]['formule']['crystal']) * $multiplier) * (1 + ($CurrentUser['rpg_geologue'] * 0.05)));
$Prod[3] = (floor(eval($ProdGrid[$BuildID]['formule']['deuterium']) * $multiplier) * (1 + ($CurrentUser['rpg_geologue'] * 0.05)));
$Prod[4] = (floor(eval($ProdGrid[$BuildID]['formule']['energy']) * $multiplier) * (1 + ($CurrentUser['rpg_ingenieur'] * 0.05)));
$bloc['build_lvl'] = ($CurrentBuildtLvl == $BuildLevel) ? "<font color=\"#ff0000\">".$BuildLevel."</font>" : $BuildLevel;
if ($ProdFirst > 0) {

View file

@ -64,16 +64,14 @@ if (isset($_SERVER['REQUEST_URI'])) {
}
}
if (count(Wootook::getConfig()) == 0) {
Wootook::setConfig('global/web/base_url', $baseUrl);
Wootook::setConfig('global/web/base_url', $baseUrl);
Wootook::setConfig('global/package', 'install');
Wootook::setConfig('global/theme', 'default');
Wootook::setconfig('global/layout', array(
'page' => 'page.php',
'install' => 'install.php'
));
}
Wootook::setConfig('global/package', 'install');
Wootook::setConfig('global/theme', 'default');
Wootook::setconfig('global/layout', array(
'page' => 'page.php',
'install' => 'install.php'
));
$session = Wootook::getSession('install');
$layout = new Wootook_Core_Layout();
@ -82,8 +80,8 @@ $response = new Wootook_Core_Controller_Response_Http();
switch ($mode) {
case 'intro':
$layout->getMessagesBlock()->prepareMessages('install');
$layout->load('install.intro');
$layout->getMessagesBlock()->prepareMessages('install');
$session->setData('step', 1);
break;
@ -113,8 +111,6 @@ case 'install':
exit(0);
}
$layout->getMessagesblock()->prepareMessages('install');
$config = array(
'global' => array(
'storyline' => array(
@ -142,28 +138,28 @@ case 'install':
);
$session->setData('config', serialize($config));
Wootook::writeConfig($config);
$session->setData('step', STEP_DATABASE);
$response->setRedirect(Wootook::getUrl('install/index.php', array('mode' => 'install', 'step' => STEP_DATABASE)));
$response->sendHeaders();
exit(0);
}
$layout->getMessagesBlock()->prepareMessages('install');
$layout->load('install.step.system');
$layout->getMessagesBlock()->prepareMessages('install');
break;
case STEP_DATABASE:
$config = unserialize($session->getData('config'));
$session->setFormData(array(
'host' => $config['global']['database']['default']['params']['hostname'],
'port' => $config['global']['database']['default']['params']['port'],
'user' => $config['global']['database']['default']['params']['username'],
'password' => $config['global']['database']['default']['params']['password'],
'dbname' => $config['global']['database']['default']['params']['database'],
'prefix' => $config['global']['database']['default']['table_prefix'],
));
if (isset($config['global']['database'])) {
$session->setFormData(array(
'host' => $config['global']['database']['default']['params']['hostname'],
'port' => $config['global']['database']['default']['params']['port'],
'user' => $config['global']['database']['default']['params']['username'],
'password' => $config['global']['database']['default']['params']['password'],
'dbname' => $config['global']['database']['default']['params']['database'],
'prefix' => $config['global']['database']['default']['table_prefix'],
));
}
if ($request->isPost()) {
$form = new Wootook_Core_Form($session, array(
@ -214,8 +210,6 @@ case 'install':
exit(0);
}
$layout->getMessagesblock()->prepareMessages('install');
$config = unserialize($session->getData('config'));
$config['global']['database'] = array(
'default' => array(
@ -249,8 +243,8 @@ case 'install':
exit(0);
}
$layout->getMessagesBlock()->prepareMessages('install');
$layout->load('install.step.database');
$layout->getMessagesBlock()->prepareMessages('install');
break;
case STEP_UNIVERSE:
@ -319,12 +313,27 @@ case 'install':
}
} catch (Wootook_Core_Setup_Exception_VersionStageError $e) {
Wootook_Core_ErrorProfiler::getSingleton()->exceptionManager($e);
$session->addError($e->getMessage());
$session->setData('step', STEP_UNIVERSE);
$response->setRedirect(Wootook::getUrl('install/index.php', array('mode' => 'install', 'step' => STEP_UNIVERSE)));
$response->sendHeaders();
continue;
} catch (Wootook_Core_Setup_Exception_VersionValueError $e) {
Wootook_Core_ErrorProfiler::getSingleton()->exceptionManager($e);
$session->addError($e->getMessage());
$session->setData('step', STEP_UNIVERSE);
$response->setRedirect(Wootook::getUrl('install/index.php', array('mode' => 'install', 'step' => STEP_UNIVERSE)));
$response->sendHeaders();
continue;
} catch (Wootook_Core_Setup_Exception_RuntimeException $e) {
Wootook_Core_ErrorProfiler::getSingleton()->exceptionManager($e);
$session->addError($e->getMessage());
$session->setData('step', STEP_UNIVERSE);
$response->setRedirect(Wootook::getUrl('install/index.php', array('mode' => 'install', 'step' => STEP_UNIVERSE)));
$response->sendHeaders();
continue;
}
}
@ -339,8 +348,8 @@ case 'install':
exit(0);
}
$layout->getMessagesBlock()->prepareMessages('install');
$layout->load('install.step.universe');
$layout->getMessagesBlock()->prepareMessages('install');
break;
case STEP_PROFILE:
@ -358,6 +367,7 @@ case 'install':
if (!$form->validate()) {
$session->setData('step', STEP_PROFILE);
$session->setFormData($request->getData());
$session->addError(Wootook::__('Form data error.'));
$response->setRedirect(Wootook::getUrl('install/index.php', array('mode' => 'install', 'step' => STEP_PROFILE)));
$response->sendHeaders();
exit(0);
@ -375,26 +385,48 @@ case 'install':
if ($request->getPost('email') != $request->getPost('email_confirm')) {
$session->setData('step', STEP_PROFILE);
$session->setFormData($request->getData());
$session->addError(Wootook::__('e-mails does not match.'));
$session->addError(Wootook::__('Both e-mails does not match.'));
$response->setRedirect(Wootook::getUrl('install/index.php', array('mode' => 'install', 'step' => STEP_PROFILE)));
$response->sendHeaders();
exit(0);
}
Wootook_Empire_Model_User::register($request->getPost('username'), $request->getPost('email'), $request->getPost('password'));
try {
$user = Wootook_Empire_Model_User::register($request->getPost('username'), $request->getPost('email'), $request->getPost('password'));
} catch (Wootook_Empire_Exception_RuntimeException $e) {
}
$layout->getMessagesBlock()->prepareMessages('user');
if (!$user->getId()) {
$session->setData('step', STEP_PROFILE);
$session->setFormData($request->getData());
$session->addError(Wootook::__('Could not create user.'));
$response->setRedirect(Wootook::getUrl('install/index.php', array('mode' => 'install', 'step' => STEP_PROFILE)));
$response->sendHeaders();
exit(0);
} else {
Wootook_Empire_Model_User::setLoggedIn($user);
$user->setData('authlevel', LEVEL_ADMIN)->save();
}
$session->setData('step', STEP_CONFIG);
$response->setRedirect(Wootook::getUrl('install/index.php', array('mode' => 'install', 'step' => STEP_CONFIG)));
//$response->setRedirect(Wootook::getUrl('install/index.php', array('mode' => 'install', 'step' => STEP_CONFIG)));
$response->setRedirect(Wootook::getUrl('install/index.php', array('mode' => 'summary')));
$response->sendHeaders();
exit(0);
}
$layout->getMessagesBlock()->prepareMessages('install');
$layout->load('install.step.profile');
$layout->getMessagesBlock()->prepareMessages('install');
break;
case STEP_CONFIG:
if (empty($_POST)) {
//*
$response->setRedirect(Wootook::getUrl('install/index.php', array('mode' => 'summary')));
$response->sendHeaders();
exit(0);
/*/
if ($request->isPost()) {
$session->setData('step', $step);
$response->setRedirect("?mode=install&step={$nextStep}");
$response->sendHeaders();
@ -402,197 +434,15 @@ case 'install':
}
$layout->getMessagesBlock()->prepareMessages('install');
$layout->load('install.config');
$layout->load('install.step.config');
//*/
break;
}
break;
case 'ins':
if ($page == 1) {
if (isset($_GET['error']) && intval($_GET['error']) == 1) {
adminMessage ($lang['ins_error1'], $lang['ins_error']);
}
elseif (isset($_GET['error']) && intval($_GET['error']) == 2) {
adminMessage ($lang['ins_error2'], $lang['ins_error']);
}
$subTpl = gettemplate('install/ins_form');
$bloc = $lang;
$bloc['dpath'] = $dpath;
$frame = parsetemplate($subTpl, $bloc);
} else if ($page == 2) {
$host = $_POST['host'];
$user = $_POST['user'];
$pass = $_POST['passwort'];
$prefix = $_POST['prefix'];
$db = $_POST['db'];
$connection = @mysql_connect($host, $user, $pass);
if (!$connection) {
header("Location: ?mode=ins&page=1&error=1");
exit();
}
$dbselect = @mysql_select_db($db);
if (!$dbselect) {
header("Location: ?mode=ins&page=1&error=1");
exit();
}
$dz = fopen("../config.php", "w");
if (!$dz) {
header("Location: ?mode=ins&page=1&error=2");
exit();
}
$fileData =<<<EOF
<?php return array(
'global' => array(
'database' => array(
'engine' => 'mysql',
'options' => array(
'hostname' => '{$host}',
'username' => '{$user}',
'password' => '{$pass}',
'database' => '{$db}'
),
'table_prefix' => '{$prefix}',
)
)
);
EOF;
fwrite($dz, $fileData);
fclose($dz);
doquery ( $QryTableAks , 'aks' );
doquery ( $QryTableAnnonce , 'annonce' );
doquery ( $QryTableAlliance , 'alliance' );
doquery ( $QryTableBanned , 'banned' );
doquery ( $QryTableBuddy , 'buddy' );
doquery ( $QryTableChat , 'chat' );
doquery ( $QryTableConfig , 'config' );
doquery ( $QryInsertConfig , 'config' );
doquery ( $QryTabledeclared , 'declared' );
doquery ( $QryTableErrors , 'errors' );
doquery ( $QryTableFleets , 'fleets' );
doquery ( $QryTableGalaxy , 'galaxy' );
doquery ( $QryTableIraks , 'iraks' );
doquery ( $QryTableLunas , 'lunas' );
doquery ( $QryTableMessages , 'messages' );
doquery ( $QryTableNotes , 'notes' );
doquery ( $QryTablePlanets , 'planets' );
doquery ( $QryTableRw , 'rw' );
doquery ( $QryTableStatPoints , 'statpoints' );
doquery ( $QryTableUsers , 'users' );
doquery ( $QryTableMulti , 'multi' );
$subTpl = gettemplate ('install/ins_form_done');
$bloc = $lang;
$bloc['dpath'] = $dpath;
$frame = parsetemplate ( $subTpl, $bloc );
} elseif ($page == 3) {
if (isset($_GET['error']) && intval($_GET['error']) == 3) {
adminMessage($lang['ins_error3'], $lang['ins_error']);
}
$subTpl = gettemplate ('install/ins_acc');
$bloc = $lang;
$bloc['dpath'] = $dpath;
$frame = parsetemplate ( $subTpl, $bloc );
} elseif ($page == 4) {
$adm_user = $_POST['adm_user'];
$adm_pass = $_POST['adm_pass'];
$adm_email = $_POST['adm_email'];
$adm_planet = $_POST['adm_planet'];
$adm_sex = $_POST['adm_sex'];
$md5pass = md5($adm_pass);
if (!isset($_POST['adm_user'])) {
header("Location: ?mode=ins&page=3&error=3");
exit();
}
if (!isset($_POST['adm_pass'])) {
header("Location: ?mode=ins&page=3&error=3");
exit();
}
if (!isset($_POST['adm_email'])) {
header("Location: ?mode=ins&page=3&error=3");
exit();
}
if (!isset($_POST['adm_planet'])) {
header("Location: ?mode=ins&page=3&error=3");
exit();
}
$config = include(ROOT_PATH . 'config.php');
$db_host = $config['global']['database']['options']['hostname'];
$db_user = $config['global']['database']['options']['username'];
$db_pass = $config['global']['database']['options']['password'];
$db_db = $config['global']['database']['options']['database'];
$db_prefix = $config['global']['database']['table_prefix'];
$connection = @mysql_connect($db_host, $db_user, $db_pass);
if (!$connection) {
header("Location: ?mode=ins&page=1&error=1");
exit();
}
$dbselect = @mysql_select_db($db_db);
if (!$dbselect) {
header("Location: ?mode=ins&page=1&error=1");
exit();
}
$QryInsertAdm = "INSERT INTO {{table}} SET ";
$QryInsertAdm .= "`id` = '1', ";
$QryInsertAdm .= "`username` = '". $adm_user ."', ";
$QryInsertAdm .= "`email` = '". $adm_email ."', ";
$QryInsertAdm .= "`email_2` = '". $adm_email ."', ";
$QryInsertAdm .= "`authlevel` = '3', ";
$QryInsertAdm .= "`sex` = '". $adm_sex ."', ";
$QryInsertAdm .= "`id_planet` = '1', ";
$QryInsertAdm .= "`galaxy` = '1', ";
$QryInsertAdm .= "`system` = '1', ";
$QryInsertAdm .= "`planet` = '1', ";
$QryInsertAdm .= "`current_planet` = '1', ";
$QryInsertAdm .= "`register_time` = '". time() ."', ";
$QryInsertAdm .= "`password` = '". $md5pass ."';";
doquery($QryInsertAdm, 'users');
$QryAddAdmPlt = "INSERT INTO {{table}} SET ";
$QryAddAdmPlt .= "`name` = '". $adm_planet ."', ";
$QryAddAdmPlt .= "`id_owner` = '1', ";
$QryAddAdmPlt .= "`galaxy` = '1', ";
$QryAddAdmPlt .= "`system` = '1', ";
$QryAddAdmPlt .= "`planet` = '1', ";
$QryAddAdmPlt .= "`last_update` = '". time() ."', ";
$QryAddAdmPlt .= "`planet_type` = '1', ";
$QryAddAdmPlt .= "`image` = 'normaltempplanet02', ";
$QryAddAdmPlt .= "`diameter` = '12750', ";
$QryAddAdmPlt .= "`field_max` = '163', ";
$QryAddAdmPlt .= "`temp_min` = '47', ";
$QryAddAdmPlt .= "`temp_max` = '87', ";
$QryAddAdmPlt .= "`metal` = '500', ";
$QryAddAdmPlt .= "`metal_perhour` = '0', ";
$QryAddAdmPlt .= "`metal_max` = '1000000', ";
$QryAddAdmPlt .= "`crystal` = '500', ";
$QryAddAdmPlt .= "`crystal_perhour` = '0', ";
$QryAddAdmPlt .= "`crystal_max` = '1000000', ";
$QryAddAdmPlt .= "`deuterium` = '500', ";
$QryAddAdmPlt .= "`deuterium_perhour` = '0', ";
$QryAddAdmPlt .= "`deuterium_max` = '1000000';";
doquery($QryAddAdmPlt, 'planets');
$QryAddAdmGlx = "INSERT INTO {{table}} SET ";
$QryAddAdmGlx .= "`galaxy` = '1', ";
$QryAddAdmGlx .= "`system` = '1', ";
$QryAddAdmGlx .= "`planet` = '1', ";
$QryAddAdmGlx .= "`id_planet` = '1'; ";
doquery($QryAddAdmGlx, 'galaxy');
$subTpl = gettemplate ('install/ins_acc_done');
$frame = parsetemplate ( $subTpl, $lang );
}
break;
case 'summary':
$layout->load('install.summary');
$layout->getMessagesBlock()->prepareMessages('install');
break;
}
echo $layout->render();

View file

@ -1,111 +0,0 @@
<?php
/**
* This file is part of Wootook
*
* @license http://www.gnu.org/licenses/gpl-3.0.txt
* @see http://www.wootook.com/
*
* Copyright (c) 2009-Present, Wootook Support Team <http://www.xnova-ng.org>
* All rights reserved.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* --> NOTICE <--
* This file is part of the core development branch, changing its contents will
* make you unable to use the automatic updates manager. Please refer to the
* documentation for further information about customizing Wootook.
*
*/
define('INSIDE' , true);
define('INSTALL' , false);
require_once dirname(__FILE__) .'/application/bootstrap.php';
function ShowLeftMenu ( $Level , $Template = 'left_menu') {
global $lang, $user, $dpath, $gameConfig;
includeLang('leftmenu');
$MenuTPL = gettemplate( $Template );
$InfoTPL = gettemplate( 'serv_infos' );
$parse = $lang;
$parse['lm_tx_serv'] = $gameConfig['resource_multiplier'];
$parse['lm_tx_game'] = $gameConfig['game_speed'] / 2500;
$parse['lm_tx_fleet'] = $gameConfig['fleet_speed'] / 2500;
$parse['lm_tx_queue'] = MAX_FLEET_OR_DEFS_PER_ROW;
$SubFrame = parsetemplate( $InfoTPL, $parse );
$parse['server_info'] = $SubFrame;
$parse['WootookRelease'] = VERSION;
$parse['dpath'] = $dpath;
$parse['forum_url'] = $gameConfig['forum_url'];
$parse['mf'] = "Hauptframe";
$rank = doquery("SELECT `total_rank` FROM {{table}} WHERE `stat_code` = '1' AND `stat_type` = '1' AND `id_owner` = '". $user['id'] ."';",'statpoints',true);
$parse['user_rank'] = $rank['total_rank'];
if ($Level > 0) {
$parse['ADMIN_LINK'] = "
<tr>
<td colspan=\"2\"><div><a href=\"admin/leftmenu.php\"><font color=\"lime\">".$lang['user_level'][$Level]."</font></a></div></td>
</tr>";
} else {
$parse['ADMIN_LINK'] = "";
}
//Lien suppl<70>mentaire d<>termin<69> dans le panel admin
if ($gameConfig['link_enable'] == 1) {
$parse['added_link'] = "
<tr>
<td colspan=\"2\"><div><a href=\"".$gameConfig['link_url']."\" target=\"_blank\">".stripslashes($gameConfig['link_name'])."</a></div></td>
</tr>";
} else {
$parse['added_link'] = "";
}
//Maintenant on v<>rifie si les annonces sont activ<69>es ou non
if ($gameConfig['enable_announces'] == 1) {
$parse['announce_link'] = "
<tr>
<td colspan=\"2\"><div><a href=\"annonce.php\" target=\"Hauptframe\">Annonces</a></div></td>
</tr>";
} else {
$parse['announce_link'] = "";
}
//Maintenant le marchand
if ($gameConfig['enable_marchand'] == 1) {
$parse['marchand_link'] = "
<td colspan=\"2\"><div><a href=\"marchand.php\" target=\"Hauptframe\">Marchand</a></div></td>";
} else {
$parse['marchand_link'] = "";
}
//Maintenant les notes
if ($gameConfig['enable_notes'] == 1) {
$parse['notes_link'] = "
<tr>
<td colspan=\"2\"><div><a href=\"#\" onClick=\"f(\'notes.php\', \'Report\');\" accesskey=\"n\">Notes</a></div></td>
</tr>";
} else {
$parse['notes_link'] = "";
}
$parse['servername'] = $gameConfig['game_name'];
$Menu = parsetemplate( $MenuTPL, $parse);
return $Menu;
}
$Menu = ShowLeftMenu ( $user['authlevel'] );
display ( $Menu, "Menu", '', false );
// -----------------------------------------------------------------------------------------------------------
// History version
// 1.0 - Passage en fonction pour Wootook version future
// 1.1 - Modification pour gestion Admin / Game OP / Modo
?>

View file

@ -77,8 +77,8 @@ $block['user_count'] = $userCount;
$block['latest_player'] = $latestPlayer;
$block['online_players'] = $onlinePlayers;
$block['server_name'] = $gameConfig['game_name'];
$block['board_url'] = $gameConfig['forum_url'];
$block['server_name'] = Wootook::getWebsiteConfig('game/general/name');
$block['board_url'] = Wootook::getWebsiteConfig('game/general/boards-url');
echo $layout->render();

View file

@ -107,7 +107,7 @@ while ($CurMess = $UsrMess->fetch(PDO::FETCH_BOTH)) {
$Sender = $user['id'];
$From = $user['username'] ." [".$user['galaxy'].":".$user['system'].":".$user['planet']."]";
$Subject = $_POST['subject'];
if($gameConfig['enable_bbcode'] == 1) {
if (Wootook::getGameConfig('engine/options/bbcode')) {
$Message = trim ( nl2br (bbcode ( image ( strip_tags ( $_POST['text'], '<br>' ) ) ) ) );
} else {
@ -128,7 +128,7 @@ $Message = trim ( nl2br ( strip_tags ( $_POST['text'], '<br>' ) ) ); }
$parse['to'] = $OwnerRecord['username'] ." [".$OwnerHome['galaxy'].":".$OwnerHome['system'].":".$OwnerHome['planet']."]";
$parse['subject'] = (!isset($subject)) ? $lang['mess_no_subject'] : $subject ;
$parse['text'] = $text;
if($gameConfig['enable_bbcode'] == 1) {
if(Wootook::getGameConfig('engine/options/bbcode')) {
$page .= parsetemplate(gettemplate('messages_pm_form_bb'), $parse);
} else {
$page .= parsetemplate(gettemplate('messages_pm_form'), $parse); }

View file

@ -30,46 +30,26 @@
define('INSIDE' , true);
define('INSTALL' , false);
require_once dirname(__FILE__) .'/application/bootstrap.php';
includeLang('options');
$user = Wootook_Empire_Model_User::getSingleton();
$lang['PHP_SELF'] = 'options.' . PHPEXT;
includeLang('options');
$dpath = (!$user["dpath"]) ? DEFAULT_SKINPATH : $user["dpath"];
$mode = $_GET['mode'];
$lang['PHP_SELF'] = 'options.' . PHPEXT;
if ($_POST && $mode == "exit") { // Array ( [db_character]
if (isset($_POST["exit_modus"]) && $_POST["exit_modus"] == 'on' and $user['urlaubs_until'] <= time()){
$urlaubs_modus = "0";
doquery("UPDATE {{table}} SET
`urlaubs_modus` = '0',
`urlaubs_until` = '0'
WHERE `id` = '".$user['id']."' LIMIT 1", "users");
$mode = isset($_GET['mode']) ? $_GET['mode'] : null;
//Remise des mines au retour du mod vacance
$query = doquery("SELECT * FROM {{table}} WHERE id_owner = '{$user['id']}'", 'planets');
while ($id = $query->fetch(PDO::FETCH_BOTH)){
doquery("UPDATE {{table}} SET
energy_used = '10',
energy_max = '10',
metal_mine_porcent = '10',
crystal_mine_porcent = '10',
deuterium_sintetizer_porcent = '10',
solar_plant_porcent = '10',
fusion_plant_porcent = '10',
solar_satelit_porcent = '10'
WHERE id = '{$id['id']}' AND `planet_type` = 1 ", 'planets');}
$dpath = (!$user["dpath"]) ? DEFAULT_SKINPATH : $user["dpath"];
message($lang['succeful_save'], $lang['Options'],"options.php",1);
}else{
$urlaubs_modus = "1";
$dpath = (!$user["dpath"]) ? DEFAULT_SKINPATH : $user["dpath"];
message($lang['You_cant_exit_vmode'], $lan['Error'] ,"options.php",1);
if (!empty($_POST) && $mode == "exit") { // Array ( [db_character]
if (isset($_POST["exit_modus"]) && !empty($_POST["exit_modus"]) && $user->getVacation() && $user->getVacationEndDate() <= time()) {
$user->setVacation(false);
message($lang['succeful_save'], $lang['Options'],"options.php",1);
} else {
message($lang['You_cant_exit_vmode'], $lan['Error'] ,"options.php",1);
}
}
if ($_POST && $mode == "change") { // Array ( [db_character]
$iduser = $user["id"];
$avatar = $_POST["avatar"];
@ -167,44 +147,22 @@ require_once dirname(__FILE__) .'/application/bootstrap.php';
$settings_rep = "0";
}
// Modo vacaciones
if (isset($_POST["urlaubs_modus"]) && $_POST["urlaubs_modus"] == 'on') {
//Selectionne si le joueur a des flottes en vol
$fleet = doquery("SELECT COUNT(fleet_owner) AS `actcnt` FROM {{table}} WHERE `fleet_owner` = '".$user['id']."';", 'fleets', true);
//Selectionne si le joueur a des batiments en construction
$build = doquery("SELECT COUNT(id_owner) AS `building` FROM {{table}} WHERE `id_owner` = '".$user['id']."' and `b_building`!=0;", 'planets', true);
//Selectionne si le joueur a des techno en cours
$tech = doquery("SELECT COUNT(id) AS `tech` FROM {{table}} WHERE `id` = '".$user['id']."' and `b_tech_planet`!=0;", 'users', true);
//Selectionne si le joueur est en train de se faire attaquer
$attack = doquery("SELECT COUNT(fleet_taget_owner) AS `attack` FROM {{table}} WHERE `fleet_taget_owner` = '".$user['id']."';", 'fleets', true);
if($fleet['actcnt']=='0' && $build['building']=='0' && $tech['tech']=='0' && $attack['attack']=='0') {
$urlaubs_modus = "1";
$time = time() + 172800;
doquery("UPDATE {{table}} SET
`urlaubs_modus` = '$urlaubs_modus',
`urlaubs_until` = '$time'
WHERE `id` = '$iduser' LIMIT 1", "users");
} else {
message ( 'Verifiez vos flottes, technologies et batiments','<center><font color=\"red\">Vous avez des actions en cours</font></center>' );
}
if (isset($_POST["urlaubs_modus"]) && !empty($_POST["urlaubs_modus"]) && !$user->getVacation()) {
//Selectionne si le joueur a des flottes en vol
$fleet = doquery("SELECT COUNT(fleet_owner) AS `actcnt` FROM {{table}} WHERE `fleet_owner` = '".$user['id']."';", 'fleets', true);
//Selectionne si le joueur a des batiments en construction
$build = doquery("SELECT COUNT(id_owner) AS `building` FROM {{table}} WHERE `id_owner` = '".$user['id']."' and `b_building`!=0;", 'planets', true);
//Selectionne si le joueur a des techno en cours
$tech = doquery("SELECT COUNT(id) AS `tech` FROM {{table}} WHERE `id` = '".$user['id']."' and `b_tech_planet`!=0;", 'users', true);
//Selectionne si le joueur est en train de se faire attaquer
$attack = doquery("SELECT COUNT(fleet_taget_owner) AS `attack` FROM {{table}} WHERE `fleet_taget_owner` = '".$user['id']."';", 'fleets', true);
$query = doquery("SELECT * FROM {{table}} WHERE id_owner = '{$user['id']}'", 'planets');
while ($id = $query->fetch(PDO::FETCH_BOTH)){
doquery("UPDATE {{table}} SET
metal_perhour = '".$gameConfig['metal_basic_income']."',
crystal_perhour = '".$gameConfig['metal_basic_income']."',
deuterium_perhour = '".$gameConfig['metal_basic_income']."',
energy_used = '0',
energy_max = '0',
metal_mine_porcent = '0',
crystal_mine_porcent = '0',
deuterium_sintetizer_porcent = '0',
solar_plant_porcent = '0',
fusion_plant_porcent = '0',
solar_satelit_porcent = '0'
WHERE id = '{$id['id']}' AND `planet_type` = 1 ", 'planets');
}
} else {
$urlaubs_modus = "0";
if ($fleet['actcnt'] == 0 && $build['building'] == 0 && $tech['tech'] == 0 && $attack['attack'] == 0) {
$user->setVacation();
} else {
message(Wootook::__('Could not set to vacation mode.'),
Wootook::__("You currently can't get to vacation mode, please check your flying fleets, and building queues."));
}
}
// Borrar cuenta
@ -233,7 +191,6 @@ require_once dirname(__FILE__) .'/application/bootstrap.php';
`settings_bud` = '$settings_bud',
`settings_mis` = '$settings_mis',
`settings_rep` = '$settings_rep',
`urlaubs_modus` = '$urlaubs_modus',
`db_deaktjava` = '$db_deaktjava',
`kolorminus` = '$kolorminus',
`kolorplus` = '$kolorplus',

View file

@ -211,20 +211,16 @@ if (isset($_POST) && !empty($_POST)) {
// News Frame ...
// External Chat Frame ...
// Banner ADS Google (meme si je suis contre cela)
if ($gameConfig['OverviewNewsFrame'] == '1') {
$parse['NewsFrame'] = "<tr><th>" . $lang['ov_news_title'] . "</th><th colspan=\"3\">" . stripslashes($gameConfig['OverviewNewsText']) . "</th></tr>";
if (Wootook::getGameConfig('game/news/active')) {
$parse['NewsFrame'] = "<tr><th>" . $lang['ov_news_title'] . "</th><th colspan=\"3\">" . htmlentities(Wootook::getGameConfig('game/news/content'), ENT_QUOTES, 'UTF-8') . "</th></tr>";
}
if ($gameConfig['OverviewExternChat'] == '1') {
$parse['ExternalTchatFrame'] = "<tr><th colspan=\"4\">" . stripslashes($gameConfig['OverviewExternChatCmd']) . "</th></tr>";
if (Wootook::getGameConfig('engine/options/chat')) {
$parse['ExternalTchatFrame'] = "<tr><th colspan=\"4\">" . Wootook::__('Open the chat.') . "</th></tr>";
}
if ($gameConfig['OverviewClickBanner'] != '') {
$parse['ClickBanner'] = stripslashes($gameConfig['OverviewClickBanner']);
}
if ($gameConfig['ForumBannerFrame'] == '1') {
if (Wootook::getGameConfig('engine/options/banner')) {
$bannerUrl = Wootook::getUrl('scripts/createbanner.php', array('id' => $user['id']));
$BannerURL = Wootook::getUrl('scripts/createbanner.php', array('id' => $user['id']));
$parse['bannerframe'] = "<th colspan=\"4\"><img src=\"{$BannerURL}\"><br>".$lang['InfoBanner']."<br><input name=\"bannerlink\" type=\"text\" id=\"bannerlink\" value=\"[img]".$BannerURL."[/img]\" size=\"62\"></th></tr>";
$parse['bannerframe'] = "<th colspan=\"4\"><img src=\"{$bannerUrl}\"><br>".$lang['InfoBanner']."<br><input name=\"bannerlink\" type=\"text\" id=\"bannerlink\" value=\"[img]".$bannerUrl."[/img]\" size=\"62\"></th></tr>";
}
// --- Gestion de l'affichage d'une lune ---------------------------------------------------------
if ($moon['id']) {
@ -276,7 +272,18 @@ if (isset($_POST) && !empty($_POST)) {
$parse['time'] = "<div id=\"dateheure\"></div>";
$parse['planet_image'] = $planet['image'];
$parse['anothers_planets'] = $planetBlock->render();
$parse['max_users'] = $gameConfig['users_amount'];
$db = Wootook_Database::getConnection('default');
$displayedPlayerLevels = implode(',', array(
//LEVEL_ADMIN,
LEVEL_OPERATOR,
LEVEL_MODERATOR,
LEVEL_PLAYER
));
$userCountStatement = $db->prepare("SELECT COUNT(DISTINCT user.id) AS `user_count` FROM {$db->getTable('users')} AS user WHERE user.authlevel IN({$displayedPlayerLevels})");
$userCountStatement->execute();
$userCount = $userCountStatement->fetch(Wootook_Database::FETCH_COLUMN, 0);
$parse['max_users'] = $userCount;
$galaxyData = $planet->getGalaxyData();
$parse['metal_debris'] = Math::render($galaxyData['metal']);
@ -287,12 +294,19 @@ if (isset($_POST) && !empty($_POST)) {
$parse['get_link'] = '';
}
$latestPlayerStatement = $db->prepare("SELECT user.username AS `latest_player` FROM {$db->getTable('users')} AS user WHERE user.authlevel IN({$displayedPlayerLevels}) ORDER BY user.`register_time` DESC LIMIT 1");
$latestPlayerStatement->execute();
$latestPlayer = $latestPlayerStatement->fetch(Wootook_Database::FETCH_COLUMN, 0);
$onlinePlayersStatement = $db->prepare("SELECT COUNT(DISTINCT user.id) AS `online_players` FROM {$db->getTable('users')} AS user WHERE user.authlevel IN({$displayedPlayerLevels}) AND user.`onlinetime` > (UNIX_TIMESTAMP() - 900)");
$onlinePlayersStatement->execute();
$onlinePlayers = $onlinePlayersStatement->fetch(Wootook_Database::FETCH_COLUMN, 0);
$query = doquery('SELECT username FROM {{table}} ORDER BY register_time DESC', 'users', true);
$parse['last_user'] = $query['username'];
$parse['last_user'] = $latestPlayer;
$query = doquery("SELECT COUNT(DISTINCT(id)) FROM {{table}} WHERE onlinetime>" . (time()-900), 'users', true);
$parse['online_users'] = $query[0];
// $count = doquery(","users",true);
$parse['users_amount'] = $gameConfig['users_amount'];
$parse['online_users'] = $onlinePlayers;
$parse['users_amount'] = $userCount;
// Rajout d'une barre pourcentage
// Calcul du pourcentage de remplissage

View file

@ -76,7 +76,7 @@ includeLang('fleet');
}
$distance = GetTargetDistance ( $planetrow['galaxy'], $Galaxy, $planetrow['system'], $System, $planetrow['planet'], $Planet );
$SpeedFactor = $gameConfig['fleet_speed'] / 2500;
$SpeedFactor = Wootook::getGameConfig('game/speed/fleet') / 2500;
$GenFleetSpeed = 10; // a 100%
$duration = GetMissionDuration ( $GenFleetSpeed, $RecyclerSpeed, $distance, $SpeedFactor );

View file

@ -144,7 +144,7 @@ $select = doquery("SELECT * FROM {{table}} WHERE id = ".$ziel_id, 'users', true)
$flugzeit = round(((30 + (60 * $tempvar1)) * 2500) / $gameConfig['game_speed']);
$flugzeit = round(((30 + (60 * $tempvar1)) * 2500) / Wootook::getGameConfig('game/speed/general'));

View file

@ -33,20 +33,13 @@ define('INSTALL' , false);
require_once dirname(__FILE__) .'/application/bootstrap.php';
function BuildRessourcePage($CurrentUser, $CurrentPlanet ) {
global $lang, $gameConfig;
global $lang;
includeLang('resources');
$RessBodyTPL = gettemplate('resources');
$RessRowTPL = gettemplate('resources_row');
// Si c'est une lune ... pas de ressources produites
if ($CurrentPlanet['planet_type'] == 3) {
$gameConfig['metal_basic_income'] = 0;
$gameConfig['crystal_basic_income'] = 0;
$gameConfig['deuterium_basic_income'] = 0;
}
$request = Wootook::getRequest();
if ($request->isPost()) {
foreach ($request->getPost() as $buildingField => $value) {
@ -142,10 +135,18 @@ function BuildRessourcePage($CurrentUser, $CurrentPlanet ) {
$parse['production_level'] = 100;
}
$parse['metal_basic_income'] = $gameConfig['metal_basic_income'] * $gameConfig['resource_multiplier'];
$parse['crystal_basic_income'] = $gameConfig['crystal_basic_income'] * $gameConfig['resource_multiplier'];
$parse['deuterium_basic_income'] = $gameConfig['deuterium_basic_income'] * $gameConfig['resource_multiplier'];
$parse['energy_basic_income'] = $gameConfig['energy_basic_income'] * $gameConfig['resource_multiplier'];
if ($CurrentPlanet['planet_type'] == Wootook_Empire_Model_Planet::TYPE_PLANET) {
$multiplier = Wootook::getGameConfig('game/resource/multiplier');
$parse['metal_basic_income'] = Wootook::getGameConfig('resource/base-income/metal') * $multiplier;
$parse['crystal_basic_income'] = Wootook::getGameConfig('resource/base-income/cristal') * $multiplier;
$parse['deuterium_basic_income'] = Wootook::getGameConfig('resource/base-income/deuterium') * $multiplier;
$parse['energy_basic_income'] = Wootook::getGameConfig('resource/base-income/energy') * $multiplier;
} else {
$parse['metal_basic_income'] = 0;
$parse['crystal_basic_income'] = 0;
$parse['deuterium_basic_income'] = 0;
$parse['energy_basic_income'] = 0;
}
if ($CurrentPlanet['metal_max'] < $CurrentPlanet['metal']) {
$parse['metal_max'] = "<font color=\"#ff0000\">";

View file

@ -32,15 +32,12 @@ define('INSIDE' , true);
define('INSTALL' , false);
require_once dirname(__FILE__) .'/application/bootstrap.php';
includeLang('rules');
includeLang('rules');
$parse = $lang;
$parse['servername'] = $gameConfig['game_name'];
$parse = $lang;
$parse['servername'] = Wootook::getGameConfig('game/general/name');
$PageTPL = gettemplate('rules_body');
$page = parsetemplate( $PageTPL, $parse);
$PageTPL = gettemplate('rules_body');
$page = parsetemplate( $PageTPL, $parse);
display($page, $lang['rules'], false);
?>
display($page, $lang['rules'], false);