unknown Опубликовано 1 августа, 2013 Жалоба Поделиться Опубликовано 1 августа, 2013 Всегда путался и не до конца понимаю систему проверок.Могли бы помочь решить проблему:Есть, например, 30 итемов с 10000-10030.Например нпц выдает каменьСистема такова, что бы получить высший уровень камня тебе нужно принести 10000ид и какойто лут, тогда он тебе выдает 10001ид и все по нарастающий. Как сделать что бы нпц автоматично узнавало какой у тебя сейчас камень(например какой уровень камня) и писало что тебе нужно принести для получения высшего уровня (следующего ид 10002(и так дальше))? Ссылка на комментарий Поделиться на другие сайты Поделиться
botka4aet Опубликовано 1 августа, 2013 Жалоба Поделиться Опубликовано 1 августа, 2013 for(set .@i,0;.@i<31;set .@i, .@i+1){if (countitem(.@i+10000) == 1){ mes "Вам нужно принести "+getitemname($itemid[.@i])+" "+$itemcount[.@i]+"x."; next; mes "Сделать апгрейд?"; if(select("Нет:Да")==1) close; -Проверка предметов- -Удаление предметов- -Выдача нового камня-}} Ссылка на комментарий Поделиться на другие сайты Поделиться
unknown Опубликовано 4 августа, 2013 Автор Жалоба Поделиться Опубликовано 4 августа, 2013 for(set .@i,0;.@i<31;set .@i, .@i+1){if (countitem(.@i+10000) == 1){mes "Вам нужно принести "+getitemname($itemid[.@i])+" "+$itemcount[.@i]+"x.";next;mes "Сделать апгрейд?";if(select("Нет:Да")==1) close;-Проверка предметов--Удаление предметов--Выдача нового камня-}}Честно говоря даже не знаю за что тут браться.Если есть время и желание помоги пожалуйста.Нужно сделать что бы игрок подошедший к нпц ткнув на него и ему показало какой камень у него сейчас есть и выдало текст с требующим лутом для получения следующего уровня камня (то есть 20002 забрал и выдал уже 20003 и так по нарастающей).Начиная с ид 20002 по 20031.Буду очень признателен. Ссылка на комментарий Поделиться на другие сайты Поделиться
botka4aet Опубликовано 4 августа, 2013 Жалоба Поделиться Опубликовано 4 августа, 2013 (изменено) for(set .@i,0;.@i<31;set .@i, .@i+1){if (countitem(.@i+10000) == 1){mes "Вам нужно принести "+getitemname($itemid[.@i])+" "+$itemcount[.@i]+"x.";next;mes "Сделать апгрейд?";if(select("Нет:Да")==1) close;-Проверка предметов--Удаление предметов--Выдача нового камня-}}Честно говоря даже не знаю за что тут браться.Если есть время и желание помоги пожалуйста.Нужно сделать что бы игрок подошедший к нпц ткнув на него и ему показало какой камень у него сейчас есть и выдало текст с требующим лутом для получения следующего уровня камня (то есть 20002 забрал и выдал уже 20003 и так по нарастающей).Начиная с ид 20002 по 20031.Буду очень признателен.for(set .@i,0;.@i<29;set .@i, .@i+1){if (countitem(.@i+20002) == 1){и в начале скрипта сделатьset $itemid[0],ид1,ид2,ид3,итд; - айдишники итемов для грейдаset $itemcount[0],ид1,ид2,ид3,итд; - число итемов для грейда Изменено 4 августа, 2013 пользователем botka4aet Ссылка на комментарий Поделиться на другие сайты Поделиться
unknown Опубликовано 9 августа, 2013 Автор Жалоба Поделиться Опубликовано 9 августа, 2013 for(set .@i,0;.@i<31;set .@i, .@i+1){if (countitem(.@i+10000) == 1){mes "Вам нужно принести "+getitemname($itemid[.@i])+" "+$itemcount[.@i]+"x.";next;mes "Сделать апгрейд?";if(select("Нет:Да")==1) close;-Проверка предметов--Удаление предметов--Выдача нового камня-}}Честно говоря даже не знаю за что тут браться.Если есть время и желание помоги пожалуйста.Нужно сделать что бы игрок подошедший к нпц ткнув на него и ему показало какой камень у него сейчас есть и выдало текст с требующим лутом для получения следующего уровня камня (то есть 20002 забрал и выдал уже 20003 и так по нарастающей).Начиная с ид 20002 по 20031.Буду очень признателен.for(set .@i,0;.@i<29;set .@i, .@i+1){if (countitem(.@i+20002) == 1){и в начале скрипта сделатьset $itemid[0],ид1,ид2,ид3,итд; - айдишники итемов для грейдаset $itemcount[0],ид1,ид2,ид3,итд; - число итемов для грейдаПробовал менял, но все без результатов. Не получается. Может у кого есть нпц с подобной системой, я бы уже с примера сам сделал? Ссылка на комментарий Поделиться на другие сайты Поделиться
SupR1g Опубликовано 11 августа, 2013 Жалоба Поделиться Опубликовано 11 августа, 2013 for(set .@i,0;.@i<31;set .@i, .@i+1){if (countitem(.@i+10000) == 1){mes "Вам нужно принести "+getitemname($itemid[.@i])+" "+$itemcount[.@i]+"x.";next;mes "Сделать апгрейд?";if(select("Нет:Да")==1) close;-Проверка предметов--Удаление предметов--Выдача нового камня-}}Честно говоря даже не знаю за что тут браться.Если есть время и желание помоги пожалуйста.Нужно сделать что бы игрок подошедший к нпц ткнув на него и ему показало какой камень у него сейчас есть и выдало текст с требующим лутом для получения следующего уровня камня (то есть 20002 забрал и выдал уже 20003 и так по нарастающей).Начиная с ид 20002 по 20031.Буду очень признателен.for(set .@i,0;.@i<29;set .@i, .@i+1){if (countitem(.@i+20002) == 1){и в начале скрипта сделатьset $itemid[0],ид1,ид2,ид3,итд; - айдишники итемов для грейдаset $itemcount[0],ид1,ид2,ид3,итд; - число итемов для грейдаПробовал менял, но все без результатов. Не получается.Может у кого есть нпц с подобной системой, я бы уже с примера сам сделал?Можно старым, дедовским способом без массивов(раз вы в них не алё), пример:prontera,x,y,z script Получение/Обгрейд Шняги 115,{mes "Привет, что желаете?";switch(select("Получить шнягу:Улучшить шнягу:Выйти")){case 1:if((countitem(ID лута) > кол-ва) && (countitem(ID лута) > кол-ва)) {mes "О тЦаеПись! У тебя есть лут, вот тебе за это шняга!";delitem id лута, кол-во;delitem id лута, кол-во;getitem 20000,1;}else {mes "На шнягу Вам нужен такой лут:";mes "Кол-во лута - ID лута";mes "Кол-во лута - ID лута";close;}case 2:if((countitem(20000)>0) && (countitem(ID лута) > кол-ва) && (countitem(ID лута) > кол-ва)) {mes "Ого! У тебя есть лут и шняга! Предлагаю улучшить шнягу.";switch(select("Согласен:Не, спс")){case 1:if((countitem(20000)>0) && (countitem(ID лута) > кол-ва) && (countitem(ID лута) > кол-ва)) {mes "Поздравляю, Вы получили улучшили шнягу до 2го уровня";delitem 20000,1;delitem id лута, кол-во;delitem id лута, кол-во;getitem 20001,1;close;if((countitem(20001)>0) && (countitem(ID лута) > кол-ва) && (countitem(ID лута) > кол-ва)) {mes "Поздравляю, Вы получили улучшили шнягу до 3го уровня";delitem 20001,1;delitem id лута, кол-во;delitem id лута, кол-во;getitem 20002,1;close;if((countitem(20002)>0) && (countitem(ID лута) > кол-ва) && (countitem(ID лута) > кол-ва)) {mes "Поздравляю, Вы получили улучшили шнягу до 4го уровня";delitem 20002,1;delitem id лута, кол-во;delitem id лута, кол-во;getitem 20003,1;close;if((countitem(20003)>0) && (countitem(ID лута) > кол-ва) && (countitem(ID лута) > кол-ва)) {mes "Поздравляю, Вы получили улучшили шнягу до 5го уровня";delitem 20003,1;delitem id лута, кол-во;delitem id лута, кол-во;getitem 20004,1;close;}else {if((countitem(20000)>0){mes "Для улучшения шняги вам нужно:";mes "Кол-во лута - ID лута";mes "Кол-во лута - ID лута";close;}if((countitem(20001)>0){mes "Для улучшения шняги вам нужно:";mes "Кол-во лута - ID лута";mes "Кол-во лута - ID лута";close;}if((countitem(20002)>0){mes "Для улучшения шняги вам нужно:";mes "Кол-во лута - ID лута";mes "Кол-во лута - ID лута";close;}if((countitem(20003)>0){mes "Для улучшения шняги вам нужно:";mes "Кол-во лута - ID лута";mes "Кол-во лута - ID лута";close;}case 2:mes "Удачи!";close;case 3:mes "Пока";close;}Грубый пример, который не ориентирован на экономию места и красоту скрипта, но должен дать понять, примерную, технологию и, в каком то смысле, упростить автору осознать динамику скрипта. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения