Назад

NPC Даёт заточенную вещь.

Автор: SupR1g: Дата: 03.09.2011

Появилась идея, за определённый лут, например в данном примере используются 2 меча с Naght Seiger, получить сразу заточенную вещь, т.е. вы приносите нпс эти 2 меча, и он даёт вам рандомную пушку, заточенную на +9, для примера я взял БГ оружие, которое полезное при такой заточке, итак:


[HTML]prontera,146,205,5 script Test 796,{
mes "[Test]";
mes "Привет,я могу дать тебе рандомное оружие из БГ сетов";
mes "Для этого мне нужны 2 меча:";
mes "Twin Edge of Naght Sieger [3](id 13412)";
mes "Twin Edge of Naght Sieger [3](id 13413)";
next;
if (countitem(13412) < 1 || (countitem(13413) < 1)) {
mes "У вас не хватает мечей";
close;
}
if(countitem(13412) && countitem(13413)){
mes "[Test]";
mes "Оууу...у вас есть мечи из Nacht Sieger...";
next;
mes "[Test]";
mes "Они дают не плохую силу носящему их, но я могу соединить их, и сделать для тебя оружие улучшенное до +9.";
next;
switch(select("Сделать +9 BG weapon.:Нет, спасибо.")){
case 1:
mes "[Test]";
mes "Хорошо, давай приступим,я надеюсь создать что то уникальное для тебя...";
next;
set @card1,0;
set @card2,0;
set @card3,0;
set @card4,0;
delitem 13412,1; // Twin_Edge_B 1
delitem 13413,1; // Twin_Edge_R 1
setarray .n[0],"1486","1824","1632","1633","1575","1379","1380","1738","1280","13410","13411","13305","1923","1977","1577","13310";
set .i,rand(1,16);
set .b,.n[.i];
getitem2 .b,1,1,9,0,@card1,@card2,@card3,@card4;
next;
mes "Удачи...";
close;
break;
case 2:
mes "[Test]";
mes "Удачи...";
close2;
end;
}
}
}
[/HTML]

Кому стал полезен скрипт, отпишите, так же рассчитываю на критику "высших" мозголомов в сфере скриптописания...)

Автор: SupR1g: Дата: 03.10.2011

не понял твоего поста, к чему он? если у тебя нет этого айди поставь свои!

Автор: Кеник: Дата: 03.10.2011

Найс скрипт) Не понимаю только для чего вот это:

set @card1,0;
set @card2,0;
set @card3,0;
set @card4,0;
. . .
getitem2 .b,1,1,9,0,@card1,@card2,@card3,@card4;

?) Не проще уж сразу писать
getitem2 .b,1,1,9,0,0,0,0,0;

?

Автор: Кеник: Дата: 03.10.2011

Цитата SupR1g;35824:
не понял твоего поста, к чему он? если у тебя нет этого айди поставь свои!


Он имеет ввиду, что твой скрипт никогда эту вещь не выдаст.

set .i,rand(1,16); - присвоит переменной i значение от 1 до 16 включительно. В массивах индексы элементов начинаются с 0, значит .n[0] , который является тем самым id 1486 никогда не выпадет.

Лучше сделать либо так:
set .i,rand(0,16)

либо так :
setarray .n[1],"1486","1824","1632","1633","1575","1379","1380","1738","1280","13410","13411","13305","1923","1977","1577","13310";

Автор: Jarek: Дата: 03.11.2011

prontera,146,205,5	script	Test	796,{
mes "[Test]";
mes "Привет,я могу дать тебе рандомное оружие из БГ сетов";
mes "Для этого мне нужны 2 меча:";
mes "Twin Edge of Naght Sieger [3](id 13412)";
mes "Twin Edge of Naght Sieger [3](id 13413)";
next;
if (countitem(13412) < 1 || (countitem(13413) < 1)) {
mes "[Test]";
mes "У вас не хватает мечей";
close;
}
mes "[Test]";
mes "Оууу...у вас есть мечи из Nacht Sieger...";
next;
mes "[Test]";
mes "Они дают не плохую силу носящему их, но я могу соединить их, и сделать для тебя оружие улучшенное до +9.";
next;
if(select("Сделать +9 BG weapon.:Нет, спасибо.")==2){
mes "[Test]";
mes "Удачи...";
close;
}
mes "[Test]";
mes "Хорошо, давай приступим,я надеюсь создать что то уникальное для тебя...";
next;
setarray .n[0],"1486","1824","1632","1633","1575","1379","1380","1738","1280","13410","13411","13305","1923","1977","1577","13310";
set .i,rand(16);
delitem 13412,1; // Twin_Edge_B 1
delitem 13413,1; // Twin_Edge_R 1
getitem2 .n[.i],1,1,9,0,0,0,0,0;
next;
mes "Удачи...";
close;
}