RelaX

Помощь

18 сообщений в этой теме

Ребят как сделать 100% шанс чанта где отвечающая за это строка?
П.С в скрипте якобы 40% Шанс.

Скрытый текст

 

prontera,165,158,7    script    Enchant(6-10)    430,{
        mes "[^FF7E00 MasterSmith ^000000]";
        mes "^008000Я могу попробовать улучшить Вашу вещь от +6 до +10 к стату.^000000";
        mes "^C200DDДля улучшения Вам нужно:^000000";
        mes "- ^FF00001x^000000 ^5555ffУлучшаемая вещь^000000";
        mes "- ^FF000030x^000000 ^5555ffTCG Card^000000";
        mes "- ^FF0000нельзя двигаться или процесс улучшения будет прекращён.^000000";
        next;
if (countitem(7227) > 29) {
        mes "[^FF7E00 MasterSmith ^000000]";
        mes "^FF0000Внимание!!! Заточка Вашей вещи и карта в ней пропадут!!!^000000";
        next;
        mes "[^FF7E00 MasterSmith ^000000]";
        mes "^C200DDЧтож приступим....^000000";
        switch(select("^8080AAАрморы.^000000:^D3AA00Мантии.^000000:^008000Ботинки.^000000:^0000FFНет,спасибо.^000000")) {
        case 1:
            switch(select("^D3AA00Valkyrie's Armor^000000:^FF7E00Gold Valkyrie's Armor^000000:^008000Green Valkyrie's Armor^000000:^C200DDBrynhild^000000:^00C6DDDiabolus Armor^000000:^FF0000Odin Blessing^000000:^0000FFNovice Breastplate^000000:^C200DDВыйти^000000")) {
            case 1:
                callsub S_EnchantArmor,2357,180;
            case 2:
                callsub S_EnchantArmor,26071,180;
            case 3:
                callsub S_EnchantArmor,26070,180;
            case 4:
                callsub S_EnchantArmor,2383,180;
            case 5:
                callsub S_EnchantArmor,2375,180;
            case 6:
                callsub S_EnchantArmor,2353,180;
            case 7:
                callsub S_EnchantArmor,2340,180;
            case 8:
                mes "^C200DDУдачи...^000000";
                close;
            }
        case 2:
            switch(select("^D3AA00Valkyrie's Manteau^000000:^FF7E00Asprika^000000:^008000Diabolus Manteau^000000:^C200DDMuffler^000000:^00C6DDNovice Manteau^000000:^FF0000Выйти^000000")) {
            case 1:
                callsub S_EnchantArmor,2524,180;
            case 2:
                callsub S_EnchantArmor,2541,180;
            case 3:
                callsub S_EnchantArmor,2537,180;
            case 4:
                callsub S_EnchantArmor,2504,180;
            case 5:
                callsub S_EnchantArmor,2512,180;
            case 6:
                mes "^C200DDУдачи...^000000";
                close;
            }
        case 3:
            switch(select("^D3AA00Sleipnir^000000:^FF7E00Valkyrie's Shoes^000000:^008000Diabolus Boots^000000:^C200DDNovice Shoes^000000:^00C6DDShoes^000000:^FF0000Выйти^000000")) {
            case 1:
                callsub S_EnchantArmor,2410,180;
            case 2:
                callsub S_EnchantArmor,2421,180;
            case 3:
                callsub S_EnchantArmor,2433,180;
            case 4:
                callsub S_EnchantArmor,2416,180;
            case 5:
                callsub S_EnchantArmor,2404,180;
            case 6:
                mes "^C200DDУдачи...^000000";
                close;
            }
        case 4:
            mes "^C200DDУдачи!^000000";
            close;
        }
}
else {
    mes "[^FF7E00 MasterSmith ^000000]";
    mes "^C200DDУ вас должно быть:^000000";
    mes "- ^FF000030x^000000 ^0000FFTCG card^000000";
    close;
}

S_EnchantArmor:
    set [email protected],getarg(0);
    set [email protected],getarg(1);
    if ((countitem([email protected]) > 0) && (countitem([email protected]) < 2)) {
        mes "^FF0000Шанс поломки: ~40%^000000.";
        mes "^C200DDВы готовы?^000000";
        switch(select("^FF0000Хмм... я передумал.^000000:^008000Начать.^000000")) {
            case 1:
                mes "^C200DDНу чтож приходите ещё.^000000";
                close;
            case 2:
                close2;
                specialeffect2 EF_MAPPILLAR;
                if (countitem(7227) < 30) {
                    mes "^C200DDУ вас нету TCG card.^000000";
                    close;
                }
                progressbar "ffff00",10;
                set [email protected]_ran,rand(1,[email protected]);
                delitem 7227,30;
                delitem [email protected],1;
        //+6
                if (([email protected]_ran > 0) && ([email protected]_ran < 8)) {
                    set [email protected],4705;
                }
                else if (([email protected]_ran > 10) && ([email protected]_ran < 17)) {
                    set [email protected],4715;
                }
                else if (([email protected]_ran > 17) && ([email protected]_ran < 24)) {
                    set [email protected],4725;
                }
                else if (([email protected]_ran > 24) && ([email protected]_ran < 31)) {
                    set [email protected],4735;
                }
                else if (([email protected]_ran > 31) && ([email protected]_ran < 38)) {
                    set [email protected],4745;
                }
                else if (([email protected]_ran > 38) && ([email protected]_ran < 45)) {
                    set [email protected],4755;
                }
        //+7
                else if (([email protected]_ran > 50) && ([email protected]_ran < 55)) {
                    set [email protected],4706;
                }
                else if (([email protected]_ran > 55) && ([email protected]_ran < 60)) {
                    set [email protected],4716;
                }
                else if (([email protected]_ran > 60) && ([email protected]_ran < 65)) {
                    set [email protected],4726;
                }
                else if (([email protected]_ran > 65) && ([email protected]_ran < 70)) {
                    set [email protected],4736;
                }
                else if (([email protected]_ran > 70) && ([email protected]_ran < 75)) {
                    set [email protected],4746;
                }
                else if (([email protected]_ran > 75) && ([email protected]_ran < 80)) {
                    set [email protected],4756;
                }
        //+8
                else if (([email protected]_ran > 89) && ([email protected]_ran < 94)) {
                    set [email protected],4707;
                }
                else if (([email protected]_ran > 93) && ([email protected]_ran < 98)) {
                    set [email protected],4717;
                }
                else if (([email protected]_ran > 97) && ([email protected]_ran < 102)) {
                    set [email protected],4727;
                }
                else if (([email protected]_ran > 101) && ([email protected]_ran < 106)) {
                    set [email protected],4737;
                }
                else if (([email protected]_ran > 105) && ([email protected]_ran < 110)) {
                    set [email protected],4747;
                }
                else if (([email protected]_ran > 109) && ([email protected]_ran < 114)) {
                    set [email protected],4757;
                }
        //+9
                else if (([email protected]_ran > 125) && ([email protected]_ran < 128)) {
                    set [email protected],4708;
                }
                else if (([email protected]_ran > 128) && ([email protected]_ran < 131)) {
                    set [email protected],4718;
                }
                else if (([email protected]_ran > 131) && ([email protected]_ran < 134)) {
                    set [email protected],4728;
                }
                else if (([email protected]_ran > 134) && ([email protected]_ran < 137)) {
                    set [email protected],4738;
                }
                else if (([email protected]_ran > 137) && ([email protected]_ran < 140)) {
                    set [email protected],4748;
                }
                else if (([email protected]_ran > 140) && ([email protected]_ran < 143)) {
                    set [email protected],4758;
                }
        //+10
                else if (([email protected]_ran > 151) && ([email protected]_ran < 153)) {
                    set [email protected],4709;
                }
                else if (([email protected]_ran > 156) && ([email protected]_ran < 158)) {
                    set [email protected],4719;
                }
                else if (([email protected]_ran > 161) && ([email protected]_ran < 163)) {
                    set [email protected],4729;
                }
                else if (([email protected]_ran > 166) && ([email protected]_ran < 168)) {
                    set [email protected],4739;
                }
                else if (([email protected]_ran > 171) && ([email protected]_ran < 173)) {
                    set [email protected],4749;
                }
                else if (([email protected]_ran > 176) && ([email protected]_ran < 178)) {
                    set [email protected],4759;
                }
                else {
                    specialeffect2 EF_PHARMACY_FAIL;
                    mes "[^FF7E00 MasterSmith ^000000]";
                    mes "^FF0000Не повезло...^000000";
                    mes "^C200DDЧтож попытайте удачи в следующий раз.^000000";
                    close;
                }
                specialeffect2 381;
                getitem2 [email protected], 1, 1, 0, 0, 0, 0, 0, [email protected];
                mes "[^FF7E00 MasterSmith ^000000]";
                mes "^C200DDПоздравляю, вот Ваша вещь.^000000";
                close;
            }
        }
        else {
            mes "[^FF7E00 MasterSmith ^000000]";
            mes "^C200DDХмм?. У Вас должна быть ТОЛЬКО 1 вещь в инвентаре или одета для улучшения.^000000";
            close;
        }
OnInit:
    waitingroom "[ Enchant +6..+10 ]",0;
    end;
}

 

 

Изменено пользователем RelaX
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Все, что я могу сказать - скрипт написал криворукий 3.14дор

 

Теперь смотрим на скрипт

 

set [email protected]_ran,rand(1,[email protected]);

фэйл рейт - 180. Те выбирается число от 1 до 180

затем в куче ифов выбирается уровень гема

 if (([email protected]_ran > 0) && ([email protected]_ran < 8)) {
                    set [email protected],4705;
                }

А в конце, если выпавшее число не попадает в области ифов - вещь ломается

 else {
                    specialeffect2 EF_PHARMACY_FAIL;
                    mes "[^FF7E00 MasterSmith ^000000]";
                    mes "^FF0000Не повезло...^000000";
                    mes "^C200DDЧтож попытайте удачи в следующий раз.^000000";
                    close;
                }

Ты ОДНОЗНАЧНО можешь увеличить шанс поломки, повышая 180.

Но ты НЕ можешь быстрой правкой УВЕЛИЧИТЬ шанс.(хотя можно написать цикл, но это такое себе решение)

 

1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, botka4aet сказал:

Все, что я могу сказать - скрипт написал криворукий 3.14дор

 

Теперь смотрим на скрипт

 

set [email protected]_ran,rand(1,[email protected]);

фэйл рейт - 180. Те выбирается число от 1 до 180

