botka4aet Опубликовано 25 марта, 2014 Жалоба Поделиться Опубликовано 25 марта, 2014 Вот попытался сделать, чтобы он выдавал за 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 .@j,0; .@j<getarraysize(@hatid) ; set .@j,.@j+1 ){set .@menu$,.@menu$+getitemname(@hatid[.@j])+":";}for(set .@i,0; .@i<getarraysize(@stoneid) ; set .@i,.@i+1 ){set .@menu$,.@menu$+getitemname(@stoneid[.@i])+":";}mes "[Костюмер]";mes "Посмотри на мои шапочки!";mes "Они не дают бонусов, не занимают место обычной шапки, зато очень красивые!";switch(select(.@menu$)) {case 1:set .@j,0;next;set .@i,0;break;case 2:set .@j,1;next;set .@i,1;break;case 3:set .@j,2;next;set .@i,2;break;case 4:set .@j,3;next;set .@i,3;break;case 5:set .@j,4;next;set .@i,4;break;case 6:set .@j,5;next;set .@i,5;break;case 7:set .@j,6;next;set .@i,6;break;case 8:set .@j,7;next;set .@i,7;break;case 9:set .@j,8;next;set .@i,8;break;case 10:set .@j,9;next;set .@i,9;break;case 11:set .@j,10;next;set .@i,10;break;case 12:set .@j,11;next;set .@i,11;break;case 13:set .@j,12;next;set .@i,12;break;case 14:set .@j,13;next;set .@i,13;break;}//default: ////set .@j,1;mes "[Костюмер]";mes "["+getitemname(@hatid[.@j])+"]";mes "["+getitemname(@stoneid[.@i])+"]";mes "Для этой костюмной шапочки необходимо:";mes " "+getitemname(@loot01id[.@j])+" "+@loot01cnt[.@j]+" шт.";mes " "+getitemname(@loot02id[.@j])+" "+@loot02cnt[.@j]+" шт.";mes " "+getitemname(@loot03id[.@j])+" "+@loot03cnt[.@j]+" шт.";next;mes "[Костюмер]";if (select( "Я собрал все необходимое!:Хорошо, я запомнил.") != 1) {mes "Приходи, когда захочешь."; close;}if(countitem(@loot01id[.@j]) < @loot01cnt[.@j] || countitem(@loot02id[.@j]) < @loot02cnt[.@j] || countitem(@loot03id[.@j]) < @loot03cnt[.@j]) {mes "У тебя нет достаточного количества вещей, чтобы получить шапочку. Возвращайся, когда соберешь все.";close;}mes "[Костюмер]";mes "Одну секунду...";delitem @loot01id[.@j],@loot01cnt[.@j];delitem @loot02id[.@j],@loot02cnt[.@j];delitem @loot03id[.@j],@loot03cnt[.@j];atcommand "@item2"+" "+@hatid[.@j] 1 1 0 0"+" "+@stoneid[.@i]"+" "+0 0 0";next;mes "[Костюмер]";mes "Вуаля!";mes "Носи с удовольствием!";close;}pron_mall,104,76,4 script Костюмер#1 864,{ Ссылка на комментарий Поделиться на другие сайты Поделиться
Elmiria Опубликовано 25 марта, 2014 Жалоба Поделиться Опубликовано 25 марта, 2014 (изменено) atcommand "@item2"+" "+@hatid[.@j] 1 1 0 0"+" "+@stoneid[.@i]"+" "+0 0 0";Внимательнее надо быть.ага, поправила, вообще еще путаюсь, что надо выносить за кавычки, а что нетВот попытался сделать, чтобы он выдавал за 3 стоуна, крылья со стоуном внутри, но нпц просто пропало..причем тут мой скрипт? у тебя другая задача, другие переменные И другая локация. Тем более что его тоже переделать нужно, хоть он и работает без переделки Изменено 25 марта, 2014 пользователем Elmiria Ссылка на комментарий Поделиться на другие сайты Поделиться
b72g Опубликовано 25 марта, 2014 Автор Жалоба Поделиться Опубликовано 25 марта, 2014 Да координаты есть, просто не вписал сюда. Ссылка на комментарий Поделиться на другие сайты Поделиться
b72g Опубликовано 25 марта, 2014 Автор Жалоба Поделиться Опубликовано 25 марта, 2014 atcommand "@item2"+" "+@hatid[.@j] 1 1 0 0"+" "+@stoneid[.@i]"+" "+0 0 0";Внимательнее надо быть.ага, поправила, вообще еще путаюсь, что надо выносить за кавычки, а что нетВот попытался сделать, чтобы он выдавал за 3 стоуна, крылья со стоуном внутри, но нпц просто пропало..причем тут мой скрипт? у тебя другая задача, другие переменные И другая локация. Тем более что его тоже переделать нужно, хоть он и работает без переделкиДа думал может с ним, что получиться сделать...Первый что делал вообще не нажимается.. Ну я там нагородил очень.prontera,151,177,5 script Wing Man 115,{set .baseid, 20000;set .countids, 108; // Количество вещейfor (set .@i, 1; .@i <= .countids; set .@i, .@i + 1) {set .@menu$, .@menu$+getitemname(.baseid + .@i) + ":";}set .insertids[0], 1991, 1992, 1993, 1994, 1995, 1996;for (set .@j, 0; .@j <= getarraysize(.insertids); set .@j, .@j + 1) { set .@menu$, .@menu$+getitemname(.insertids[.@j]) + ":";}mes "Выбери крылья";set .@choose, select(.@menu$);next;mes "Я теперь выбери стоун";set .@insert, select(.@menu$) - 1; next;getitem .@choose + .baseid, 1; // Получает выбранный предмет в инвентарьclose;} Ссылка на комментарий Поделиться на другие сайты Поделиться
botka4aet Опубликовано 25 марта, 2014 Жалоба Поделиться Опубликовано 25 марта, 2014 У тебя все запихивается в одно .@menu$ Ссылка на комментарий Поделиться на другие сайты Поделиться
Кеник Опубликовано 25 марта, 2014 Жалоба Поделиться Опубликовано 25 марта, 2014 У тебя все запихивается в одно .@menu$Все правильно. Нахрена ему плодить их тонну? Просто надо сбросить перед второй его генерацией..prontera,151,177,5 script Wing Man 115,{set .baseid, 20000;set .countids, 108; // Количество вещейfor (set .@i, 1; .@i <= .countids; set .@i, .@i + 1) {set .@menu$, .@menu$+getitemname(.baseid + .@i) + ":";}mes "Выбери крылья";set .@choose, select(.@menu$);next;setarray .insertids[0], 1991, 1992, 1993, 1994, 1995, 1996;set .@menu$, "";for (set .@j, 0; .@j <= getarraysize(.insertids); set .@j, .@j + 1) { set .@menu$, .@menu$+getitemname(.insertids[.@j]) + ":";}mes "Я теперь выбери стоун";set .@insert, select(.@menu$) - 1;next;delitem .@choose + .baseid, 1;getitem .@choose + .baseid, 1; // Получает выбранный предмет в инвентарь (Заменить на нормальную команду для получения нужного предмета)close;}P.S. Массивы объявляются командой setarray! >.< Ссылка на комментарий Поделиться на другие сайты Поделиться
botka4aet Опубликовано 25 марта, 2014 Жалоба Поделиться Опубликовано 25 марта, 2014 У тебя все запихивается в одно .@menu$ Все правильно. Нахрена ему плодить их тонну? Просто надо сбросить перед второй его генерацией.. prontera,151,177,5 script Wing Man 115,{set .baseid, 20000;set .countids, 108; // Количество вещейfor (set .@i, 1; .@i <= .countids; set .@i, .@i + 1) {set .@menu$, .@menu$+getitemname(.baseid + .@i) + ":";}mes "Выбери крылья";set .@choose, select(.@menu$);next;setarray .insertids[0], 1991, 1992, 1993, 1994, 1995, 1996;set .@menu$, "";for (set .@j, 0; .@j <= getarraysize(.insertids); set .@j, .@j + 1) {set .@menu$, .@menu$+getitemname(.insertids[.@j]) + ":";}mes "Я теперь выбери стоун";set .@insert, select(.@menu$) - 1;next;delitem .@choose + .baseid, 1;getitem .@choose + .baseid, 1; // Получает выбранный предмет в инвентарь (Заменить на нормальную команду для получения нужного предмета)close;} P.S. Массивы объявляются командой setarray! >.< Я указал на ошибку. Оптимизация - другое дело Ссылка на комментарий Поделиться на другие сайты Поделиться
b72g Опубликовано 25 марта, 2014 Автор Жалоба Поделиться Опубликовано 25 марта, 2014 (изменено) prontera,151,177,5 script Wing Man 115,{set .baseid, 20000;set .countids, 108; // Количество вещейfor (set .@i, 1; .@i <= .countids; set .@i, .@i + 1) {set .@menu$, .@menu$+getitemname(.baseid + .@i) + ":";}mes "Выбери крылья";set .@choose, select(.@menu$);next;setarray .insertids[0], 1991, 1992, 1993, 1994, 1995, 1996;set .@menu$, "";for (set .@j, 0; .@j <= getarraysize(.insertids); set .@j, .@j + 1) {set .@menu$, .@menu$+getitemname(.insertids[.@j]) + ":";}mes "Я теперь выбери стоун";set .@insert, select(.@menu$) - 1;next;delitem .@choose + .baseid, 1;atcommand "@item2"+" "+@baseid[.@i]"+" "+1 1 0 0"+" "+@insertids[.@j]"+" "+0 0 0";close;}Попробовал комманду сделать, не пашет. Делал по разному. всеравно че то.. Изменено 25 марта, 2014 пользователем b72g Ссылка на комментарий Поделиться на другие сайты Поделиться
Elmiria Опубликовано 25 марта, 2014 Жалоба Поделиться Опубликовано 25 марта, 2014 поработай детально с каждой переменной. Как меняется на что и чего нужно получить нам. У тебя есть переменные взятые с неба, вот и не работает.prontera,151,177,5 script Wing Man 115,{set .baseid, 20000;set .countids, 108; // Количество вещейfor (set .@i, 1; .@i <= .countids; set .@i, .@i + 1) {set .@menu$, .@menu$+getitemname(.baseid + .@i) + ":";}mes "Выбери крылья";set .@choose, select(.@menu$) -1;next;setarray .insertids[0], 1991, 1992, 1993, 1994, 1995, 1996;set .@menu$, "";for (set .@j, 0; .@j <= getarraysize(.insertids); set .@j, .@j + 1) {set .@menu$, .@menu$+getitemname(.insertids[.@j]) + ":";}mes "Я теперь выбери стоун";set .@insert, select(.@menu$) - 1;next;delitem .@choose + .baseid, 1;atcommand "@item2"+" "+@baseid[.@i]"+" "+1 1 0 0"+" "+@insertids[.@j]"+" "+0 0 0";close;}Попробовал комманду сделать, не пашет. Делал по разному. всеравно че то..подумай над этим 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
b72g Опубликовано 25 марта, 2014 Автор Жалоба Поделиться Опубликовано 25 марта, 2014 поработай детально с каждой переменной. Как меняется на что и чего нужно получить нам. У тебя есть переменные взятые с неба, вот и не работает. prontera,151,177,5 script Wing Man 115,{ set .baseid, 20000; set .countids, 108; // Количество вещей for (set .@i, 1; .@i <= .countids; set .@i, .@i + 1) { set .@menu$, .@menu$+getitemname(.baseid + .@i) + ":"; } mes "Выбери крылья"; set .@choose, select(.@menu$) -1; next; setarray .insertids[0], 1991, 1992, 1993, 1994, 1995, 1996; set .@menu$, ""; for (set .@j, 0; .@j <= getarraysize(.insertids); set .@j, .@j + 1) { set .@menu$, .@menu$+getitemname(.insertids[.@j]) + ":"; } mes "Я теперь выбери стоун"; set .@insert, select(.@menu$) - 1; next; delitem .@choose + .baseid, 1; atcommand "@item2"+" "+@baseid[.@i]"+" "+1 1 0 0"+" "+@insertids[.@j]"+" "+0 0 0"; close; } Попробовал комманду сделать, не пашет. Делал по разному. всеравно че то.. подумай над этим Спасибо что помучила меня. Вообщем попарился и получилось. getitem2 .@choose + .baseid, 1,1,0,0,.@choose + .insertids ,0,0,0; Ссылка на комментарий Поделиться на другие сайты Поделиться
Elmiria Опубликовано 25 марта, 2014 Жалоба Поделиться Опубликовано 25 марта, 2014 молодец) Грац с лвлом)) XDD Ссылка на комментарий Поделиться на другие сайты Поделиться
b72g Опубликовано 25 марта, 2014 Автор Жалоба Поделиться Опубликовано 25 марта, 2014 (изменено) Вообщем, почему то стоуны неадекватно вставляются, выбираешь один, вставляется другой...Получается так..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 .@i, 1; .@i <= .countids; set .@i, .@i + 1) {set .@menu$, .@menu$+getitemname(.baseid + .@i) + ":";}mes "Выбери крылья";set .@choose, select(.@menu$);next;setarray .insertids[0], 1991, 1992, 1993, 1994, 1995, 1996;set .@menu$, "";for (set .@j, 0; .@j <= getarraysize(.insertids); set .@j, .@j + 1) {set .@menu$, .@menu$+getitemname(.insertids[.@j]) + ":";}mes "Я теперь выбери стоун";set .@insert, select(.@menu$) - 1;next;delitem .@choose + .baseid, 1;delitem .@choose + .insertids, 1;getitem2 .@choose + .baseid, 1,1,0,0,.@choose + .insertids ,0,0,0;close;} Изменено 25 марта, 2014 пользователем b72g Ссылка на комментарий Поделиться на другие сайты Поделиться
Кеник Опубликовано 26 марта, 2014 Жалоба Поделиться Опубликовано 26 марта, 2014 >> P.S Во второй менюшке null вконце потому, что for (set .@j, 0; .@j <= getarraysize(.insertids); set .@j, .@j + 1) { set .@menu$, .@menu$+getitemname(.insertids[.@j]) + ":"; } <= getarraysize(.insertids); надо поставить < getarraysize(.insertids); А вставляется не то, что надо, потому что переменная .@choose используется там, где надо и там, где не надо Индекс массива с нужным камнем находится в переменной .@insert delitem .@choose + .baseid, 1; delitem .insertids[.@insert], 1; getitem2 .@choose + .baseid, 1,1,0,0,.insertids[.@insert] ,0,0,0; P.S. Правильно, что взял getitem2 вместо atcommand (: 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
b72g Опубликовано 26 марта, 2014 Автор Жалоба Поделиться Опубликовано 26 марта, 2014 >> P.S Во второй менюшке null вконце потому, что for (set .@j, 0; .@j <= getarraysize(.insertids); set .@j, .@j + 1) { set .@menu$, .@menu$+getitemname(.insertids[.@j]) + ":"; } <= getarraysize(.insertids); надо поставить < getarraysize(.insertids); А вставляется не то, что надо, потому что переменная .@choose используется там, где надо и там, где не надо Индекс массива с нужным камнем находится в переменной .@insert delitem .@choose + .baseid, 1; delitem .insertids[.@insert], 1; getitem2 .@choose + .baseid, 1,1,0,0,.insertids[.@insert] ,0,0,0; P.S. Правильно, что взял getitem2 вместо atcommand (: Спасибо за помощь. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения