Joomla Template Membership Club

Голосуй

  • Голосовать
  • Статистика

     
    [ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
    • Страница 1 из 1
    • 1
    Refiner
    WOlFДата: Понедельник, 16.03.2009, 08:50 | Сообщение # 1
    Анубис
    Группа: Администраторы
    Сообщений: 136
    Репутация: 1
    Статус: Offline
    Code

    prontera,165,173,6 script Кузнец 813,{
    mes "[Кузнец]";
    mes "Здраствуйте, я главный кузнец Рун-Мидгарда.";
    mes "У меня вы сможите воспользоваться любыми видами услуг заточки ваших вещей.";
    next;
    switch(select("Обычная заточка:Заточка за Gold Coin:Заточка за Enrich Material")) {
    case 1: set @type,1; break;
    case 2: set @type,2; break;
    case 3: set @type,0; break;
    }
    mes "[Кузнец]";
    mes "Выберите то, чтобы вы хотели заточить";
    switch(select(getequipname(1),getequipname(2),getequipname(3),getequipname(4),ge
    equipname(5),getequipname(6))) {
    case 1:
    //Головные уборы
    callfunc("ChekRefine",1,@type);
    break;
    case 2:
    //Броньки
    callfunc("ChekRefine",2,@type);
    break;
    case 3:
    //Левая рука
    callfunc("ChekRefine",3,@type);
    break;
    case 4:
    //Щиты
    callfunc("ChekRefine",4,@type);
    break;
    case 5:
    //Муффы
    callfunc("ChekRefine",5,@type);
    break;
    case 6:
    //Сапоги
    callfunc("ChekRefine",6,@type);
    break;
    }
    }

    function script ChekRefine {
    if(getgmlevel() < 1 && getarg(1) != 2) { //Здесь у меня стоит проверка на наличие "Премиум-игрока". По желанию можно убрать.
    mes "Извините, но услуги данного характера только для премиум игроков";
    close; end;
    }
    if (!getequipisequiped(getarg(0))) {
    mes "Я не понимаю, что вы здесь хотите заточить?!";
    close;
    }
    else if (!getequipisidentify(getarg(0))) {
    mes "[Кузнец]";
    mes "Да вы читер!!!!";
    close;
    }
    else if (!getequipisenableref(getarg(0))) {
    mes "[Кузнец]";
    mes "Я немогу заточить эту вещь!";
    close;
    }
    else if(getequiprefinerycnt(getarg(0)) < 10) callfunc("RefIt",getarg(0),getarg(1));
    else {
    mes "[Кузнец]";
    mes "Извините, но эта вещь заточена на максимум.";
    close;
    }
    }

    function script RefIt {
    set @chance,100; //По дефолту выставлен максимальный "шанс заточки"
    set @refineitemid, getequipid(getarg(0));
    set @refinerycnt, getequiprefinerycnt(getarg(0));
    if(getarg(1) == 2) {
    set @material,671;
    set @matname$,"Gold Coins";
    set @price,0;
    set @safe,10;
    }
    if(getequipweaponlv(getarg(0)) == 0 && getarg(1) < 2) {
    if(getarg(1) == 0) {
    set @chance,80;
    set @matname$,"Enriched Elunium";
    set @material,7619;
    set @price,2000;
    set @safe,4;
    }
    else {
    set @matname$,"Elunium";
    set @material,985;
    set @price,2000;
    set @safe,4;
    }
    }
    else if(getequipweaponlv(getarg(0)) == 1 && getarg(1) < 2) {
    set @matname$,"Phracon";
    set @material,1010;
    set @price,50;
    set @safe,7;
    }
    else if(getequipweaponlv(getarg(0)) == 2 && getarg(1) < 2) {
    set @matname$,"Emveretarcon";
    set @material,1011;
    set @price,200;
    set @safe,6;
    }
    else if(getequipweaponlv(getarg(0)) == 2 && getarg(1) < 2) {
    if(getarg(1) == 0) {
    set @chance,80;
    set @matname$,"Enriched Oridecon";
    set @material,7620;
    set @price,2000;
    set @safe,4;
    }
    else {
    set @matname$,"Oridecon";
    set @material,984;
    set @price,5000;
    set @safe,5;
    }
    }
    else if(getarg(1) < 2) {
    if(getarg(1) == 0) {
    set @chance,80;
    set @matname$,"Enriched Oridecon";
    set @material,7620;
    set @price,20000;
    set @safe,4;
    }
    else {
    set @matname$,"Oridecon";
    set @material,984;
    set @price,20000;
    set @safe,4;
    }
    }
    mes "Для данной вещи мне необходимо ^ff9999" + @matname$ + "^000000 и " + @price + " Zeny за одну заточку";
    if(getarg(1) < 2) mes "Безопасно заточить могу до: ^ff9999" + @safe + "^000000 Уровня.";
    next;
    Menus:
    switch(select("Точи до безопасного:Точи до...:Точи дальше")) {
    case 1:
    if(countitem(@material) < @safe-getequiprefinerycnt(getarg(0)) || (Zeny < @price*(@safe-getequiprefinerycnt(getarg(0))))) {
    mes "Извините, но у вас не хватает или Zeny или "+@matname$;
    close; end;
    }
    for(set @i,getequiprefinerycnt(getarg(0)) ; @i < @safe ; set @i,@i+1) {
    successrefitem getarg(0);
    set Zeny,Zeny-@price;
    delitem @material,1;
    }
    mes "Вещь заточена до безопасного уровня!";
    close;
    end;
    case 2:
    input @needref;
    if ((@needref > 10) || (@needref < 1) || (getequiprefinerycnt(getarg(0)) >= @needref)) {
    mes "Введите пожалуйста реальное число от 1 - 10! И чтобы число было больше того, на сколько уже сейчас заточена ваша вещь";
    close; end;
    }
    if (countitem(@material) < @needref-getequiprefinerycnt(getarg(0)) || (Zeny < @price*(@needref-getequiprefinerycnt(getarg(0))))) {
    mes "У вас нет столько материалов или Денег, чтобы заточить на столько данную вещь";
    close; end;
    }
    for(set @i,getequiprefinerycnt(getarg(0)) ; @i < @needref ; set @i,@i+1) {
    set Zeny,Zeny-@price;
    delitem @material,1;
    if(getequiprefinerycnt(getarg(0)) > @safe && getarg(1) < 2) {
    if (getequippercentrefinery(getarg(0)) < rand(@chance)) {
    mes "Извините, но вашу вещь не удалось заточить на +"+@needref;
    failedrefitem getarg(0);
    close; break;
    }
    }
    successrefitem getarg(0);
    }
    mes "Поздравляю! Ваша вещь заточена на +"+@needref;
    close;
    case 3:
    if (countitem(@material) < 1 || Zeny < @price) {
    mes "У вас нет столько материалов или Денег, чтобы заточить на столько данную вещь";
    close; end;
    }
    set Zeny,Zeny-@price;
    delitem @material,1;
    if(getequiprefinerycnt(getarg(0)) > @safe && getarg(1) < 2) {
    mes "Я могу сейчас сломать вашу вещь!";
    switch(select("нет!:Да")) {
    case 1: goto Menus;
    case 2:
    if (getequippercentrefinery(getarg(0)) < rand(@chance)) {
    mes "Извините, но я сломал вашу вещь!";
    failedrefitem getarg(0);
    close; break;
    }
    }

    }
    successrefitem getarg(0);
    goto Menus;
    }
    end;
    }

    нач тут в одном этом "точителе" реализованы следущие фишки:
    1. Обычная заточка. Без комментариев. Как и везде, за обычные материалы
    2. Заточка за Голд Коинсы. осуществляется заточка со 100% шансом.
    3. Заточка за Энрич-материалы. При заточке - повышается шанс заточить.
    4. Заточить до безопасного уровня. НПЦ сам смотрит до какого уровня можно заточить вещь до безопасного уровня и в 1 касание точит до безопасного уровня в соответствии с вашей базой.
    5. Заточить до... . Вводится число до какого хочется заточить вещь и в соответствии с шансом точится поэтапно. Как ломается - то досвиданья. Также, в 1 касание.
    6. Точить дальше. Точит на +1. Т.е. На пример вещь заточена на +4, надо заточить "дальше". Нажимаете в 1 касание и он точет на +5 в соответствии с шансом заточки.
    7. некоторые заточки осуществляются без выхода из НПЦ, что упрощает работу и быстроту.

     
    • Страница 1 из 1
    • 1
    Поиск:

    Опрос

    Оцените мой сайт
    Всего ответов: 108

    Авторизация

    Четверг
    01.01.2026
    09:57

    Адаптация EvilDM,Сайт WOlF ©