затем в куче ифов выбирается уровень гема

 if (([email protected]_ran > 0) && ([email protected]_ran < 8)) {
                    set [email protected],4705;
                }

А в конце, если выпавшее число не попадает в области ифов - вещь ломается

 else {
                    specialeffect2 EF_PHARMACY_FAIL;
                    mes "[^FF7E00 MasterSmith ^000000]";
                    mes "^FF0000Не повезло...^000000";
                    mes "^C200DDЧтож попытайте удачи в следующий раз.^000000";
                    close;
                }

Ты ОДНОЗНАЧНО можешь увеличить шанс поломки, повышая 180.

Но ты НЕ можешь быстрой правкой УВЕЛИЧИТЬ шанс.(хотя можно написать цикл, но это такое себе решение)

 

Я понял что ты имеешь в виду.
Спасибо буду побывать! 

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Крч потыкал я все что только приходило в голову не вышло приблизиться к 100%.....
Есть у кого-то подобный скрипт хотя бы чанты +10.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Давно я таких динозавров не видел, по хорошему это всё нужно переписать.

1. шанс можно вбить в одну переменную

2. возможное улучшение в слоте так же, не переписывая каждый раз по новой.

(как минимум потом будет проще вносить изменения)

Я как-то так это реализовал.

 

 

 

Изменено пользователем Salfer
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
17 час назад, RelaX сказал:

Крч потыкал я все что только приходило в голову не вышло приблизиться к 100%.....
Есть у кого-то подобный скрипт хотя бы чанты +10.

АП

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

если тебе 100% +10, то в этом куске 

if (([email protected]_ran > 151) && ([email protected]_ran < 153)) {
                    set [email protected],4709;
                }
                else if (([email protected]_ran > 156) && ([email protected]_ran < 158)) {
                    set [email protected],4719;
                }
                else if (([email protected]_ran > 161) && ([email protected]_ran < 163)) {
                    set [email protected],4729;
                }
                else if (([email protected]_ran > 166) && ([email protected]_ran < 168)) {
                    set [email protected],4739;
                }
                else if (([email protected]_ran > 171) && ([email protected]_ran < 173)) {
                    set [email protected],4749;
                }
                else if (([email protected]_ran > 176) && ([email protected]_ran < 178)) {
                    set [email protected],4759;
                }

меняешь все 

([email protected]_ran > 151) && ([email protected]_ran < 153)

на

([email protected]_ran == n)

где n меняется от 1 до 6

А

set [email protected],getarg(1);

меняешь на

set [email protected],6;

Это коряво, но работает

1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, botka4aet сказал:

если тебе 100% +10, то в этом куске 

if (([email protected]_ran > 151) && ([email protected]_ran < 153)) {
                    set [email protected],4709;
                }
                else if (([email protected]_ran > 156) && ([email protected]_ran < 158)) {
                    set [email protected],4719;
                }
                else if (([email protected]_ran > 161) && ([email protected]_ran < 163)) {
                    set [email protected],4729;
                }
                else if (([email protected]_ran > 166) && ([email protected]_ran < 168)) {
                    set [email protected],4739;
                }
                else if (([email protected]_ran > 171) && ([email protected]_ran < 173)) {
                    set [email protected],4749;
                }
                else if (([email protected]_ran > 176) && ([email protected]_ran < 178)) {
                    set [email protected],4759;
                }

