Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public PlVers:__version =
- {
- version = 5,
- filevers = "1.5.3",
- date = "05/23/2014",
- time = "12:55:48"
- };
- new Float:NULL_VECTOR[3];
- new String:NULL_STRING[4];
- public Extension:__ext_core =
- {
- name = "Core",
- file = "core",
- autoload = 0,
- required = 0,
- };
- new MaxClients;
- public Extension:__ext_sdkhooks =
- {
- name = "SDKHooks",
- file = "sdkhooks.ext",
- autoload = 1,
- required = 1,
- };
- public Extension:__ext_sdktools =
- {
- name = "SDKTools",
- file = "sdktools.ext",
- autoload = 1,
- required = 1,
- };
- public Plugin:myinfo =
- {
- name = "OperationL2P Flash Test",
- description = "",
- author = "OperationL2P.com",
- version = "0.1",
- url = ""
- };
- new Float:PositionLast[66][3];
- new bool:ClientView[66];
- new Float:ClientAngles[66][3];
- new Float:ClientOrigins[66][3];
- new bool_camDisable[66];
- new Float:ClientTargetAngles[66][3];
- new Float:ClientTargetOrigins[66][3];
- new String:ClientNadeName[66][64];
- new BeamSprite;
- new Handle:specTimers[66];
- public __ext_core_SetNTVOptional()
- {
- MarkNativeAsOptional("GetFeatureStatus");
- MarkNativeAsOptional("RequireFeature");
- MarkNativeAsOptional("AddCommandListener");
- MarkNativeAsOptional("RemoveCommandListener");
- MarkNativeAsOptional("BfWriteBool");
- MarkNativeAsOptional("BfWriteByte");
- MarkNativeAsOptional("BfWriteChar");
- MarkNativeAsOptional("BfWriteShort");
- MarkNativeAsOptional("BfWriteWord");
- MarkNativeAsOptional("BfWriteNum");
- MarkNativeAsOptional("BfWriteFloat");
- MarkNativeAsOptional("BfWriteString");
- MarkNativeAsOptional("BfWriteEntity");
- MarkNativeAsOptional("BfWriteAngle");
- MarkNativeAsOptional("BfWriteCoord");
- MarkNativeAsOptional("BfWriteVecCoord");
- MarkNativeAsOptional("BfWriteVecNormal");
- MarkNativeAsOptional("BfWriteAngles");
- MarkNativeAsOptional("BfReadBool");
- MarkNativeAsOptional("BfReadByte");
- MarkNativeAsOptional("BfReadChar");
- MarkNativeAsOptional("BfReadShort");
- MarkNativeAsOptional("BfReadWord");
- MarkNativeAsOptional("BfReadNum");
- MarkNativeAsOptional("BfReadFloat");
- MarkNativeAsOptional("BfReadString");
- MarkNativeAsOptional("BfReadEntity");
- MarkNativeAsOptional("BfReadAngle");
- MarkNativeAsOptional("BfReadCoord");
- MarkNativeAsOptional("BfReadVecCoord");
- MarkNativeAsOptional("BfReadVecNormal");
- MarkNativeAsOptional("BfReadAngles");
- MarkNativeAsOptional("BfGetNumBytesLeft");
- MarkNativeAsOptional("PbReadInt");
- MarkNativeAsOptional("PbReadFloat");
- MarkNativeAsOptional("PbReadBool");
- MarkNativeAsOptional("PbReadString");
- MarkNativeAsOptional("PbReadColor");
- MarkNativeAsOptional("PbReadAngle");
- MarkNativeAsOptional("PbReadVector");
- MarkNativeAsOptional("PbReadVector2D");
- MarkNativeAsOptional("PbGetRepeatedFieldCount");
- MarkNativeAsOptional("PbReadRepeatedInt");
- MarkNativeAsOptional("PbReadRepeatedFloat");
- MarkNativeAsOptional("PbReadRepeatedBool");
- MarkNativeAsOptional("PbReadRepeatedString");
- MarkNativeAsOptional("PbReadRepeatedColor");
- MarkNativeAsOptional("PbReadRepeatedAngle");
- MarkNativeAsOptional("PbReadRepeatedVector");
- MarkNativeAsOptional("PbReadRepeatedVector2D");
- MarkNativeAsOptional("PbSetInt");
- MarkNativeAsOptional("PbSetFloat");
- MarkNativeAsOptional("PbSetBool");
- MarkNativeAsOptional("PbSetString");
- MarkNativeAsOptional("PbSetColor");
- MarkNativeAsOptional("PbSetAngle");
- MarkNativeAsOptional("PbSetVector");
- MarkNativeAsOptional("PbSetVector2D");
- MarkNativeAsOptional("PbAddInt");
- MarkNativeAsOptional("PbAddFloat");
- MarkNativeAsOptional("PbAddBool");
- MarkNativeAsOptional("PbAddString");
- MarkNativeAsOptional("PbAddColor");
- MarkNativeAsOptional("PbAddAngle");
- MarkNativeAsOptional("PbAddVector");
- MarkNativeAsOptional("PbAddVector2D");
- MarkNativeAsOptional("PbReadMessage");
- MarkNativeAsOptional("PbReadRepeatedMessage");
- MarkNativeAsOptional("PbAddMessage");
- VerifyCoreVersion();
- return 0;
- }
- bool:StrEqual(String:str1[], String:str2[], bool:caseSensitive)
- {
- return strcmp(str1, str2, caseSensitive) == 0;
- }
- PrintToChatAll(String:format[])
- {
- decl String:buffer[192];
- new i = 1;
- while (i <= MaxClients)
- {
- if (IsClientInGame(i))
- {
- SetGlobalTransTarget(i);
- VFormat(buffer, 192, format, 2);
- PrintToChat(i, "%s", buffer);
- i++;
- }
- i++;
- }
- return 0;
- }
- TE_WriteEncodedEnt(String:prop[], value)
- {
- new encvalue = value & 4095 | 4096;
- return TE_WriteNum(prop, encvalue);
- }
- TE_SendToAll(Float:delay)
- {
- new total;
- new clients[MaxClients];
- new i = 1;
- while (i <= MaxClients)
- {
- if (IsClientInGame(i))
- {
- total++;
- clients[total] = i;
- i++;
- }
- i++;
- }
- return TE_Send(clients, total, delay);
- }
- TE_SetupBeamFollow(EntIndex, ModelIndex, HaloIndex, Float:Life, Float:Width, Float:EndWidth, FadeLength, Color[4])
- {
- TE_Start("BeamFollow");
- TE_WriteEncodedEnt("m_iEntIndex", EntIndex);
- TE_WriteNum("m_nModelIndex", ModelIndex);
- TE_WriteNum("m_nHaloIndex", HaloIndex);
- TE_WriteNum("m_nStartFrame", 0);
- TE_WriteNum("m_nFrameRate", 0);
- TE_WriteFloat("m_fLife", Life);
- TE_WriteFloat("m_fWidth", Width);
- TE_WriteFloat("m_fEndWidth", EndWidth);
- TE_WriteNum("m_nFadeLength", FadeLength);
- TE_WriteNum("r", Color[0]);
- TE_WriteNum("g", Color[1]);
- TE_WriteNum("b", Color[2]);
- TE_WriteNum("a", Color[3]);
- return 0;
- }
- public OnMapStart()
- {
- BeamSprite = PrecacheModel("materials/sprites/laserbeam.vmt", false);
- return 0;
- }
- public SaveTargetPosition(client)
- {
- GetClientEyeAngles(client, ClientTargetAngles[client][0][0]);
- GetClientAbsOrigin(client, ClientTargetOrigins[client][0][0]);
- return 0;
- }
- public LoadTargetPosition(client)
- {
- TeleportEntity(client, ClientTargetOrigins[client][0][0], ClientTargetAngles[client][0][0], NULL_VECTOR);
- return 0;
- }
- public SavePosition(client)
- {
- GetClientEyeAngles(client, ClientAngles[client][0][0]);
- GetClientAbsOrigin(client, ClientOrigins[client][0][0]);
- return 0;
- }
- public LoadPosition(client)
- {
- TeleportEntity(client, ClientOrigins[client][0][0], ClientAngles[client][0][0], NULL_VECTOR);
- return 0;
- }
- public StartView(client)
- {
- if (!ClientView[client][0][0])
- {
- if (IsClientInGame(client))
- {
- LoadTargetPosition(client);
- }
- ClientView[client] = 1;
- }
- return 0;
- }
- public StopView(client)
- {
- if (ClientView[client][0][0])
- {
- if (IsClientInGame(client))
- {
- LoadPosition(client);
- }
- ClientView[client] = 0;
- }
- return 0;
- }
- public OnPluginStart()
- {
- RegConsoleCmd("sm_camera", ToggleViewCmd, "Toggle between regular and projectile view", 0);
- HookEvent("weapon_fire", OnShot, EventHookMode:1);
- HookEvent("player_spawned", OnPlayerSpawn, EventHookMode:1);
- HookEvent("inspect_weapon", OnInspect, EventHookMode:1);
- return 0;
- }
- public OnClientDisconnect(client)
- {
- StopView(client);
- return 0;
- }
- public IsGrenadeName(String:name[], String:postfix[])
- {
- new String:buffer[64];
- Format(buffer, 63, "%s%s", "hegrenade", postfix);
- if (StrEqual(name, buffer, true))
- {
- return 1;
- }
- Format(buffer, 63, "%s%s", "smokegrenade", postfix);
- if (StrEqual(name, buffer, true))
- {
- return 1;
- }
- Format(buffer, 63, "%s%s", "flashbang", postfix);
- if (StrEqual(name, buffer, true))
- {
- return 1;
- }
- return 0;
- }
- public OnEntityCreated(iEntity, String:classname[])
- {
- if (IsGrenadeName(classname, "_projectile"))
- {
- SDKHook(iEntity, SDKHookType:24, OnEntitySpawned);
- }
- return 0;
- }
- public OnEntitySpawned(iGrenade)
- {
- new client = GetEntPropEnt(iGrenade, PropType:0, "m_hOwnerEntity", 0);
- if (!bool_camDisable[client][0][0])
- {
- if (!ClientView[client][0][0])
- {
- SavePosition(client);
- CreateTimer(0.1, StartViewAction, client, 0);
- }
- TeleportEntity(iGrenade, 12264, NULL_VECTOR, 12276);
- }
- TE_SetupBeamFollow(iGrenade, BeamSprite, 0, 20, 3, 3, 5, 12288);
- TE_SendToAll(0);
- return 0;
- }
- public Action:StartViewAction(Handle:timer, client)
- {
- StartView(client);
- return Action:0;
- }
- public Action:StopViewAction(Handle:timer, client)
- {
- StopView(client);
- specTimers[client] = 0;
- return Action:0;
- }
- public Action:GiveNade(Handle:timer, client)
- {
- return Action:0;
- }
- public OnPlayerSpawn(Handle:event, String:name[], bool:dontBroadcast)
- {
- new client = GetClientOfUserId(GetEventInt(event, "userid"));
- PrintToChatAll("Event: player_spawned");
- if (IsClientInGame(client))
- {
- SetEntProp(client, PropType:1, "m_takedamage", any:0, 1, 0);
- }
- return 0;
- }
- public OnShot(Handle:event, String:name[], bool:dontBroadcast)
- {
- new client = GetClientOfUserId(GetEventInt(event, "userid"));
- new String:weapon[32];
- GetEventString(event, "weapon", weapon, 32);
- if (!IsGrenadeName(weapon, ""))
- {
- SaveTargetPosition(client);
- }
- else
- {
- strcopy(ClientNadeName[client][0][0], 63, weapon);
- CreateTimer(0.2, GiveNade, client, 0);
- }
- return 0;
- }
- public OnInspect(Handle:event, String:name[], bool:dontBroadcast)
- {
- new client = GetClientOfUserId(GetEventInt(event, "userid"));
- if (ClientView[client][0][0])
- {
- specTimers[client] = CreateTimer(0.1, StopViewAction, client, 0);
- }
- return 0;
- }
- public Action:ToggleViewCmd(client, args)
- {
- if (IsValidClient(client))
- {
- bool_camDisable[client] = !bool_camDisable[client][0][0];
- if (bool_camDisable[client][0][0])
- {
- PrintToChat(client, "%s", "Camera disabled");
- }
- else
- {
- PrintToChat(client, "%s", "Camera enabled");
- }
- }
- else
- {
- PrintToChat(client, "", "access");
- }
- return Action:3;
- }
- IsValidClient(client)
- {
- if (client > 0)
- {
- return 1;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement