ggRo Опубликовано 11 марта, 2015 Жалоба Поделиться Опубликовано 11 марта, 2015 Добрые люби подскажите, при входе на локацию знаю как выдать итем, а как сделать что бы итем забирался когда персонаж уходит у нее. Ссылка на комментарий Поделиться на другие сайты Поделиться
Кеник Опубликовано 11 марта, 2015 Жалоба Поделиться Опубликовано 11 марта, 2015 Метка OnPCLoadMapEvent:Проверяешь карту, если карта не соответствует нужной - ищешь в инвентаре лутинку и забираешь. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
ggRo Опубликовано 11 марта, 2015 Автор Жалоба Поделиться Опубликовано 11 марта, 2015 Метка OnPCLoadMapEvent:Проверяешь карту, если карта не соответствует нужной - ищешь в инвентаре лутинку и забираешь.а можно как то примером. Ссылка на комментарий Поделиться на другие сайты Поделиться
Кеник Опубликовано 11 марта, 2015 Жалоба Поделиться Опубликовано 11 марта, 2015 OnPCLoadMapEvent:getmapxy(.@map$, .@x, .@y, 0);if ( .@map$ != "prontera") {if (countitem(601) > 0) delitem 601, countitem(601);}end;При смене карты проверяет название текущей карты у игрока. Если карта - НЕ пронтера, проверяет количество предметов с айди 601 в инвентаре. Если их больше 0, то забирает все, что есть. Если мне память не изменяет, для использования OnPCLoadMapEvent должен на всех картах стоять мапфлаг loadevent или как-то так. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Nurkz Опубликовано 11 марта, 2015 Жалоба Поделиться Опубликовано 11 марта, 2015 OnPCLoadMapEvent:getmapxy(.@map$, .@x, .@y, 0);if ( .@map$ != "prontera") {if (countitem(601) > 0) delitem 601, countitem(601);}end;При смене карты проверяет название текущей карты у игрока. Если карта - НЕ пронтера, проверяет количество предметов с айди 601 в инвентаре. Если их больше 0, то забирает все, что есть. Если мне память не изменяет, для использования OnPCLoadMapEvent должен на всех картах стоять мапфлаг loadevent или как-то так.А не проще использовать strcharinfo(3) ? Зачем лишние переменные? Ссылка на комментарий Поделиться на другие сайты Поделиться
Кеник Опубликовано 11 марта, 2015 Жалоба Поделиться Опубликовано 11 марта, 2015 OnPCLoadMapEvent:getmapxy(.@map$, .@x, .@y, 0);if ( .@map$ != "prontera") {if (countitem(601) > 0) delitem 601, countitem(601);}end;При смене карты проверяет название текущей карты у игрока. Если карта - НЕ пронтера, проверяет количество предметов с айди 601 в инвентаре. Если их больше 0, то забирает все, что есть. Если мне память не изменяет, для использования OnPCLoadMapEvent должен на всех картах стоять мапфлаг loadevent или как-то так.А не проще использовать strcharinfo(3) ? Зачем лишние переменные?Проще. Сила привычки она такая, да х)P.S. А чем временные переменные, которые после разговора с НПЦ уничтожатся вдруг помешали? О.о Ссылка на комментарий Поделиться на другие сайты Поделиться
Nurkz Опубликовано 11 марта, 2015 Жалоба Поделиться Опубликовано 11 марта, 2015 Проще. Сила привычки она такая, да х) P.S. А чем временные переменные, которые после разговора с НПЦ уничтожатся вдруг помешали? О.о В принципе ни чем не мешают, опять же, сила привычки. Привык к тому, что под каждую переменную выделяется память, и лишние переменные которые нигде не использованы, наводят панику. Как говорится, "Оптимизация превыше всего". Ссылка на комментарий Поделиться на другие сайты Поделиться
ggRo Опубликовано 13 марта, 2015 Автор Жалоба Поделиться Опубликовано 13 марта, 2015 (изменено) возник вопрос как сделать что бы допустип паладин (4015) получал 10(607) а чампион (4016) получал 20(607)- script test -1,{OnPCLoadMapEvent:getmapxy(.@map$, .@x, .@y, 0);if ( .@map$ != "prontera") {if (countitem(607) > 0)delitem 607, countitem(607);}end;}prontera,152,91,6 script test2 951,{getitem 607,5;}prontera,152,95,5 duplicate(test2) test2 #h1-1 951опять же запретить определенной профе допер как. if(Class > id && Class < id)а как выдать не доходит. Изменено 13 марта, 2015 пользователем ggRo Ссылка на комментарий Поделиться на другие сайты Поделиться
Nurkz Опубликовано 13 марта, 2015 Жалоба Поделиться Опубликовано 13 марта, 2015 switch(Class){ case 4015: getitem 607, 10; break; case 4016: getitem 607, 20; break; default: break;} 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
ggRo Опубликовано 15 марта, 2015 Автор Жалоба Поделиться Опубликовано 15 марта, 2015 решил не делать тему. как сделать так что бы запретить брать 607 итемов , больше чем 50 штук на определенной локации?т.е ограничить количество. Ссылка на комментарий Поделиться на другие сайты Поделиться
ggRo Опубликовано 16 марта, 2015 Автор Жалоба Поделиться Опубликовано 16 марта, 2015 появилась еще идея как запретить выдачу определенного итема если он у тебя уже имеется в инвентаре?т,е, тыкнул на нпц он дал 50 (607), покак игрок их все не потратит он не сможет сново взять 50 шт(607) Ссылка на комментарий Поделиться на другие сайты Поделиться
Кеник Опубликовано 16 марта, 2015 Жалоба Поделиться Опубликовано 16 марта, 2015 Ну элементарный countitem() же! 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
ggRo Опубликовано 16 марта, 2015 Автор Жалоба Поделиться Опубликовано 16 марта, 2015 что то не понимаю ни фига)))- script test2 -1,{OnPCLoadMapEvent:getmapxy(.@map$, .@x, .@y, 0);if ( .@map$ != "prontera"){if (countitem(607) > 15)countitem ("607,15");}end;}пробовал и так- script test2 -1,{OnPCLoadMapEvent:getmapxy(.@map$, .@x, .@y, 0);if ( .@map$ != "prontera"){if (countitem(607) > 15)//getitem 607, countitem (607);countitem (607);}end;}предмет выдается через другого нпц. Ссылка на комментарий Поделиться на другие сайты Поделиться
Кеник Опубликовано 16 марта, 2015 Жалоба Поделиться Опубликовано 16 марта, 2015 Ох... Ну блин, я даже не знаю, как цензурно сказать-то. Следует не наугад использовать команду, а хотя бы оп исание в доках почитать) Ну и проверку эту надо вставлять туда же, где выдается лут.if (countitem(607) > 0) { mes "Ты еще не потратил выданное ранее";} else { /* код выдачи предмета */} 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения