Автор: MaxxWell: Дата: 02.06.2010
Чтобы добавить в лут тцг ко всем мвп, например составить лист чтото вроде "MVPlist.txt" с именами нужных мвп, чтобы ко всем им добовлялся в лут тцг, с одинаковым % выпадения?=)
И чтобы добавить в лут к мобам, тцг нужно только прописать его в моб дб?
Автор: MaxxWell: Дата: 02.06.2010
Эм, ты помоему немного нетак понял, или я недопонимаю, я спрашиваю можно чтобы составить список мвп, и в списке подписал 1 раз итем, и у всех он появляется в дропе?
Автор: Sanasol: Дата: 02.06.2010
Смотри.
Делаешь так
- script mpv_drop -1,{
OnNPCKillEvent:
if ( id убитого моба == MVP id ) { getitem }
}
т.е. проверку на айди моба. вписываешь првоерку на все айди МВП. а если в списке такого айди нет значит идем мимо. и это не МВП
ТОлько не найти мне тчото как узнаать айди того кого убил
Автор: MaxxWell: Дата: 02.06.2010
Теперь понял=) есле найдеш скажи, тоже полезно=)
а можно так поставить % выпадения?
и как прописать "id убитого моба"?=)
Автор: Sanasol: Дата: 02.06.2010
- script OnNPCKillEvent -1,{
OnNPCKillEvent:
if (killedrid==1002){dispbottom "Yo Yo"; getitem 7227,1;}
}
Автор: nomn: Дата: 02.06.2010
- script MvP_dropper -1,{
OnNPCKillEvent:
if (killedrid == ID || killedrid == ID1 || killedrid == ID1 || killedrid == ID1 || killedrid == ID1 || killedrid == ID1 || killedrid == ID1 || killedrid == ID1)
{
set @chmvp, rand(1,100);
if (@chmvp != 27) { end; }
getitem 7227,1; end;
}
end;
}
Автор: MaxxWell: Дата: 02.06.2010
ой прости, пропусил
Автор: nomn: Дата: 02.06.2010
А если внимательно прочитать мой пост?
Автор: MaxxWell: Дата: 02.06.2010
Рафф в твоем варианте, афина не ругается, но скрипт не работает (поставил 9% из 20 мобов не 1 тцг)
- script MvPdropper -1,{
OnNPCKillEvent:
if (killedrid == 1147 || killedrid == 1289 || killedrid == 1511 || killedrid == 1150 || killedrid == 1708 || killedrid == 1689 || killedrid == 1388 || killedrid == 1096 || killedrid == 1120 || killedrid == 1582 || killedrid == 1650 || killedrid == 1630 || killedrid == 1581 || killedrid == 1038 || killedrid == 1087 || killedrid == 1190 || killedrid == 1157 || killedrid == 1492)
{
set @chmvp, rand(9,100);
if (@chmvp != 27) { end; }
getitem 7227,1; end;
}
end;
}
Автор: Мяфк: Дата: 02.06.2010
Я давно интересовался этим нпц. Но я как-то реализовал. Сейчас скрипт не остался... Вот что мне отвечалии на форуме, ТЦГ падало со всех мобов.
Всё дело в ||.
Если сделать так:
Код
if (killedrid==1096) { getitem 7227,1; end; }
То всё работает.
Если добавить хотя бы одну ||, то ТЦГ даёться уже со всех мобов.
- script drop_mvp -1,{
OnNPCKillEvent:
if (killedrid == 1511 || 1647 || 1785 || 1039 || 1874 || 1272 || 1719 || 1046 || 1389 || 1112 || 1115 || 1658 || 1957 || 1418 || 1871 || 1252 || 1768 || 1086 || 1885 || 1649 || 1651 || 1832 || 1734 || 1779 || 1646 || 1373 || 1147 || 1708 || 1059 || 1150 || 1956 || 1190 || 1038 || 1157 || 1159 || 1623 || 1492 || 1650 || 1251 || 1583 || 1312 || 1751 || 1685 || 1630 || 1648 || 1917) goto L_ok;
end;
L_ok:
if(rand(20) == 1) getitem 7227,1;
end;
}
Автор: MaxxWell: Дата: 02.06.2010
можно и через сорцы попробовать=)
Автор: Мяфк: Дата: 02.06.2010
script.c
BUILDIN_FUNC(getmonsterinfo)
{
struct mob_db *mob;
int mob_id;
mob_id = script_getnum(st,2);
if (!mobdb_checkid(mob_id)) {
ShowError("buildin_getmonsterinfo: Wrong Monster ID: %i\n", mob_id);
if ( !script_getnum(st,3) ) //requested a string
script_pushconststr(st,"null");
else
script_pushint(st,-1);
return -1;
}
mob = mob_db(mob_id);
switch ( script_getnum(st,3) ) {
case 0: script_pushstrcopy(st,mob->jname); break;
case 1: script_pushint(st,mob->lv); break;
case 2: script_pushint(st,mob->status.max_hp); break;
case 3: script_pushint(st,mob->base_exp); break;
case 4: script_pushint(st,mob->job_exp); break;
case 5: script_pushint(st,mob->status.rhw.atk); break;
case 6: script_pushint(st,mob->status.rhw.atk2); break;
case 7: script_pushint(st,mob->status.def); break;
case 8: script_pushint(st,mob->status.mdef); break;
case 9: script_pushint(st,mob->status.str); break;
case 10: script_pushint(st,mob->status.agi); break;
case 11: script_pushint(st,mob->status.vit); break;
case 12: script_pushint(st,mob->status.int_); break;
case 13: script_pushint(st,mob->status.dex); break;
case 14: script_pushint(st,mob->status.luk); break;
case 15: script_pushint(st,mob->status.rhw.range); break;
case 16: script_pushint(st,mob->range2); break;
case 17: script_pushint(st,mob->range3); break;
case 18: script_pushint(st,mob->status.size); break;
case 19: script_pushint(st,mob->status.race); break;
case 20: script_pushint(st,mob->status.def_ele); break;
case 21: script_pushint(st,mob->status.mode); break;
default: script_pushint(st,-1); //wrong Index
}
return 0;
}
case 22: script_pushint(st,mob->mexp); break;
BUILDIN_FUNC(getmonsterinfo)
{
struct mob_db *mob;
int mob_id;
mob_id = script_getnum(st,2);
if (!mobdb_checkid(mob_id)) {
ShowError("buildin_getmonsterinfo: Wrong Monster ID: %i\n", mob_id);
if ( !script_getnum(st,3) ) //requested a string
script_pushconststr(st,"null");
else
script_pushint(st,-1);
return -1;
}
mob = mob_db(mob_id);
switch ( script_getnum(st,3) ) {
case 0: script_pushstrcopy(st,mob->jname); break;
case 1: script_pushint(st,mob->lv); break;
case 2: script_pushint(st,mob->status.max_hp); break;
case 3: script_pushint(st,mob->base_exp); break;
case 4: script_pushint(st,mob->job_exp); break;
case 5: script_pushint(st,mob->status.rhw.atk); break;
case 6: script_pushint(st,mob->status.rhw.atk2); break;
case 7: script_pushint(st,mob->status.def); break;
case 8: script_pushint(st,mob->status.mdef); break;
case 9: script_pushint(st,mob->status.str); break;
case 10: script_pushint(st,mob->status.agi); break;
case 11: script_pushint(st,mob->status.vit); break;
case 12: script_pushint(st,mob->status.int_); break;
case 13: script_pushint(st,mob->status.dex); break;
case 14: script_pushint(st,mob->status.luk); break;
case 15: script_pushint(st,mob->status.rhw.range); break;
case 16: script_pushint(st,mob->range2); break;
case 17: script_pushint(st,mob->range3); break;
case 18: script_pushint(st,mob->status.size); break;
case 19: script_pushint(st,mob->status.race); break;
case 20: script_pushint(st,mob->status.def_ele); break;
case 21: script_pushint(st,mob->status.mode); break;
case 22: script_pushint(st,mob->mexp); break;
default: script_pushint(st,-1); //wrong Index
}
return 0;
}
if(getmonsterinfo(killedrid,22))
OnNPCKillEvent:
if((getmonsterinfo(killedrid,22)) && (rand(100) ==1)) getitem 7227,1;
Автор: MaxxWell: Дата: 02.07.2010
опс сори, перечитал - понял=)