diff --git a/gamemodes/irresistible/cnr/_cnr.pwn b/gamemodes/irresistible/cnr/_cnr.pwn index 9c7e0a1..426507d 100644 --- a/gamemodes/irresistible/cnr/_cnr.pwn +++ b/gamemodes/irresistible/cnr/_cnr.pwn @@ -19,7 +19,8 @@ #include "irresistible\cnr\ammunation.pwn" #include "irresistible\cnr\irresistibleguard.pwn" #include "irresistible\cnr\player_settings.pwn" - +#include "irresistible\cnr\animation.pwn" + // static cnr features #include "irresistible\cnr\static\_cnr_static.pwn" @@ -28,4 +29,3 @@ // commands #include "irresistible\cnr\commands\_commands.pwn" - diff --git a/gamemodes/irresistible/cnr/animation.pwn b/gamemodes/irresistible/cnr/animation.pwn new file mode 100644 index 0000000..befaf78 --- /dev/null +++ b/gamemodes/irresistible/cnr/animation.pwn @@ -0,0 +1,306 @@ +/* + * Irresistible Gaming (c) 2018 + * Developed by Steven Howard + * Module: cnr/features/animation.pwn + * Purpose: all animation and/or action commands + */ + +/* ** Includes ** */ +#include < YSI\y_hooks > + +/* ** Hooks ** */ +hook OnPlayerConnect( playerid ) +{ + PreloadAnimationLibrary( playerid, "MISC" ); + return 1; +} + +hook OnPlayerSpawn( playerid ) +{ + if ( justConnected{ playerid } == true ) + { + justConnected{ playerid } = false; + StopAudioStreamForPlayer( playerid ); + + // Preload all animations + PreloadAnimationLibrary( playerid, "DANCING" ); + PreloadAnimationLibrary( playerid, "PED" ); + PreloadAnimationLibrary( playerid, "PAULNMAC" ); + PreloadAnimationLibrary( playerid, "INT_OFFICE" ); + PreloadAnimationLibrary( playerid, "BEACH" ); + PreloadAnimationLibrary( playerid, "SWEET" ); + PreloadAnimationLibrary( playerid, "SNM" ); + PreloadAnimationLibrary( playerid, "COP_AMBIENT" ); + PreloadAnimationLibrary( playerid, "ON_LOOKERS" ); + PreloadAnimationLibrary( playerid, "SHOP" ); + PreloadAnimationLibrary( playerid, "RAPPING" ); + PreloadAnimationLibrary( playerid, "DEALER" ); + PreloadAnimationLibrary( playerid, "STRIP" ); + PreloadAnimationLibrary( playerid, "RIOT" ); + PreloadAnimationLibrary( playerid, "BLOWJOBZ" ); + PreloadAnimationLibrary( playerid, "CRACK" ); + PreloadAnimationLibrary( playerid, "GYMNASIUM" ); + PreloadAnimationLibrary( playerid, "ROB_BANK" ); + PreloadAnimationLibrary( playerid, "BOMBER" ); + PreloadAnimationLibrary( playerid, "CARRY" ); + PreloadAnimationLibrary( playerid, "VENDING" ); + PreloadAnimationLibrary( playerid, "CASINO" ); + PreloadAnimationLibrary( playerid, "GANGS" ); + PreloadAnimationLibrary( playerid, "INT_HOUSE" ); + } + + return Y_HOOKS_CONTINUE_RETURN_1; +} + +hook OnPlayerKeyStateChange( playerid, newkeys, oldkeys ) +{ + if ( PRESSED( KEY_SPRINT ) ) + { + if ( p_InAnimation{ playerid } == true ) + { + if ( IsPlayerTied( playerid ) || IsPlayerCuffed( playerid ) || IsPlayerTazed( playerid ) ) + return SendError( playerid, "You cannot stop your animation at the moment." ); + + TextDrawHideForPlayer( playerid, g_AnimationTD ); + p_InAnimation{ playerid } = false; + ClearAnimations( playerid ); + SetPlayerSpecialAction( playerid, 0 ); + } + } + + + return 1; +} + +/* ** Functions ** */ +stock IsPlayingAnimation( playerid, library[ ], animation[ ] ) +{ + if ( IsPlayerConnected( playerid ) ) + { + static + animlib[ 32 ], animname[ 32 ]; + + GetAnimationName( GetPlayerAnimationIndex( playerid ), animlib, 32, animname, 32 ); + return strmatch( library, animlib ) && strmatch( animation, animname ); + } + return 0; +} + +stock PreloadAnimationLibrary( playerid, animlib[ ] ) + return ApplyAnimation( playerid, animlib, "null", 0.0, 0, 0, 0, 0, 0 ); + +/* ** Commands ** */ +CMD:anims( playerid, params[ ] ) return cmd_animlist( playerid, params ); +CMD:animlist( playerid, params[ ] ) +{ + SendClientMessage( playerid, COLOR_GOLD, ".: Animation List :." ); + SendClientMessage( playerid, -1, "/dance, /piss, /wank, /sit, /groundsit, /lay, /deal, /laugh, /gangsign" ); + SendClientMessage( playerid, -1, "/slapass, /sex, /crossarms, /wave, /lookout, /strip, /aimthreat, /kiss" ); + SendClientMessage( playerid, -1, "/chat, /fuckoff, /shout, /chant, /handsup, /cower, /sleep, /lean, /fiddle" ); + return 1; +} + +CMD:dance( playerid, params[ ] ) +{ + new id; + if ( sscanf( params, "d", id ) ) return SendUsage( playerid, "/dance [1-11]" ); + else + { + switch( id ) + { + case 1: CreateLoopingAnimation(playerid, "DANCING", "dance_loop", 4.0, 1, 0, 0, 0, 0 ); + case 2: CreateLoopingAnimation(playerid, "DANCING", "DAN_Down_A", 4.0, 1, 0, 0, 0, 0 ); + case 3: CreateLoopingAnimation(playerid, "DANCING", "DAN_Left_A", 4.0, 1, 0, 0, 0, 0 ); + case 4: CreateLoopingAnimation(playerid, "DANCING", "DAN_Loop_A", 4.0, 1, 0, 0, 0, 0 ); + case 5: CreateLoopingAnimation(playerid, "DANCING", "DAN_Right_A", 4.0, 1, 0, 0, 0, 0 ); + case 6: CreateLoopingAnimation(playerid, "DANCING", "DAN_Up_A", 4.0, 1, 0, 0, 0, 0 ); + case 7: CreateLoopingAnimation(playerid, "DANCING", "dnce_M_a", 4.0, 1, 0, 0, 0, 0 ); + case 8: CreateLoopingAnimation(playerid, "DANCING", "dnce_M_b", 4.0, 1, 0, 0, 0, 0 ); + case 9: CreateLoopingAnimation(playerid, "DANCING", "dnce_M_c", 4.0, 1, 0, 0, 0, 0 ); + case 10: CreateLoopingAnimation(playerid, "DANCING", "dnce_M_d", 4.0, 1, 0, 0, 0, 0 ); + case 11: CreateLoopingAnimation(playerid, "DANCING", "dnce_M_e", 4.0, 1, 0, 0, 0, 0 ); + default: SendError( playerid, "Invalid Dance ID." ); + } + } + return 1; +} + +CMD:piss( playerid, params[ ] ) +{ + CreateLoopingAnimation( playerid, "PED", "null", 4.0, 1, 0, 0, 0, 0, 68 ); // Sit + return 1; +} + +CMD:wank( playerid, params[ ] ) +{ + CreateLoopingAnimation( playerid, "PAULNMAC", "wank_loop", 4.0, 1, 0, 0, 0, 0 ); + return 1; +} + +CMD:sit( playerid, params[ ] ) +{ + CreateLoopingAnimation( playerid, "INT_OFFICE", "OFF_Sit_Type_Loop", 4.0, 1, 0, 0, 0, 0 ); + return 1; +} + +CMD:groundsit( playerid, params[ ] ) +{ + CreateLoopingAnimation( playerid, "BEACH", "ParkSit_M_loop", 4.0, 1, 0, 0, 0, 0 ); + return 1; +} + +CMD:lay( playerid, params[ ] ) +{ + CreateLoopingAnimation( playerid, "BEACH", "bather", 4.0, 1, 0, 0, 0, 0 ); + return 1; +} + +CMD:slapass( playerid, params[ ] ) +{ + CreateLoopingAnimation( playerid, "SWEET", "sweet_ass_slap", 4.0, 0, 0, 0, 0, 0 ); + return 1; +} + +CMD:sex( playerid, params[ ] ) +{ + CreateLoopingAnimation( playerid, "SNM", "SPANKING_IDLEW", 4.0, 0, 0, 0, 0, 0 ); + return 1; +} + +CMD:crossarms( playerid, params[ ] ) +{ + CreateLoopingAnimation( playerid, "COP_AMBIENT", "Coplook_loop", 4.0, 1, 0, 0, 0, 0 ); + return 1; +} + +CMD:wave( playerid, params[ ] ) +{ + CreateLoopingAnimation( playerid, "ON_LOOKERS", "wave_loop", 4.0, 1, 0, 0, 0, 0 ); + return 1; +} + +CMD:lookout( playerid, params[ ] ) +{ + CreateLoopingAnimation( playerid, "SHOP", "ROB_Shifty", 4.0, 0, 0, 0, 0, 0 ); + return 1; +} + +CMD:laugh( playerid, params[ ] ) +{ + CreateLoopingAnimation( playerid, "RAPPING", "Laugh_01", 4.0, 0, 0, 0, 0, 0 ); + return 1; +} + +CMD:deal( playerid, params[ ] ) +{ + CreateLoopingAnimation( playerid, "DEALER", "DEALER_IDLE", 4.0, 1, 0, 0, 0, 0 ); + return 1; +} + +CMD:strip( playerid, params[ ] ) +{ + new id; + if ( sscanf( params, "d", id ) ) return SendUsage( playerid, "/strip [1-7]" ); + else + { + switch( id ) + { + case 1: CreateLoopingAnimation(playerid, "STRIP", "strip_A", 4.0, 1, 0, 0, 0, 0 ); + case 2: CreateLoopingAnimation(playerid, "STRIP", "strip_B", 4.0, 1, 0, 0, 0, 0 ); + case 3: CreateLoopingAnimation(playerid, "STRIP", "strip_C", 4.0, 1, 0, 0, 0, 0 ); + case 4: CreateLoopingAnimation(playerid, "STRIP", "strip_D", 4.0, 1, 0, 0, 0, 0 ); + case 5: CreateLoopingAnimation(playerid, "STRIP", "strip_E", 4.0, 1, 0, 0, 0, 0 ); + case 6: CreateLoopingAnimation(playerid, "STRIP", "strip_F", 4.0, 1, 0, 0, 0, 0 ); + case 7: CreateLoopingAnimation(playerid, "STRIP", "strip_G", 4.0, 1, 0, 0, 0, 0 ); + default: SendError( playerid, "Invalid Strip ID." ); + } + } + return 1; +} + +CMD:aimthreat( playerid, params[ ] ) +{ + CreateLoopingAnimation( playerid, "SHOP", "ROB_Loop_Threat", 4.0, 1, 0, 0, 0, 0 ); + return 1; +} + +CMD:chat( playerid, params[ ] ) +{ + CreateLoopingAnimation( playerid, "PED", "IDLE_CHAT", 4.0, 1, 0, 0, 0, 0 ); + return 1; +} + +CMD:fuckoff( playerid, params[ ] ) +{ + CreateLoopingAnimation( playerid, "PED", "fucku", 4.0, 0, 0, 0, 0, 0 ); + return 1; +} + +CMD:shout( playerid, params[ ] ) +{ + CreateLoopingAnimation( playerid, "RIOT", "RIOT_shout", 4.0, 1, 0, 0, 0, 0 ); + return 1; +} + +CMD:chant( playerid, params[ ] ) +{ + CreateLoopingAnimation( playerid, "RIOT", "RIOT_CHANT", 4.0, 1, 0, 0, 0, 0 ); + return 1; +} + +CMD:handsup( playerid, params[ ] ) +{ + CreateLoopingAnimation( playerid, "PED", "null", 4.0, 1, 0, 0, 0, 0, SPECIAL_ACTION_HANDSUP ); + return 1; +} + +CMD:cower( playerid, params[ ] ) +{ + CreateLoopingAnimation( playerid, "PED", "COWER", 4.0, 1, 0, 0, 0, 0 ); + return 1; +} + +CMD:kiss( playerid, params[ ] ) +{ + CreateLoopingAnimation( playerid, "KISSING", "Playa_Kiss_02", 4.0, 1, 0, 0, 0, 0 ); + return 1; +} + +CMD:gangsign( playerid, params[ ] ) +{ + new id; + if ( sscanf( params, "d", id ) ) return SendUsage( playerid, "/gangsign [1-7]" ); + else + { + switch( id ) + { + case 1: CreateLoopingAnimation(playerid, "GHANDS", "gsign1", 4.0, 1, 0, 0, 0, 0 ); + case 2: CreateLoopingAnimation(playerid, "GHANDS", "gsign1LH", 4.0, 1, 0, 0, 0, 0 ); + case 3: CreateLoopingAnimation(playerid, "GHANDS", "gsign2", 4.0, 1, 0, 0, 0, 0 ); + case 4: CreateLoopingAnimation(playerid, "GHANDS", "gsign2LH", 4.0, 1, 0, 0, 0, 0 ); + case 5: CreateLoopingAnimation(playerid, "GHANDS", "gsign3", 4.0, 1, 0, 0, 0, 0 ); + case 6: CreateLoopingAnimation(playerid, "GHANDS", "gsign3LH", 4.0, 1, 0, 0, 0, 0 ); + case 7: CreateLoopingAnimation(playerid, "GHANDS", "gsign4", 4.0, 1, 0, 0, 0, 0 ); + default: SendError( playerid, "Invalid Gang Sign ID." ); + } + } + return 1; +} + +CMD:lean( playerid, params[ ] ) +{ + CreateLoopingAnimation( playerid, "GANGS", "leanIDLE", 4.0, 1, 0, 0, 0, 0 ); + return 1; +} + +CMD:sleep( playerid, params[ ] ) +{ + CreateLoopingAnimation( playerid, "CRACK", "crckidle2", 4.0, 1, 0, 0, 0, 0 ); + return 1; +} + +CMD:fiddle( playerid, params[ ] ) +{ + CreateLoopingAnimation( playerid, "INT_HOUSE", "wash_up", 4.0, 1, 0, 0, 0, 0 ); + return 1; +} \ No newline at end of file diff --git a/gamemodes/irresistible/cnr/commands/admin/_admin.pwn b/gamemodes/irresistible/cnr/commands/admin/_admin.pwn index b0dc4b4..75e601c 100644 --- a/gamemodes/irresistible/cnr/commands/admin/_admin.pwn +++ b/gamemodes/irresistible/cnr/commands/admin/_admin.pwn @@ -1,17 +1,232 @@ /* * Irresistible Gaming (c) 2018 - * Developed by Lorenc Pekaj + * Developed by Lorenc Pekaj, Steven Howard * Module: cnr/commands/admin/_admin.pwn * Purpose: encloses all admin related commands */ +/* ** Includes ** */ +#include < YSI\y_hooks > + /* ** Definitions ** */ #define ADMIN_COMMAND_REJECT "You don't have an appropriate administration level to use this command." #define ADMIN_COMMAND_TIME 4 +#define DIALOG_ADMIN_CMDS 1167 +#define DIALOG_ADMIN_CMDS_BACK 1168 +/* ** Variables ** */ + +enum E_COMMAND_DATA +{ + E_LEVEL, + E_COMMAND[ 64 ], + E_DESCRIPTION[ 144 ], +} + +new + g_CommandData [ ] [ E_COMMAND_DATA ] = + { + /* ** Level 1 Commands ** */ + { 1, "/viewdeathmsg", "Viewing a player death message" }, + { 1, "/arepair", "Fixing a vehicle" }, + { 1, "/aka", "Player name changes (also known as)" }, + { 1, "/pinfo", "Related information about a player" }, + { 1, "/reports", "Showing the last 8 reports" }, + { 1, "/questions", "Showing the last 8 questions" }, + { 1, "/respawnalluv", "Respawning all unused vehicles" }, + { 1, "/aod", "Admin on Duty mode" }, + { 1, "/asay", "Speak as a Admin." }, + { 1, "/frules", "Forcing player to view the rules" }, + { 1, "/fpc", "Forcing player to view player colors" }, + { 1, "/freeze", "Freezing a player" }, + { 1, "/unfreeze", "Unfreezing a player" }, + { 1, "/awep", "Showing player current weapons" }, + { 1, "/alog", "Shows administration log textdraw" }, + { 1, "/stpfa", "Blocking/unblocking a player from using /ask" }, + { 1, "/ans", "Answering a question" }, + { 1, "/respond", "Responding to a report" }, + { 1, "/aspawn", "Spawning a player" }, + { 1, "/warn", "Warning a player" }, + { 1, "/setskin", "Setting a player s speific skin ID" }, + { 1, "/stpfr", "Blocking/unblocking a player from using /report" }, + { 1, "/getstats", "Gettings the stats of a player" }, + { 1, "/a", "Admin chat" }, + { 1, "/adminmanual", "Reading the admin manual" }, + { 1, "/slap", "Slaping a player (default offset = 10)" }, + { 1, "/jail", "Jailing a player" }, + { 1, "/unjail", "Unjailing a player" }, + { 1, "/spec", "Spectating a player" }, + { 1, "/specoff", "Turning specation mode off" }, + { 1, "/goto", "Teleporting to a player" }, + { 1, "/mutelist", "Showing a list of muted players" }, + + /* ** Level 2 Commands ** */ + { 2, "/slay", "Slaying a player" }, + { 2, "/viewnotes", "Viewing a players V.I.P notes" }, + { 2, "/suspend", "Suspending a player" }, + { 2, "/arenas", "Showing a dialog of arenas for events" }, + { 2, "/explode", "Exploding a player" }, + { 2, "/vrespawn", "Respawning a vehicle ID" }, + { 2, "/vdestroy", "Destroying a admin vehicle" }, + { 2, "/mute", "Muting a player" }, + { 2, "/unmute", "Unmuting a player" }, + { 2, "/kick", "Kicking a player from the server" }, + + /* ** Level 3 Commands ** */ + { 3, "/smlog", "Cash transaction log from a player" }, + { 3, "/iclog", "IC transaction log from a player" }, + { 3, "/resetwep", "Resetting weapons from a player" }, + { 3, "/getip", "Getting IP of a player" }, + { 3, "/geolocate", "Geographical location of a player" }, + { 3, "/copwarn", "Cop warn a player" }, + { 3, "/armywarn", "Army warn a player" }, + { 3, "/rcopwarn", "Removing a cop warning" }, + { 3, "/rarmywarn", "Removing a army warning" }, + { 3, "/forcecoptutorial", "Forcing a player to view the cop tutorial" }, + { 3, "/ann", "Creates a global annoucement" }, + { 3, "/announce", "Creates a global annoucement" }, + { 3, "/aheal", "Healing a player" }, + { 3, "/healall", "Healing everyone" }, + { 3, "/vadminstats", "Viewing vehicle stats" }, + { 3, "/vadminpark", "Parking a vehicle" }, + { 3, "/givewep", "Giving a player a weapon" }, + { 3, "/giveweapon", "Giving a player a weapon" }, + { 3, "/cc", "Clearing the main chat" }, + { 3, "/clearchat", "Clearing the main chat" }, + { 3, "/vbring", "Bring a vehicle ID to you" }, + { 3, "/vgoto", "Teleport to a vehicle ID" }, + { 3, "/venter", "Enter a vehicle ID" }, + { 3, "/vforce", "Forcing a player to enter vehicle ID" }, + { 3, "/hgoto", "Teleport to a house" }, + { 3, "/bgoto", "Teleport to a business" }, + { 3, "/cd", "Countdown (short)" }, + { 3, "/countdown", "Countdown" }, + { 3, "/pingimmune", "Making a player immune from ping kicker" }, + { 3, "/ban", "Banning a player" }, + { 3, "/bring", "Bring a player to you" }, + + /* ** Level 4 Commands ** */ + { 4, "/destroyallav", "Destroys all admin spawned vehicles" }, + { 4, "/event", "Set's your world to 69" }, + { 4, "/setworld", "Sets your virtual world" }, + { 4, "/setinterior", "Sets your interior ID" }, + { 4, "/uncopban", "Unbanning a player from cop class" }, + { 4, "/unarmyban", "Unbanning a player from army class" }, + { 4, "/motd", "Sets a Message Of The Day" }, + { 4, "/resetwepall", "Resets all player weapons" }, + { 4, "/giveweaponall", "Gives all players a weapon" }, + { 4, "/circleall", "Teleports all players around in a circle of you (used for events)" }, + { 4, "/vc", "Creating a admin vehicle (short)" }, + { 4, "/vcreate", "Creating a admin vehicle" }, + { 4, "/gotopos", "Teleport to a specifc location X Y Z" }, + { 4, "/addnote", "Attach a note to a player" }, + { 4, "/removenote", "Removing a player note" }, + + /* ** Level 5 Commands ** */ + { 5, "/armorall", "Giving everyone armour" }, + { 5, "/check", "Checking a players serial" }, + { 5, "/c", "Council chat" }, + { 5, "/creategarage", "Creating a garage" }, + { 5, "/destroygarage", "Deletes a garage" }, + { 5, "/connectsong", "Changes the conneciton song" }, + { 5, "/discordurl", "Updating the discord invite URL" }, + { 5, "/creategate", "Creating a gate" }, + { 5, "/editgate", "Editing a gate" }, + { 5, "/acunban", "Unbanning a player from AC" }, + { 5, "/safeisbugged", "Debug command for robbery safes" }, + { 5, "/autovehrespawn", "Setting auto respawn for vehicles" }, + { 5, "/megaban", "The Mega Ban" }, + { 5, "/achangename", "Change a players name" }, + { 5, "/unbanip", "Unbanning a IP address" }, + { 5, "/unban", "Unban a player from the server" }, + { 5, "/doublexp", "Enable/disable double XP" }, + { 5, "/toggleviewpm", "Toggle to view private messages" }, + { 5, "/respawnallv", "Respawning all server vehicles" }, + { 5, "/reconnectchuff", "Reconnecting the ChuffSec NPC" }, + { 5, "/createbribe", "Creates a bribe" }, + { 5, "/destroybribe", "Deletes a bribe " }, + { 5, "/createcar", "Create owned vehicle" }, + { 5, "/destroycar", "Deletes owned vehicle" }, + { 5, "/stripcarmods", "Removing all vehicle modifications" }, + { 5, "/createhouse", "Creating a house" }, + { 5, "/destroyhouse", "Deleting a house" }, + { 5, "/hadminsell", "Selling a house (as admin)" }, + { 5, "/forceac", "Forcing a player to use SAMP-CAC" }, + { 5, "/createbusiness", "Creates a business" }, + { 5, "/destroybusiness", "Deletes a business" }, + { 5, "/seteventhost", "Setting event host to player" }, + { 5, "/weather", "Settings world weather" }, + + /* ** Level 6 Commands ** */ + { 6, "/reloadeditor", "Reloads object editer script" }, + { 6, "/createentrance", "Creates a entrance" }, + { 6, "/destroyentrance", "Deleting a entrance" }, + { 6, "/setgangleader", "Settings a player into a gang leader" }, + { 6, "/viewgangtalk", "Viewing gang chat" }, + { 6, "/broadcast", "Broadcasting a music stream" }, + { 6, "/setlevel", "Setting a players admin level " }, + { 6, "/setleveloffline", "Setting a players admin level offline" }, + { 6, "/svrstats", "Show server statistics" }, + { 6, "/playaction", "Playing a action" }, + { 6, "/playanimation", "Playing an animation" }, + { 6, "/updaterules", "Updating the server rules" }, + { 6, "/truncate", "Truncating a account" } + } +; + /* ** Commands ** */ CMD:acommands( playerid, params[ ] ) return cmd_acmds( playerid, params ); CMD:acmds( playerid, params[ ] ) +{ + if ( p_AdminLevel[ playerid ] < 1 ) + return SendError( playerid, ADMIN_COMMAND_REJECT ); + + szNormalString[ 0 ] = '\0'; + + for (new iPos = 1; iPos != 7; iPos ++) + { + format( szNormalString, sizeof( szNormalString ), "%sAdmin Level %d Commands\n", szNormalString, iPos ); + } + + ShowPlayerDialog( playerid, DIALOG_ADMIN_CMDS, DIALOG_STYLE_LIST, ""COL_PINK"Admin Commands", szNormalString, "Select", "Cancel" ); + return 1; +} + +/* ** Hooks ** */ + +hook OnDialogResponse( playerid, dialogid, response, listitem, inputtext[ ] ) +{ + if ( dialogid == DIALOG_ADMIN_CMDS && response ) + { + szHugeString[ 0 ] = '\0'; + + new + level = ( listitem + 1 ); + + if ( p_AdminLevel[ playerid ] < level ) + return SendError( playerid, "You don't have permission to view these admin commands." ), cmd_acmds( playerid, "" ); + + for (new iLine = 0; iLine < sizeof( g_CommandData ); iLine ++ ) if ( g_CommandData[ iLine ][ E_LEVEL ] == level ) + { + format( szHugeString, sizeof( szHugeString ), "%s"COL_GREY"%s\t"COL_WHITE"%s\n", + szHugeString, + g_CommandData[ iLine ][ E_COMMAND ], + g_CommandData[ iLine ][ E_DESCRIPTION ]); + } + + ShowPlayerDialog( playerid, DIALOG_ADMIN_CMDS_BACK, DIALOG_STYLE_TABLIST, sprintf( ""COL_PINK"Admin Level %d Commands", level ), szHugeString, "Back", "" ); + return 1; + } + + else if ( dialogid == DIALOG_ADMIN_CMDS_BACK && response ) + { + return cmd_acmds( playerid, "" ), 1; + } + + return 1; +} + +/*CMD:acmds( playerid, params[ ] ) { if ( p_AdminLevel[ playerid ] < 1 ) return SendError( playerid, ADMIN_COMMAND_REJECT ); SendClientMessage( playerid, COLOR_GREY, "|______________________________________| Admin Commands |_____________________________________|" ); @@ -37,7 +252,7 @@ CMD:acmds( playerid, params[ ] ) SendClientMessage( playerid, COLOR_GREY, "|_____________________________________________________________________________________________|" ); return 1; -} +}*/ /* ** Modules ** */ #include "irresistible\cnr\commands\admin\admin_one.pwn" diff --git a/gamemodes/sf-cnr.pwn b/gamemodes/sf-cnr.pwn index 8cb0d50..bb301d4 100644 --- a/gamemodes/sf-cnr.pwn +++ b/gamemodes/sf-cnr.pwn @@ -3604,7 +3604,7 @@ public OnPlayerConnect( playerid ) PlayAudioStreamForPlayer( playerid, szNormalString ); } - PreloadAnimationLibrary( playerid, "MISC" ); + //PreloadAnimationLibrary( playerid, "MISC" ); return 1; } @@ -4055,30 +4055,30 @@ public OnPlayerSpawn( playerid ) StopAudioStreamForPlayer( playerid ); // Preload all animations - PreloadAnimationLibrary( playerid, "DANCING" ); - PreloadAnimationLibrary( playerid, "PED" ); - PreloadAnimationLibrary( playerid, "PAULNMAC" ); - PreloadAnimationLibrary( playerid, "INT_OFFICE" ); - PreloadAnimationLibrary( playerid, "BEACH" ); - PreloadAnimationLibrary( playerid, "SWEET" ); - PreloadAnimationLibrary( playerid, "SNM" ); - PreloadAnimationLibrary( playerid, "COP_AMBIENT" ); - PreloadAnimationLibrary( playerid, "ON_LOOKERS" ); - PreloadAnimationLibrary( playerid, "SHOP" ); - PreloadAnimationLibrary( playerid, "RAPPING" ); - PreloadAnimationLibrary( playerid, "DEALER" ); - PreloadAnimationLibrary( playerid, "STRIP" ); - PreloadAnimationLibrary( playerid, "RIOT" ); - PreloadAnimationLibrary( playerid, "BLOWJOBZ" ); - PreloadAnimationLibrary( playerid, "CRACK" ); - PreloadAnimationLibrary( playerid, "GYMNASIUM" ); - PreloadAnimationLibrary( playerid, "ROB_BANK" ); - PreloadAnimationLibrary( playerid, "BOMBER" ); - PreloadAnimationLibrary( playerid, "CARRY" ); - PreloadAnimationLibrary( playerid, "VENDING" ); - PreloadAnimationLibrary( playerid, "CASINO" ); - PreloadAnimationLibrary( playerid, "GANGS" ); - PreloadAnimationLibrary( playerid, "INT_HOUSE" ); + // PreloadAnimationLibrary( playerid, "DANCING" ); + // PreloadAnimationLibrary( playerid, "PED" ); + // PreloadAnimationLibrary( playerid, "PAULNMAC" ); + // PreloadAnimationLibrary( playerid, "INT_OFFICE" ); + // PreloadAnimationLibrary( playerid, "BEACH" ); + // PreloadAnimationLibrary( playerid, "SWEET" ); + // PreloadAnimationLibrary( playerid, "SNM" ); + // PreloadAnimationLibrary( playerid, "COP_AMBIENT" ); + // PreloadAnimationLibrary( playerid, "ON_LOOKERS" ); + // PreloadAnimationLibrary( playerid, "SHOP" ); + // PreloadAnimationLibrary( playerid, "RAPPING" ); + // PreloadAnimationLibrary( playerid, "DEALER" ); + // PreloadAnimationLibrary( playerid, "STRIP" ); + // PreloadAnimationLibrary( playerid, "RIOT" ); + // PreloadAnimationLibrary( playerid, "BLOWJOBZ" ); + // PreloadAnimationLibrary( playerid, "CRACK" ); + // PreloadAnimationLibrary( playerid, "GYMNASIUM" ); + // PreloadAnimationLibrary( playerid, "ROB_BANK" ); + // PreloadAnimationLibrary( playerid, "BOMBER" ); + // PreloadAnimationLibrary( playerid, "CARRY" ); + // PreloadAnimationLibrary( playerid, "VENDING" ); + // PreloadAnimationLibrary( playerid, "CASINO" ); + // PreloadAnimationLibrary( playerid, "GANGS" ); + // PreloadAnimationLibrary( playerid, "INT_HOUSE" ); // Jail people that left jailed if ( p_JailTime[ playerid ] ) // We load this when the player logs in. @@ -7907,221 +7907,6 @@ CMD:savestats( playerid, params[ ] ) return 1; } -CMD:dance( playerid, params[ ] ) -{ - new id; - if ( sscanf( params, "d", id ) ) return SendUsage( playerid, "/dance [1-11]" ); - else - { - switch( id ) - { - case 1: CreateLoopingAnimation(playerid, "DANCING", "dance_loop", 4.0, 1, 0, 0, 0, 0 ); - case 2: CreateLoopingAnimation(playerid, "DANCING", "DAN_Down_A", 4.0, 1, 0, 0, 0, 0 ); - case 3: CreateLoopingAnimation(playerid, "DANCING", "DAN_Left_A", 4.0, 1, 0, 0, 0, 0 ); - case 4: CreateLoopingAnimation(playerid, "DANCING", "DAN_Loop_A", 4.0, 1, 0, 0, 0, 0 ); - case 5: CreateLoopingAnimation(playerid, "DANCING", "DAN_Right_A", 4.0, 1, 0, 0, 0, 0 ); - case 6: CreateLoopingAnimation(playerid, "DANCING", "DAN_Up_A", 4.0, 1, 0, 0, 0, 0 ); - case 7: CreateLoopingAnimation(playerid, "DANCING", "dnce_M_a", 4.0, 1, 0, 0, 0, 0 ); - case 8: CreateLoopingAnimation(playerid, "DANCING", "dnce_M_b", 4.0, 1, 0, 0, 0, 0 ); - case 9: CreateLoopingAnimation(playerid, "DANCING", "dnce_M_c", 4.0, 1, 0, 0, 0, 0 ); - case 10: CreateLoopingAnimation(playerid, "DANCING", "dnce_M_d", 4.0, 1, 0, 0, 0, 0 ); - case 11: CreateLoopingAnimation(playerid, "DANCING", "dnce_M_e", 4.0, 1, 0, 0, 0, 0 ); - default: SendError( playerid, "Invalid Dance ID." ); - } - } - return 1; -} - -CMD:piss( playerid, params[ ] ) -{ - CreateLoopingAnimation( playerid, "PED", "null", 4.0, 1, 0, 0, 0, 0, 68 ); // Sit - return 1; -} - -CMD:wank( playerid, params[ ] ) -{ - CreateLoopingAnimation( playerid, "PAULNMAC", "wank_loop", 4.0, 1, 0, 0, 0, 0 ); - return 1; -} - -CMD:sit( playerid, params[ ] ) -{ - CreateLoopingAnimation( playerid, "INT_OFFICE", "OFF_Sit_Type_Loop", 4.0, 1, 0, 0, 0, 0 ); - return 1; -} - -CMD:groundsit( playerid, params[ ] ) -{ - CreateLoopingAnimation( playerid, "BEACH", "ParkSit_M_loop", 4.0, 1, 0, 0, 0, 0 ); - return 1; -} - -CMD:lay( playerid, params[ ] ) -{ - CreateLoopingAnimation( playerid, "BEACH", "bather", 4.0, 1, 0, 0, 0, 0 ); - return 1; -} - -CMD:slapass( playerid, params[ ] ) -{ - CreateLoopingAnimation( playerid, "SWEET", "sweet_ass_slap", 4.0, 0, 0, 0, 0, 0 ); - return 1; -} - -CMD:sex( playerid, params[ ] ) -{ - CreateLoopingAnimation( playerid, "SNM", "SPANKING_IDLEW", 4.0, 0, 0, 0, 0, 0 ); - return 1; -} - -CMD:crossarms( playerid, params[ ] ) -{ - CreateLoopingAnimation( playerid, "COP_AMBIENT", "Coplook_loop", 4.0, 1, 0, 0, 0, 0 ); - return 1; -} - -CMD:wave( playerid, params[ ] ) -{ - CreateLoopingAnimation( playerid, "ON_LOOKERS", "wave_loop", 4.0, 1, 0, 0, 0, 0 ); - return 1; -} - -CMD:lookout( playerid, params[ ] ) -{ - CreateLoopingAnimation( playerid, "SHOP", "ROB_Shifty", 4.0, 0, 0, 0, 0, 0 ); - return 1; -} - -CMD:laugh( playerid, params[ ] ) -{ - CreateLoopingAnimation( playerid, "RAPPING", "Laugh_01", 4.0, 0, 0, 0, 0, 0 ); - return 1; -} - -CMD:deal( playerid, params[ ] ) -{ - CreateLoopingAnimation( playerid, "DEALER", "DEALER_IDLE", 4.0, 1, 0, 0, 0, 0 ); - return 1; -} - -CMD:strip( playerid, params[ ] ) -{ - new id; - if ( sscanf( params, "d", id ) ) return SendUsage( playerid, "/strip [1-7]" ); - else - { - switch( id ) - { - case 1: CreateLoopingAnimation(playerid, "STRIP", "strip_A", 4.0, 1, 0, 0, 0, 0 ); - case 2: CreateLoopingAnimation(playerid, "STRIP", "strip_B", 4.0, 1, 0, 0, 0, 0 ); - case 3: CreateLoopingAnimation(playerid, "STRIP", "strip_C", 4.0, 1, 0, 0, 0, 0 ); - case 4: CreateLoopingAnimation(playerid, "STRIP", "strip_D", 4.0, 1, 0, 0, 0, 0 ); - case 5: CreateLoopingAnimation(playerid, "STRIP", "strip_E", 4.0, 1, 0, 0, 0, 0 ); - case 6: CreateLoopingAnimation(playerid, "STRIP", "strip_F", 4.0, 1, 0, 0, 0, 0 ); - case 7: CreateLoopingAnimation(playerid, "STRIP", "strip_G", 4.0, 1, 0, 0, 0, 0 ); - default: SendError( playerid, "Invalid Strip ID." ); - } - } - return 1; -} - -CMD:aimthreat( playerid, params[ ] ) -{ - CreateLoopingAnimation( playerid, "SHOP", "ROB_Loop_Threat", 4.0, 1, 0, 0, 0, 0 ); - return 1; -} - -CMD:chat( playerid, params[ ] ) -{ - CreateLoopingAnimation( playerid, "PED", "IDLE_CHAT", 4.0, 1, 0, 0, 0, 0 ); - return 1; -} - -CMD:fuckoff( playerid, params[ ] ) -{ - CreateLoopingAnimation( playerid, "PED", "fucku", 4.0, 0, 0, 0, 0, 0 ); - return 1; -} - -CMD:shout( playerid, params[ ] ) -{ - CreateLoopingAnimation( playerid, "RIOT", "RIOT_shout", 4.0, 1, 0, 0, 0, 0 ); - return 1; -} - -CMD:chant( playerid, params[ ] ) -{ - CreateLoopingAnimation( playerid, "RIOT", "RIOT_CHANT", 4.0, 1, 0, 0, 0, 0 ); - return 1; -} - -CMD:handsup( playerid, params[ ] ) -{ - CreateLoopingAnimation( playerid, "PED", "null", 4.0, 1, 0, 0, 0, 0, SPECIAL_ACTION_HANDSUP ); - return 1; -} - -CMD:cower( playerid, params[ ] ) -{ - CreateLoopingAnimation( playerid, "PED", "COWER", 4.0, 1, 0, 0, 0, 0 ); - return 1; -} - -CMD:kiss( playerid, params[ ] ) -{ - CreateLoopingAnimation( playerid, "KISSING", "Playa_Kiss_02", 4.0, 1, 0, 0, 0, 0 ); - return 1; -} - -CMD:gangsign( playerid, params[ ] ) -{ - new id; - if ( sscanf( params, "d", id ) ) return SendUsage( playerid, "/gangsign [1-7]" ); - else - { - switch( id ) - { - case 1: CreateLoopingAnimation(playerid, "GHANDS", "gsign1", 4.0, 1, 0, 0, 0, 0 ); - case 2: CreateLoopingAnimation(playerid, "GHANDS", "gsign1LH", 4.0, 1, 0, 0, 0, 0 ); - case 3: CreateLoopingAnimation(playerid, "GHANDS", "gsign2", 4.0, 1, 0, 0, 0, 0 ); - case 4: CreateLoopingAnimation(playerid, "GHANDS", "gsign2LH", 4.0, 1, 0, 0, 0, 0 ); - case 5: CreateLoopingAnimation(playerid, "GHANDS", "gsign3", 4.0, 1, 0, 0, 0, 0 ); - case 6: CreateLoopingAnimation(playerid, "GHANDS", "gsign3LH", 4.0, 1, 0, 0, 0, 0 ); - case 7: CreateLoopingAnimation(playerid, "GHANDS", "gsign4", 4.0, 1, 0, 0, 0, 0 ); - default: SendError( playerid, "Invalid Gang Sign ID." ); - } - } - return 1; -} - -CMD:lean( playerid, params[ ] ) -{ - CreateLoopingAnimation( playerid, "GANGS", "leanIDLE", 4.0, 1, 0, 0, 0, 0 ); - return 1; -} - -CMD:sleep( playerid, params[ ] ) -{ - CreateLoopingAnimation( playerid, "CRACK", "crckidle2", 4.0, 1, 0, 0, 0, 0 ); - return 1; -} - -CMD:fiddle( playerid, params[ ] ) -{ - CreateLoopingAnimation( playerid, "INT_HOUSE", "wash_up", 4.0, 1, 0, 0, 0, 0 ); - return 1; -} - -CMD:anims( playerid, params[ ] ) return cmd_animlist( playerid, params ); -CMD:animlist( playerid, params[ ] ) -{ - SendClientMessage( playerid, COLOR_GOLD, ".: Animation List :." ); - SendClientMessage( playerid, -1, "/dance, /piss, /wank, /sit, /groundsit, /lay, /deal, /laugh, /gangsign" ); - SendClientMessage( playerid, -1, "/slapass, /sex, /crossarms, /wave, /lookout, /strip, /aimthreat, /kiss" ); - SendClientMessage( playerid, -1, "/chat, /fuckoff, /shout, /chant, /handsup, /cower, /sleep, /lean, /fiddle" ); - return 1; -} - CMD:email( playerid, params[ ] ) { return ShowPlayerAccountGuard( playerid ); } @@ -13134,20 +12919,6 @@ public OnPlayerKeyStateChange( playerid, newkeys, oldkeys ) } } - else if ( PRESSED( KEY_SPRINT ) ) - { - if ( p_InAnimation{ playerid } == true ) - { - if ( IsPlayerTied( playerid ) || IsPlayerCuffed( playerid ) || IsPlayerTazed( playerid ) ) - return SendError( playerid, "You cannot stop your animation at the moment." ); - - TextDrawHideForPlayer( playerid, g_AnimationTD ); - p_InAnimation{ playerid } = false; - ClearAnimations( playerid ); - SetPlayerSpecialAction( playerid, 0 ); - } - } - else if ( HOLDING( KEY_AIM ) ) { if ( IsPlayerAttachedObjectSlotUsed( playerid, 1 ) && iWeapon == WEAPON_SNIPER ) @@ -13193,19 +12964,6 @@ public OnPlayerKeyStateChange( playerid, newkeys, oldkeys ) return 1; } -stock IsPlayingAnimation( playerid, library[ ], animation[ ] ) -{ - if ( IsPlayerConnected( playerid ) ) - { - static - animlib[ 32 ], animname[ 32 ]; - - GetAnimationName( GetPlayerAnimationIndex( playerid ), animlib, 32, animname, 32 ); - return strmatch( library, animlib ) && strmatch( animation, animname ); - } - return 0; -} - stock pauseToLoad( playerid ) { p_pausedToLoad{ playerid } = true; @@ -20358,9 +20116,6 @@ stock CreateLoopingAnimation( playerid, animlib[ ], animname[ ], Float:Speed, lo return 1; } -stock PreloadAnimationLibrary( playerid, animlib[ ] ) - return ApplyAnimation( playerid, animlib, "null", 0.0, 0, 0, 0, 0, 0 ); - stock secondstotime(seconds, const delimiter[] = ", ", start = 0, end = -1) { static const times[] = {