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

меню по проверке на инвентарь


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

Цель открыть меню в зависимости от имеющегося лута.

скажем имеется итем id 909 и 910

если имеются оба, то в меню 2 варианта.

если имеется один, один вариант.

если нет, то нет меню.


setarray .@item_id[1], 909, 910;
for (set .@i,1; .@i <= 2; set .@i,.@i+1) {
if (@inventorylist_id[.@item] == .@item_id[.@i]) {
set .@items,.@items[.@item_id];
}
}
switch(select(.@items)){
case 1:
mes "1";
close;
end;
case 2:
mes "2";
close;
end;
}

что, я делаю не так?

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

Попробуй покопать в сторону функции countitem

P.S.

set .@items,.@items[.@item_id];

Что, по твоему, делает эта строчка?

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


setarray .@item_id[1], 909, 910;
set .menu$, "";
for (set .@i, 1; .@i < getarraysize(.@item_id); set .@i, .@i + 1){
if (countitem(.@item_id[.@i]) > 0) {
set .menu$, .menu$ + .@i + ":";
}
}
switch(select(.@items)){
case 1:
mes "1";
close;
end;
case 2:
mes "2";
close;
end;
}

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

[Warning]: Unexpected type for argument 1. Expected string.

[Debug]: Data: variable name='.@items' index=0

[Debug]: Function: select

[Debug]: Source (NPC): day at prontera (130,203)

Unsee_it1.jpg

Тьфу блин.. Копипаст зло. Ну уж тут-то можно было и догадаться..)

switch(select(.@items)){

switch(select(.menu$)){

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

Всем большое спасибо, работает частично =\

TEST


prontera,133,206,3 script day123123 741,{
setarray .@item_id[1], 909, 910;
set .menu$, "";
for (set .@i, 1; .@i < getarraysize(.@item_id); set .@i, .@i + 1){
if (countitem(.@item_id[.@i]) > 0) {
set .menu$, .menu$ + .@i + ":";
}
}
switch(select(.menu$)){
case 1:
mes "1";
close;
end;
case 2:
mes "2";
close;
end;
}
}

Продолжаем эвент =)

Проблема следующая:

при отсутствии 1-ого итема (909), но при наличии 910 кидает на case 1:

Вопрос??

Как в зависимости от итем ID привезать к определенному case ?

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


set .menu$, "";

for (set .@i, 1; .@i < getarraysize(.@item_id); set .@i, .@i + 1){
if (countitem(.@item_id[.@i]) > 0) {
set .menu$, .menu$ + .@i + ":";
}
}

switch(select(.menu$)){

замените на:


set .@menu$,"";

for (set .@i, 1; .@i < getarraysize(.@item_id); set .@i, .@i + 1) {
if (countitem(.@item_id[.@i]) > 0) {
set .@menu$, .@menu$ + .@i;
}

set .@menu$, .@menu$ + ":";
}

switch(select(.@menu$)) {

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

действительно, кидает куда нужно, СПАСИБО!

Теперь я могу выбрать, какой катар вставить в голову =D

image.png

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

действительно, кидает куда нужно, СПАСИБО!

Теперь я могу выбрать, какой катар вставить в голову =D

image.png

Омг...я бы 2 пики вставил в голову...что уж там...О_О

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

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