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


Фотография

определённый персонаж поднимает конкретный предмет

survivorsgive items блок поднять определённый предмет

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

#1 Game Over - L4D2 - CS:GO

Game Over - L4D2 - CS:GO

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

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

Отправлено 31 Январь 2019 - 21:11

Подскажите можно ли сделать так, чтобы поднять определённый предмет мог только определённый персонаж. Мне нужно чтобы только Биллу были доступны снайпы. Если кто видел (ссылка)  или знает,  скиньте часть кода в качестве примера. Спасибо. 



#2 BHaType

BHaType

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

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

Отправлено 01 Февраль 2019 - 5:45

Подскажите можно ли сделать так, чтобы поднять определённый предмет мог только определённый персонаж. Мне нужно чтобы только Биллу были доступны снайпы. Если кто видел (ссылка)  или знает,  скиньте часть кода в качестве примера. Спасибо. 

char mName[56]
GetClientModel(userid, mName, sizeof(mName))
if(StrEqual(mName, "билл"))
{
 // do
}
 
Должно подойти

Сообщение отредактировал BHaType: 01 Февраль 2019 - 5:45

  • Game Over - L4D2 - CS:GO это нравится

#3 anarki1980

anarki1980

    Участник

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

Отправлено 01 Февраль 2019 - 19:28

 

char mName[56]
GetClientModel(userid, mName, sizeof(mName))
if(StrEqual(mName, "билл"))
{
 // do
}
 
Должно подойти

 

 

А если за него играет человек то пускай меняет ник на Билл :)

 

Обычно определяют через имя модельки персонажа.

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


Сообщение отредактировал anarki1980: 01 Февраль 2019 - 19:29

  • BHaType это нравится

#4 Game Over - L4D2 - CS:GO

Game Over - L4D2 - CS:GO

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

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

Отправлено 01 Февраль 2019 - 19:31

А если за него играет человек то пускай меняет ник на Билл :)

 

Обычно определяют через имя модельки персонажа

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



#5 dragokas

dragokas

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

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

Отправлено 06 Февраль 2019 - 4:18

Примерно так:

void LockWeapon(int client)
{
	SDKHook(client, SDKHook_WeaponCanUse, OnWeaponCanUse);
	// similar hooks: SDKHook_WeaponEquip.
	// to prevent switch: SDKHook_WeaponCanSwitchTo.
}
void UnlockWeapon(int client)
{
	SDKUnhook(client, SDKHook_WeaponCanUse, OnWeaponCanUse);
}

public Action OnWeaponCanUse(int client, int iWeapon)
{
	if (client != g_iPrinceClient) return Plugin_Continue;
	
	static float fTime = 0.0;
	
	char sWeapon[32]; 
	GetEdictClassname(iWeapon, sWeapon, sizeof(sWeapon));
	
	bool bForbid;
	//if (g_bForbid_Medkit		&& StrEqual(sWeapon, "weapon_first_aid_kit")) 	bForbid = true;
	//else if (g_bForbid_Pills	&& StrEqual(sWeapon, "weapon_pain_pills")) 		bForbid = true;
	//else if (g_bForbid_Pipe		&& StrEqual(sWeapon, "weapon_pipe_bomb")) 		bForbid = true;
	//else if (g_bForbid_Molotov	&& StrEqual(sWeapon, "weapon_molotov")) 		bForbid = true;
	
	if (g_bForbid_DPistol	&& StrEqual(sWeapon, "weapon_pistol")) 			bForbid = true;
	else if (g_bForbid_SMG		&& StrEqual(sWeapon, "weapon_smg")) 			bForbid = true;
	else if (g_bForbid_PumpShot	&& StrEqual(sWeapon, "weapon_pumpshotgun")) 	bForbid = true;
	else if (g_bForbid_Sniper	&& StrEqual(sWeapon, "weapon_hunting_rifle")) 	bForbid = true;
	else if (g_bForbid_M16		&& StrEqual(sWeapon, "weapon_rifle")) 			bForbid = true;
	else if (g_bForbid_AutoShot	&& StrEqual(sWeapon, "weapon_autoshotgun")) 	bForbid = true;
	
	if (bForbid) {
		if (GetEngineTime() - fTime > 0.5) { // skip spam
			PrintToChat(client, "%t", "Cant_Use"); // "Ryan didn't learn to use this type of weapon."
			fTime = GetEngineTime();
		}
		return Plugin_Handled;
	}
	return Plugin_Continue;
}

Если нужен именно персонаж:

#define CHARACTER_BILL 0
#define CHARACTER_ZOEY 1
#define CHARACTER_FRANCIS 2
#define CHARACTER_LOUIS 3
 
GetEntProp(client, Prop_Send, "m_survivorCharacter")

 

Это для 1-й лефты.


  • Game Over - L4D2 - CS:GO и BHaType это нравится

#6 Game Over - L4D2 - CS:GO

Game Over - L4D2 - CS:GO

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

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

Отправлено 06 Февраль 2019 - 16:03

 

Спасибо.


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




Темы с аналогичным тегами survivorsgive items, блок, поднять определённый предмет

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

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