Вход Регистрация
Файл: silawar.ru/protected/modules/panel/controllers/BattlesController.php
Строк: 125
<?php
class BattlesController extends AdminBaseController {
    public function 
accessRules() {
        return array(
            array(
'allow',
                
'actions' => array('index''update'),
                
'roles' => array('moder'),
            ),
            array(
'deny',
                
'users' => array('*'),
                
'deniedCallback' => array(Yii::app()->controller'redirectToHome'),
            )
        );
    }
    
    public function 
actionIndex() {
        
$model = new BattlesLocations('search');
        
$model->unsetAttributes();  // clear any default values
        //AdminFuncHelper::setupPageCountToSession();
        
if (isset($_GET['BattlesLocations']))
            
$model->attributes $_GET['BattlesLocations'];

        
$this->render('index', array(
            
'model' => $model,
        ));
    }

    public function 
actionUpdate($id) {
        
$battle $this->loadModel($id);
        
$model = new BattlesBotsForm();
        
$model->attributes $battle->attributes;
        if (isset(
$_POST['BattlesBotsForm'])) {
            
$model->attributes $_POST['BattlesBotsForm'];

            function 
botgen($len 6) {
                
$login '';
                
$keys 'abcdeknopstuxyz';
                for (
$i 0$i $len$i++) {
                    switch (
mt_rand(11)) {
                        case 
:
                            
$login .= $keys [mt_rand(014)];
                            break;
                    }
                }
                return 
$login;
            }
            if (
$model->bots_level && $model->bots_level 15$type 2;
            elseif (
$model->bots_level >14 && $model->bots_level 20$type 3;
            elseif (
$model->bots_level >20 && $model->bots_level 25$type 4;
            else 
$type 1;
            
$names = array(1=>'Рекрут''Рядовой''Боец''Воин');
            
$items ShopItems::findAllBySet($model->id_set);
            
$bots1 Users::getBotsInLocation($model->id_location1);
            
$bots2 Users::getBotsInLocation($model->id_location2);
            if (
$model->bots_count1 $bots1) {
                
$count $model->bots_count1 $bots1;
                for (
$i 1$i <= $count$i++) {
                    
$bot = new Users();
                    
$bot->side 1;
                    
$bot->class 1;
                    
$bot->id_role 5;
                    
$bot->login $names[$type].' Краллов '.($i $i '');
                    
$bot->level $model->bots_level;
                    
$bot->battle_type 1;
                    
$bot->battle_id $model->id_location;
                    
$bot->avatar 1;
                    if (!
$bot->save(false)) {
                        throw new 
CHttpException(500Yii::t('layout''Ошибка при сохранении бота!'));
                    }
                    foreach (
$items as $item) {
                        
ShopItems::getNewItem($item->id_item$model->quality$bot->id_userfalsetrue);
                    }
                    
$health Users::calcParam($bot->id_user'health');
                    
$strength Users::calcParam($bot->id_user'strength');
                    
$bot->health round($health + ($health/100)*($type*20)) - $health;
                    
$bot->strength round($strength + ($strength/100)*($type*3)) - $strength;
                    
$bot->health_now round(($bot->health+$health)*1.4);
                    if (!
$bot->save(false)) {
                        throw new 
CHttpException(500Yii::t('layout''Ошибка при сохранении бота!'));
                    }
                }
            }
            else {
                
$count $bots1 $model->bots_count1;
                
$criteria = new CDbCriteria();
                
$criteria->compare('side'1);
                
$criteria->compare('id_role'5);
                
$criteria->compare('battle_id'$model->id_location);
                
$criteria->limit $count;
                
Users::model()->deleteAll($criteria);
            }
            if (
$model->bots_count2 0) {
                
$count $model->bots_count2 $bots2;
                for (
$i 1$i <= $count$i++) {
                    
$bot = new Users();
                    
$bot->side 2;
                    
$bot->class 1;
                    
$bot->id_role 5;
                    
$bot->login $names[$type].' Элийцев '.($i $i '');
                    
$bot->level $model->bots_level;
                    
$bot->battle_type 1;
                    
$bot->battle_id $model->id_location;
                    
$bot->avatar 2;
                    if (!
$bot->save(false)) {
                        throw new 
CHttpException(500Yii::t('layout''Ошибка при сохранении бота!'));
                    }
                    foreach (
$items as $item) {
                        
ShopItems::getNewItem($item->id_item$model->quality$bot->id_userfalsetrue);
                    }
                    
$health Users::calcParam($bot->id_user'health');
                    
$strength Users::calcParam($bot->id_user'strength');
                    
$bot->health round($health + ($health/100)*($type*20)) - $health;
                    
$bot->strength round($strength + ($strength/100)*($type*3)) - $strength;
                    
$bot->health_now round(($bot->health+$health)*1.4);
                    if (!
$bot->save(false)) {
                        throw new 
CHttpException(500Yii::t('layout''Ошибка при сохранении бота!'));
                    }
                }
            }
            else {
                
$count $bots2 $model->bots_count2;
                
$criteria = new CDbCriteria();
                
$criteria->compare('side'2);
                
$criteria->compare('id_role'5);
                
$criteria->compare('battle_id'$model->id_location);
                
$criteria->limit $count;
                
Users::model()->deleteAll($criteria);
            }

            if (
$battle->save())
                
$this->redirect(array('index'));
        }

        
$this->render('update', array(
            
'battle' => $battle,
            
'model' => $model,
        ));
    }

    public function 
loadModel($id) {
        
$model BattlesLocations::model()->findByPk($id);
        if (
$model === null)
            throw new 
CHttpException(404Yii::t('admin_layout''Страница не найдена!'));
        return 
$model;
    }

    
/**
     * Performs the AJAX validation.
     * @param UserDepartments $model the model to be validated
     */
    
protected function performAjaxValidation($model) {
        if (isset(
$_POST['ajax']) && $_POST['ajax'] === 'user-departments-form') {
            echo 
CActiveForm::validate($model);
            
Yii::app()->end();
        }
    }

}
Онлайн: 0
Реклама