| WOlF | Дата: Понедельник, 16.03.2009, 08:50 | Сообщение # 1 |
|
Анубис
Группа: Администраторы
Сообщений: 136
Статус: 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. некоторые заточки осуществляются без выхода из НПЦ, что упрощает работу и быстроту.
|
| |
|
|