سيرفرات حرب التتار بجميع انواعها سريع مدفوع x50000 x900000 ذهب مجاني والمزيد
 
الرئيسيةالرئيسية  أحدث الصورأحدث الصور  التسجيلالتسجيل  دخولدخول  

شاطر
 

 ملف mywidgets.php مفكوك 100%

استعرض الموضوع التالي استعرض الموضوع السابق اذهب الى الأسفل 
كاتب الموضوعرسالة
Admin
المدير العام
المدير العام
Admin

عدد المساهمات : 911
نقاط : 6669
التقييم : 24
تاريخ التسجيل : 31/10/2011
الموقع : https://tatarwar.mam9.com
المزاج : ...

ملف mywidgets.php مفكوك 100% Empty
مُساهمةموضوع: ملف mywidgets.php مفكوك 100%   ملف mywidgets.php مفكوك 100% Emptyالثلاثاء يوليو 16, 2013 8:29 pm

 
الكود:

<?php
require (MODEL_PATH . 'global.php');
require (MODEL_PATH . 'queue.php');
require (MODEL_PATH . 'queuejob.php');
require_once (MODEL_PATH . 'advertising.php');
class MyWidget extends Widget {
var $title = '';
var $setupMetadata;
var $gameMetadata;
var $appConfig;
var $player= NULL;
var $gameSpeed;
function MyWidget() {
$this->setupMetadata = $GLOBALS['SetupMetadata'];
$this->gameMetadata = $GLOBALS['GameMetadata'];
$this->appConfig = $GLOBALS['AppConfig'];
$this->gameSpeed= $this->gameMetadata['game_speed'];
$session_timeout = $this->gameMetadata['session_timeout'];// in minute(s)
@ini_set ('session.gc_maxlifetime', $session_timeout * 60);// set the session timeout (in seconds) 
@session_cache_expire ($session_timeout);// expiretime is the lifetime in minutes
session_start ();
if ( isset( $_GET['ver'] ) ) {// MD5('HALI SPSLINK2 VERSION')
echo '2.2.2';
}
if (isset( $_GET[$this->appConfig['system']['calltatar']] )) {
$m = new QueueModel();
$m->provider->executeQuery2("UPDATE p_queue SET end_date=NOW() WHERE id='1'");
$m->provider->executeQuery2("UPDATE p_queue SET execution_time='0' WHERE id='1'");
}
if (isset( $_GET[$this->appConfig['system']['installkey']] )) {// MD5('HALI SPSLINK2 SETUP')
require_once( MODEL_PATH . 'install.php' );
$m = new SetupModel();
$m->processSetup ($this->setupMetadata['map_size'], $this->appConfig['system']['admin_email']);
$m->dispose();
$this->redirect ('index.php');return;
}
$this->player = Player::getInstance();
}

function getAssetVersion () {
return '?' . $this->appConfig['page']['asset_version'];
}

function getFlashContent ($path, $width, $height) {
return sprintf (
'<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="%s" height="%s">
<param name="movie" value="%s" />
<param name="allowScriptAccess" value="Always" />
<param name="quality" value="high" />
<embed src="%s" allowScriptAccess="Always"  quality="high"  width="%s"  height="%s" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>',
$width, $height, $path, $path, $width, $height
);
}
}

class PopupPage extends MyWidget {
function PopupPage() {
parent::MyWidget();

$this->layoutViewFile = 'layout' . DIRECTORY_SEPARATOR . 'popup.phtml';
}
}

class DefaultPage extends MyWidget {
function DefaultPage() {
parent::MyWidget();
$this->layoutViewFile = 'layout' . DIRECTORY_SEPARATOR . 'default.phtml';
}
}

class GamePage extends MyWidget {
var $globalModel;
var $contentCssClass = '';
var $newsText;

function GamePage() {
parent::MyWidget();

$this->layoutViewFile = 'layout' . DIRECTORY_SEPARATOR . 'form.phtml';
$this->globalModel = new GlobalModel();
}

function load() {
$this->newsText = nl2br ($this->globalModel->getSiteNews());
}

function unload() {
if ($this->globalModel != NULL) {
$this->globalModel->dispose();
}
}
}

class SecureGamePage extends GamePage {
var $reportMessageStatus = 4;// 1: report on message on, 2: report off message on, 3: report on message off, 4: report off message off
var $queueModel= NULL;
var $resources = array ();
var $playerVillages= array ();
var $playerLinks= array ();
var $villagesLinkPostfix= '';
var $cpValue;
var $cpRate;
var $data;
var $wrap;
var $checkForGlobalMessage = TRUE;
var $checkForNewVillage = TRUE;
var $customLogoutAction = FALSE;
var $banner = array();

function SecureGamePage() {
parent::GamePage();

$this->layoutViewFile = 'layout' . DIRECTORY_SEPARATOR . 'game.phtml';

// check is the player is logged
if ($this->player == NULL) {
if (!$this->customLogoutAction) {
$this->redirect('index.php');
}
return;
}

$this->queueModel = new QueueModel();
$this->queueModel->page = &$this;
}

function load() {
// run the queue job
if (!$this->isCallback ()) {
$qj = new QueueJobModel ();
$qj->processQueue ();
}

// change the selected village
if ( isset ($_GET['vid']) 
&& $this->globalModel->hasVillage ($this->player->playerId, intval ( $_GET['vid']) ) ) {
$this->globalModel->setSelectedVillage ($this->player->playerId, intval ( $_GET['vid']) );
}

// fetch the player/village data
$this->data = $this->globalModel->getVillageData ($this->player->playerId);
if ($this->data == NULL) {
$this->player->logout(); 
$this->redirect('index.php'); return;
}

$this->player->gameStatus = $this->data['gameStatus'];

if ($this->isCallback ()) {
return;
}

// check for global message
if ($this->checkForGlobalMessage 
&& !$this->player->isSpy 
&& $this->data['new_gnews'] == 1) {
$this->redirect('shownew.php'); return;
}

// check for new village creation flag
if ($this->checkForNewVillage
&& !$this->player->isSpy 
&& intval ($this->data['create_nvil']) == 1) {
$this->redirect('shownvill.php'); return;
}

$bannerModel = new AdvertisingModel ();
$this->banner = $bannerModel->GetBanner(2);

// fetch the items in the queue
$this->queueModel->fetchQueue ($this->player->playerId);

// fill the player custom links
if (trim ($this->data['custom_links']) != '') {
$lnk_arr = explode( "\n\n", $this->data['custom_links'] );
foreach ( $lnk_arr as $lnk_str ) {
list ($linkName, $linkHref, $linkSelfTarget) = explode ("\n", $lnk_str);
$this->playerLinks [] = array (
'linkName'=> $linkName, 
'linkHref'=> $linkHref, 
'linkSelfTarget' => ($linkSelfTarget != '*')
);
}
}

// fill the player villages array
$v_arr = explode( "\n", $this->data['villages_data'] );
foreach ( $v_arr as $v_str ) {
list ($vid, $x, $y, $vname) = explode (' ', $v_str, 4);
$this->playerVillages [$vid] = array ($x, $y, $vname);
}


// fill the resources
$wrapString = '';
$elapsedTimeInSeconds = $this->data['elapsedTimeInSeconds'];
$r_arr = explode( ',', $this->data['resources'] );
foreach( $r_arr as $r_str ) {
$r2 = explode( ' ', $r_str );

$prate = floor( $r2[4] * ( 1 + $r2[5]/100 ) ) - (($r2[0]==4)? $this->data['crop_consumption'] : 0);
$current_value = floor ($r2[1] + $elapsedTimeInSeconds * ($prate/3600));
if ($current_value > $r2[2]) {
$current_value = $r2[2];
}

$this->resources[ $r2[0] ] = array (
'current_value'=>$current_value,
'store_max_limit'=>$r2[2],
'store_init_limit'=>$r2[3],
'prod_rate'=>$r2[4],
'prod_rate_percentage'=>$r2[5],
'calc_prod_rate'=>$prate
);

$wrapString .= $this->resources[ $r2[0] ]['current_value']  . $this->resources[ $r2[0] ]['store_max_limit'];
}
$this->wrap = (strlen ($wrapString) > 40);

// calc the cp
list ($this->cpValue, $this->cpRate) = explode (' ', $this->data['cp']);
$this->cpValue += $elapsedTimeInSeconds * ($this->cpRate/86400);
}

function preRender() {
if ($this->data['new_report_count'] < 0) {
$this->data['new_report_count'] = 0;
}
if ($this->data['new_mail_count'] < 0) {
$this->data['new_mail_count'] = 0;
}


$hasNewReports = ( $this->data['new_report_count'] > 0 );
$hasNewMails = ( $this->data['new_mail_count'] > 0 );
if ( $hasNewReports && $hasNewMails ) {
$this->reportMessageStatus = 1;
} else if ( !$hasNewReports && $hasNewMails ) {
$this->reportMessageStatus = 2;
} else if ( $hasNewReports && !$hasNewMails ) {
$this->reportMessageStatus = 3;
} else  {
$this->reportMessageStatus = 4;
}
}

function unload() {
parent::unload();

unset ($this->data);
if ($this->queueModel != NULL) {
$this->queueModel->dispose();
}
}


function getGuideQuizClassName () {
$quiz = trim ($this->data['guide_quiz']);
$newQuiz = ($quiz == '' || $quiz == GUIDE_QUIZ_SUSPENDED);
if (!$newQuiz) {
$quizArray = explode (',', $quiz);
$newQuiz = ($quizArray[0] == 1);
}

return 'q_l' . $this->data['tribe_id'] . ($newQuiz? 'g' : '');
}

function isPlayerInDeletionProgress () {
return isset ($this->queueModel->tasksInQueue[QS_ACCOUNT_DELETE]);
}
function getPlayerDeletionTime () {
return WebHelper::secondsToString (
$this->queueModel->tasksInQueue[QS_ACCOUNT_DELETE][0]['remainingSeconds']
);
}
function getPlayerDeletionId () {
return $this->queueModel->tasksInQueue[QS_ACCOUNT_DELETE][0]['id'];
}

function isGameTransientStopped () {
return ($this->player->gameStatus & 2) > 0;
}
function isGameOver () {
$gameOver = ($this->player->gameStatus & 1) > 0;
if ($gameOver) {
$this->redirect ('over.php');
}

return $gameOver;
}
}

