b72g

Помогите реализовать скрипт.

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

Вот попытался сделать, чтобы он выдавал за 3 стоуна, крылья со стоуном внутри, но нпц просто пропало..

//Настройка. При добавлении большего количества предметов, не забывать добавлять case'ы.

setarray @hatid[0],20001,20002,20003,20004,20005,20006,20007,20008,20009,20010,20011,20012,20013,20014;

setarray @stoneid[0],1991,1991,1991,1991,1991,1991,1991,1991,1991,1991,1991,1991,1991,1991;

setarray @loot01id[0],1991,2,3,4,5,6,7,8,9,10,11,12,13,14;

setarray @loot01cnt[0],1,2,3,4,5,6,7,8,9,10,11,12,13,14;

setarray @loot02id[0],1991,2,3,4,5,6,7,8,9,10,11,12,13,14;

setarray @loot02cnt[0],1,2,3,4,5,6,7,8,9,10,11,12,13,14;

setarray @loot03id[0],1991,2,3,4,5,6,7,8,9,10,11,12,13,14;

setarray @loot03cnt[0],1,2,3,4,5,6,7,8,9,10,11,12,13,14;

setarray @customvar$[0],"1","2","3","4","5","6","7","8","9","10","11","12","13","14";

setarray @customvarcnt[0],1,2,3,4,5,6,7,8,9,10,11,12,13,14;

for(set [email protected],0; [email protected]<getarraysize(@hatid) ; set [email protected],[email protected]+1 )

{

set [email protected]$,[email protected]$+getitemname(@hatid[[email protected]])+":";

}

for(set [email protected],0; [email protected]<getarraysize(@stoneid) ; set [email protected],[email protected]+1 )

{

set [email protected]$,[email protected]$+getitemname(@stoneid[[email protected]])+":";

}

mes "[Костюмер]";

mes "Посмотри на мои шапочки!";

mes "Они не дают бонусов, не занимают место обычной шапки, зато очень красивые!";

switch(select([email protected]$)) {

case 1:

set [email protected],0;

next;

set [email protected],0;

break;

case 2:

set [email protected],1;

next;

set [email protected],1;

break;

case 3:

set [email protected],2;

next;

set [email protected],2;

break;

case 4:

set [email protected],3;

next;

set [email protected],3;

break;

case 5:

set [email protected],4;

next;

set [email protected],4;

break;

case 6:

set [email protected],5;

next;

set [email protected],5;

break;

case 7:

set [email protected],6;

next;

set [email protected],6;

break;

case 8:

set [email protected],7;

next;

set [email protected],7;

break;

case 9:

set [email protected],8;

next;

set [email protected],8;

break;

case 10:

set [email protected],9;

next;

set [email protected],9;

break;

case 11:

set [email protected],10;

next;

set [email protected],10;

break;

case 12:

set [email protected],11;

next;

set [email protected],11;

break;

case 13:

set [email protected],12;

next;

set [email protected],12;

break;

case 14:

set [email protected],13;

next;

set [email protected],13;

break;

}

//default: //

//set [email protected],1;

mes "[Костюмер]";

mes "["+getitemname(@hatid[[email protected]])+"]";

mes "["+getitemname(@stoneid[[email protected]])+"]";

mes "Для этой костюмной шапочки необходимо:";

mes " "+getitemname(@loot01id[[email protected]])+" "[email protected][[email protected]]+" шт.";

mes " "+getitemname(@loot02id[[email protected]])+" "[email protected][[email protected]]+" шт.";

mes " "+getitemname(@loot03id[[email protected]])+" "[email protected][[email protected]]+" шт.";

next;

mes "[Костюмер]";

if (select( "Я собрал все необходимое!:Хорошо, я запомнил.") != 1) {mes "Приходи, когда захочешь."; close;}

if(countitem(@loot01id[[email protected]]) < @loot01cnt[[email protected]] || countitem(@loot02id[[email protected]]) < @loot02cnt[[email protected]] || countitem(@loot03id[[email protected]]) < @loot03cnt[[email protected]]) {

mes "У тебя нет достаточного количества вещей, чтобы получить шапочку. Возвращайся, когда соберешь все.";

close;

}

