Плавка рун #1

Closed
opened 2022-06-06 21:34:03 +00:00 by lopar · 2 comments
Owner

Имеем подобную систему плавки рун
Суть проста, Если игрок имеет 3 определенных болванки одного уровня, он может сделать 1 руну.
Параметры рун можно увидеть непосредственно в файле
Закомендены те параметры, которые нужны сейчас, вместо тех, которые используются, там же и описаны их абревиатуры, которые используются.
Важно, система подразумевает получение руны под каждый уровень, в зависимости от того, какого уровня болванки были расплавлены.

Путь к файлу, в котором система плавки рун
/public_html/modules_data/location/ab - hram.php


Как я понял:

Три болванки исчезают, появляется руна.
Болванки и руна СТРОГО соответствуют по уровню.
Три бованки не могут быть разными.
Так?

По сути всё верно, болванки разделены на уровни
Нехватает только правильного изьятия с сохранением параметров руны
И правильного распределения параметров в рандомном виде, сам рандом уже там написан, по сути, только доделать распределение исходя из классовости и сделать систему изьятия, сохранив параметры руны, которая была в предмете

Имеем подобную систему плавки рун Суть проста, Если игрок имеет 3 определенных болванки одного уровня, он может сделать 1 руну. Параметры рун можно увидеть непосредственно в файле Закомендены те параметры, которые нужны сейчас, вместо тех, которые используются, там же и описаны их абревиатуры, которые используются. Важно, система подразумевает получение руны под каждый уровень, в зависимости от того, какого уровня болванки были расплавлены. Путь к файлу, в котором система плавки рун /public_html/modules_data/location/ab - hram.php --- > Как я понял: > > Три болванки исчезают, появляется руна. > Болванки и руна СТРОГО соответствуют по уровню. > Три бованки не могут быть разными. > Так? По сути всё верно, болванки разделены на уровни Нехватает только правильного изьятия с сохранением параметров руны И правильного распределения параметров в рандомном виде, сам рандом уже там написан, по сути, только доделать распределение исходя из классовости и сделать систему изьятия, сохранив параметры руны, которая была в предмете
lopar added the
разработка
ремонт
label 2022-06-06 21:34:03 +00:00
Author
Owner

Болванки всегда 3 одинаковые, или могут быть разные одного уровня?
Как происходит решение какая руна выпала? Чисто случайно?

Болванки всегда 3 одинаковые, или могут быть разные одного уровня? Как происходит решение какая руна выпала? Чисто случайно?
Author
Owner

Функция генерации параметров руны.

private function getRuneStats($level)
    {
        $power = [8 => 3, 9 => 5, 10 => 7];
        $rune8 = [
            1 => [# Топор
                ['Сила', 's1', 1, 3],
                ['Мощности Рубящего урона', 'pa2', 1, $power[$level]]
            ],
            2 => [# Танк
                ['Сила', 's1', 1, 3],
                ['Мощности Дробящего урона', 'pa3', 1, $power[$level]]
            ],
            3 => [# Уворот, Критоуворот
                ['Ловкость', 's2', 1, 3],
                ['Мощности Колющего урона', 'pa1', 1, $power[$level]]
            ],
            4 => [# Крит
                ['Интуиция', 's3', 1, 3],
                ['Мощности Режущего урона', 'pa4', 1, $power[$level]]
            ],
            5 => [# Маг
                ['Интеллект', 's5', 1, 3],
                ['Мощности Магии стихии', 'm11', 1, $power[$level]]
            ]
        ];

        $rune9 = [
            1 => [['???', 'hpAll', 5, 15]],
            2 => [['???', 'm2', 5, 15]],
            3 => [['???', 'm5', 5, 10]],
            4 => [['MP', 'mpAll', 10, 20]]
        ];

        $rune10 = [
            1 => [['Защита от Урона', 'za', 10, 20]],
            2 => [['МК', 'm3', 1, 3]],
            3 => [['ПМК', 'antm3', 1, 3]],
            4 => [["Подавление защиты от магии", "pzm", 1, 1]]
        ];
        $randomBase = mt_rand(1, 5);

        $finalRune = $rune8[$randomBase];
        if ($level === 8) {
            return $finalRune;
        }
        $rune9Key = $randomBase === 5 ? 4 : mt_rand(1, 3);
        $finalRune = array_merge($finalRune, $rune9[$rune9Key]);
        if ($level === 9) {
            return $finalRune;
        }
        if ($randomBase === 1) {
            $rune10Key = 3;
        } elseif ($randomBase === 2) {
            $rune10Key = 1;
        } elseif ($randomBase === 3) {
            $rune10Key = mt_rand(2, 3);
        } elseif ($randomBase === 4) {
            $rune10Key = 2;
        } else {
            $rune10Key = 4;
        }
        
        return array_merge($finalRune, $rune10[$rune10Key]);
    }

