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

Забирать итем.


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

Метка OnPCLoadMapEvent:

Проверяешь карту, если карта не соответствует нужной - ищешь в инвентаре лутинку и забираешь.

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

Метка OnPCLoadMapEvent:

Проверяешь карту, если карта не соответствует нужной - ищешь в инвентаре лутинку и забираешь.

а можно как то примером.

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

OnPCLoadMapEvent:
getmapxy(.@map$, .@x, .@y, 0);
if ( .@map$ != "prontera") {
if (countitem(601) > 0)
delitem 601, countitem(601);
}
end;

При смене карты проверяет название текущей карты у игрока. Если карта - НЕ пронтера, проверяет количество предметов с айди 601 в инвентаре. Если их больше 0, то забирает все, что есть. Если мне память не изменяет, для использования OnPCLoadMapEvent должен на всех картах стоять мапфлаг loadevent или как-то так.

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

OnPCLoadMapEvent:
getmapxy(.@map$, .@x, .@y, 0);
if ( .@map$ != "prontera") {
if (countitem(601) > 0)
delitem 601, countitem(601);
}
end;

При смене карты проверяет название текущей карты у игрока. Если карта - НЕ пронтера, проверяет количество предметов с айди 601 в инвентаре. Если их больше 0, то забирает все, что есть. Если мне память не изменяет, для использования OnPCLoadMapEvent должен на всех картах стоять мапфлаг loadevent или как-то так.

А не проще использовать strcharinfo(3) ? Зачем лишние переменные?

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

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. А чем временные переменные, которые после разговора с НПЦ уничтожатся вдруг помешали? О.о

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

Проще. Сила привычки она такая, да х)

P.S. А чем временные переменные, которые после разговора с НПЦ уничтожатся вдруг помешали? О.о

В принципе ни чем не мешают, опять же, сила привычки. :)

Привык к тому, что под каждую переменную выделяется память, и лишние переменные которые нигде не использованы, наводят панику.

Как говорится, "Оптимизация превыше всего".

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

возник вопрос как сделать что бы допустип паладин (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)

а как выдать не доходит.

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

решил не делать тему.

как сделать так что бы запретить брать 607 итемов , больше чем 50 штук на определенной локации?

т.е ограничить количество.

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

появилась еще идея как запретить выдачу определенного итема если он у тебя уже имеется в инвентаре?

т,е, тыкнул на нпц он дал 50 (607), покак игрок их все не потратит он не сможет сново взять 50 шт(607)

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

что то не понимаю ни фига)))

- 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;
}

предмет выдается через другого нпц.

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

Ох... Ну блин, я даже не знаю, как цензурно сказать-то. Следует не наугад использовать команду, а хотя бы оп исание в доках почитать) Ну и проверку эту надо вставлять туда же, где выдается лут.


if (countitem(607) > 0) {
mes "Ты еще не потратил выданное ранее";
} else {
/* код выдачи предмета */
}

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

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