mes "[Костюмер]";

mes "Одну секунду...";

delitem @loot01id[[email protected]],@loot01cnt[[email protected]];

delitem @loot02id[[email protected]],@loot02cnt[[email protected]];

delitem @loot03id[[email protected]],@loot03cnt[[email protected]];

atcommand "@item2"+" "[email protected][[email protected]] 1 1 0 0"+" "[email protected][[email protected]]"+" "+0 0 0";

next;

mes "[Костюмер]";

mes "Вуаля!";

mes "Носи с удовольствием!";

close;

}

pron_mall,104,76,4 script Костюмер#1 864,{

0

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


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

atcommand "@item2"+" "+@hatid[[email protected]] 1 1 0 0"+" "+@stoneid[[email protected]]"+" "+0 0 0";

Внимательнее надо быть.

ага, поправила, вообще еще путаюсь, что надо выносить за кавычки, а что нет

Вот попытался сделать, чтобы он выдавал за 3 стоуна, крылья со стоуном внутри, но нпц просто пропало..

причем тут мой скрипт? у тебя другая задача, другие переменные И другая локация. Тем более что его тоже переделать нужно, хоть он и работает без переделки

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

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


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

Да координаты есть, просто не вписал сюда.

0

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


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

atcommand "@item2"+" "+@hatid[[email protected]] 1 1 0 0"+" "+@stoneid[[email protected]]"+" "+0 0 0";

Внимательнее надо быть.

ага, поправила, вообще еще путаюсь, что надо выносить за кавычки, а что нет

Вот попытался сделать, чтобы он выдавал за 3 стоуна, крылья со стоуном внутри, но нпц просто пропало..

причем тут мой скрипт? у тебя другая задача, другие переменные И другая локация. Тем более что его тоже переделать нужно, хоть он и работает без переделки

Да думал может с ним, что получиться сделать...

Первый что делал вообще не нажимается.. Ну я там нагородил очень.

prontera,151,177,5 script Wing Man 115,{

set .baseid, 20000;

set .countids, 108; // Количество вещей

for (set [email protected], 1; [email protected] <= .countids; set [email protected], [email protected] + 1) {

set [email protected]$, [email protected]$+getitemname(.baseid + [email protected]) + ":";

}

set .insertids[0], 1991, 1992, 1993, 1994, 1995, 1996;

for (set [email protected], 0; [email protected] <= getarraysize(.insertids); set [email protected], [email protected] + 1) {

set [email protected]$, [email protected]$+getitemname(.insertids[[email protected]]) + ":";

}

mes "Выбери крылья";

set [email protected], select([email protected]$);

next;

mes "Я теперь выбери стоун";

set [email protected], select([email protected]$) - 1;

next;

getitem [email protected] + .baseid, 1; // Получает выбранный предмет в инвентарь

close;

}

0

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


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

У тебя все запихивается в одно [email protected]$

Все правильно. Нахрена ему плодить их тонну? Просто надо сбросить перед второй его генерацией..


prontera,151,177,5 script Wing Man 115,{
set .baseid, 20000;
set .countids, 108; // Количество вещей
for (set [email protected], 1; [email protected] <= .countids; set [email protected], [email protected] + 1) {
set [email protected]$, [email protected]$+getitemname(.baseid + [email protected]) + ":";
}
mes "Выбери крылья";
set [email protected], select([email protected]$);
next;
setarray .insertids[0], 1991, 1992, 1993, 1994, 1995, 1996;
set [email protected]$, "";
for (set [email protected], 0; [email protected] <= getarraysize(.insertids); set [email protected], [email protected] + 1) {
set [email protected]$, [email protected]$+getitemname(.insertids[[email protected]]) + ":";
}
mes "Я теперь выбери стоун";
set [email protected], select([email protected]$) - 1;
next;
delitem [email protected] + .baseid, 1;
getitem [email protected] + .baseid, 1; // Получает выбранный предмет в инвентарь (Заменить на нормальную команду для получения нужного предмета)
close;
}

P.S. Массивы объявляются командой setarray! >.<

0

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


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

У тебя все запихивается в одно [email protected]$

