Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define MAX_CLASS 318
- enum classEnum{
- cskin, Float:cx, Float:cy, Float:cz, Float:cAngle, cweapon1, cweapon1_ammo, cweapon2, cweapon2_ammo, cweapon3, cweapon3_ammo, cteamid
- }
- new Classes[MAX_CLASS][classEnum];
- new counter = -1;
- new lastClass[MAX_PLAYERS] = {0, ...};
- new currentClass[MAX_PLAYERS];
- // Make sure Gamemodeinit is before hooking
- public OnGameModeInit()
- {
- // add three random class, these will serve to see player pressed right button or left, no need to change anything here they should be blank
- // dont add or remove addplayerclass lines here
- AddPlayerClass(0, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0);
- AddPlayerClass(0, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0);
- AddPlayerClass(0, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0);
- }
- stock h_AddPlayerClass(skin, Float:x, Float:y, Float:z, Float:Angle, weapon1, weapon1_ammo, weapon2, weapon2_ammo, weapon3, weapon3_ammo)
- {
- if(counter == MAX_CLASS-1)
- {
- print("Max class limit reached");
- return -1;
- }
- counter++;
- Classes[counter][cskin] = skin;
- Classes[counter][cx] = x;
- Classes[counter][cy] = y;
- Classes[counter][cz] = z;
- Classes[counter][cAngle] = Angle;
- Classes[counter][cweapon1] = weapon1;
- Classes[counter][cweapon1_ammo] = weapon1_ammo;
- Classes[counter][cweapon2] = weapon2;
- Classes[counter][cweapon2_ammo] = weapon2_ammo;
- Classes[counter][cweapon3] = weapon3;
- Classes[counter][cweapon3_ammo] = weapon3_ammo;
- return counter;
- }
- stock h_AddPlayerClassEx(teamid, skin, Float:x, Float:y, Float:z, Float:Angle, weapon1, weapon1_ammo, weapon2, weapon2_ammo, weapon3, weapon3_ammo)
- {
- if(counter == MAX_CLASS-1)
- {
- print("Max class limit reached");
- return -1;
- }
- counter++;
- Classes[counter][cteamid] = teamid;
- Classes[counter][cskin] = skin;
- Classes[counter][cx] = x;
- Classes[counter][cy] = y;
- Classes[counter][cz] = z;
- Classes[counter][cAngle] = Angle;
- Classes[counter][cweapon1] = weapon1;
- Classes[counter][cweapon1_ammo] = weapon1_ammo;
- Classes[counter][cweapon2] = weapon2;
- Classes[counter][cweapon2_ammo] = weapon2_ammo;
- Classes[counter][cweapon3] = weapon3;
- Classes[counter][cweapon3_ammo] = weapon3_ammo;
- return counter;
- }
- //******************** REMOVE ALL CLASSES
- stock RemoveAllClasses()
- {
- counter = -1;
- }
- public OnPlayerRequestClass(playerid,classid)
- {
- if(counter != -1)// if there is atleast one class
- {
- switch(lastClass[playerid])
- {
- case 0:
- {
- if(classid == 0)
- {
- SetSpawnInfo(playerid, Classes[0][cteamid], Classes[0][cskin], Classes[0][cx], Classes[0][cy], Classes[0][cz], Classes[0][cAngle], Classes[0][cweapon1], Classes[0][cweapon1_ammo], Classes[0][cweapon2], Classes[0][cweapon2_ammo], Classes[0][cweapon3], Classes[0][cweapon3_ammo]);
- SetPlayerSkin(Classes[0][cskin]);
- currentClass[playerid] = 0;
- }
- if(classid == 1)// this means player pressed right button
- {
- if(currentClass[playerid] == counter)currentClass[playerid] = 0;
- else currentClass[playerid]++;
- SetSpawnInfo(playerid, Classes[currentClass[playerid]][cteamid], Classes[currentClass[playerid]][cskin], Classes[currentClass[playerid]][cx], Classes[currentClass[playerid]][cy], Classes[currentClass[playerid]][cz], Classes[currentClass[playerid]][cAngle], Classes[currentClass[playerid]][cweapon1], Classes[currentClass[playerid]][cweapon1_ammo], Classes[currentClass[playerid]][cweapon2], Classes[currentClass[playerid]][cweapon2_ammo], Classes[currentClass[playerid]][cweapon3], Classes[currentClass[playerid]][cweapon3_ammo]);
- SetPlayerSkin(Classes[currentClass[playerid]][cskin]);
- }
- if(classid == 2)//this means player pressed left button
- {
- if(currentClass[playerid] == 0)currentClass[playerid] = counter;
- else currentClass[playerid]--;
- SetSpawnInfo(playerid, Classes[currentClass[playerid]][cteamid], Classes[currentClass[playerid]][cskin], Classes[currentClass[playerid]][cx], Classes[currentClass[playerid]][cy], Classes[currentClass[playerid]][cz], Classes[currentClass[playerid]][cAngle], Classes[currentClass[playerid]][cweapon1], Classes[currentClass[playerid]][cweapon1_ammo], Classes[currentClass[playerid]][cweapon2], Classes[currentClass[playerid]][cweapon2_ammo], Classes[currentClass[playerid]][cweapon3], Classes[currentClass[playerid]][cweapon3_ammo]);
- SetPlayerSkin(Classes[currentClass[playerid]][cskin]);
- }
- }
- case 1:
- {
- if(classid == 1)
- {
- SetSpawnInfo(playerid, Classes[0][cteamid], Classes[0][cskin], Classes[0][cx], Classes[0][cy], Classes[0][cz], Classes[0][cAngle], Classes[0][cweapon1], Classes[0][cweapon1_ammo], Classes[0][cweapon2], Classes[0][cweapon2_ammo], Classes[0][cweapon3], Classes[0][cweapon3_ammo]);
- SetPlayerSkin(Classes[0][cskin]);
- currentClass[playerid] = 0;
- }
- if(classid == 2)// this means player pressed right button
- {
- if(currentClass[playerid] == counter)currentClass[playerid] = 0;
- else currentClass[playerid]++;
- SetSpawnInfo(playerid, Classes[currentClass[playerid]][cteamid], Classes[currentClass[playerid]][cskin], Classes[currentClass[playerid]][cx], Classes[currentClass[playerid]][cy], Classes[currentClass[playerid]][cz], Classes[currentClass[playerid]][cAngle], Classes[currentClass[playerid]][cweapon1], Classes[currentClass[playerid]][cweapon1_ammo], Classes[currentClass[playerid]][cweapon2], Classes[currentClass[playerid]][cweapon2_ammo], Classes[currentClass[playerid]][cweapon3], Classes[currentClass[playerid]][cweapon3_ammo]);
- SetPlayerSkin(Classes[currentClass[playerid]][cskin]);
- }
- if(classid == 0)//this means player pressed left button
- {
- if(currentClass[playerid] == 0)currentClass[playerid] = counter;
- else currentClass[playerid]--;
- SetSpawnInfo(playerid, Classes[currentClass[playerid]][cteamid], Classes[currentClass[playerid]][cskin], Classes[currentClass[playerid]][cx], Classes[currentClass[playerid]][cy], Classes[currentClass[playerid]][cz], Classes[currentClass[playerid]][cAngle], Classes[currentClass[playerid]][cweapon1], Classes[currentClass[playerid]][cweapon1_ammo], Classes[currentClass[playerid]][cweapon2], Classes[currentClass[playerid]][cweapon2_ammo], Classes[currentClass[playerid]][cweapon3], Classes[currentClass[playerid]][cweapon3_ammo]);
- SetPlayerSkin(Classes[currentClass[playerid]][cskin]);
- }
- }
- case 2:
- {
- if(classid == 2)
- {
- SetSpawnInfo(playerid, Classes[0][cteamid], Classes[0][cskin], Classes[0][cx], Classes[0][cy], Classes[0][cz], Classes[0][cAngle], Classes[0][cweapon1], Classes[0][cweapon1_ammo], Classes[0][cweapon2], Classes[0][cweapon2_ammo], Classes[0][cweapon3], Classes[0][cweapon3_ammo]);
- SetPlayerSkin(Classes[0][cskin]);
- currentClass[playerid] = 0;
- }
- if(classid == 0)// this means player pressed right button
- {
- if(currentClass[playerid] == counter)currentClass[playerid] = 0;
- else currentClass[playerid]++;
- SetSpawnInfo(playerid, Classes[currentClass[playerid]][cteamid], Classes[currentClass[playerid]][cskin], Classes[currentClass[playerid]][cx], Classes[currentClass[playerid]][cy], Classes[currentClass[playerid]][cz], Classes[currentClass[playerid]][cAngle], Classes[currentClass[playerid]][cweapon1], Classes[currentClass[playerid]][cweapon1_ammo], Classes[currentClass[playerid]][cweapon2], Classes[currentClass[playerid]][cweapon2_ammo], Classes[currentClass[playerid]][cweapon3], Classes[currentClass[playerid]][cweapon3_ammo]);
- SetPlayerSkin(Classes[currentClass[playerid]][cskin]);
- }
- if(classid == 1)//this means player pressed left button
- {
- if(currentClass[playerid] == 0)currentClass[playerid] = counter;
- else currentClass[playerid]--;
- SetSpawnInfo(playerid, Classes[currentClass[playerid]][cteamid], Classes[currentClass[playerid]][cskin], Classes[currentClass[playerid]][cx], Classes[currentClass[playerid]][cy], Classes[currentClass[playerid]][cz], Classes[currentClass[playerid]][cAngle], Classes[currentClass[playerid]][cweapon1], Classes[currentClass[playerid]][cweapon1_ammo], Classes[currentClass[playerid]][cweapon2], Classes[currentClass[playerid]][cweapon2_ammo], Classes[currentClass[playerid]][cweapon3], Classes[currentClass[playerid]][cweapon3_ammo]);
- SetPlayerSkin(Classes[currentClass[playerid]][cskin]);
- }
- }
- }
- }
- lastClass[playerid] = classid;
- CallLocalFunction("h_OnPlayerRequestClass", "dd", playerid, currentClass);
- }
- // This will be always below the above code, dont change order of code
- //Hooking :
- #if defined _ALS_AddPlayerClass
- #undef AddPlayerClass
- #else
- #define _ALS_AddPlayerClass
- #endif
- #define AddPlayerClass h_AddPlayerClass
- #if defined _ALS_AddPlayerClassEx
- #undef AddPlayerClassEx
- #else
- #define _ALS_AddPlayerClassEx
- #endif
- #define AddPlayerClassEx h_AddPlayerClassEx
- // hook request class :
- #if defined _ALS_OnPlayerRequestClass
- #undef OnPlayerRequestClass
- #else
- #define _ALS_OnPlayerRequestClass
- #endif
- #define OnPlayerSpawn h_OnPlayerSpawn
- forward h_OnPlayerRequestClass(playerid, classid);
Add Comment
Please, Sign In to add comment