Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //-----------------------------------------------------------------------------------|
- // [svGroups] |
- // |
- // |
- // - You may not remove these credits |
- // - You may not claim this script as yours |
- // |
- // |
- // |
- // [VERSION 1.2] Created by SuperViper |
- //-----------------------------------------------------------------------------------|
- #include <a_samp>
- // ==================================== SETTINGS ================================== ///
- // //|
- /* Comment if you would like to use regular 'for' loops instead of foreach */ //|
- #define USE_FOREACH //|
- // //|
- /* Comment if you would like to use regular 'ALS' hooks instead of y_hooks */ //|
- #define USE_YHOOKS //|
- // //|
- /* Maximum amount of groups you need. The lower the amount, the less memory used */ //|
- #define GROUP_AMOUNT 15 //|
- // //|
- // ================================================================================ ///
- #if defined USE_FOREACH
- #tryinclude <foreach>
- #endif
- #if defined USE_YHOOKS
- #tryinclude <YSI\y_hooks>
- #endif
- enum e_svGroups_Data
- {
- svMembers,
- Float: svSpawn[4],
- svSpawnInterior,
- svSpawnWorld,
- bool: svUsingSkin,
- svSkin,
- Float: svHealth,
- Float: svArmor,
- svWeapons[5],
- svWeaponAmmo[5],
- svColor,
- }
- new svGroups_Data[GROUP_AMOUNT][e_svGroups_Data], svGroups_PlayerGroup[MAX_PLAYERS], bool: svGroups_Debug;
- #if defined USE_YHOOKS
- hook OnPlayerConnect(playerid)
- {
- svGroups_PlayerGroup[playerid] = 0;
- return 1;
- }
- hook OnPlayerDisconnect(playerid)
- {
- if(svGroups_PlayerGroup[playerid] > 0)
- {
- svGroups_Data[svGroups_PlayerGroup[playerid] - 1][svMembers]--;
- }
- return 1;
- }
- hook OnPlayerSpawn(playerid)
- {
- if(svGroups_PlayerGroup[playerid] > 0)
- {
- if(svGroups_Data[svGroups_PlayerGroup[playerid] - 1][svSpawn][0] > 0.0 || svGroups_Data[svGroups_PlayerGroup[playerid] - 1][svSpawn][1] > 0.0 || svGroups_Data[svGroups_PlayerGroup[playerid] - 1][svSpawn][2] > 0.0 || svGroups_Data[svGroups_PlayerGroup[playerid] - 1][svSpawn][3] > 0.0)
- {
- SetPlayerVirtualWorld(playerid, svGroups_Data[svGroups_PlayerGroup[playerid] - 1][svSpawnWorld]);
- SetPlayerInterior(playerid, svGroups_Data[svGroups_PlayerGroup[playerid] - 1][svSpawnInterior]);
- SetPlayerPos(playerid, svGroups_Data[svGroups_PlayerGroup[playerid] - 1][svSpawn][0], svGroups_Data[svGroups_PlayerGroup[playerid] - 1][svSpawn][1], svGroups_Data[svGroups_PlayerGroup[playerid] - 1][svSpawn][2]);
- SetPlayerFacingAngle(playerid, svGroups_Data[svGroups_PlayerGroup[playerid] - 1][svSpawn][3]);
- }
- if(svGroups_Data[svGroups_PlayerGroup[playerid] - 1][svUsingSkin] == true)
- {
- SetPlayerSkin(playerid, svGroups_Data[svGroups_PlayerGroup[playerid] - 1][svSkin]);
- }
- if(svGroups_Data[svGroups_PlayerGroup[playerid] - 1][svHealth] > 0.0)
- {
- SetPlayerHealth(playerid, svGroups_Data[svGroups_PlayerGroup[playerid] - 1][svHealth]);
- }
- if(svGroups_Data[svGroups_PlayerGroup[playerid] - 1][svArmor] > 0.0)
- {
- SetPlayerArmour(playerid, svGroups_Data[svGroups_PlayerGroup[playerid] - 1][svArmor]);
- }
- for(new i = 0; i < 5; i++)
- {
- if(svGroups_Data[svGroups_PlayerGroup[playerid] - 1][svWeapons][i] > 0 && svGroups_Data[svGroups_PlayerGroup[playerid] - 1][svWeaponAmmo][i] > 0)
- {
- GivePlayerWeapon(playerid, svGroups_Data[svGroups_PlayerGroup[playerid] - 1][svWeapons][i], svGroups_Data[svGroups_PlayerGroup[playerid] - 1][svWeaponAmmo][i]);
- }
- }
- }
- return 1;
- }
- #else
- forward svGroups_OnPlayerConnect();
- public OnPlayerConnect(playerid)
- {
- svGroups_PlayerGroup[playerid] = 0;
- return CallRemoteFunction("svGroups_OnPlayerConnect", "d", playerid);
- }
- #if defined _ALS_OnPlayerConnect
- #undef OnPlayerConnect
- #else
- #define _ALS_OnPlayerConnect
- #endif
- #define OnPlayerConnect svGroups_OnPlayerConnect
- forward svGroups_OnPlayerDisconnect();
- public OnPlayerDisconnect(playerid)
- {
- if(svGroups_PlayerGroup[playerid] > 0)
- {
- svGroups_Data[svGroups_PlayerGroup[playerid] - 1][svMembers]--;
- }
- return CallRemoteFunction("svGroups_OnPlayerDisconnect", "d", playerid);
- }
- #if defined _ALS_OnPlayerDisconnect
- #undef OnPlayerDisconnect
- #else
- #define _ALS_OnPlayerDisconnect
- #endif
- #define OnPlayerDisconnect svGroups_OnPlayerDisconnect
- forward svGroups_OnPlayerSpawn(playerid);
- public OnPlayerSpawn(playerid)
- {
- if(svGroups_PlayerGroup[playerid] > 0)
- {
- if(svGroups_Data[svGroups_PlayerGroup[playerid] - 1][svSpawn][0] > 0.0 || svGroups_Data[svGroups_PlayerGroup[playerid] - 1][svSpawn][1] > 0.0 || svGroups_Data[svGroups_PlayerGroup[playerid] - 1][svSpawn][2] > 0.0 || svGroups_Data[svGroups_PlayerGroup[playerid] - 1][svSpawn][3] > 0.0)
- {
- SetPlayerVirtualWorld(playerid, svGroups_Data[svGroups_PlayerGroup[playerid] - 1][svSpawnWorld]);
- SetPlayerInterior(playerid, svGroups_Data[svGroups_PlayerGroup[playerid] - 1][svSpawnInterior]);
- SetPlayerPos(playerid, svGroups_Data[svGroups_PlayerGroup[playerid] - 1][svSpawn][0], svGroups_Data[svGroups_PlayerGroup[playerid] - 1][svSpawn][1], svGroups_Data[svGroups_PlayerGroup[playerid] - 1][svSpawn][2]);
- SetPlayerFacingAngle(playerid, svGroups_Data[svGroups_PlayerGroup[playerid] - 1][svSpawn][3]);
- }
- if(svGroups_Data[svGroups_PlayerGroup[playerid] - 1][svUsingSkin] == true)
- {
- SetPlayerSkin(playerid, svGroups_Data[svGroups_PlayerGroup[playerid] - 1][svSkin]);
- }
- if(svGroups_Data[svGroups_PlayerGroup[playerid] - 1][svHealth] > 0.0)
- {
- SetPlayerHealth(playerid, svGroups_Data[svGroups_PlayerGroup[playerid] - 1][svHealth]);
- }
- if(svGroups_Data[svGroups_PlayerGroup[playerid] - 1][svArmor] > 0.0)
- {
- SetPlayerArmour(playerid, svGroups_Data[svGroups_PlayerGroup[playerid] - 1][svArmor]);
- }
- for(new i = 0; i < 5; i++)
- {
- if(svGroups_Data[svGroups_PlayerGroup[playerid] - 1][svWeapons][i] > 0 && svGroups_Data[svGroups_PlayerGroup[playerid] - 1][svWeaponAmmo][i] > 0)
- {
- GivePlayerWeapon(playerid, svGroups_Data[svGroups_PlayerGroup[playerid] - 1][svWeapons][i], svGroups_Data[svGroups_PlayerGroup[playerid] - 1][svWeaponAmmo][i]);
- }
- }
- }
- return CallRemoteFunction("svGroups_OnPlayerSpawn", "d", playerid);
- }
- #if defined _ALS_OnPlayerSpawn
- #undef OnPlayerSpawn
- #else
- #define _ALS_OnPlayerSpawn
- #endif
- #define OnPlayerSpawn svGroups_OnPlayerSpawn
- #endif
- stock svGroup_Debug(bool: togDebug)
- {
- if(togDebug == false)
- {
- print("(svGroups) Debugging has been turned off");
- }
- else if(togDebug == true)
- {
- print("(svGroups) Debugging has been turned on");
- }
- return svGroups_Debug = togDebug;
- }
- stock svGroup_SetPlayer(playerid, groupid)
- {
- if(svGroups_Debug == true)
- {
- printf("(svGroups) SetPlayer(playerid = %d, groupid = %d)", playerid, groupid);
- }
- if(svGroups_PlayerGroup[playerid] > 0)
- {
- svGroups_Data[svGroups_PlayerGroup[playerid] - 1][svMembers]--;
- }
- if(groupid > 0)
- {
- svGroups_Data[groupid - 1][svMembers]++;
- }
- return svGroups_PlayerGroup[playerid] = groupid;
- }
- stock svGroup_GetPlayer(playerid)
- {
- if(svGroups_Debug == true)
- {
- printf("(svGroups) GetPlayer(playerid = %d)", playerid);
- }
- return svGroups_PlayerGroup[playerid];
- }
- stock svGroup_CountMembers(groupid)
- {
- if(svGroups_Debug == true)
- {
- printf("(svGroups) CountMembers(groupid = %d)", groupid);
- }
- return svGroups_Data[groupid - 1][svMembers];
- }
- stock svGroup_SetHealth(groupid, Float: Health)
- {
- if(svGroups_Debug == true)
- {
- printf("(svGroups) SetHealth(groupid = %d, Health = %f)", groupid, Health);
- }
- new playersInGroup;
- #if defined USE_FOREACH
- foreach(new i: Player)
- {
- if(svGroups_PlayerGroup[i] == groupid)
- {
- SetPlayerHealth(i, Health);
- playersInGroup = 1;
- }
- }
- #else
- for(new i = 0; i < MAX_PLAYERS; i++)
- {
- if(IsPlayerConnected(i))
- {
- if(svGroups_PlayerGroup[i] == groupid)
- {
- SetPlayerHealth(i, Health);
- playersInGroup = 1;
- }
- }
- }
- #endif
- return playersInGroup;
- }
- stock svGroup_SetArmor(groupid, Float: Armor)
- {
- if(svGroups_Debug == true)
- {
- printf("(svGroups) SetArmor(groupid = %d, Armor = %f)", groupid, Armor);
- }
- new playersInGroup;
- #if defined USE_FOREACH
- foreach(new i: Player)
- {
- if(svGroups_PlayerGroup[i] == groupid)
- {
- SetPlayerArmour(i, Armor);
- playersInGroup = 1;
- }
- }
- #else
- for(new i = 0; i < MAX_PLAYERS; i++)
- {
- if(IsPlayerConnected(i))
- {
- if(svGroups_PlayerGroup[i] == groupid)
- {
- SetPlayerArmour(i, Armor);
- playersInGroup = 1;
- }
- }
- }
- #endif
- return playersInGroup;
- }
- stock svGroup_SetSpawn(groupid, Float: sX, Float: sY, Float: sZ, sInterior = 0, sVirtualWorld = 0, Float: sA)
- {
- if(svGroups_Debug == true)
- {
- printf("(svGroups) SetSpawn(groupid = %d, sX = %f, sY = %f, sZ = %f, sInterior = %d, sVirtualWorld = %d, sA = %f)", groupid, sX, sY, sZ, sInterior, sVirtualWorld, sA);
- }
- return svGroups_Data[groupid - 1][svSpawn][0] = sX, svGroups_Data[groupid - 1][svSpawn][1] = sY, svGroups_Data[groupid - 1][svSpawn][2] = sZ, svGroups_Data[groupid - 1][svSpawnInterior] = sInterior, svGroups_Data[groupid - 1][svSpawnWorld] = sVirtualWorld, svGroups_Data[groupid - 1][svSpawn][3] = sA;
- }
- stock svGroup_SetSpawnInfo(groupid, skin, Float: sHealth = 0.0, Float: sArmor = 0.0, weapon1 = 0, weapon1ammo = 0, weapon2 = 0, weapon3ammo = 0, weapon4 = 0, weapon4ammo = 0, weapon5 = 0, weapon5ammo = 0, color = -1)
- {
- if(svGroups_Debug == true)
- {
- printf("(svGroups) SetSpawnInfo(groupid = %d, skin = %d, sHealth = %f, sArmor = %f, weapon1 = %d, weapon1ammo = %d, weapon2 = %d, weapon2ammo = %d, weapon3 = %d, weapon3ammo = %d, weapon4 = %d, weapon4ammo = %d, weapon5 = %d, weapon5ammo = %d, color = %d)", groupid, skin, sHealth, sArmor, weapon1, weapon1ammo, weapon2, weapon2ammo, weapon3, weapon3ammo, weapon4, weapon4ammo, weapon5, weapon5ammo, color);
- }
- return svGroups_Data[groupid - 1][svSkin] = skin, svGroups_Data[groupid - 1][svUsingSkin] = true, svGroups_Data[groupid - 1][svHealth] = sHealth, svGroups_Data[groupid - 1][svArmor] = sArmor, svGroups_Data[groupid - 1][svWeapons][0] = weapon1, svGroups_Data[groupid - 1][svWeaponAmmo][0] = weapon1ammo, svGroups_Data[groupid - 1][svWeapons][1] = weapon2, svGroups_Data[groupid - 1][svWeaponAmmo][1] = weapon2ammo, svGroups_Data[groupid - 1][svWeapons][2] = weapon3, svGroups_Data[groupid - 1][svWeaponAmmo][2] = weapon3ammo, svGroups_Data[groupid - 1][svWeapons][3] = weapon4, svGroups_Data[groupid - 1][svWeaponAmmo][3] = weapon4ammo, svGroups_Data[groupid - 1][svWeapons][4] = weapon5, svGroups_Data[groupid - 1][svWeaponAmmo][4] = weapon5ammo, svGroups_Data[groupid - 1][svColor] = color;
- }
- stock svGroup_ToggleControllable(groupid, bool: controllable)
- {
- if(svGroups_Debug == true)
- {
- printf("(svGroups) ToggleControllable(groupid = %d, controllable = %d)", groupid, controllable);
- }
- new playersInGroup;
- #if defined USE_FOREACH
- foreach(new i: Player)
- {
- if(svGroups_PlayerGroup[i] == groupid)
- {
- TogglePlayerControllable(i, controllable);
- playersInGroup = 1;
- }
- }
- #else
- for(new i = 0; i < MAX_PLAYERS; i++)
- {
- if(IsPlayerConnected(i))
- {
- if(svGroups_PlayerGroup[i] == groupid)
- {
- TogglePlayerControllable(i, controllable);
- playersInGroup = 1;
- }
- }
- }
- #endif
- return playersInGroup;
- }
- stock svGroup_GiveMoney(groupid, money)
- {
- if(svGroups_Debug == true)
- {
- printf("(svGroups) GiveMoney(groupid = %d, money = %d)", groupid, money);
- }
- new playersInGroup;
- #if defined USE_FOREACH
- foreach(new i: Player)
- {
- if(svGroups_PlayerGroup[i] == groupid)
- {
- GivePlayerMoney(i, money);
- playersInGroup = 1;
- }
- }
- #else
- for(new i = 0; i < MAX_PLAYERS; i++)
- {
- if(IsPlayerConnected(i))
- {
- if(svGroups_PlayerGroup[i] == groupid)
- {
- GivePlayerMoney(i, money);
- playersInGroup = 1;
- }
- }
- }
- #endif
- return playersInGroup;
- }
Advertisement
Add Comment
Please, Sign In to add comment