Mod Перезарядка

Автор темы #1
Дата рег
16 Фев 2014
Сообщения
22
Симпатии
4
Реализация перезарядки, может кому не будь пригодится...
Вставить в client_main.fos в функцию bool key_down( uint8 key )
Код:
// Перезарядка
if( key == DIK_R )
{
CritterCl@ chosen = GetChosen();
if( valid( chosen ) )
{
ItemCl@ weapon = _CritGetItemHand( chosen );
if( valid( weapon ) )
{
uint[] use = { CHOSEN_USE_ITEM, weapon.Id, 0, TARGET_SELF_ITEM, 0, ITEM_MODE_RELOAD, 0 };
SetChosenActions( use );
}
}
}
В дополнение добавлю использования санитара и доктора:
Вставляем туда же:
Код:
if( LeftShift && key == DIK_5 ) // санитар
{
uint[] use = { CHOSEN_USE_SKL_ON_CRITTER, SK_FIRST_AID, GetChosen().Id, 0, 0, 0, 0 };
SetChosenActions( use );
}
if( LeftShift && key == DIK_6 ) // доктор
{
uint[] use = { CHOSEN_USE_SKL_ON_CRITTER, SK_DOCTOR, GetChosen().Id, 0, 0, 0, 0 };
SetChosenActions( use );
}
Ну и для предметов:
туда же
Код:
 if( LeftShift && key == DIK_1 )
	{
		uint16	 pid = PID_SUPER_STIMPAK; // СуперСтимулятор
		CritterCl@ cr = GetChosen();
		ItemCl@	item = cr.GetItem( pid, -1 );
		uint[] use = { CHOSEN_USE_ITEM, item.Id, 0, 0, 0, ITEM_MODE_USE, 0 };
		SetChosenActions( use );
	}
С предметами делайте по аналогии.(Например,если вам нужно это для простого стимулятора или наркоты)
 
Последнее редактирование:
Дата рег
7 Июн 2013
Сообщения
5
Симпатии
0
где нужно объявить переменную LeftShift и как отслеживать нажата она или нет (в плане если считать что левый шифт нажимаем)? И не правильнее ли будет писать условие if( (key == DIK_LSHIFT) && (key == DIK_6) ) ?