Хотите играть бесплатно? Приходите на AWRO!

AWRO: бесплатный сервер игры Ragnarok Online

Ragnarok Online: сервер AWRO

.

Об алутиде...

команда @alootid | Ragnarok Online
Devilman 01.11.2009, 12:11


Raggler
*****



Кара предлогаю добавить команды о частичном подборе лута @alootid только +2 вещи еше...то есть получиться что вводим команду на автоподбор ТРЁХ опредёлённых вещей ! Плизз...сделай! будет очень удобно и думаю многие владельцы Суперпремиума будут довольны!

это команды @alootid <ID вещи или Имя> @alootid2<ID вещи(второй) или Имя> @alootid3<ID вещи(третей) или имя>
Top
-= Cara =- 01.11.2009, 18:25


Lord of Death
*********



Молодца, инициативный! Только - ты понимаешь, что значит "добавить команды"? Если их изначально нет...
Не уверен, что я захочу этим заниматься в ближайшее время. Тем более, учитывая мое вообще отношение к автолуту (и его, кстати, на АВРО воплощение).
Вообще, не надо тащить на сервер все, что блестит...
Top
Devilman 04.11.2009, 02:40


Raggler
*****



Жаль...конешно о"добавить команду" я мало что знаю...но представляю это как ДОбавление команды в ИГРУ...но а если такой команды просто не существует...то это конешно другой вопрос...
Top
Devilman 14.11.2009, 21:29


Raggler
*****



Кара мне тут сказали что команды добавить легко можно...что если я полностью предоставлю Описание этого и способ добавления команд...добавишь их?а главное что wink.gif НЕ Затратит Много времени
Top
-= Cara =- 14.11.2009, 21:40


Lord of Death
*********



Попробуй, любопытно...
Top
Dimosha 03.08.2010, 10:25


Phendark
*******



Поскольку тема умерла, но полностью отрицательного ответа Кара не дал, я осмелюсь ее продолжить и таки выложить минигайд по добавлению множественного алутида ))

atcommand.c
ищем команду @autolootitem
заменяем весь код на

CODE
/ *=======================================
===
* @autolootitem
*------------------------------------------*/
int atcommand_autolootitem(const int fd, struct map_session_data* sd, const char* command, const char* message)
{
struct item_data *item_data = NULL;
char postfix;

postfix = command[strlen(command)-1];

if (!message || !*message) {
switch(postfix){
case '4':
if (sd->state.autolootid4) {
sd->state.autolootid4 = 0;
clif_displaymessage(fd, "Autolootitem4 have been turned OFF.");
} else
clif_displaymessage(fd, "Please, enter Item name or its ID (usage: @alootid4 <item_name_or_ID>).");
break;
case '3':
if (sd->state.autolootid3) {
sd->state.autolootid3 = 0;
clif_displaymessage(fd, "Autolootitem3 have been turned OFF.");
} else
clif_displaymessage(fd, "Please, enter Item name or its ID (usage: @alootid3 <item_name_or_ID>).");
break;
case '2':
if (sd->state.autolootid2) {
sd->state.autolootid2 = 0;
clif_displaymessage(fd, "Autolootitem2 have been turned OFF.");
} else
clif_displaymessage(fd, "Please, enter Item name or its ID (usage: @alootid2 <item_name_or_ID>).");
break;
default:
if (sd->state.autolootid) {
sd->state.autolootid = 0;
clif_displaymessage(fd, "Autolootitem have been turned OFF.");
} else
clif_displaymessage(fd, "Please, enter Item name or its ID (usage: @alootid <item_name_or_ID>).");
break;
}
return -1;
}

if ((item_data = itemdb_exists(atoi(message))) == NULL)
item_data = itemdb_searchname(message);

if (!item_data) {
// No items founds in the DB with Id or Name
clif_displaymessage(fd, "Item not found.");
return -1;
}

switch(postfix){
case '4':
sd->state.autolootid4 = item_data->nameid;
break;
case '3':
sd->state.autolootid3 = item_data->nameid;
break;
case '2':
sd->state.autolootid2 = item_data->nameid;
break;
default:
sd->state.autolootid = item_data->nameid;
break;
}

sprintf(atcmd_output, "Autolooting Item: '%s'/'%s' {%d}",
item_data->name, item_data->jname, item_data->nameid);
clif_displaymessage(fd, atcmd_output);

return 0;
}


{ "alootid2", 10, atcommand_autolootitem },
{ "alootid3", 10, atcommand_autolootitem },
{ "alootid4", 10, atcommand_autolootitem },

далее идем в mob.c
всю функцию static void mob_item_drop заменям на это
CODE
/ *=======================================
===
* Sets the item_drop into the item_drop_list.
* Also performs logging and autoloot if enabled.
* rate is the drop-rate of the item, required for autoloot.
* flag : Killed only by homunculus?
*------------------------------------------*/
static
void mob_item_drop(struct mob_data *md, struct item_drop_list *dlist,
struct item_drop *ditem, int loot, int drop_rate, unsigned short flag)
{
TBL_PC* sd;

if(log_config.enable_logs&0x10)
{ //Logs items, dropped by mobs [Lupus]
if (loot)
log_pick_mob(md, "L", ditem->item_data.nameid, -ditem->item_data.amount, &ditem->item_data);
else
log_pick_mob(md, "M", ditem->item_data.nameid, -ditem->item_data.amount, NULL);
}

sd = map_charid2sd(dlist->first_charid);
if( sd == NULL ) sd = map_charid2sd(dlist->second_charid);
if( sd == NULL ) sd = map_charid2sd(dlist->third_charid);
//by BlackSoul
if ( sd && ( sd->state.showdrop > 0 ) && ( drop_rate <= sd->state.showdrop ) )
{
char atcmd_output [100];
if ( itemdb_exists ( ditem->item_data.nameid ) )
{

sprintf(atcmd_output, "You won %s's %s ( %2.2f % )",
md->db->name, itemdb_exists ( ditem->item_data.nameid
)->jname, ( drop_rate/100.00 ) );
clif_announce( &sd->bl, atcmd_output, strlen ( atcmd_output)+1, 0xBE59FF, 3);
}
}
//BlackSoul - end

if( sd

&& (drop_rate <= sd->state.autoloot ||
ditem->item_data.nameid == sd->state.autolootid ||
ditem->item_data.nameid == sd->state.autolootid2 ||
ditem->item_data.nameid == sd->state.autolootid3 ||
ditem->item_data.nameid == sd->state.autolootid4 )

&& (battle_config.idle_no_autoloot == 0 || DIFF_TICK(last_tick,
sd->idletime) < battle_config.idle_no_autoloot)
&& (battle_config.homunculus_autoloot?1:!flag)
#ifdef AUTOLOOT_DISTANCE
&& check_distance_blxy(&sd->bl, dlist->x, dlist->y, AUTOLOOT_DISTANCE)
#endif
) { //Autoloot.
if (party_share_loot(party_search(sd->status.party_id),
sd, &ditem->item_data, sd->status.char_id) == 0
) {
ers_free(item_drop_ers, ditem);
return;
}
}
ditem->next = dlist->item;
dlist->item = ditem;
}

и последнее..топаем в pc.h
после строк unsigned short autolootid;

unsigned short autolootid2;
unsigned short autolootid3;
unsigned short autolootid4;


Данная инфа честно скопипастена откуда-то из гугл-ссылок ))
Top
-= Cara =- 03.08.2010, 10:39


Lord of Death
*********



Я человек старой мотровской закалки. Сам выкачивал круза-шилдовика на рейтах 1х1х1 без никакой халявы. Поэтому я ПРОТИВ всяких алутидов. И даже автолут у нас, как вы, возможно, заметили, работает только на дроп с шансом меньше 1%. Это такая вот философия АВРО...
Потому что другая философия, противоположная - это путь к полной автоматизации процесса. Вплоть до того, что чар регистрируется, а через какое-то время - неделю-две - на выходе готовый прокаченный перс 99-го уровня. Нам это надо? Вряд ли...
Top
Dimosha 03.08.2010, 12:21


Phendark
*******



Ну дык, это нужно было давно сказать )) Теперь можно и тему закрыть.
Top
Предложения, обсуждения
AWRO: сервер Ragnarok Online



Top@Mail.ru
2005 - 2018 © www.awro.ru
Русский сервер Рагнарок Рагнарек Онлайн