Skocz do zawartości

[Shakes & Fidget] FIX - Otwieranie lochów bez klucza, przechodzenie lochów po pokonaniu bossa


Lummit
# CSH External VIP Project

Masz dosyć problemów z czynnikiem zaufania w CS2 lub notorycznymi banami?

Sprawdź CSH External VIP Project.


Więcej informacji  

Rekomendowane odpowiedzi

Instalacja:

1. Otwórz plik req.php/request.php.

2. Znajdź ACT_MAINQUEST.

3. Zamień go ten podany poniżej:

    case $ACT_MAINQUEST:
        
        $dung = $action_extra;
        
        $db_data = loadDefaultData();
		
		if($db_data['dungeon_' . $dung] >= 12 OR $db_data['dungeon_' . $dung] < 2 OR $dung > 12 OR $dung < 1)
		{
			break;
		}
        
        $slotInfo = findFreeSlot($db_data['user_id']);
        
        if ($slotInfo[0] == false) {
            
            
            
            $ret = array(
                
                $ERR_INVENTORY_FULL
                
            );
            
            break;
            
        }
        
		
        // check time restrictions
        
        $time = new DateTime();
        
        $time = $time->getTimestamp();
        
        if ($time < $db_data['dungeon_time']) {
            
            if ($db_data['mushroom'] <= 0) {
                
                // TODO throw error
                
                break;
                
            }
            
            $db_data['mushroom'] = $db_data['mushroom'] - 1;
            
            $time = $db_data['dungeon_time'];
            
        } else {
            
            
            
              $time = $time + 3600;
            
        }
        
        
        
        $stage = ( int ) $db_data['dungeon_' . $dung];
        
        
        
        
        
        $OP = getDungMonster($dung, $stage, $db_data);
        
        
        
        $p = new Char($db_data);
        
        
        
        // response
        
        $t_ret = array();
        
        
        
        // player stats 122
        
        array_push($t_ret, "122" . $p->getHP(), $p->getStr(), $p->getDex(), $p->getInt(), $p->getWit(), $p->getLuck());
        
        
        
        // mob stats
        
        array_push($t_ret, $OP->getHP(), $OP->getStr(), $OP->getDex(), $OP->getInt(), $OP->getWit(), $OP->getLuck() . ";"); // . $p->getHp () );
        
        
        
        // simulation
        
        $sim = SF_Calc::calculateWin($p, $OP);
        
        
        
        $win = $sim[count($sim) - 1][0] <= 0 ? true : false;
        
        
        
        $stage2 = 0;
        
        
        
        // if win -> update exp, lvl, etc...
        
        if ($win) {
            
            // increment stage lvl
            
            $stage++;
            
            
            
            // if the dungeon is 9 or above && the dungeon is complete
            
            // open the next one, set value to 2, update in database
            
            if ($dung >= 9 && $dung <= 12 && $stage == 12)
                $stage2 = 2;
            
            
            
            // update $ret global var that has already been loaded
            
            $ret[${"SF_DUNGEON_" . $dung}] = $stage;
            
            
            
            // add gained exp & gold
            
            $db_data['exp'] = ( int ) $db_data['exp'] + $OP->getExp();
            
            $db_data['silver'] = ( int ) $db_data['silver'] + $OP->getGold();
            
            
            
            // add item rewards
            
            
            
            $itemRand = rand(1, 3);
            
            
            
            if ($itemRand == 1 or $stage == 11) {
                
                
                
                $lvl = $db_data['lvl'];
                
                $class = $db_data['class'];
                
                $shop = rand(0, 1);
                
                
                
                $item = genItem($lvl, $class, $shop, 'dungeon');
                
                
                
                
                
                $item['slot'] = $slotInfo[1];
                
                
                
                $qry = $db->prepare('INSERT INTO items(item_type, item_id, dmg_min, dmg_max, atr_type_1, atr_type_2, atr_type_3, atr_val_1, atr_val_2, atr_val_3, gold, mush, slot, owner_id) 

				VALUES(' . $item['item_type'] . ',' . $item['item_id'] . ',' . $item['dmg_min'] . ',' . $item['dmg_max'] . ',

				' . $item['atr_type_1'] . ',' . $item['atr_type_2'] . ',' . $item['atr_type_3'] . ',' . $item['atr_val_1'] . ',' . $item['atr_val_2'] . ',

				' . $item['atr_val_3'] . ',' . $item['gold'] . ',' . $item['mush'] . ',' . $item['slot'] . ',' . $db_data['user_id'] . ')');
                
                $qry->execute();
                
                
                
                $itmSlot = $item['slot'] - 10;
                
                
                
            }
            
            else {
                
                $itmSlot = -1;
                
            }
            
            
            
            
            
            // lvl up
            
            while ($db_data['exp'] > $LEVELS[$db_data['lvl']]) {
                
                $db_data['exp'] -= $LEVELS[$db_data['lvl']];
                
                $db_data['lvl'] = ( int ) $db_data['lvl'] + 1;
                
            }
            
        }
        
        else {
            
            $itmSlot = -1;
            
        }
        
        
        
        // update database
        
        $qry_str = "UPDATE user_data SET 

				exp = :exp, 

				lvl = :lvl, 

				silver = :silver, 

				mushroom = :shroom, 

				dungeon_time = :time, 

				" . getDungeonTableName($dung) . " = :dung ";
        
        if ($stage2 == 2)
            $qry_str .= ", " . getDungeonTableName($dung + 1) . "= :dung2";
        
        $qry_str .= " WHERE ssid = :ssid";
        
        $qry = $db->prepare($qry_str);
        
        $qry->bindParam(':exp', $db_data['exp']);
        
        $qry->bindParam(':lvl', $db_data['lvl']);
        
        $qry->bindParam(':silver', $db_data['silver']);
        
        $qry->bindParam(':shroom', $db_data['mushroom']);
        
        $qry->bindParam(':time', $time);
        
        $qry->bindParam(':dung', $stage);
        
        if ($stage2 == 2)
            $qry->bindParam(':dung2', $stage2);
        
        $qry->bindParam(':ssid', $SSID);
        
        $qry->execute();
        
        
        
        $t_ret[count($t_ret) - 1] .= $sim[0][0];
        
        
        
        // ---logs----
        
        // first 3, one in previous index, separated by semicolon
        
        array_push($t_ret, $sim[0][1], $sim[0][2]);
        
        
        
        for ($i = 1; $i < count($sim); $i++) {
            
            array_push($t_ret, $sim[$i][0], $sim[$i][1], $sim[$i][2]);
            
            // echo $sim [$i][0]."/".$sim [$i][1]."/".$sim [$i][2]."/";
            
        }
        
        
        
        // looks
        
        array_push($t_ret, ";" . $db_data['user_name'], $p->getLvl(), $db_data['race'], $db_data['gender'], $db_data['class']);
        
        // faces
        
        for ($i = 1; $i <= 9; $i++) {
            
            $t_ret[] = $db_data['face' . $i];
            
        }
        
        
        
        // mob looks, lvl, weapon
        
        array_push($t_ret, "0", "0", $OP->getLvl(), "0", "0", "1", "-" . $OP->getId(), "0", "0", "0", "0", "0", "0", "0", "0", "0;" . $p->hasWeapon());
        
        
        
        // weapon info - player
        
        $weap = $p->getWeapon();
        
        array_push($t_ret, $weap['item_id'], $weap['dmg_min'], $weap['dmg_max'], $weap['atr_type_1'], $weap['atr_type_2'], $weap['atr_type_3'], $weap['atr_val_1'], $weap['atr_val_2'], $weap['atr_val_3'], $weap['gold'], $weap['mush']);
        
        
        
        // weapon info - mob
        
        $weap = $OP->getWeapon();
        
        array_push($t_ret, $OP->hasWeapon(), $weap['item_id'], $weap['dmg_min'], $weap['dmg_max'], $weap['atr_type_1'], $weap['atr_type_2'], $weap['atr_type_3'], $weap['atr_val_1'], $weap['atr_val_2'], $weap['atr_val_3'], $weap['gold'], $weap['mush'] . ";" . $p->hasShield());
        
        
        
        // shields
        
        $sh = $p->getShield();
        
        array_push($t_ret, $sh['item_id'], $sh['dmg_min'], $sh['dmg_max'], $sh['atr_type_1'], $sh['atr_type_2'], $sh['atr_type_3'], $sh['atr_val_1'], $sh['atr_val_2'], $sh['atr_val_3'], $sh['gold'], $sh['mush']);
        
        $sh = $OP->getShield();
        
        array_push($ret, $OP->hasShield(), $sh['item_id'], $sh['dmg_min'], $sh['dmg_max'], $sh['atr_type_1'], $sh['atr_type_2'], $sh['atr_type_3'], $sh['atr_val_1'], $sh['atr_val_2'], $sh['atr_val_3'], $sh['gold']);
        
        // ?;?;?;exp;silver;win?
        
        $t_ret[] = "0;3;0;" . $OP->getExp() . ";" . $OP->getGold() . ";" . $itmSlot . ";";
        
        
        
        loadDefaultData();
        
        
        
        // rest is default data
        
        $t_ret[count($t_ret) - 1] .= $ret[0];
        
        
        
        // set dungeon time left
        
        $ret[$SF_DUNGEON_ENDTIME] = $time;
        
        
        
        for ($i = 1; $i < count($ret); $i++) {
            
            $t_ret[] = $ret[$i];
            
        }
        
        
        
        exit(join("/", $t_ret));
        
        break; 

Jakby kogoś interesowało co jest fixem, to jest to:

if($db_data['dungeon_' . $dung] >= 12 OR $db_data['dungeon_' . $dung] < 2 OR $dung > 12 OR $dung < 1)
{
break;
} 

 

 

// Poradnik pochodzi z innego forum. Autorem poradnika jest Nerfinekk.

 

zdOPYWZ.png

image.thumb.png.b57ec0103ede32ce1ed9b263d4c2d40d.png

Odnośnik do komentarza

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.

  Tagi

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Regulamin. Polityka prywatności