Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #if !defined _CBz_INCLUDED
- #define _CBz_INCLUDED
- #else
- #endinput
- #endif
- #include <YSI\y_hooks>
- #define PUBLIC:%0(%1) forward %0(%1); public %0(%1)
- #define PRESSED(%0) (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
- #define PAUSE_TIME 5
- #define AFK_TIME 30
- #define INTERVAL 350
- enum _I{
- bool:pAFK,
- bool:pPaused,
- bool:pInWater,
- bool:pShoting,
- bool:pParachuting,
- bool:pMachine,
- bool:pDriveBy,
- bool:pIntDamage,
- bool:pReconnect,
- Float:pP[4],
- pTimer,
- pTime[2],
- pWeap,
- pVWorld,
- Float:pHealth,
- Float:pArmour,
- pMoney,
- pWeaps[13],
- pAmmo[13],
- pFPS,
- pDrk,
- pIP[16]
- };
- enum _V{
- bool:vCreated,
- vColor[2],
- vPlate[32],
- vInterior,
- };
- new I[MAX_PLAYERS][_I], V[MAX_VEHICLES][_V],
- Ranges[30][2] = {
- {0, 1},
- {1, 1},
- {2, 1},
- {3, 1},
- {4, 1},
- {5, 1},
- {6, 1},
- {7, 1},
- {8, 1},
- {9, 1},
- {10, 1},
- {11, 1},
- {12, 1},
- {13, 1},
- {14, 1},
- {15, 1},//----Armas blancas/puños/etc
- {22, 20},//colt
- {23, 20},//silenced
- {24, 30},//eagle
- {25, 35},//escopeta
- {26, 35},//recortada
- {27, 35},//spaz
- {28, 30},//uzi
- {29, 50},//MP5
- {30, 70},//AK-47
- {31, 70},//M4
- {32, 30},//Tec
- {33, 80},//Rifle
- {34, 150},//Sniper
- {38, 70}//Minigun
- };
- forward OnPlayerPause(playerid);
- forward OnPlayerAFK(playerid);
- forward OnPlayerWeaponChange(playerid, newweaponid, oldweaponid);
- forward OnPlayerVirtualWorldChange(playerid, newworldid, oldworldid);
- forward OnPlayerEnterWater(playerid);
- forward OnPlayerHealthChange(playerid, Float:newhealth, Float:oldhealth);
- forward OnPlayerArmourChange(playerid, Float:newarmour, Float:oldarmour);
- forward OnPlayerMoneyChange(playerid, newmoney, oldmoney);
- forward OnPlayerShotPlayer(playerid, targetid, Float:health, Float:armour, weaponid, Headshot);
- forward OnVehicleCreate(vehicleid);
- forward OnVehicleDestroy(vehicleid);
- forward OnPlayerUseMachine(playerid);
- #if defined FILTERSCRIPT
- Hook:CBz_OnFilterScriptInit()
- {
- for(new i; i<GetMaxPlayers(); i++){
- if(IsPlayerConnected(i) && !IsPlayerNPC(i)){
- ResetPlayer(i);
- I[i][pTime][1] = GetTickCount();
- GetPlayerHealth(i, I[i][pHealth]);
- GetPlayerArmour(i, I[i][pArmour]);
- I[i][pWeap] = GetPlayerWeapon(i);
- I[i][pMoney] = GetPlayerMoney(i);
- I[i][pTimer] = SetTimerEx("Check", INTERVAL, true, "i", i);
- }
- }
- return 1;
- }
- Hook:CBz_OnFilterScriptExit()
- {
- for(new i; i<GetMaxPlayers(); i++)if(IsPlayerConnected(i) && !IsPlayerNPC(i) && I[i][pTimer])KillTimer(I[i][pTimer]);
- return 1;
- }
- #else
- Hook:CBz_OnGameModeInit()
- {
- for(new i; i<GetMaxPlayers(); i++){
- if(IsPlayerConnected(i) && !IsPlayerNPC(i)){
- ResetPlayer(i);
- I[i][pTime][1] = GetTickCount();
- GetPlayerHealth(i, I[i][pHealth]);
- GetPlayerArmour(i, I[i][pArmour]);
- I[i][pWeap] = GetPlayerWeapon(i);
- I[i][pMoney] = GetPlayerMoney(i);
- I[i][pTimer] = SetTimerEx("Check", INTERVAL, true, "i", i);
- }
- }
- return 1;
- }
- Hook:CBz_OnGameModeExit()
- {
- for(new i; i<GetMaxPlayers(); i++)if(IsPlayerConnected(i) && !IsPlayerNPC(i) && I[i][pTimer])KillTimer(I[i][pTimer]);
- return 1;
- }
- #endif
- Hook:CBz_OnPlayerConnect(playerid)
- {
- ResetPlayer(playerid);
- if(IsPlayerNPC(playerid))return 1;
- I[playerid][pTimer] = SetTimerEx("Check", INTERVAL, true, "i", playerid);
- I[playerid][pTime][1] = GetTickCount();
- return 1;
- }
- Hook:CBz_OnPlayerDisconnect(playerid, reason)
- {
- if(I[playerid][pTimer])KillTimer(I[playerid][pTimer]);
- if(I[playerid][pReconnect]){
- new cmdstr[25];
- I[playerid][pReconnect] = false;
- format(cmdstr, 23, "unbanip %s", I[playerid][pIP]);
- SendRconCommand(cmdstr);
- SendRconCommand("reloadbans");
- }
- return 1;
- }
- Hook:CBz_OnPlayerSpawn(playerid)
- {
- I[playerid][pWeap] = GetPlayerWeapon(playerid);
- I[playerid][pVWorld] = GetPlayerVirtualWorld(playerid);
- I[playerid][pHealth] = 100;
- SetTimerEx("GetWeaps", 500, false, "i", playerid);
- return 1;
- }
- Hook:CBz_OnPlayerDeath(playerid)
- {
- I[playerid][pHealth] = 0;
- return 1;
- }
- Hook:CBz_OnPlayerText(playerid, text[])
- {
- I[playerid][pTime][1] = GetTickCount();
- return 1;
- }
- Hook:CBz_OnPlayerCommandText(playerid, cmdtext[])
- {
- I[playerid][pTime][1] = GetTickCount();
- return 1;
- }
- Hook:OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
- {
- if(!I[playerid][pIntDamage]){
- if(!newinteriorid)for(new i; i<13; i++)GivePlayerWeapon(playerid, I[playerid][pWeaps][i], I[playerid][pAmmo][i]);
- else{
- for(new i; i<13; i++)GetPlayerWeaponData(playerid, i, I[playerid][pWeaps][i], I[playerid][pAmmo][i]);
- ResetPlayerWeapons(playerid);
- }
- }
- return 1;
- }
- Hook:CBz_OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- I[playerid][pTime][1] = GetTickCount();
- if(I[playerid][pWeap]){
- if(PRESSED(KEY_FIRE) || PRESSED(KEY_SECONDARY_ATTACK))I[playerid][pShoting] = true;
- else I[playerid][pShoting] = false;
- }
- return 1;
- }
- Hook:CBz_OnPlayerStateChange(playerid, newstate, oldstate)
- {
- I[playerid][pTime][1] = GetTickCount();
- I[playerid][pShoting] = false;
- if(newstate == PLAYER_STATE_DRIVER){
- if(!I[playerid][pDriveBy]){
- for(new i; i<13; i++)GetPlayerWeaponData(playerid, i, I[playerid][pWeaps][i], I[playerid][pAmmo][i]);
- ResetPlayerWeapons(playerid);
- }
- }
- else if(newstate == PLAYER_STATE_ONFOOT && oldstate == PLAYER_STATE_DRIVER && !I[playerid][pDriveBy])for(new i; i<13; i++)GivePlayerWeapon(playerid, I[playerid][pWeaps][i], I[playerid][pAmmo][i]);
- return 1;
- }
- Hook:CBz_OnPlayerUpdate(playerid)
- {
- if(!I[playerid][pAFK]){
- new Float:rP[7], Float:HA[2], tmp[2];
- GetPlayerPos(playerid, rP[0], rP[1], rP[2]);
- GetPlayerFacingAngle(playerid, rP[3]);
- if(floatcmp(rP[0], I[playerid][pP][0]) && floatcmp(rP[1], I[playerid][pP][1]) && floatcmp(rP[2], I[playerid][pP][2]) && floatcmp(rP[3], I[playerid][pP][3])){
- GetPlayerPos(playerid, I[playerid][pP][0], I[playerid][pP][1], I[playerid][pP][2]);
- GetPlayerFacingAngle(playerid, I[playerid][pP][3]);
- I[playerid][pTime][1] = GetTickCount();
- I[playerid][pAFK] = false;
- }
- GetPlayerHealth(playerid, HA[0]);
- GetPlayerArmour(playerid, HA[1]);
- if(floatcmp(HA[0], I[playerid][pHealth]) || floatcmp(HA[1], I[playerid][pArmour])){
- GetPlayerCameraPos(playerid, rP[0], rP[1], rP[2]);
- GetPlayerCameraFrontVector(playerid, rP[3], rP[4], rP[5]);
- for(new i; i<GetMaxPlayers(); i++){
- if(IsPlayerConnected(i) && !IsPlayerNPC(i) && I[i][pShoting] && i != playerid && GetPlayerVirtualWorld(i) == I[playerid][pVWorld] && GetPlayerInterior(i) == GetPlayerInterior(playerid)){
- if(IsPlayerInRangeOfPoint(i, GetWeaponRange(I[i][pWeap]), I[playerid][pP][0], I[playerid][pP][1], I[playerid][pP][2])){
- GetDistanceFromPointToLine(rP[6], rP[3], rP[4], rP[5], rP[0], rP[1], rP[2], I[i][pP][0], I[i][pP][1], I[i][pP][2]);
- if(rP[6] < 1)CallLocalFunction("OnPlayerShotPlayer", "iifffi", i, playerid, (I[i][pHealth]-HA[0]), (I[i][pArmour]-HA[1]), I[playerid][pWeap]);
- }
- }
- }
- }
- tmp[0] = GetPlayerDrunkLevel(playerid);
- if(tmp[0] < 200)SetPlayerDrunkLevel(playerid, 2000);
- else if(I[playerid][pDrk] != tmp[0]){
- tmp[1] = I[playerid][pDrk] - tmp[0];
- if(0 < tmp[1] < 200)I[playerid][pFPS] = tmp[1];
- I[playerid][pDrk] = tmp[0];
- }
- I[playerid][pTime][0] = GetTickCount();
- }
- return 1;
- }
- Hook:CBz_OnVehicleRespray(playerid, vehicleid, color1, color2)
- {
- V[vehicleid][vColor][0] = color1;
- V[vehicleid][vColor][1] = color2;
- return 1;
- }
- PUBLIC:Check(playerid)
- {
- if(!I[playerid][pAFK] && !I[playerid][pPaused]){
- if((GetTickCount()-I[playerid][pTime][0])>=(PAUSE_TIME*519)){
- I[playerid][pPaused] = true;
- CallLocalFunction("OnPlayerPause", "i", playerid);
- }else I[playerid][pPaused] = false;
- if((GetTickCount()-I[playerid][pTime][1])>=(AFK_TIME*1000)){
- I[playerid][pAFK] = true;
- CallLocalFunction("OnPlayerAFK", "i", playerid);
- }else I[playerid][pAFK] = false;
- if(!I[playerid][pPaused]){
- new tmp, Lib[2][32], Float:HA[2];
- tmp = GetPlayerWeapon(playerid);
- if(tmp != I[playerid][pWeap]){
- CallLocalFunction("OnPlayerWeaponChange", "iii", playerid, tmp, I[playerid][pWeap]);
- I[playerid][pWeap] = tmp;
- }
- tmp = GetPlayerVirtualWorld(playerid);
- if(tmp != I[playerid][pVWorld]){
- CallLocalFunction("OnPlayerVirtualWorldChange", "iii", playerid, tmp, I[playerid][pVWorld]);
- I[playerid][pVWorld] = tmp;
- }
- GetAnimationName(GetPlayerAnimationIndex(playerid), Lib[0], 32, Lib[1], 32);
- if(Lib[0][0]){
- if(!strcmp(Lib[0], "SWIM")){
- if(!I[playerid][pInWater]){
- I[playerid][pInWater] = true;
- CallLocalFunction("OnPlayerEnterWater", "i", playerid);
- }
- }else if(I[playerid][pInWater]){
- I[playerid][pInWater] = false;
- CallLocalFunction("OnPlayerExitWater", "i", playerid);
- }
- if(!strcmp(Lib[0], "PARACHUTE") || (!strcmp(Lib[0], "ped") && !strcmp(Lib[1], "FALL_skyDive")))I[playerid][pParachuting] = true;
- else I[playerid][pParachuting] = false;
- if(!strcmp(Lib[0], "VENDING")){
- I[playerid][pMachine] = true;
- CallLocalFunction("OnPlayerUseMachine", "i", playerid);
- }else I[playerid][pMachine] = false;
- }
- GetPlayerHealth(playerid, HA[0]);
- if(floatcmp(HA[0], I[playerid][pHealth])){
- CallLocalFunction("OnPlayerHealthChange", "iff", playerid, HA[0], I[playerid][pHealth]);
- I[playerid][pHealth] = HA[0];
- }
- GetPlayerArmour(playerid, HA[1]);
- if(floatcmp(HA[1], I[playerid][pArmour])){
- CallLocalFunction("OnPlayerArmourChange", "iff", playerid, HA[0], I[playerid][pArmour]);
- I[playerid][pArmour] = HA[1];
- }
- tmp = GetPlayerMoney(playerid);
- if(tmp != I[playerid][pMoney]){
- CallLocalFunction("OnPlayerMoneyChange", "iii", playerid, tmp, I[playerid][pMoney]);
- I[playerid][pMoney] = tmp;
- }
- }
- }
- }
- PUBLIC:GetWeaps(playerid)for(new i; i<13; i++)GetPlayerWeaponData(playerid, i, I[playerid][pWeaps][i], I[playerid][pAmmo][i]);
- PUBLIC:ForceReconnect(playerid)
- {
- new cmdstr[23];
- GetPlayerIp(playerid, I[playerid][pIP], 16);
- format(cmdstr, 23, "banip %s", I[playerid][pIP]);
- I[playerid][pReconnect] = true;
- SendRconCommand(cmdstr);
- }
- stock SetPlayerAFK(playerid, bool:afk)
- {
- I[playerid][pAFK] = afk;
- return 1;
- }
- stock IsPlayerAFK(playerid)return I[playerid][pAFK];
- stock IsPlayerPaused(playerid)return I[playerid][pPaused];
- stock IsPlayerInWater(playerid)return I[playerid][pInWater];
- stock IsPlayerParachuting(playerid)return I[playerid][pParachuting];
- stock IsPlayerUsingMachine(playerid)return I[playerid][pMachine];
- stock _SetPlayerHealth(playerid, Float:health)
- {
- I[playerid][pHealth] = health;
- return SetPlayerHealth(playerid, health);
- }
- stock _GetPlayerHealth(playerid, &Float:health){
- health = I[playerid][pHealth];
- return 1;
- }
- stock _SetPlayerArmour(playerid, Float:armour)
- {
- I[playerid][pArmour] = armour;
- return SetPlayerArmour(playerid, armour);
- }
- stock _GetPlayerArmour(playerid, &Float:armour){
- armour = I[playerid][pArmour];
- return 1;
- }
- stock _SetPlayerMoney(playerid, amount)
- {
- I[playerid][pMoney] = amount;
- return GivePlayerMoney(playerid, -GetPlayerMoney(playerid)+amount);
- }
- stock _GivePlayerMoney(playerid, amount)
- {
- I[playerid][pMoney] += amount;
- return GivePlayerMoney(playerid, amount);
- }
- stock _GetPlayerMoney(playerid)return I[playerid][pMoney];
- stock EnableDriveBy(bool:enable)
- {
- for(new i; i<GetMaxPlayers(); i++)I[i][pDriveBy] = enable;
- return 1;
- }
- stock EnablePlayerDriveBy(playerid, bool:enable)
- {
- I[playerid][pDriveBy] = enable;
- return 1;
- }
- stock EnableInteriorDamage(bool:toggle)
- {
- for(new i; i<GetMaxPlayers(); i++)I[i][pIntDamage] = enable;
- return 1;
- }
- stock EnablePlayerInteriorDamage(playerid, bool:enable)
- {
- I[playerid][pIntDamage] = enable;
- return 1;
- }
- stock _AddStaticVehicle(modelid, Float:spawn_x, Float:spawn_y, Float:spawn_z, Float:z_angle, color1, color2)
- {
- new vID;
- if(color1 == -1)color1 = random(127);
- if(color2 == -1)color2 = random(127);
- vID = AddStaticVehicle(modelid, spawn_x, spawn_y, spawn_z, z_angle, color1, color2);
- V[vID][vCreated] = true;
- V[vID][vColor][0] = color1;
- V[vID][vColor][1] = color2;
- format(V[vID][vPlate], 32, "XYZR 000");
- CallLocalFunction("OnVehicleCreate", "i", vID);
- return vID;
- }
- stock _AddStaticVehicleEx(modelid, Float:spawn_x, Float:spawn_y, Float:spawn_z, Float:z_angle, color1, color2, respawn_delay)
- {
- new vID;
- if(color1 == -1)color1 = random(127);
- if(color2 == -1)color2 = random(127);
- vID = AddStaticVehicleEx(modelid, spawn_x, spawn_y, spawn_z, z_angle, color1, color2, respawn_delay);
- V[vID][vCreated] = true;
- V[vID][vColor][0] = color1;
- V[vID][vColor][1] = color2;
- format(V[vID][vPlate], 32, "XYZR 000");
- CallLocalFunction("OnVehicleCreate", "i", vID);
- return vID;
- }
- stock _CreateVehicle(vehicletype, Float:x, Float:y, Float:z, Float:rotation, color1, color2, respawn_delay)
- {
- new vID;
- if(color1 == -1)color1 = random(127);
- if(color2 == -1)color2 = random(127);
- vID = CreateVehicle(vehicletype, x, y, z, rotation, color1, color2, respawn_delay);
- V[vID][vCreated] = true;
- V[vID][vColor][0] = color1;
- V[vID][vColor][1] = color2;
- format(V[vID][vPlate], 32, "XYZR 000");
- CallLocalFunction("OnVehicleCreate", "i", vID);
- return vID;
- }
- stock _DestroyVehicle(vehicleid)
- {
- V[vehicleid][vCreated] = false;
- CallLocalFunction("OnVehicleDestroy", "i", vehicleid);
- return DestroyVehicle(vehicleid);
- }
- stock _ChangeVehicleColor(vehicleid, color1, color2)
- {
- V[vehicleid][vColor][0] = color1;
- V[vehicleid][vColor][1] = color2;
- return ChangeVehicleColor(vehicleid, color1, color2);
- }
- stock _SetVehicleNumberPlate(vehicleid, numberplate[])
- {
- format(V[vehicleid][vPlate], 32, "%s", numberplate);
- return SetVehicleNumberPlate(vehicleid, numberplate[])
- }
- stock GetVehiclePlate(vehicleid, Plate[], size)
- {
- format(Plate, size, "%s", V[vehicleid][vPlate]);
- return 1;
- }
- stock GetVehicleColor(vehicleid, &color1, &color2)
- {
- color1 = V[vehicleid][vColor][0];
- color2 = V[vehicleid][vColor][1];
- return 1;
- }
- stock _LinkVehicleToInterior(vehicleid, interiorid)
- {
- V[vehicleid][vInterior] = interiorid;
- return LinkVehicleToInterior(vehicleid, interiorid);
- }
- stock GetVehicleInterior(vehicleid) return V[vehicleid][vInterior];
- stock GetVehicleIDFromPlate(Plate[])
- {
- new i;
- for(i=1; i<=MAX_VEHICLES; i++)if(V[i][vCreated] && !strcmp(V[i][vPlate], Plate))break;
- if(!V[i][vCreated] || strcmp(V[i][vPlate], Plate))i=-1;
- return i;
- }
- stock IsVehicleCreated(vehicleid)return V[vehicleid][vCreated];
- stock CrashPlayer(playerid)return ApplyAnimation(playerid, "INVALID", "INVALID", 1, 0, 0, 0, 0, 0);
- stock GetPlayerFPS(playerid)return I[playerid][pFPS];
- stock Reconnect(playerid)
- {
- new cmdstr[23];
- GetPlayerIp(playerid, I[playerid][pIP], 16);
- format(cmdstr, 23, "banip %s", I[playerid][pIP]);
- I[playerid][pReconnect] = true;
- return SendRconCommand(cmdstr);
- }
- stock ReconnectEx(playerid, time)
- {
- return SetTimerEx("ForceReconnect", time, false, "i", playerid);
- }
- ResetPlayer(playerid)
- {
- new i;
- I[playerid][pAFK] = false;
- I[playerid][pPaused] = false;
- I[playerid][pInWater] = false;
- I[playerid][pShoting] = false;
- I[playerid][pParachuting] = false;
- I[playerid][pMachine] = false;
- I[playerid][pDriveBy] = true;
- I[playerid][pIntDamage] = true;
- I[playerid][pReconnect] = false;
- for(; i<4; i++)I[playerid][pP][i] = 0.0;
- I[playerid][pTimer] = -1;
- I[playerid][pTime][0] = 0;
- I[playerid][pTime][1] = 0;
- I[playerid][pWeap] = 0;
- I[playerid][pVWorld] = 0;
- I[playerid][pHealth] = 0.0;
- I[playerid][pArmour] = 0.0;
- I[playerid][pMoney] = 0;
- for(i=0; i<13; i++){
- I[playerid][pWeaps][i] = 0;
- I[playerid][pAmmo][i] = 0;
- }
- I[playerid][pFPS] = 0;
- I[playerid][pDrk] = 0;
- }
- GetWeaponRange(weaponid)
- {
- new i;
- for(; i<30; i++)if(Ranges[i][0] == weaponid)break;
- return Ranges[i][1];
- }
- crossp(Float:v1x, Float:v1y, Float:v1z, Float:v2x, Float:v2y, Float:v2z, &Float:output)
- {
- new
- Float:c1 = (v1y * v2z) - (v1z * v2y),
- Float:c2 = (v1z * v2x) - (v1x * v2z),
- Float:c3 = (v1x * v2y) - (v1y * v2x);
- output = floatsqroot ((c1 * c1) + (c2 * c2) + (c3 * c3));
- return 0;
- }
- GetDistanceFromPointToLine(&Float:distance, Float:line_vector_x, Float:line_vector_y, Float:line_vector_z, Float:line_x, Float:line_y, Float:line_z, Float:point_x, Float:point_y, Float:point_z)
- {
- new Float:output;
- crossp(line_vector_x, line_vector_y, line_vector_z, point_x - line_x, point_y - line_y, point_z - line_z, output);//Cross product of 2 vectors.
- distance = output / floatsqroot ((line_vector_x * line_vector_x) + (line_vector_y * line_vector_y) + (line_vector_z * line_vector_z));
- return 0;
- }
- #define SetPlayerHealth _SetPlayerHealth
- #define SetPlayerArmour _SetPlayerArmour
- #define SetPlayerMoney _SetPlayerMoney
- #define GivePlayerMoney _GivePlayerMoney
- #define AddStaticVehicle _AddStaticVehicle
- #define AddStaticVehicleEx _AddStaticVehicleEx
- #define CreateVehicle _CreateVehicle
- #define SetVehicleNumberPlate _SetVehicleNumberPlate
- #define DestroyVehicle _DestroyVehicle
- #define ChangeVehicleColor _ChangeVehicleColor
- #define LinkVehicleToInterior _LinkVehicleToInterior
Advertisement
Add Comment
Please, Sign In to add comment