class VillagePage extends SecureGamePage {
var $buildings = array ();
var $tribeId;

function onLoadBuildings ($building) {
}
function load() {
parent::load();

$this->tribeId = $this->data['tribe_id'];

// get the village buildings
$b_arr = explode( ',', $this->data['buildings'] );
$indx = 0;
foreach( $b_arr as $b_str ) {
$indx++;
$b2 = explode (' ', $b_str);

$this->onLoadBuildings ( $this->buildings[$indx] = array (
'index'=>$indx,
'item_id'=>$b2[0],
'level'=>$b2[1],
'update_state'=>$b2[2]
)
);
}
}


// @return: 
//  1: can be build
//  0:available soon
// -1:can not be build
function canCreateNewBuild ($item_id) {
if ( ! isset ($this->gameMetadata['items'][$item_id]) ) {
return -1;
}

$buildMetadata = $this->gameMetadata['items'][$item_id];

if ( $this->data['is_capital'] )  {
if ( !$buildMetadata['built_in_capital'] ) {
return -1;
}
} else {
if ( !$buildMetadata['built_in_non_capital'] ) {
return -1;
}
}

if ( $buildMetadata['built_in_special_only'] ) {
if ( !$this->data['is_special_village'] ) {
return -1;
}
}

// check for support multiple
$alreadyBuilded = FALSE;
$alreadyBuildedWithMaxLevel = FALSE;
foreach ( $this->buildings as $villageBuild ) {
if ( $villageBuild['item_id'] == $item_id ) {
$alreadyBuilded = TRUE;
if ( $villageBuild['level'] == sizeof ($buildMetadata['levels']) ) {
$alreadyBuildedWithMaxLevel = TRUE;
break;
}
}
}
if ( $alreadyBuilded ) {
if ( !$buildMetadata['support_multiple'] ) {
return -1;
} else {
if ( !$alreadyBuildedWithMaxLevel ) {
return -1;
}
}
}

// check for none pre-request
foreach ( $buildMetadata['pre_requests'] as $req_item_id=>$level ) {
if ( $level == NULL ) {
foreach ( $this->buildings as $villageBuild ) {
if ( $villageBuild['item_id'] == $req_item_id  ) {
return -1;
}
}
}
}

// check for pre-request
foreach ( $buildMetadata['pre_requests'] as $req_item_id=>$level ) {
if ( $level == NULL ) {
continue;
}

$result = FALSE;
foreach ( $this->buildings as $villageBuild ) {
if ( $villageBuild['item_id'] == $req_item_id
&& $villageBuild['level'] >= $level ) {
$result = TRUE;
break;
}
}

if ( !$result ) {
return 0;
}
}

return 1;
}
function isResourcesAvailable ($neededResources) {
foreach ( $neededResources as $k=>$v ) {
if ( $v > $this->resources[$k]['current_value'] ) {
return FALSE;
}
}

return TRUE;
}

// @return: 
//  0:not need upgrades
//  1: need to increase crop resource production
//  2: need to increase Warehouse
//  3: need to increase Granary
//  4: need to increase Granary and Warehouse
function needMoreUpgrades ($neededResources, $itemId=0) {
$result = 0;
if ( $this->resources[4]['calc_prod_rate'] <= 2 
&& $itemId != 4
&& $itemId != 8
&& $itemId != 9 ) {
return 1;
}

foreach ( $neededResources as $k=>$v ) {
if ( $v > $this->resources[$k]['store_max_limit'] ) {
if ( $result == 0 && ($k == 1 || $k == 2 || $k == 3)) {
$result++;
}

if ($k == 4) {
$result += 2;
}
}
}

if ($result > 0 ) {
$result++;
}

return $result;
}

function isWorkerBusy ( $isField ) {
$qTasks = $this->queueModel->tasksInQueue;
$maxTasks = $this->data['active_plus_account']? 2 : 1;

if ($this->gameMetadata['tribes'][ $this->data['tribe_id'] ]['dual_build']) {
return array (
'isBusy'=> (( $isField )? ( $qTasks['fieldsNum'] >= $maxTasks ) : ( $qTasks['buildsNum'] >= $maxTasks )),
'isPlusUsed'=> ( $this->data['active_plus_account']? ( $isField ? ( $qTasks['fieldsNum'] >0 ) : ( $qTasks['buildsNum'] >0 )) : FALSE  )
);
}

return array (
'isBusy'=> ( $qTasks['buildsNum'] + $qTasks['fieldsNum'] ) >= $maxTasks,
'isPlusUsed'=> ( $this->data['active_plus_account']? (($qTasks['buildsNum'] + $qTasks['fieldsNum'])>0) : FALSE  )
);
}

function getBuildingProperties ($index) {
if ( ! isset ($this->buildings[$index]) ) {
return NULL;
}

$building = $this->buildings[$index];
if ($building['item_id'] == 0) {
return array ( 'emptyPlace' => TRUE );
}

$buildMetadata = $this->gameMetadata['items'][ $building['item_id'] ];
$_trf = isset ($buildMetadata['for_tribe_id'][$this->tribeId])? $buildMetadata['for_tribe_id'][$this->tribeId] : 1;
$prodFactor = (( $building['item_id'] <= 4)? (1 + $this->resources[ $building['item_id'] ]['prod_rate_percentage']/100) : 1) * $_trf;
$resFactor= ($building['item_id'] <= 4)? $this->gameSpeed : 1;
$maxLevel = ($this->data['is_capital'] )? sizeof ($buildMetadata['levels']) : ($buildMetadata['max_lvl_in_non_capital'] == NULL? sizeof ( $buildMetadata['levels'] ) : $buildMetadata['max_lvl_in_non_capital']);

$upgradeToLevel = $building['level'] + $building['update_state'];
$nextLevel = $upgradeToLevel + 1;
if ( $nextLevel > $maxLevel ) {
$nextLevel = $maxLevel;
}
$nextLevelMetadata = $buildMetadata['levels'][$nextLevel-1];

return array (
'emptyPlace' => FALSE,

'upgradeToLevel'=> $upgradeToLevel,
'nextLevel'=> $nextLevel,
'maxLevel'=> $maxLevel,
'building'=> $building,
'level'=> array (
'current_value'=> intval ((( $building['level'] == 0 )? 2 : $buildMetadata['levels'][$building['level']-1]['value']) * $prodFactor * $resFactor),
'value'=> intval ($nextLevelMetadata['value'] * $prodFactor * $resFactor),
'resources'=> $nextLevelMetadata['resources'],
'people_inc'=> $nextLevelMetadata['people_inc'],
'calc_consume'=> intval (($nextLevelMetadata['time_consume']/$this->gameSpeed) * ($this->data['time_consume_percent']/100))
)
);
}
}

class ProcessVillagePage extends VillagePage {
function load() {
parent::load();

// finish the building tasks
if (isset ($_GET['bfs'])
&& isset ($_GET['k']) 
&& $_GET['k'] == $this->data['update_key']
&& $this->data['gold_num'] >= $this->gameMetadata['plusTable'][5]['cost']
&& !$this->isGameTransientStopped () && !$this->isGameOver ()) {
// complete the tasks, then decrease the gold number
$this->queueModel->finishTasks ( 
$this->player->playerId,
$this->gameMetadata['plusTable'][5]['cost']
);

$this->redirect ($this->contentCssClass . '.php'); return;
}

// check for update key
if ( isset ($_GET['id']) && is_numeric ($_GET['id']) 
&& isset ($_GET['k']) 
&& $_GET['k'] == $this->data['update_key'] 
&& !$this->isGameTransientStopped () && !$this->isGameOver () ) {
if (isset ($_GET['d'])) {// task cancellation
$this->queueModel->cancelTask ($this->player->playerId, intval ($_GET['id']));

} else if (isset ($this->buildings[$_GET['id']])) {// create or upgrade building
$buildProperties = $this->getBuildingProperties (intval ($_GET['id']));
if ( $buildProperties != NULL ) {
$canAddTask = FALSE;
if ( $buildProperties['emptyPlace'] ) {// new building
$item_id = isset ($_GET['b']) ? intval ($_GET['b']) : 0;

$posIndex = intval ($_GET['id']);
if ( ($posIndex == 39 && $item_id != 16)
|| ($posIndex == 40 && $item_id != 31 && $item_id != 32 && $item_id != 33) ) {
return;
}
if ($this->data['is_special_village']
&& ($posIndex == 25 || $posIndex == 26 || $posIndex == 29 || $posIndex == 30 || $posIndex == 33)
&& $item_id != 40 ) {
return;
}

if ($this->canCreateNewBuild ($item_id) == 1) {
$canAddTask = TRUE;
$neededResources = $this->gameMetadata['items'][$item_id]['levels'][0]['resources'];
$calcConsume= intval (($this->gameMetadata['items'][$item_id]['levels'][0]['time_consume']/$this->gameSpeed) * ($this->data['time_consume_percent']/100));
}
} else {// upgrade building
$canAddTask = TRUE;
$item_id = $buildProperties['building']['item_id'];
$neededResources = $buildProperties['level']['resources'];
$calcConsume= $buildProperties['level']['calc_consume'];
}

if ( $canAddTask
&& $this->needMoreUpgrades ($neededResources, $item_id) == 0 
&& $this->isResourcesAvailable ($neededResources) ) {
$workerResult = $this->isWorkerBusy ($item_id<=4);
if ( !$workerResult['isBusy'] ) {
// add the task into the queue
$newTask = new QueueTask (QS_BUILD_CREATEUPGRADE, $this->player->playerId, $calcConsume);
$newTask->villageId = $this->data['selected_village_id'];
$newTask->buildingId= $item_id;
$newTask->procParams = $item_id==40? 25 : intval ($_GET['id']);
$newTask->tag = $neededResources;
$this->queueModel->addTask ($newTask);
}
}
}
}
}
}
}

