| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343 |
- /*
- LOGIN ANNOUNCEMENTS
- by Fred (Jacob_Swift)
- */
- //TextDraw related variables
- #include "../gamemodes/inc/cinematictd.inc"
- //login textdraws
- static Text:sarpHeading;
- static Text:version;
- //anouncement textdraws
- static Text:Textdraw0;
- static Text:Textdraw1;
- static Text:model;
- static Text:text_announcement_t;
- static Text:text_announcement;
- static Text:author;
- //Announcement types
- enum {
- ANNOUNCE_NONE,
- ANNOUNCE_FACTION,
- ANNOUNCE_DEV,
- ANNOUNCE_ADMIN
- }
- //When modifying the above, adjust this too
- #define MAX_ANNOUNCE_TYPES 4
- #define DIALOG_SETANNOUNCEMENT 9301
- //Current announcement type
- static stock AnnounceType;
- /*
- Visibility functions
- */
- ShowLoginTextDraw( playerid ) {
- TextDrawShowForPlayer(playerid, sarpHeading);
- TextDrawShowForPlayer(playerid, version);
-
- //ShowAnnouncementTextDraw( playerid );
- return;
- }
- ShowAnnouncementTextDraw( playerid ) {
- TextDrawShowForPlayer(playerid, Textdraw0);
- TextDrawShowForPlayer(playerid, Textdraw1);
- TextDrawShowForPlayer(playerid, model);
- TextDrawShowForPlayer(playerid, text_announcement_t);
- TextDrawShowForPlayer(playerid, text_announcement);
- TextDrawShowForPlayer(playerid, author);
- return;
- }
- HideLoginTextDraw( playerid ) {
- TextDrawHideForPlayer(playerid, sarpHeading);
- TextDrawHideForPlayer(playerid, version);
- //HideAnnouncementTextDraw( playerid );
-
- return;
- }
- HideAnnouncementTextDraw( playerid ) {
- TextDrawHideForPlayer(playerid, Textdraw0);
- TextDrawHideForPlayer(playerid, Textdraw1);
- TextDrawHideForPlayer(playerid, model);
- TextDrawHideForPlayer(playerid, text_announcement_t);
- TextDrawHideForPlayer(playerid, text_announcement);
- TextDrawHideForPlayer(playerid, author);
- return;
- }
- /*
- Updating TextDraw related functions
- */
- SetLoginAnnouncement( type, text[] ) {
- SetAnnouncementType( type );
- TextDrawSetString( text_announcement, text );
- return;
- }
- SetAnnouncementChar( skinid ) {
- TextDrawSetPreviewModel( model, skinid );
- return;
- }
- SetAnnouncementAuthor( playerid ) {
- new string[128];
- format( string, 128, "%s", PlayerICName( playerid ) );
- TextDrawSetString( author, string );
- return;
- }
- SetAnnouncementType( type ) {
- AnnounceType = type;
- switch( type ) {
- case ANNOUNCE_FACTION: TextDrawSetString( text_announcement_t, "Public Service Announcement" );
- case ANNOUNCE_DEV: TextDrawSetString( text_announcement_t, "Development Announcement" );
- case ANNOUNCE_ADMIN: TextDrawSetString( text_announcement_t, "Administration Announcement" );
- default: TextDrawSetString( text_announcement_t, "Server Announcement" );
- }
- return;
- }
- /*
- Commands:
- /lockannouncement (disables factions using it)
- /setannouncement (sets a new announcement, 2 min reload for factions)
- /announcement (allows players to view the announcement)
-
- */
- static tempAnnounceType[MAX_PLAYERS];
- static bool:lockAnnounce = false;
- CMD:lockannouncement( playerid, params[] ) {
- if( PlayerInfo[playerid][pDev] > 2 || PlayerInfo[playerid][pAdmin] >= 4 ) {
- new msg[144];
-
- lockAnnounce = !lockAnnounce;
- format( msg, 144, "You have %s the ability for faction leaders to set login announcements." , ( lockAnnounce ) ? ( "disabled" ) : ( "enabled" ) );
- SendClientMessage( playerid, COLOR_YELLOW, msg );
- }
- return 1;
- }
- static lastAnnounce = 0;
- CMD:setannouncement( playerid, params[] ) {
- if( PlayerInfo[playerid][pLeader] || PlayerInfo[playerid][pDev] > 2 || PlayerInfo[playerid][pAdmin] > 2 ) {
-
- //if disabled for faction leaders
-
- if( PlayerInfo[playerid][pDev] <= 2 || PlayerInfo[playerid][pAdmin] <= 2 ) {
- if( lockAnnounce ) {
- return SendClientMessage( playerid, COLOR_GREY, "Faction leaders currently cannot set announcements." );
- }
- if( gettime() < lastAnnounce + 120 ) {
- return SendClientMessage( playerid, COLOR_GREY, "You must wait two minutes between setting announcements, try again in two minutes." );
- }
- }
-
- new type;
- if( sscanf( params, "i", type ) ) {
- return SendClientMessage( playerid, COLOR_GREY, "{00BFFF}Usage:{FFFFFF} /setannouncement [type: faction (1), dev (2), admin (3)]" );
- }
-
- if( type == ANNOUNCE_DEV && PlayerInfo[playerid][pDev] <= 2 ) {
- return SendClientMessage( playerid, COLOR_GREY, "You are not a Development Manager." );
- }
-
- if( type == ANNOUNCE_ADMIN && PlayerInfo[playerid][pAdmin] <= 2 ) {
- return SendClientMessage( playerid, COLOR_GREY, "You are not a General Administrator." );
- }
-
- if( type == ANNOUNCE_FACTION && !PlayerInfo[playerid][pLeader] ) {
- return SendClientMessage( playerid, COLOR_GREY, "You are not a leader of a faction." );
- }
-
- //Exclude 0 (type ANNOUNCE_NONE)
- if( !( 0 < type < MAX_ANNOUNCE_TYPES ) ) {
- return SendClientMessage( playerid, COLOR_GREY, "You have entered an invalid announcement type." );
- }
-
- tempAnnounceType[playerid] = type;
- ShowPlayerDialog(playerid, DIALOG_SETANNOUNCEMENT, DIALOG_STYLE_INPUT, "Set Login Announcement", "Enter an announcement that'll appear on the login screen.", "Save", "Cancel" );
- }
- return 1;
- }
- new togAnnouncement[MAX_PLAYERS];
- CMD:announcement( playerid, params[] ) {
- if( !togAnnouncement[playerid] ) {
-
- ShowAnnouncementTextDraw( playerid );
- SendClientMessage( playerid, COLOR_YELLOW, "You have enabled the announcement. Use /announcement again to disable it." );
- }
- else {
- HideAnnouncementTextDraw( playerid );
- }
-
- togAnnouncement[playerid] = !togAnnouncement[playerid];
- return 1;
- }
- /*
- Hooks: TextDraw related
- */
- Hook:loginTD_OnPlayerDisconnect( playerid, reason ) {
- if( togAnnouncement[playerid] ) {
- HideAnnouncementTextDraw( playerid );
- }
- return 1;
- }
- Hook:loginTD_OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
- if( dialogid == DIALOG_SETANNOUNCEMENT ) {
- if( !response ) return 1;
-
-
- if( PlayerInfo[playerid][pLeader] || PlayerInfo[playerid][pDev] > 2 || PlayerInfo[playerid][pAdmin] > 2 ) {
- if( strlen( inputtext ) >= 1023 ) {
- return SendClientMessage( playerid, COLOR_GREY, "The announcement you have entered is too long, try shorten it." );
- }
-
- SetLoginAnnouncement( tempAnnounceType[playerid], inputtext );
- SetAnnouncementChar( GetPlayerSkin( playerid ) );
- SetAnnouncementAuthor( playerid );
-
- tempAnnounceType[playerid] = ANNOUNCE_NONE;
-
- SendClientMessage( playerid, COLOR_YELLOW, "You have set the login announcement. To view your changes use /announcement." );
-
- new report[144];
- format( report, 144, "[Announce] (%s): %s", PlayerICName( playerid ), inputtext );
- SendAdminMessage( COLOR_YELLOW, report );
-
- lastAnnounce = gettime();
-
- }
- }
- return 1;
- }
- Hook:loginTD_OnGameModeInit() {
- // Create the textdraws:
-
-
- Textdraw0 = TextDrawCreate(461.000000, 158.000000, "headbg");
- TextDrawBackgroundColor(Textdraw0, 255);
- TextDrawFont(Textdraw0, 1);
- TextDrawLetterSize(Textdraw0, 0.000000, 6.000000);
- TextDrawColor(Textdraw0, -1);
- TextDrawSetOutline(Textdraw0, 0);
- TextDrawSetProportional(Textdraw0, 1);
- TextDrawSetShadow(Textdraw0, 1);
- TextDrawUseBox(Textdraw0, 1);
- TextDrawBoxColor(Textdraw0, 192652880);
- TextDrawTextSize(Textdraw0, 181.000000, 0.000000);
- TextDrawSetSelectable(Textdraw0, 0);
- Textdraw1 = TextDrawCreate(461.000000, 163.000000, "bg");
- TextDrawBackgroundColor(Textdraw1, 255);
- TextDrawFont(Textdraw1, 1);
- TextDrawLetterSize(Textdraw1, 0.000000, 5.199999);
- TextDrawColor(Textdraw1, -1);
- TextDrawSetOutline(Textdraw1, 0);
- TextDrawSetProportional(Textdraw1, 1);
- TextDrawSetShadow(Textdraw1, 1);
- TextDrawUseBox(Textdraw1, 1);
- TextDrawBoxColor(Textdraw1, 255);
- TextDrawTextSize(Textdraw1, 181.000000, 0.000000);
- TextDrawSetSelectable(Textdraw1, 0);
- text_announcement_t = TextDrawCreate(206.000000, 152.000000, "Server Announcement");
- TextDrawBackgroundColor(text_announcement_t, 255);
- TextDrawFont(text_announcement_t, 2);
- TextDrawLetterSize(text_announcement_t, 0.210000, 1.200000);
- TextDrawColor(text_announcement_t, -1);
- TextDrawSetOutline(text_announcement_t, 0);
- TextDrawSetProportional(text_announcement_t, 1);
- TextDrawSetShadow(text_announcement_t, 1);
- TextDrawSetSelectable(text_announcement_t, 0);
- model = TextDrawCreate(238.000000, 141.000000, "model");
- TextDrawBackgroundColor(model, 192652800);
- TextDrawFont(model, 5);
- TextDrawLetterSize(model, 0.500000, 4.000000);
- TextDrawColor(model, -1);
- TextDrawSetOutline(model, 0);
- TextDrawSetProportional(model, 1);
- TextDrawSetShadow(model, 1);
- TextDrawUseBox(model, 1);
- TextDrawBoxColor(model, 192652800);
- TextDrawTextSize(model, -90.000000, 100.000000);
- TextDrawSetSelectable(model, 0);
- TextDrawSetPreviewModel( model, 299 );
- TextDrawSetPreviewRot(model, 0.0, 0.0, 45.0, 1.0);
- text_announcement = TextDrawCreate(210.000000, 171.000000, "I have nothing for you at the moment, check back later on! Although...you could press the Spawn button.");
- TextDrawBackgroundColor(text_announcement, 255);
- TextDrawFont(text_announcement, 1);
- TextDrawLetterSize(text_announcement, 0.170000, 0.899999);
- TextDrawColor(text_announcement, -1);
- TextDrawSetOutline(text_announcement, 0);
- TextDrawSetProportional(text_announcement, 1);
- TextDrawSetShadow(text_announcement, 1);
- TextDrawUseBox(text_announcement, 1);
- TextDrawBoxColor(text_announcement, 192652800);
- TextDrawTextSize(text_announcement, 450.000000, 0.000000);
- TextDrawSetSelectable(text_announcement, 0);
- author = TextDrawCreate(210.000000, 200.000000, "");
- TextDrawBackgroundColor(author, 255);
- TextDrawFont(author, 1);
- TextDrawLetterSize(author, 0.200000, 1.000000);
- TextDrawColor(author, -1);
- TextDrawSetOutline(author, 0);
- TextDrawSetProportional(author, 1);
- TextDrawSetShadow(author, 1);
- TextDrawSetSelectable(author, 0);
-
- //login & other stuff
- createCinematicTextDraw();
- createAdvertismentTextDraw();
-
- sarpHeading = TextDrawCreate(250.000000, 10.000000, "Project Roleplay");
- TextDrawBackgroundColor(sarpHeading, 255);
- TextDrawFont(sarpHeading, 0);
- TextDrawLetterSize(sarpHeading, 0.500000, 1.000000);
- TextDrawColor(sarpHeading, -1);
- TextDrawSetOutline(sarpHeading, 0);
- TextDrawSetProportional(sarpHeading, 1);
- TextDrawSetShadow(sarpHeading, 1);
- TextDrawSetSelectable(sarpHeading, 0);
- version = TextDrawCreate(294.000000, 21.000000, GAMEMODE_VERSION);
- TextDrawBackgroundColor(version, 255);
- TextDrawFont(version, 1);
- TextDrawLetterSize(version, 0.180000, 0.799998);
- TextDrawColor(version, -1);
- TextDrawSetOutline(version, 0);
- TextDrawSetProportional(version, 1);
- TextDrawSetShadow(version, 1);
- TextDrawSetSelectable(version, 0);
-
-
- return 1;
- }
|