меняешь все 

([email protected]_ran > 151) && ([email protected]_ran < 153)

на

([email protected]_ran == n)

где n меняется от 1 до 6

А

set [email protected],getarg(1);

меняешь на

set [email protected],6;

Это коряво, но работает

Попробую сделать.
Спасибо!

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
6 часов назад, botka4aet сказал:

если тебе 100% +10, то в этом куске 

if (([email protected]_ran > 151) && ([email protected]_ran < 153)) {
                    set [email protected],4709;
                }
                else if (([email protected]_ran > 156) && ([email protected]_ran < 158)) {
                    set [email protected],4719;
                }
                else if (([email protected]_ran > 161) && ([email protected]_ran < 163)) {
                    set [email protected],4729;
                }
                else if (([email protected]_ran > 166) && ([email protected]_ran < 168)) {
                    set [email protected],4739;
                }
                else if (([email protected]_ran > 171) && ([email protected]_ran < 173)) {
                    set [email protected],4749;
                }
                else if (([email protected]_ran > 176) && ([email protected]_ran < 178)) {
                    set [email protected],4759;
                }

меняешь все 

([email protected]_ran > 151) && ([email protected]_ran < 153)

на

([email protected]_ran == n)

где n меняется от 1 до 6

А

set [email protected],getarg(1);

меняешь на

set [email protected],6;

Это коряво, но работает

Вообщем получилось у меня сделать как ты написал дает все збс.
Только одно НО пропадает заточка и карты в шмотке!!!!ААААААААААААААА
Возможно как-то избежать этого ужаса???
Заранее СПАСИБО!!!

П.С Кому нужен скрипт(Динозавр)

Скрытый текст

prontera,177,188,3    script    Энчант +10    430,{
        mes "[^FF7E00 MasterSmith ^000000]";
        mes "^008000Я могу попробовать улучшить Вашу вещь +10 к стату.^000000";
        mes "^C200DDДля улучшения Вам нужно:^000000";
        mes "- ^FF00001x^000000 ^5555ffУлучшаемая вещь^000000";
        mes "- ^FF000010x^000000 ^5555ffTCG Card^000000";
        mes "- ^FF0000нельзя двигаться или процесс улучшения будет прекращён.^000000";
        next;
if (countitem(7227) > 9) {
        mes "[^FF7E00 MasterSmith ^000000]";
        mes "^FF0000Внимание!!! Заточка Вашей вещи и карта в ней пропадут!!!^000000";
        next;
        mes "[^FF7E00 MasterSmith ^000000]";
        mes "^C200DDЧтож приступим....^000000";
        switch(select("^8080AAАрморы.^000000:^D3AA00Мантии.^000000:^008000Ботинки.^000000:^CDCD00Щит.^000000:^0000FFНет,спасибо.^000000")) {
        case 1:
            switch(select("^D3AA00Azur Armor^000000:^FF7E00Phoenix Armor^000000:^FF0000Выйти^000000")) {
            case 1:
                callsub S_EnchantArmor,22050,6;
            case 2:
                callsub S_EnchantArmor,22053,6;
            case 3:
                mes "^C200DDУдачи...^000000";
                close;
            }
        case 2:
            switch(select("^D3AA00Azur Manteau^000000:^FF7E00Phoenix Manteau^000000:^FF0000Выйти^000000")) {
            case 1:
                callsub S_EnchantArmor,22051,6;
            case 2:
                callsub S_EnchantArmor,22054,6;
            case 3:
                mes "^C200DDУдачи...^000000";
                close;
            }
        case 3:
            switch(select("^D3AA00Azur Shoes^000000:^FF7E00Phoenix Shoes^000000:^FF0000Выйти^000000")) {
            case 1:
                callsub S_EnchantArmor,22052,6;
            case 2:
                callsub S_EnchantArmor,22055,6;
            case 3:
                mes "^C200DDУдачи...^000000";
                close;
            }
        case 4:
            switch(select("^D3AA00Red Valk Shield^000000:^FF0000Выйти^000000")) {
            case 1:
                callsub S_EnchantArmor,22058,6;
            case 2:
                mes "^C200DDУдачи...^000000";
                close;
        }    
        case 5:
            mes "^C200DDУдачи!^000000";
            close;
        }
}
else {
    mes "[^FF7E00 MasterSmith ^000000]";
    mes "^C200DDУ вас должно быть:^000000";
    mes "- ^FF000030x^000000 ^0000FFTCG card^000000";
    close;
}

S_EnchantArmor:
    set [email protected],getarg(0);
    set [email protected],6;
    if ((countitem([email protected]) > 0) && (countitem([email protected]) < 2)) {
        mes "^FF0000Шанс поломки: ~100%^000000.";
        mes "^C200DDВы готовы?^000000";
        switch(select("^FF0000Хмм... я передумал.^000000:^008000Начать.^000000")) {
            case 1:
                mes "^C200DDНу чтож приходите ещё.^000000";
                close;
            case 2:
                close2;
                specialeffect2 EF_MAPPILLAR;
                if (countitem(7227) < 10) {
                    mes "^C200DDУ вас нету TCG card.^000000";
                    close;
                }
                progressbar "ffff00",0;
                set [email protected]_ran,rand(1,[email protected]);
                delitem 7227,10;
                delitem [email protected],1;
        //+10
                if ([email protected]_ran == 1) {
                    set [email protected],4709;
                }
                else if ([email protected]_ran == 2) {
                    set [email protected],4719;
                }
                else if ([email protected]_ran == 3) {
                    set [email protected],4729;
                }
                else if ([email protected]_ran == 4) {
                    set [email protected],4739;
                }
                else if ([email protected]_ran == 5) {
                    set [email protected],4749;
                }
                else if ([email protected]_ran == 6) {
                    set [email protected],4759;
                }
                else {
                    specialeffect2 EF_PHARMACY_FAIL;
                    mes "[^FF7E00 MasterSmith ^000000]";
                    mes "^FF0000Не повезло...^000000";
                    mes "^C200DDЧтож попытайте удачи в следующий раз.^000000";
                    close;
                }
                specialeffect2 381;
                getitem2 [email protected], 1, 1, 0, 0, 0, 0, 0, [email protected];
                mes "[^FF7E00 MasterSmith ^000000]";
                mes "^C200DDПоздравляю, вот Ваша вещь.^000000";
                close;
            }
        }
        else {
            mes "[^FF7E00 MasterSmith ^000000]";
            mes "^C200DDХмм?. У Вас должна быть ТОЛЬКО 1 вещь в инвентаре или одета для улучшения.^000000";
            close;
        }
OnInit:
    waitingroom "[ Энчант +10 ]",0;
    end;
}

 

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Заменил я вот этот кусок 
getitem2 [email protected], 1, 1, 0, 0, 0, 0, 0, [email protected];

На 

set  [email protected]_refine,getequiprefinerycnt( [email protected] );
        for ( set [email protected],0; [email protected] < 3; set [email protected],[email protected] + 1 ) 
            set [email protected][[email protected]],getequipcardid([email protected],[email protected]);
        getitem2 [email protected],1,1,[email protected]_refine,0,[email protected][0],[email protected][1],[email protected][2],[email protected];

Не помогло =(

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В общем 

        set  [email protected]_refine,getequiprefinerycnt( [email protected] );
        for ( set [email protected],0; [email protected] < 3; set [email protected],[email protected] + 1 ) 
            set [email protected][[email protected]],getequipcardid([email protected],[email protected]);

надо воткнуть перед delitem

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
22 часа назад, botka4aet сказал:

В общем 

        set  [email protected]_refine,getequiprefinerycnt( [email protected] );
        for ( set [email protected],0; [email protected] < 3; set [email protected],[email protected] + 1 ) 
            set [email protected][[email protected]],getequipcardid([email protected],[email protected]);

надо воткнуть перед delitem

не помогло...
Куда только не тыкал не как...

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Хз, еще кто может проверить?

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
43 минуты назад, botka4aet сказал:

Хз, еще кто может проверить?

Я с кубиксом часа пол пытались сделать и так и не вышло=(

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Может ты просто не засэйвил скрипт, не ребутнул нпц, правишь не тот файл, который записан в афине?

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
34 минуты назад, botka4aet сказал:

Может ты просто не засэйвил скрипт, не ребутнул нпц, правишь не тот файл, который записан в афине?

Да вроде нет)
Хз отложу этот скрипт на лучшее времена...
 


Слушай вопрос к тебе.
Не мог бы ты помочь мне с вэндом за тцг в скайпе... я пытался у меня ругался косоль и рекомпил.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
5 часов назад, RelaX сказал:

Да вроде нет)
Хз отложу этот скрипт на лучшее времена...
 


Слушай вопрос к тебе.
Не мог бы ты помочь мне с вэндом за тцг в скайпе... я пытался у меня ругался косоль и рекомпил.

у меня никогда с src хорошо не было, но вай нот

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас