Shakes & Fidget Private - Epic in Shop

04/07/2014 16:03 tulyita#1
Tulyita's Shop Script - version 1.14 - last update: 11/04/2014

It's my own code, I made it! I hope you enjoy it :)

With this code:
-Epic items in the shop (stats: '3' or 'all') - it works
-Normal items in the shop (stats: '1' or '2') - it works
-Keys, potions in the shop - it works but you can't use the potions/keys

Step 1: Fix the "All Stat Epic" bug:

PHP Code:

//replace this:

class Char {
.
.
.
$itemStats array_fill 06);
        
foreach ( 
$this->items as $item ) {
    
$itemStats [$item ['atr_type_1']] += $item ['atr_val_1'];
    
$itemStats [$item ['atr_type_2']] += $item ['atr_val_2'];
    
$itemStats [$item ['atr_type_3']] += $item ['atr_val_3'];
}
$this->str += $itemStats [1];
$this->dex += $itemStats [2];
$this->int += $itemStats [3];
$this->wit += $itemStats [4];
$this->luck += $itemStats [5];
.
.
.
}

//with this:

class Char {
.
.
.
$itemStats array_fill 06);
        
foreach ( 
$this->items as $item ) {
    
$itemStats [$item ['atr_type_1']] += $item ['atr_val_1'];
    
$itemStats [$item ['atr_type_2']] += $item ['atr_val_2'];
    
$itemStats [$item ['atr_type_3']] += $item ['atr_val_3'];
}
$this->str += $itemStats [1] + $itemStats [6];
$this->dex += $itemStats [2] + $itemStats [6];
$this->int += $itemStats [3] + $itemStats [6];
$this->wit += $itemStats [4] + $itemStats [6];
$this->luck += $itemStats [5] + $itemStats [6];
.
.
.

Step 2: Replace all the "function genItem($lvl, $class, $shop)" script with this:

PHP Code:
function genItem($lvl$class$shop) {
    global 
$shakes_item_ids$fidget_item_ids;
    
    if (
$shop == 0) {
        
$type rand 1); //weapon shop items
    
} else {
        
$type rand 812); //magic shop items: 11 is keys, 12 is potions


//Add this to the script, if you don't want keys in the shop!
//        if ($type == 11){
//        $type = rand ( 8, 10);
//        }


    
}
        
        
    
$statNumRand rand(17); //chance: normal items with 2 stats
    
    
if ($lvl 10){ //if level < 10 then shop gives only small potions
    
$potionRand rand (15);
    } elseif (
$lvl 25 and $lvl 9) { //if level < 25 then shop gives small potions and medium potions
    
$potionRand rand (110);
    } elseif (
$lvl 24) { //if level > 24 then shop gives small, medium and big potions + Potion of the Eternal Life
    
$potionRand rand (116);
    }
    
    
$epicRand rand(1100); //chance: epic items
    
if ($epicRand == 1){
    
$itemMush 15//mushroom: epic items
    
} elseif ($statNumRand == and $type 11) {
    
$itemMush 10//mushroom: normal items with 2 stats
    
} elseif ($type == 12 and $potionRand == 16) {
    
$itemMush 15//mushroom: special potion
    
} else {
    
$itemMush 0//mushroom: normal item
    
}
    
$item = array (
            
"item_type" => "1",
            
"item_id" => "1005",
            
"dmg_min" => "1",
            
"dmg_max" => "0",
            
"atr_type_1" => "0",
            
"atr_type_2" => "0",
            
"atr_type_3" => "0",
            
"atr_val_1" => "0",
            
"atr_val_2" => "0",
            
"atr_val_3" => "0",
            
"gold" => rand($lvl 100$lvl 10000),
            
"mush" => $itemMush,
            
"slot" => "0",
            
"owner_id" => "0" 
    
);
    
// $class = 2;
    
    
if ($shop == 0) {
        
$type rand 1);
        while ( 
$class != && $type == )
            
$type rand 1);
        
        
$item ['item_type'] = $type;
        
$random rand 1$shakes_item_ids [$class 1] [$type 1] );
        if (
$epicRand == 1){
            if (
$class == 3){
                if (
$type == or $type == 2){
                
$item ['item_id'] = rand(20502060);
                } else {
                
$item ['item_id'] = rand(20502058);
                }
            }
            if (
$class == 2){
                if (
$type == or $type == 2){
                
$item ['item_id'] = rand(10501060);
                } else {
                
$item ['item_id'] = rand(10501058);
                }
            }
            if (
$class == 1){
                if (
$type == or $type == 2){
                
$item ['item_id'] = rand(5060);
                } else {
                
$item ['item_id'] = rand(5058);
                }
            }
        } else {
        
$item ['item_id'] = $random + (($class 1) * 1000);
        }
        
        if (
$type == 1) {
            
$class_weap_multiplier = array (
                    
2,
                    
3,
                    

            
);
            
            
$m mt_rand 9001100 ) / 1000;
            
$avg round($lvl '1.3' $class_weap_multiplier [$class 1]);
            
            
$minmax_m round(mt_rand(7501000) / 1000);
            
            
            
            
$item ['dmg_min'] = round($avg $minmax_m);
            
$item ['dmg_max'] = round($avg * ($minmax_m '0.25') + rand (150));
        } else {
            if (
$type == 2){ //shield
                
if ($lvl 10){
                
$shieldNumber 5;
                }
                if (
$lvl 100 and $lvl 9){
                
$shieldNumber 25;
                }
                if (
$lvl 99){
                
$shieldNumber 50;
                }
            
$item ['dmg_min'] = $shieldNumber;
            } else {
            
$item ['dmg_min'] = $lvl rand(1.511.74) + rand(16);
            }
        }
    } else {
        
$item ['dmg_min'] = 0;
        
$item ['item_type'] = $type;
        if (
$epicRand == 1){
        
$item ['item_id'] = rand (5058);
        } else {
        
$item ['item_id'] = rand 1$fidget_item_ids [$type 8] );
        }
    }
    
    if (
$class == 1){
    
$classStat 1;
    }
    if (
$class == 2){
    
$classStat 3;
    }
    if (
$class == 3){
    
$classStat 2;
    }
    if (
$epicRand == 1){ //epic item: chance for epic items with 'all' stats or '3' stats
        
if (rand(12) == 1){ //epic item with 3 stats
            
$stat_type2 4;
            
$stat_type3 5;
            
$m mt_rand 6501300 ) / rand(9501050) * 2;
            
$stat_val1 round $lvl $m );
            
$stat_val2 round $lvl $m );
            
$stat_val3 round $lvl $m );
            
            
$item ['atr_type_1'] = $classStat;
            
$item ['atr_val_1'] = $stat_val1;
            
$item ['atr_type_2'] = $stat_type2;
            
$item ['atr_val_2'] = $stat_val2;
            
$item ['atr_type_3'] = $stat_type3;
            
$item ['atr_val_3'] = $stat_val3;
        } else { 
//epic item with all stat
            
$stat_type 6;
            
$m mt_rand 6501300 ) / rand(9501050) * 2;
            
$stat_val round $lvl $m );
            
            
$item ['atr_type_1'] = $stat_type;
            
$item ['atr_val_1'] = $stat_val;
        }
    } else {
        if (
$statNumRand == 1){ //normal item with 2 stats
            
$stat_type1 rand 1);
            
$stat_type2 rand 1);
            if (
$stat_type2 == $stat_type1){
                if (
$stat_type1 2){
                    
$stat_type2 $stat_type1 1;
                } else {
                    
$stat_type2 $stat_type1 1;
                }
            }
            
$m1 mt_rand 6501300 ) / rand(9501050);
            
$m2 mt_rand 6501300 ) / rand(9501050);
            
$stat_val1 round $lvl $m1 );
            
$stat_val2 round $lvl $m2 );
            
            
$item ['atr_type_1'] = $stat_type1;
            
$item ['atr_val_1'] = $stat_val1;
            
$item ['atr_type_2'] = $stat_type2;
            
$item ['atr_val_2'] = $stat_val2;
        } else { 
//normal item with 1 stat
            
$stat_type rand 1);
            
$m mt_rand 6501300 ) / rand(9501050);
            
$stat_val round $lvl $m );
        
            
$item ['atr_type_1'] = $stat_type;
            