Все правильно. Нахрена ему плодить их тонну? Просто надо сбросить перед второй его генерацией..


prontera,151,177,5 script Wing Man 115,{
set .baseid, 20000;
set .countids, 108; // Количество вещей
for (set [email protected], 1; [email protected] <= .countids; set [email protected], [email protected] + 1) {
set [email protected]$, [email protected]$+getitemname(.baseid + [email protected]) + ":";
}
mes "Выбери крылья";
set [email protected], select([email protected]$);
next;
setarray .insertids[0], 1991, 1992, 1993, 1994, 1995, 1996;
set [email protected]$, "";
for (set [email protected], 0; [email protected] <= getarraysize(.insertids); set [email protected], [email protected] + 1) {
set [email protected]$, [email protected]$+getitemname(.insertids[[email protected]]) + ":";
}
mes "Я теперь выбери стоун";
set [email protected], select([email protected]$) - 1;
next;
delitem [email protected] + .baseid, 1;
getitem [email protected] + .baseid, 1; // Получает выбранный предмет в инвентарь (Заменить на нормальную команду для получения нужного предмета)
close;
}

P.S. Массивы объявляются командой setarray! >.<

Я указал на ошибку. Оптимизация - другое делоmee.png
0

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


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

prontera,151,177,5 script Wing Man 115,{

set .baseid, 20000;

set .countids, 108; // Количество вещей

for (set [email protected], 1; [email protected] <= .countids; set [email protected], [email protected] + 1) {

set [email protected]$, [email protected]$+getitemname(.baseid + [email protected]) + ":";

}

mes "Выбери крылья";

set [email protected], select([email protected]$);

next;

setarray .insertids[0], 1991, 1992, 1993, 1994, 1995, 1996;

set [email protected]$, "";

for (set [email protected], 0; [email protected] <= getarraysize(.insertids); set [email protected], [email protected] + 1) {

set [email protected]$, [email protected]$+getitemname(.insertids[[email protected]]) + ":";

}

mes "Я теперь выбери стоун";

set [email protected], select([email protected]$) - 1;

next;

delitem [email protected] + .baseid, 1;

atcommand "@item2"+" "[email protected][[email protected]]"+" "+1 1 0 0"+" "[email protected][[email protected]]"+" "+0 0 0";

close;

}

Попробовал комманду сделать, не пашет. Делал по разному. всеравно че то..

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

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


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

поработай детально с каждой переменной. Как меняется на что и чего нужно получить нам. У тебя есть переменные взятые с неба, вот и не работает.

prontera,151,177,5 script Wing Man 115,{

set .baseid, 20000;

set .countids, 108; // Количество вещей

for (set [email protected], 1; [email protected] <= .countids; set [email protected], [email protected] + 1) {

set [email protected]$, [email protected]$+getitemname(.baseid + [email protected]) + ":";

}

mes "Выбери крылья";

set [email protected], select([email protected]$) -1;

next;

setarray .insertids[0], 1991, 1992, 1993, 1994, 1995, 1996;

set [email protected]$, "";

for (set [email protected], 0; [email protected] <= getarraysize(.insertids); set [email protected], [email protected] + 1) {

set [email protected]$, [email protected]$+getitemname(.insertids[[email protected]]) + ":";

}

mes "Я теперь выбери стоун";

set [email protected], select([email protected]$) - 1;

next;

delitem [email protected] + .baseid, 1;

atcommand "@item2"+" "[email protected][[email protected]]"+" "+1 1 0 0"+" "[email protected][[email protected]]"+" "+0 0 0";

close;

}

Попробовал комманду сделать, не пашет. Делал по разному. всеравно че то..

подумай над этим

1

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


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

поработай детально с каждой переменной. Как меняется на что и чего нужно получить нам. У тебя есть переменные взятые с неба, вот и не работает.