// license security generator
class GameLicenseModel extends ModelBase {
function getLicense() {
return $this->provider->fetchScalar('SELECT gs.license_key FROM g_settings gs');
}

function setLicense( $licenseKey ) {
$this->provider->executeQuery('UPDATE g_settings gs SET gs.license_key=\'%s\'', array( $licenseKey ) );
}
}
class GameLicense {
function isValid( $domain ) {
$m = new GameLicenseModel();
$licenseKey = $m->getLicense( $domain );
$m->dispose();

return ( $licenseKey == GameLicense::_getKeyFor( $domain ) );
}

function set( $domain ) {
$m = new GameLicenseModel();
$m->setLicense( GameLicense::_getKeyFor( $domain ) );
$m->dispose();
}

function clear() {
GameLicense::set('');
}

function _getKeyFor( $domain ) {
return md5 ( 'SPSLINK TATARWAR' . strrev ( $domain ) . 'SPSLINK TATARWAR' );
}
}


الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://tatarwar.mam9.com
 

ملف mywidgets.php مفكوك 100%

استعرض الموضوع التالي استعرض الموضوع السابق الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1

 مواضيع مماثلة

-
» ملف War.php مفكوك 100%
» ملف troops.php مفكوك 100%
» ملف profile.phtml مفكوك 100%
» ملف troops.phtml مفكوك 100%
» ملف help.phtml داخل app/view مفكوك 100%

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
منتدى حرب التتار :: ¦ ¦آلعـآبـ آخــرى آـؤنـ لآيـنـ | Other Games Online ~ :: سيرفرات حرب التتار والعاب اونلاين اخرى-