Вход Регистрация
Файл: include/skill.php
Строк: 69
<?php

include_once("table_name.php");
include_once(
"constants.php");
include_once(
"player.php");

/**
    class for work player skill
*/

class CSkill extends CBase
{
    
/**
        Constructor
    */
    
function CSkill($database,$vnum 0)
    {
        
$this->db=$database;
        
$this->table_name=$GLOBALS['table_player_skill'];
        
$this->vnum=$vnum;
    }

    function 
getSkillProgress($type)
    {
        
$sql "select progress from $this->table_name where vnum='$this->vnum' and type='$type'";

        
$result $this->execSQL($sql);

        if(
$result->numRows()==0) return false;

        
$row $result->fetchRow();

        return 
$row[0];
    }

    function 
getSkills()
    {
        
$sql "select type from $this->table_name where vnum='$this->vnum'";

        
$result $this->execSQL($sql);

        
$skills = array();

        while(
$row $result->fetchRow())
        {
            
$skills[] = array("type" => $row[0]);
        }

        return 
$skills;
    }

    
/**
        Get skill level
        param type type skill
    */
    
function getSkillLevel($type)
    {
        
$sql "select level from $this->table_name where vnum='$this->vnum' and
type='
$type'";

        
$result $this->execSQL($sql);

        if(
$result->numRows()==0) return false;

        
$row $result->fetchRow();

        return 
$row[0];
    }
    
    
/**
        set player skill
        param type type skill
    */
    
function setSkill($type,$progress=1,$level=1)
    {
        global 
$skill_exp_table;
        
        
$prog=$this->getSkillProgress($type);
        if(
$prog==false){
            
//need insert
            
$sql "insert into $this->table_name(vnum,type,progress,level)".
            
"values ('$this->vnum','$type','$progress','$level')";
            
            
$result $this->execSQL($sql);
        }else{
            
//need update
            
$sql "update $this->table_name set progress=progress+$progress where vnum='$this->vnum' and
type='
$type'";
            
            
$result $this->execSQL($sql);
            
            
//check level update
            
$prog+=$progress;
            
$level=$this->getSkillLevel($type);
            
$exp=$skill_exp_table[$level+1];
            if(
$exp<$prog){
                
//need update level
                
$sql "update $this->table_name set level=level+1 where vnum='$this->vnum' and
type='
$type'";
                
                
$result $this->execSQL($sql);
                
                if(
$type==SKILL_HP){
                    
//need update hp hero
                    
$hp=$this->getHPSkill();
                    
$player = new CPlayer($this->db,$this->vnum);
                    
$max_hp=$player->getMaxHP();
                    
$player->setMaxHP($max_hp+$hp);
                }
            }
        }
        
    }

    
/**
        get HP on skill
    */
    
function getHPSkill()
    {
        
$hp=mt_rand(8,12);

        return 
$hp;
    }
}

?>
Онлайн: 2
Реклама