Выхлоп (от балды!) массивом:

Array
(
    [0] => Array
        (
            [0] => Интуиция
            [1] => s3
            [2] => 1
            [3] => 3
        )

    [1] => Array
        (
            [0] => Мощности Режущего урона
            [1] => pa4
            [2] => 1
            [3] => 9
        )

    [2] => Array
        (
            [0] => ???
            [1] => m2
            [2] => 5
            [3] => 15
        )

    [3] => Array
        (
            [0] => Подавление защиты от магии
            [1] => pzm
            [2] => 1
            [3] => 1
        )

)
Функция генерации параметров руны. ```php private function getRuneStats($level) { $power = [8 => 3, 9 => 5, 10 => 7]; $rune8 = [ 1 => [# Топор ['Сила', 's1', 1, 3], ['Мощности Рубящего урона', 'pa2', 1, $power[$level]] ], 2 => [# Танк ['Сила', 's1', 1, 3], ['Мощности Дробящего урона', 'pa3', 1, $power[$level]] ], 3 => [# Уворот, Критоуворот ['Ловкость', 's2', 1, 3], ['Мощности Колющего урона', 'pa1', 1, $power[$level]] ], 4 => [# Крит ['Интуиция', 's3', 1, 3], ['Мощности Режущего урона', 'pa4', 1, $power[$level]] ], 5 => [# Маг ['Интеллект', 's5', 1, 3], ['Мощности Магии стихии', 'm11', 1, $power[$level]] ] ]; $rune9 = [ 1 => [['???', 'hpAll', 5, 15]], 2 => [['???', 'm2', 5, 15]], 3 => [['???', 'm5', 5, 10]], 4 => [['MP', 'mpAll', 10, 20]] ]; $rune10 = [ 1 => [['Защита от Урона', 'za', 10, 20]], 2 => [['МК', 'm3', 1, 3]], 3 => [['ПМК', 'antm3', 1, 3]], 4 => [["Подавление защиты от магии", "pzm", 1, 1]] ]; $randomBase = mt_rand(1, 5); $finalRune = $rune8[$randomBase]; if ($level === 8) { return $finalRune; } $rune9Key = $randomBase === 5 ? 4 : mt_rand(1, 3); $finalRune = array_merge($finalRune, $rune9[$rune9Key]); if ($level === 9) { return $finalRune; } if ($randomBase === 1) { $rune10Key = 3; } elseif ($randomBase === 2) { $rune10Key = 1; } elseif ($randomBase === 3) { $rune10Key = mt_rand(2, 3); } elseif ($randomBase === 4) { $rune10Key = 2; } else { $rune10Key = 4; } return array_merge($finalRune, $rune10[$rune10Key]); } ``` Выхлоп (от балды!) массивом: ``` Array ( [0] => Array ( [0] => Интуиция [1] => s3 [2] => 1 [3] => 3 ) [1] => Array ( [0] => Мощности Режущего урона [1] => pa4 [2] => 1 [3] => 9 ) [2] => Array ( [0] => ??? [1] => m2 [2] => 5 [3] => 15 ) [3] => Array ( [0] => Подавление защиты от магии [1] => pzm [2] => 1 [3] => 1 ) ) ```
lopar referenced this issue from a commit 2022-06-07 14:18:19 +00:00
lopar added reference dev-runes 2022-06-08 22:35:31 +00:00
lopar referenced this issue from a commit 2022-06-09 12:53:20 +00:00
lopar referenced this issue from a commit 2022-06-11 11:32:33 +00:00
lopar closed this issue 2022-06-11 11:33:54 +00:00
Sign in to join this conversation.
No Milestone
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Reference: new-combats/game#1
No description provided.