prontera,151,177,5 script Wing Man 115,{

set .baseid, 20000;

set .countids, 108; // Количество вещей

for (set [email protected], 1; [email protected] <= .countids; set [email protected], [email protected] + 1) {

set [email protected]$, [email protected]$+getitemname(.baseid + [email protected]) + ":";

}

mes "Выбери крылья";

set [email protected], select([email protected]$) -1;

next;

setarray .insertids[0], 1991, 1992, 1993, 1994, 1995, 1996;

set [email protected]$, "";

for (set [email protected], 0; [email protected] <= getarraysize(.insertids); set [email protected], [email protected] + 1) {

set [email protected]$, [email protected]$+getitemname(.insertids[[email protected]]) + ":";

}

mes "Я теперь выбери стоун";

set [email protected], select([email protected]$) - 1;

next;

delitem [email protected] + .baseid, 1;

atcommand "@item2"+" "[email protected][[email protected]]"+" "+1 1 0 0"+" "[email protected][[email protected]]"+" "+0 0 0";

close;

}

Попробовал комманду сделать, не пашет. Делал по разному. всеравно че то..

подумай над этим

Спасибо что помучила меня. Вообщем попарился и получилось.

getitem2 [email protected] + .baseid, 1,1,0,0,[email protected] + .insertids ,0,0,0;

:D

0

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


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

молодец) Грац с лвлом)) XDD

0

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


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

Вообщем, почему то стоуны неадекватно вставляются, выбираешь один, вставляется другой...

Получается так..

1 итем - 2 камень (если выбирать 1 камень)

2- итем - 3 камень (если выбирать 1 камень)

3 итем - 5 камень (если выбирать 1 камень)

4 итем - 6 камень (если выбирать 1 камень)

5 итем и слудующие - ничего

Как это исправить?

P.S Во второй менюшке null вконце

prontera,151,177,5 script Wing Man 115,{

set .baseid, 20003;

set .countids, 105; // Количество вещей

for (set [email protected], 1; [email protected] <= .countids; set [email protected], [email protected] + 1) {

set [email protected]$, [email protected]$+getitemname(.baseid + [email protected]) + ":";

}

mes "Выбери крылья";

set [email protected], select([email protected]$);

next;

setarray .insertids[0], 1991, 1992, 1993, 1994, 1995, 1996;

set [email protected]$, "";

for (set [email protected], 0; [email protected] <= getarraysize(.insertids); set [email protected], [email protected] + 1) {

set [email protected]$, [email protected]$+getitemname(.insertids[[email protected]]) + ":";

}

mes "Я теперь выбери стоун";

set [email protected], select([email protected]$) - 1;

next;

delitem [email protected] + .baseid, 1;

delitem [email protected] + .insertids, 1;

getitem2 [email protected] + .baseid, 1,1,0,0,[email protected] + .insertids ,0,0,0;

close;

}

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

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


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

>> P.S Во второй менюшке null вконце

потому, что

for (set [email protected], 0; [email protected] <= getarraysize(.insertids); set [email protected], [email protected] + 1) {

set [email protected]$, [email protected]$+getitemname(.insertids[[email protected]]) + ":";

}

<= getarraysize(.insertids);

надо поставить < getarraysize(.insertids);

А вставляется не то, что надо, потому что переменная [email protected] используется там, где надо и там, где не надо :D Индекс массива с нужным камнем находится в переменной [email protected]

delitem [email protected] + .baseid, 1;

delitem .insertids[[email protected]], 1;

getitem2 [email protected] + .baseid, 1,1,0,0,.insertids[[email protected]] ,0,0,0;

P.S. Правильно, что взял getitem2 вместо atcommand (:

1

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


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

>> P.S Во второй менюшке null вконце

потому, что

for (set [email protected], 0; [email protected] <= getarraysize(.insertids); set [email protected], [email protected] + 1) {

set [email protected]$, [email protected]$+getitemname(.insertids[[email protected]]) + ":";

}

<= getarraysize(.insertids);

надо поставить < getarraysize(.insertids);

А вставляется не то, что надо, потому что переменная [email protected] используется там, где надо и там, где не надо :D Индекс массива с нужным камнем находится в переменной [email protected]

delitem [email protected] + .baseid, 1;

delitem .insertids[[email protected]], 1;

getitem2 [email protected] + .baseid, 1,1,0,0,.insertids[[email protected]] ,0,0,0;

P.S. Правильно, что взял getitem2 вместо atcommand (:

Спасибо за помощь. :)

0

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


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

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

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

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

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


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

Войти

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


Войти сейчас