- Сообщения
- 2,382
- Реакции
- 2,187
- Команда форума
- #41
pokypka20, потому что код надо редактировать, а не только тип переменной.
о боже, точно, строка, как я сразу не додумался.
new String:MODEL_PARACHUTE[] = "models/p/parachute.mdl";
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]);
#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;
pokypka20, потому что код надо редактировать, а не только тип переменной.
AMD, в том случае размерность можно не указывать, а просто []
AMD, а ты не приборзел часом словами кидаться? Что ты готов показать здесь, чтобы строить из себя неприкасаемого? Ошибка была, я устранил, не более.ну так помоги парню, коли мозгов хватает переменную на строку поменять, хотя судя по тому что ты не указал размерность, и лишь после того как я это сделал, ты поправил свой пост, на более ты не способен.
#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;
}
}
vaxa, дак вроде есть рабочий.
Кстати да. Выложу на днях эту версию парашюта как отдельный плагин. С моделькой и без. Ждите.
+ Сделаю модули для шопа и випа.