Новый парашют

White Wolf

🍉
Сообщения
2,382
Реакции
2,187
  • Команда форума
  • #41
pokypka20, потому что код надо редактировать, а не только тип переменной.
 

pokypka20

Участник
Сообщения
244
Реакции
31
White Wolf, ну так я просил чтобы помогли редактировать. Код для добовление модели я брал с этой темы из поста RIKO возможно я просто неправильно дописал его в начальный код.

Добавлено через 51 секунду
PHP:
		Parachute_Ent[client] = CreateEntityByName("prop_dynamic_override");
		DispatchKeyValue(Parachute_Ent[client],"model",path);
		SetEntityMoveType(Parachute_Ent[client], MOVETYPE_NOCLIP);
		DispatchSpawn(Parachute_Ent[client]);
		
		hasModel[client]=true;
		TeleportParachute(client);

		// удаление
		RemoveEdict(Parachute_Ent[client]);

PHP:
#include <sdktools>
#pragma semicolon 1

new g_iVelocity = -1;

public OnPluginStart() g_iVelocity = FindSendPropOffs("CBasePlayer", "m_vecVelocity[0]");

public Action:OnPlayerRunCmd(client, &buttons, &impulse, Float:vel[3], Float:angles[3], &weapon)
{
	if (IsPlayerAlive(client))
	{
		static bool:g_InUse[MAXPLAYERS+1], Float:fVelocity[MAXPLAYERS+1][3];
		GetEntDataVector(client, g_iVelocity, fVelocity[client]); //Что в этом страшного? (сама функция передает Velocity столько же раз, только в другой плоскости)
		if(!g_InUse[client] && (buttons & IN_USE) && !(GetEntityFlags(client) & FL_ONGROUND))
		{
			if(fVelocity[client][2] < 0.0)
			{
				fVelocity[client][2] = (fVelocity[client][2] >= -100.0) ? -100.0:(fVelocity[client][2] +50.0);
				TeleportEntity(client, NULL_VECTOR, NULL_VECTOR, fVelocity[client]);
				SetEntDataVector(client, g_iVelocity, fVelocity[client]);
				SetEntityGravity(client, 0.1);
				g_InUse[client] = true;
			}
		}
		else if (!(buttons & IN_USE) && g_InUse[client])
		{
			SetEntityGravity(client, 1.0);
			g_InUse[client] = false;
		}
		else if(fVelocity[client][2] >= 0.0) SetEntityGravity(client, 1.0);
	}
	return Plugin_Continue;
 
Последнее редактирование:

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #44
лол.

PHP:
#define MODEL_PARACHUTE = "models/p/parachute.mdl"
 

AMD

Участник
Сообщения
180
Реакции
18
pokypka20, потому что код надо редактировать, а не только тип переменной.

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

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #46
AMD, в том случае размерность можно не указывать, а просто []
 

AMD

Участник
Сообщения
180
Реакции
18
AMD, в том случае размерность можно не указывать, а просто []

Так я так и сделал, а вот Господин White Wolf, вообще не указал размерность, а позже увидев мой пост, поспешил править свой, только ещё размерность в 24 байта запилил, которая не к чему.
 
  • Мне нравится
Реакции: R1KO

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #48
В общем дописал модельку. Позже проверю.
 

White Wolf

🍉
Сообщения
2,382
Реакции
2,187
  • Команда форума
  • #49
Оффтоп
 

AMD

Участник
Сообщения
180
Реакции
18
Оффтоп

Ну да приборзел слегка, сразу после того как прочёл пост:

Так что сам за метлой следи, мегоКодер.
 

pokypka20

Участник
Сообщения
244
Реакции
31
R1KO, скинь пожалуйста, что у тебя получилось с моделькой. Не могу от ошибок избавится второй день плагин мучаю.
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #53
pokypka20, okay.
буду заказ тестировать - заодно и парашют проверю.

Добавлено через 1 час 49 минут
С моделькой
PHP:
#include <sourcemod>
#include <sdktools>
#pragma semicolon 1

#define PARACHUTE_MODEL "models/parachute/parachute_ice_v2.mdl"
#define NO_PARACHUTE -1

new g_iParachute_Ent[MAXPLAYERS+1] = {NO_PARACHUTE, ...};
new g_iVelocity = -1;

public OnPluginStart() g_iVelocity = FindSendPropOffs("CBasePlayer", "m_vecVelocity[0]");

public OnMapStart() PrecacheModel(PARACHUTE_MODEL, true);

public Action:OnPlayerRunCmd(iClient, &buttons, &impulse, Float:vel[3], Float:angles[3], &weapon)
{
	if (IsPlayerAlive(iClient))
	{
		static bool:_bInUse[MAXPLAYERS+1],
			Float:_fVelocity[MAXPLAYERS+1][3];

		GetEntDataVector(iClient, g_iVelocity, _fVelocity[iClient]);
		if(!_bInUse[iClient] && (buttons & IN_USE) && !(GetEntityFlags(iClient) & FL_ONGROUND))
		{
			if(_fVelocity[iClient][2] < 0.0)
			{
				_fVelocity[iClient][2] = (_fVelocity[iClient][2] >= -100.0) ? -100.0:(_fVelocity[iClient][2] +50.0);
				TeleportEntity(iClient, NULL_VECTOR, NULL_VECTOR, _fVelocity[iClient]);
				SetEntDataVector(iClient, g_iVelocity, _fVelocity[iClient]);
				SetEntityGravity(iClient, 0.1);
				_bInUse[iClient] = true;
				if(g_iParachute_Ent[iClient] == NO_PARACHUTE) g_iParachute_Ent[iClient] = CreateParachute(iClient);
			} else KillParachute(iClient);
		}
		else if (!(buttons & IN_USE) && _bInUse[iClient])
		{
			SetEntityGravity(iClient, 1.0);
			_bInUse[iClient] = false;
			KillParachute(iClient);
		}
		else if(_fVelocity[iClient][2] >= 0.0)
		{
			SetEntityGravity(iClient, 1.0);
			KillParachute(iClient);
		}
	}
	return Plugin_Continue;
}

CreateParachute(iClient)
{
	new iEntity = CreateEntityByName("prop_physics");
	decl String:sBuffer[64];

	FormatEx(sBuffer, sizeof(sBuffer), "%i_%i", iClient, iEntity);
	DispatchKeyValue(iClient, "targetname", sBuffer);
	DispatchKeyValue(iEntity, "model", PARACHUTE_MODEL);
	SetEntityMoveType(iEntity, MOVETYPE_NOCLIP);
	DispatchSpawn(iEntity);

	decl Float:or[3],
		Float:ang[3],
		Float:fForward[3],
		Float:fRight[3],
		Float:fUp[3];
	
	GetClientAbsOrigin(iClient, or);
	GetClientAbsAngles(iClient, ang);
	
	GetAngleVectors(ang, fForward, fRight, fUp);
	new Float:dest_vector[3] = {0.0, -10.0, 0.0};

	or[0] += fRight[0]*dest_vector[0] + fForward[0]*dest_vector[1] + fUp[0]*dest_vector[2];
	or[1] += fRight[1]*dest_vector[0] + fForward[1]*dest_vector[1] + fUp[1]*dest_vector[2];
	or[2] += fRight[2]*dest_vector[0] + fForward[2]*dest_vector[1] + fUp[2]*dest_vector[2];
	
	TeleportEntity(iEntity, or, NULL_VECTOR, NULL_VECTOR);

	ActivateEntity(iEntity);

	SetVariantString(sBuffer);
	AcceptEntityInput(iEntity, "SetParent", iEntity, iEntity, 0);

	return iEntity;
}

KillParachute(iClient)
{
	if(g_iParachute_Ent[iClient] != NO_PARACHUTE)
	{
		if(IsValidEntity(g_iParachute_Ent[iClient])) AcceptEntityInput(g_iParachute_Ent[iClient], "Kill");
		g_iParachute_Ent[iClient] = NO_PARACHUTE;
	}
}
Кто хочет попробуйте оптимизировать.
 
Последнее редактирование:

pokypka20

Участник
Сообщения
244
Реакции
31
R1KO, не пойму в чём проблема, но пишет:
PHP:
undefined symbol: FindSendPropOffsEx
Посмотрел примеры в плагине ammoManager там тоже есть FindSendPropOffsEx, но он отлично компилится.
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #55
pokypka20, у меня эта ф-я в инклуде. Убери Ex в конце
 

AZA

/reset
Сообщения
883
Реакции
162
Фикс будет парашют,на счет гравы?
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #57
vaxa, дак вроде есть рабочий.
Кстати да. Выложу на днях эту версию парашюта как отдельный плагин. С моделькой и без. Ждите.
+ Сделаю модули для шопа и випа.
 

Twink

Участник
Сообщения
83
Реакции
30
vaxa, дак вроде есть рабочий.
Кстати да. Выложу на днях эту версию парашюта как отдельный плагин. С моделькой и без. Ждите.
+ Сделаю модули для шопа и випа.

Для шопа и вип будет весьма здорово :)
 
  • Мне нравится
Реакции: Big
Сверху Снизу