Перейти к содержимому


Фотография

атака разрывными патронами

weapons ammo

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 2

#1 Game Over - L4D2 - CS:GO

Game Over - L4D2 - CS:GO

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 574 сообщений

Отправлено 14 Сентябрь 2018 - 11:41

Всем привет, можно ли как то сделать так, чтобы доп патроны (explosive ammo) разрывные не использовались как дополнительные? Интересует, чтобы они выдавались как обычные и имели тот же подсчёт. 


Сообщение отредактировал Game Over - L4D2 - CS:GO: 14 Сентябрь 2018 - 11:43


#2 MixJay

MixJay

    Пользователь

  • Пользователь
  • PipPipPip
  • 222 сообщений

Отправлено 14 Сентябрь 2018 - 14:37

Всем привет, можно ли как то сделать так, чтобы доп патроны (explosive ammo) разрывные не использовались как дополнительные? Интересует, чтобы они выдавались как обычные и имели тот же подсчёт. 

 

Возможно такой пример сгодится... не проверял... просто как идея...

public void Event_UpgradePackAdded(Event event, const char[] name, bool dontBroadcast)
{
	int iUpgrade = event.GetInt("upgradeid");
	if (!IsValid(iUpgrade)) return;
	
	int client = GetClientOfUserId(event.GetInt("userid"));
	if (client < 1) return;
	
	int iSlot0 = GetPlayerWeaponSlot(client, 0);
	if (!IsValid(iSlot0)) return;
	
	int iAmmoOffset = GetEntProp(iSlot0, Prop_Send, "m_iPrimaryAmmoType") * 4;
	if (iAmmoOffset < 0 || iAmmoOffset == 68 || iAmmoOffset == 24) return; // в данном случае отсёк грен и пулик
	
	// зарядим дробовики тройной порцией спец. патронов, а остальное оружие 2-й порцией
	int iMulti = 2;
	switch (iAmmoOffset) {
		case 28, 32: iMulti = 3; // дробовики
	}
	
	int iProp = FindSendPropInfo("CTerrorPlayer", "m_iAmmo");
	int iSpecAmmo = GetEntProp(iSlot0, Prop_Send, "m_nUpgradedPrimaryAmmoLoaded");
	int iAdd = iSpecAmmo * iMulti;
	int iAmmoReserv = GetEntData(client, iProp + iAmmoOffset);
	
	SetEntProp(iSlot0, Prop_Send, "m_iClip1", 0); // после зарядки патронами, пушку придётся перезарядить... заодно уходит баг, когда можно зарядить автодроб на 20 патронов, вместо 10
	SetEntProp(iSlot0, Prop_Send, "m_nUpgradedPrimaryAmmoLoaded", iAdd); // запас спец. патронов
	SetEntData(client, iProp + iAmmoOffset, iAmmoReserv + iAdd); // доп. патроны
	RemoveEdict(iUpgrade);
}

stock bool IsValid(int &iEnt)
{
	return iEnt > 0 && IsValidEntity(iEnt) && IsValidEdict(iEnt);
}

Сообщение отредактировал MixJay: 14 Сентябрь 2018 - 14:38


#3 Game Over - L4D2 - CS:GO

Game Over - L4D2 - CS:GO

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 574 сообщений

Отправлено 16 Сентябрь 2018 - 0:51

 

Возможно такой пример сгодится... не проверял... просто как идея...

public void Event_UpgradePackAdded(Event event, const char[] name, bool dontBroadcast)
{
	int iUpgrade = event.GetInt("upgradeid");
	if (!IsValid(iUpgrade)) return;
	
	int client = GetClientOfUserId(event.GetInt("userid"));
	if (client < 1) return;
	
	int iSlot0 = GetPlayerWeaponSlot(client, 0);
	if (!IsValid(iSlot0)) return;
	
	int iAmmoOffset = GetEntProp(iSlot0, Prop_Send, "m_iPrimaryAmmoType") * 4;
	if (iAmmoOffset < 0 || iAmmoOffset == 68 || iAmmoOffset == 24) return; // в данном случае отсёк грен и пулик
	
	// зарядим дробовики тройной порцией спец. патронов, а остальное оружие 2-й порцией
	int iMulti = 2;
	switch (iAmmoOffset) {
		case 28, 32: iMulti = 3; // дробовики
	}
	
	int iProp = FindSendPropInfo("CTerrorPlayer", "m_iAmmo");
	int iSpecAmmo = GetEntProp(iSlot0, Prop_Send, "m_nUpgradedPrimaryAmmoLoaded");
	int iAdd = iSpecAmmo * iMulti;
	int iAmmoReserv = GetEntData(client, iProp + iAmmoOffset);
	
	SetEntProp(iSlot0, Prop_Send, "m_iClip1", 0); // после зарядки патронами, пушку придётся перезарядить... заодно уходит баг, когда можно зарядить автодроб на 20 патронов, вместо 10
	SetEntProp(iSlot0, Prop_Send, "m_nUpgradedPrimaryAmmoLoaded", iAdd); // запас спец. патронов
	SetEntData(client, iProp + iAmmoOffset, iAmmoReserv + iAdd); // доп. патроны
	RemoveEdict(iUpgrade);
}

stock bool IsValid(int &iEnt)
{
	return iEnt > 0 && IsValidEntity(iEnt) && IsValidEdict(iEnt);
}

Спасибо, гляну. Там кстати можно добавить часть скрипта от разрывных к нужной пушке, но учитывая, что она будет полностью пользовательской, так как стандартные скрипты переписать не получится. Там есть функции, что именно заменить (патроны в обойме или общее кол-во и тгд)


Сообщение отредактировал Game Over - L4D2 - CS:GO: 16 Сентябрь 2018 - 1:03




Темы с аналогичным тегами weapons, ammo

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных