Перейти к содержанию

Помощь


Рекомендуемые сообщения

Ребят как сделать 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 .@itemid,getarg(0);
    set .@failrate,getarg(1);
    if ((countitem(.@itemid) > 0) && (countitem(.@itemid) < 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 .@enc_ran,rand(1,.@failrate);
                delitem 7227,30;
                delitem .@itemid,1;
        //+6
                if ((.@enc_ran > 0) && (.@enc_ran < 8)) {
                    set .@addpart,4705;
                }
                else if ((.@enc_ran > 10) && (.@enc_ran < 17)) {
                    set .@addpart,4715;
                }
                else if ((.@enc_ran > 17) && (.@enc_ran < 24)) {
                    set .@addpart,4725;
                }
                else if ((.@enc_ran > 24) && (.@enc_ran < 31)) {
                    set .@addpart,4735;
                }
                else if ((.@enc_ran > 31) && (.@enc_ran < 38)) {
                    set .@addpart,4745;
                }
                else if ((.@enc_ran > 38) && (.@enc_ran < 45)) {
                    set .@addpart,4755;
                }
        //+7
                else if ((.@enc_ran > 50) && (.@enc_ran < 55)) {
                    set .@addpart,4706;
                }
                else if ((.@enc_ran > 55) && (.@enc_ran < 60)) {
                    set .@addpart,4716;
                }
                else if ((.@enc_ran > 60) && (.@enc_ran < 65)) {
                    set .@addpart,4726;
                }
                else if ((.@enc_ran > 65) && (.@enc_ran < 70)) {
                    set .@addpart,4736;
                }
                else if ((.@enc_ran > 70) && (.@enc_ran < 75)) {
                    set .@addpart,4746;
                }
                else if ((.@enc_ran > 75) && (.@enc_ran < 80)) {
                    set .@addpart,4756;
                }
        //+8
                else if ((.@enc_ran > 89) && (.@enc_ran < 94)) {
                    set .@addpart,4707;
                }
                else if ((.@enc_ran > 93) && (.@enc_ran < 98)) {
                    set .@addpart,4717;
                }
                else if ((.@enc_ran > 97) && (.@enc_ran < 102)) {
                    set .@addpart,4727;
                }
                else if ((.@enc_ran > 101) && (.@enc_ran < 106)) {
                    set .@addpart,4737;
                }
                else if ((.@enc_ran > 105) && (.@enc_ran < 110)) {
                    set .@addpart,4747;
                }
                else if ((.@enc_ran > 109) && (.@enc_ran < 114)) {
                    set .@addpart,4757;
                }
        //+9
                else if ((.@enc_ran > 125) && (.@enc_ran < 128)) {
                    set .@addpart,4708;
                }
                else if ((.@enc_ran > 128) && (.@enc_ran < 131)) {
                    set .@addpart,4718;
                }
                else if ((.@enc_ran > 131) && (.@enc_ran < 134)) {
                    set .@addpart,4728;
                }
                else if ((.@enc_ran > 134) && (.@enc_ran < 137)) {
                    set .@addpart,4738;
                }
                else if ((.@enc_ran > 137) && (.@enc_ran < 140)) {
                    set .@addpart,4748;
                }
                else if ((.@enc_ran > 140) && (.@enc_ran < 143)) {
                    set .@addpart,4758;
                }
        //+10
                else if ((.@enc_ran > 151) && (.@enc_ran < 153)) {
                    set .@addpart,4709;
                }
                else if ((.@enc_ran > 156) && (.@enc_ran < 158)) {
                    set .@addpart,4719;
                }
                else if ((.@enc_ran > 161) && (.@enc_ran < 163)) {
                    set .@addpart,4729;
                }
                else if ((.@enc_ran > 166) && (.@enc_ran < 168)) {
                    set .@addpart,4739;
                }
                else if ((.@enc_ran > 171) && (.@enc_ran < 173)) {
                    set .@addpart,4749;
                }
                else if ((.@enc_ran > 176) && (.@enc_ran < 178)) {
                    set .@addpart,4759;
                }
                else {
                    specialeffect2 EF_PHARMACY_FAIL;
                    mes "[^FF7E00 MasterSmith ^000000]";
                    mes "^FF0000Не повезло...^000000";
                    mes "^C200DDЧтож попытайте удачи в следующий раз.^000000";
                    close;
                }
                specialeffect2 381;
                getitem2 .@itemid, 1, 1, 0, 0, 0, 0, 0, .@addpart;
                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
Ссылка на комментарий
Поделиться на другие сайты

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

 

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

 

set .@enc_ran,rand(1,.@failrate);

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

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

 if ((.@enc_ran > 0) && (.@enc_ran < 8)) {
                    set .@addpart,4705;
                }

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

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

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

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

 

  • Upvote 1
Ссылка на комментарий
Поделиться на другие сайты

1 час назад, botka4aet сказал:

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

 

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

 


set .@enc_ran,rand(1,.@failrate);

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

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


 if ((.@enc_ran > 0) && (.@enc_ran < 8)) {
                    set .@addpart,4705;
                }

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


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

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

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

 

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

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

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

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

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

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

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

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

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

 

 

 

Изменено пользователем Salfer
Ссылка на комментарий
Поделиться на другие сайты

17 час назад, RelaX сказал:

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

АП

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

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

if ((.@enc_ran > 151) && (.@enc_ran < 153)) {
                    set .@addpart,4709;
                }
                else if ((.@enc_ran > 156) && (.@enc_ran < 158)) {
                    set .@addpart,4719;
                }
                else if ((.@enc_ran > 161) && (.@enc_ran < 163)) {
                    set .@addpart,4729;
                }
                else if ((.@enc_ran > 166) && (.@enc_ran < 168)) {
                    set .@addpart,4739;
                }
                else if ((.@enc_ran > 171) && (.@enc_ran < 173)) {
                    set .@addpart,4749;
                }
                else if ((.@enc_ran > 176) && (.@enc_ran < 178)) {
                    set .@addpart,4759;
                }

меняешь все 

(.@enc_ran > 151) && (.@enc_ran < 153)

на

(.@enc_ran == n)

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

А

set .@failrate,getarg(1);

меняешь на

set .@failrate,6;

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

  • Upvote 1
Ссылка на комментарий
Поделиться на другие сайты

1 час назад, botka4aet сказал:

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


if ((.@enc_ran > 151) && (.@enc_ran < 153)) {
                    set .@addpart,4709;
                }
                else if ((.@enc_ran > 156) && (.@enc_ran < 158)) {
                    set .@addpart,4719;
                }
                else if ((.@enc_ran > 161) && (.@enc_ran < 163)) {
                    set .@addpart,4729;
                }
                else if ((.@enc_ran > 166) && (.@enc_ran < 168)) {
                    set .@addpart,4739;
                }
                else if ((.@enc_ran > 171) && (.@enc_ran < 173)) {
                    set .@addpart,4749;
                }
                else if ((.@enc_ran > 176) && (.@enc_ran < 178)) {
                    set .@addpart,4759;
                }

меняешь все 


(.@enc_ran > 151) && (.@enc_ran < 153)

на


(.@enc_ran == n)

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

А


set .@failrate,getarg(1);

меняешь на


set .@failrate,6;

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

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

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

6 часов назад, botka4aet сказал:

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


if ((.@enc_ran > 151) && (.@enc_ran < 153)) {
                    set .@addpart,4709;
                }
                else if ((.@enc_ran > 156) && (.@enc_ran < 158)) {
                    set .@addpart,4719;
                }
                else if ((.@enc_ran > 161) && (.@enc_ran < 163)) {
                    set .@addpart,4729;
                }
                else if ((.@enc_ran > 166) && (.@enc_ran < 168)) {
                    set .@addpart,4739;
                }
                else if ((.@enc_ran > 171) && (.@enc_ran < 173)) {
                    set .@addpart,4749;
                }
                else if ((.@enc_ran > 176) && (.@enc_ran < 178)) {
                    set .@addpart,4759;
                }

меняешь все 


(.@enc_ran > 151) && (.@enc_ran < 153)

на


(.@enc_ran == n)

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

А


set .@failrate,getarg(1);

меняешь на


set .@failrate,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 .@itemid,getarg(0);
    set .@failrate,6;
    if ((countitem(.@itemid) > 0) && (countitem(.@itemid) < 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 .@enc_ran,rand(1,.@failrate);
                delitem 7227,10;
                delitem .@itemid,1;
        //+10
                if (.@enc_ran == 1) {
                    set .@addpart,4709;
                }
                else if (.@enc_ran == 2) {
                    set .@addpart,4719;
                }
                else if (.@enc_ran == 3) {
                    set .@addpart,4729;
                }
                else if (.@enc_ran == 4) {
                    set .@addpart,4739;
                }
                else if (.@enc_ran == 5) {
                    set .@addpart,4749;
                }
                else if (.@enc_ran == 6) {
                    set .@addpart,4759;
                }
                else {
                    specialeffect2 EF_PHARMACY_FAIL;
                    mes "[^FF7E00 MasterSmith ^000000]";
                    mes "^FF0000Не повезло...^000000";
                    mes "^C200DDЧтож попытайте удачи в следующий раз.^000000";
                    close;
                }
                specialeffect2 381;
                getitem2 .@itemid, 1, 1, 0, 0, 0, 0, 0, .@addpart;
                mes "[^FF7E00 MasterSmith ^000000]";
                mes "^C200DDПоздравляю, вот Ваша вещь.^000000";
                close;
            }
        }
        else {
            mes "[^FF7E00 MasterSmith ^000000]";
            mes "^C200DDХмм?. У Вас должна быть ТОЛЬКО 1 вещь в инвентаре или одета для улучшения.^000000";
            close;
        }
OnInit:
    waitingroom "[ Энчант +10 ]",0;
    end;
}

 

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

 

        set  .@equip_refine,getequiprefinerycnt( .@itemid );
        for ( set .@c,0; .@c < 3; set .@c,.@c + 1 ) 
            set .@card[.@c],getequipcardid(.@itemid,.@c);
        getitem2 .@itemid,1,1,.@equip_refine,0,.@card[0],.@card[1],.@card[2],.@addpart;

 

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

Заменил я вот этот кусок 
getitem2 .@itemid, 1, 1, 0, 0, 0, 0, 0, .@addpart;

На 

set  .@equip_refine,getequiprefinerycnt( .@itemid );
        for ( set .@c,0; .@c < 3; set .@c,.@c + 1 ) 
            set .@card[.@c],getequipcardid(.@itemid,.@c);
        getitem2 .@itemid,1,1,.@equip_refine,0,.@card[0],.@card[1],.@card[2],.@addpart;

Не помогло =(

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

22 часа назад, botka4aet сказал:

В общем 


        set  .@equip_refine,getequiprefinerycnt( .@itemid );
        for ( set .@c,0; .@c < 3; set .@c,.@c + 1 ) 
            set .@card[.@c],getequipcardid(.@itemid,.@c);

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

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

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

43 минуты назад, botka4aet сказал:

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

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

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

34 минуты назад, botka4aet сказал:

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

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


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

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

5 часов назад, RelaX сказал:

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


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

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

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

×
×
  • Создать...
Яндекс.Метрика