$item ['atr_val_1'] = $stat_val;
        }
    }
    
    if (
$type == 12){
    
$item ['item_id'] = $fidget_item_ids [$type 8] + $potionRand;
    
    switch (
$potionRand) {
    case 
1:
        
$potionAtr_type 1;
        
$potionAtr_val 5;
        break;
    case 
2:
        
$potionAtr_type 2;
        
$potionAtr_val 5;
        break;
    case 
3:
        
$potionAtr_type 3;
        
$potionAtr_val 5;
        break;
    case 
4:
        
$potionAtr_type 4;
        
$potionAtr_val 5;
        break;
    case 
5:
        
$potionAtr_type 5;
        
$potionAtr_val 5;
        break;
    case 
6:
        
$potionAtr_type 1;
        
$potionAtr_val 15;
        break;
    case 
7:
        
$potionAtr_type 2;
        
$potionAtr_val 15;
        break;
    case 
8:
        
$potionAtr_type 3;
        
$potionAtr_val 15;
        break;
    case 
9:
        
$potionAtr_type 4;
        
$potionAtr_val 15;
        break;
    case 
10:
        
$potionAtr_type 5;
        
$potionAtr_val 15;
        break;
    case 
11:
        
$potionAtr_type 1;
        
$potionAtr_val 25;
        break;
    case 
12:
        
$potionAtr_type 2;
        
$potionAtr_val 25;
        break;
    case 
13:
        
$potionAtr_type 3;
        
$potionAtr_val 25;
        break;
    case 
14:
        
$potionAtr_type 4;
        
$potionAtr_val 25;
        break;
    case 
15:
        
$potionAtr_type 5;
        
$potionAtr_val 25;
        break;
    case 
16:
        
$potionAtr_type 4;
        
$potionAtr_val 25;
        break;
    }
    
$item ['atr_type_1'] = $potionAtr_type;
    
$item ['atr_val_1'] = $potionAtr_val;
    
$item ['dmg_min'] = 0;
    
$item ['atr_type_2'] = 0;
    
$item ['atr_val_2'] = 0;
    
$item ['atr_type_3'] = 0;
    
$item ['atr_val_3'] = 0;
    }
    if (
$type == 11){ //if key then
    
$item ['item_id'] = rand (110);
    
$item ['dmg_min'] = 0;
    
$item ['atr_type_1'] = 0;
    
$item ['atr_val_1'] = 0;
    
$item ['atr_type_2'] = 0;
    
$item ['atr_val_2'] = 0;
    
$item ['atr_type_3'] = 0;
    
$item ['atr_val_3'] = 0;
    }
    
    return 
$item;



Ps.: Check my another thread, [Only registered and activated users can see links. Click Here To Register...]
04/07/2014 17:56 MaYeX159#2
why with this scritp so much lags in shop ?
04/07/2014 18:03 tulyita#3
Quote:
Originally Posted by MaYeX159 View Post
why with this scritp so much lags in shop ?
It works fine in my server without lag... I click on the "new items" and It gives back new items around 0.2 secons.
04/07/2014 20:18 MaYeX159#4
Quote:
Originally Posted by tulyita View Post
It works fine in my server without lag... I click on the "new items" and It gives back new items around 0.2 secons.
from who have you server files ?
04/08/2014 15:19 pitbulldrift#5
how to add it for my request.php?i am doesn't know please help me:(
because when i'm add this code i am going to restart the server's page and doesn't loading only the login screen up :(
04/11/2014 17:41 tulyita#6
Quote:
Originally Posted by pitbulldrift View Post
how to add it for my request.php?i am doesn't know please help me:(
because when i'm add this code i am going to restart the server's page and doesn't loading only the login screen up :(
Search for "function genItem($lvl, $class, $shop)".

Replace all the "genItem" script with the script above.

.

.

.

Bump, added "all stat" epic items, and "2 stat" normal items, like in the real sfgame
04/11/2014 23:03 MisterPr0#7
Good job, tulyita!!! ;)
04/13/2014 18:36 barteklorek123#8
when you have a finite tower?
11/14/2015 18:37 jisnk#9
Can you send the "request.php" with that? plzz