contactmail

Untitled

Jul 31st, 2013
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 27.07 KB | None | 0 0
  1. /* Server Includes */
  2. #include <a_samp>
  3. #include <streamer>
  4. #include <zcmd>
  5. #include <foreach>
  6. #include <sscanf2>
  7. #include <YSI\y_ini>
  8.  
  9. /* Server Colors */
  10. #define COLOR_PURPLE    0xC2A2DAAA
  11. #define COLOR_GRAD2     0xBFC0C2FF
  12. #define COLOR_GRAD1     0xB4B5B7FF
  13. #define COLOR_GRAD2     0xBFC0C2FF
  14. #define COLOR_GREY      0xAFAFAFAA
  15. #define COLOR_GRAD3     0xCBCCCEFF
  16. #define COLOR_LIGHTBLUE 0x006FDD96
  17. #define COLOR_GRAD4     0xD8D8D8FF
  18. #define COLOR_FADE      0xC8C8C8C8
  19. #define COLOR_FADE2     0xC8C8C8C8
  20. #define COLOR_FADE3     0xAAAAAAAA
  21. #define COLOR_FADE4     0x8C8C8C8C
  22. #define COLOR_YELLOW    0xDABB3E00
  23. #define COLOR_FADE5     0x6E6E6E6E
  24. #define COLOR_GRAD5     0xE3E3E3FF
  25. #define COLOR_FADE1     0xE6E6E6E6
  26. #define COLOR_GRAD6     0xF0F0F0FF
  27. #define TEAM_HIT_COLOR  0xFFFFFF00
  28.  
  29. /* Server Defines */
  30. #define PATH "Accounts/%s.ini"
  31. #define SECONDS(%1) ((%1)*(1000))
  32. #define ALTCOMMAND:%1->%2;           \
  33. COMMAND:%1(playerid, params[])   \
  34. return cmd_%2(playerid, params);
  35. #define function%0(%1) forward%0(%1); public%0(%1)
  36.  
  37. /* SERVER SIDE CASH */
  38. #define GivePlayerCash(%0,%1) SetPVarInt(%0,"Money",GetPlayerCash(%0)+%1),GivePlayerMoney(%0,%1)
  39. #define ResetPlayerCash(%0) SetPVarInt(%0,"Money",0), ResetPlayerMoney(%0)
  40. #define GetPlayerCash(%0) GetPVarInt(%0,"Money")
  41.  
  42. /* DIALOGS */
  43. #define DIALOG_REGISTER   1
  44. #define DIALOG_LOGIN      2
  45. #define DIALOG_AGE        3
  46. #define DIALOG_SEX        4
  47.  
  48. // Colors
  49.  
  50. #define COLOR_GREY 0xAFAFAFAA
  51. #define COLOR_GREEN 0x33AA33AA
  52. #define COLOR_RED 0xAA3333AA
  53. #define COLOR_WHITE 0xFFFFFFAA
  54. #define COLOR_BLUE 0x0000BBAA
  55. #define COLOR_RED 0xAA3333AA
  56. #define COLOR_LIME 0x10F441AA
  57. #define COLOR_MAGENTA 0xFF00FFFF
  58. #define COLOR_NAVY 0x000080AA
  59. #define COLOR_AQUA 0xF0F8FFAA
  60. #define COLOR_CRIMSON 0xDC143CAA
  61. #define COLOR_FLBLUE 0x6495EDAA
  62. #define COLOR_BISQUE 0xFFE4C4AA
  63. #define COLOR_BLACK 0x000000AA
  64. #define COLOR_CHARTREUSE 0x7FFF00AA
  65. #define COLOR_BROWN 0XA52A2AAA
  66. #define COLOR_CORAL 0xFF7F50AA
  67. #define COLOR_GOLD 0xB8860BAA
  68. #define COLOR_GREENYELLOW 0xADFF2FAA
  69. #define COLOR_INDIGO 0x4B00B0AA
  70.  
  71. /* ENUMS */
  72. enum pInfo
  73. {
  74.     pPass,
  75.     pCash,
  76.     pAdmin,
  77.     pSex,
  78.     pAge,
  79.     Float:pPos_x,
  80.     Float:pPos_y,
  81.     Float:pPos_z,
  82.     pSkin,
  83.     pTeam,
  84.     pAccent,
  85.     pAlive
  86. }
  87. new PlayerInfo[MAX_PLAYERS][pInfo];
  88. /* <--------------------------------------------> */
  89.  
  90. main()
  91. {
  92.     print("Gamemode loaded");
  93. }
  94.  
  95. new
  96.     noooc = 0,
  97.     Logged[ MAX_PLAYERS ],
  98.     gOoc[ MAX_PLAYERS ]
  99. ;
  100.  
  101. public OnPlayerConnect(playerid)
  102. {
  103.     gOoc[ playerid ] = 0; Logged[ playerid ] = 0;
  104.     // Reset stats!
  105.     PlayerInfo[ playerid ][ pCash ] = 0;
  106.     PlayerInfo[ playerid ][ pAdmin ] = 0;
  107.     PlayerInfo[ playerid ][ pSex ] = 0;
  108.     PlayerInfo[ playerid ][ pAge ] = 0;
  109.     PlayerInfo[ playerid ][ pPos_x ] = 0.0;
  110.     PlayerInfo[ playerid ][ pPos_y ] = 0.0;
  111.     PlayerInfo[ playerid ][ pPos_z ] = 0.0;
  112.     PlayerInfo[ playerid ][ pSkin ] = 0;
  113.     PlayerInfo[ playerid ][ pTeam ] = 0;
  114.     PlayerInfo[ playerid ][ pAccent ] = 0;
  115.  
  116.     cc(playerid);
  117.  
  118.     if(fexist(UserPath(playerid)))
  119.     {
  120.         INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
  121.         ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,"Basic Roleplay","Type your password below to login:","Login","Quit");
  122.     }
  123.     else
  124.     {
  125.         ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,"Basic Roleplay","Type your password below to register a new account:","Register","Quit");
  126.     }
  127.     return 1;
  128. }
  129.  
  130. public OnGameModeInit()
  131. {
  132.     /* <-------------------------------------------> */
  133.     AddPlayerClass(21,-2382.0168,-582.0441,132.1172,125.2504,0,0,0,0,0,0);
  134.     AddPlayerClass(59,-2382.0168,-582.0441,132.1172,125.2504,0,0,0,0,0,0);
  135.     /* <-------------------------------------------> */
  136.     ShowPlayerMarkers(0);
  137.     ShowNameTags(1);
  138.     DisableInteriorEnterExits();
  139.     EnableStuntBonusForAll(0);
  140.     SetNameTagDrawDistance(10.0);
  141.     // =========== TIMERS ===========
  142.     SetTimer("MoneyUpdate",1000,1);
  143.     SetTimer("SaveAccounts", SECONDS(13), 1);
  144.     return 1;
  145. }
  146.  
  147. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  148. {
  149.     if(dialogid == DIALOG_AGE)
  150.     {
  151.         if(!response)
  152.         {
  153.             Kick(playerid);
  154.         }
  155.         else
  156.         {
  157.             if(strlen(inputtext))
  158.             {
  159.                 new age = strval(inputtext);
  160.                 if(age > 100 || age < 16)
  161.                 {
  162.                     ShowPlayerDialog(playerid, DIALOG_AGE, DIALOG_STYLE_INPUT, "Determine your age","How old are you?\n{FF0000}(( 16 - 100 ))","Answer","Quit");
  163.                 }
  164.                 else
  165.                 {
  166.                     PlayerInfo[playerid][pAge] = age;
  167.                     new
  168.                         string[ 64 ]
  169.                     ;
  170.                     format(string, sizeof(string), "INFO: Okay so you're {3BB9FF}%d years old.",age);
  171.                     SendClientMessage(playerid, -1, string);
  172.                     GivePlayerCash(playerid, 600);
  173.                     SaveAccountStats(playerid);
  174.                     SendClientMessage(playerid, COLOR_BLUE, "");
  175.                     SendClientMessage(playerid, COLOR_BLUE, "");
  176.                     SendClientMessage(playerid, COLOR_BLUE, "");
  177.                     SendClientMessage(playerid, COLOR_BLUE, "");
  178.                     SendClientMessage(playerid, COLOR_BLUE, "");
  179.                     SendClientMessage(playerid, COLOR_LIGHTBLUE, "Welcome to Based Roleplay! If you have any questions feel free to use either /newb or /report!");
  180.                     SpawnPlayer(playerid);
  181.                 }
  182.             }
  183.             else
  184.             {
  185.                 return 0;
  186.             }
  187.         }
  188.     }
  189.     if(dialogid == DIALOG_SEX)
  190.     {
  191.         if(response)
  192.         {
  193.             PlayerInfo[playerid][pSex] = 1;
  194.             SendClientMessage(playerid, -1, "INFO: Okay so you are a {3BB9FF}male.");
  195.             SetPlayerSkin(playerid, 60);
  196.             PlayerInfo[playerid][pSkin] = 60;
  197.             ShowPlayerDialog(playerid, DIALOG_AGE, DIALOG_STYLE_INPUT, "Determine your age","How old are you?\n{FF0000}(( 16 - 100 ))","Answer","Quit");
  198.         }
  199.         else
  200.         {
  201.             PlayerInfo[playerid][pSex] = 2;
  202.             SendClientMessage(playerid, -1, "INFO: You are {3BB9FF}female.");
  203.             SetPlayerSkin(playerid, 233);
  204.             PlayerInfo[playerid][pSkin] = 233;
  205.             ShowPlayerDialog(playerid, DIALOG_AGE, DIALOG_STYLE_INPUT, "Determine your age","How old are you?\n{FF0000}(( 16 - 100 ))","Answer","Quit");
  206.         }
  207.     }
  208.     switch( dialogid )
  209.     {
  210.         case DIALOG_REGISTER:
  211.         {
  212.             if (!response) return Kick(playerid);
  213.             if(response)
  214.             {
  215.                 if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Register an account","You have entered an invalid password.\nType your password below to register a new account.","Register","Quit");
  216.                 new INI:File = INI_Open(UserPath(playerid));
  217.                 INI_SetTag(File,"data");
  218.                 INI_WriteInt(File,"Password",udb_hash(inputtext));
  219.                 INI_WriteInt(File,"Cash",0);
  220.                 INI_WriteInt(File,"Admin",0);
  221.                 INI_WriteInt(File,"Sex",0);
  222.                 INI_WriteInt(File,"Age",0);
  223.                 INI_WriteFloat(File,"Pos_x",0);
  224.                 INI_WriteFloat(File,"Pos_y",0);
  225.                 INI_WriteFloat(File,"Pos_z",0);
  226.                 INI_WriteInt(File,"Skin",0);
  227.                 INI_WriteInt(File,"Team",0);
  228.                 INI_WriteInt(File,"Accent",0);
  229.                 INI_Close(File);
  230.                
  231.                 ShowPlayerDialog(playerid, DIALOG_SEX, DIALOG_STYLE_MSGBOX, "Select a gender","What gender are you?","Male","Female");
  232.             }
  233.         }
  234.         case DIALOG_LOGIN:
  235.         {
  236.             if ( !response ) return Kick ( playerid );
  237.             if( response )
  238.             {
  239.                 if(udb_hash(inputtext) == PlayerInfo[playerid][pPass])
  240.                 {
  241.                     INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
  242.                     new
  243.                         tmp2[ 256 ],
  244.                         playername2[ MAX_PLAYER_NAME ]
  245.                     ;
  246.                     GetPlayerName(playerid, playername2, sizeof(playername2));
  247.                     format(tmp2, sizeof(tmp2), "~w~Welcome ~n~~g~%s", playername2);
  248.                     GameTextForPlayer(playerid, tmp2, 5000, 1);
  249.                     SetTimerEx("UnsetFirstSpawn", 5000, false, "i", playerid);
  250.                     GivePlayerCash(playerid, PlayerInfo[playerid][pCash]);
  251.                     SetSpawnInfo(playerid, PlayerInfo[playerid][pTeam], PlayerInfo[playerid][pSkin], PlayerInfo[playerid][pPos_x], PlayerInfo[playerid][pPos_y], PlayerInfo[playerid][pPos_z], 1.0, -1, -1, -1, -1, -1, -1);
  252.                     SpawnPlayer(playerid);
  253.                     SendClientMessage(playerid, COLOR_LIGHTBLUE, "Welcome to back to Based Roleplay!");
  254.                 }
  255.                 else
  256.                 {
  257.                     ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,"Login","You have entered an incorrect password.\nType your password below to login.","Login","Quit");
  258.                 }
  259.                 return 1;
  260.             }
  261.         }
  262.     }
  263.     return 1;
  264. }
  265.  
  266. public OnPlayerSpawn(playerid)
  267. {
  268.     if(IsPlayerConnected(playerid))
  269.     {
  270.         SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]);
  271.         SetPlayerToTeamColor(playerid);
  272.         Logged[playerid] = 1;
  273.     }
  274.     if(PlayerInfo[playerid][pPos_x] == 0.0 && PlayerInfo[playerid][pPos_y] == 0.0)
  275.     {
  276.         SetPlayerPos(playerid, 1271.3654,181.0756,19.4705);
  277.         Logged[playerid] = 1;
  278.     }
  279.     else
  280.     {
  281.         SetPlayerPos(playerid, PlayerInfo[playerid][pPos_x], PlayerInfo[playerid][pPos_y], PlayerInfo[playerid][pPos_z]);
  282.         Logged[playerid] = 1;
  283.     }
  284.     return 1;
  285. }
  286.  
  287. public OnPlayerText(playerid, text[])
  288. {
  289.     new
  290.         realchat = 1,
  291.         string[ 128 ]
  292.     ;
  293.     if(IsPlayerConnected(playerid))
  294.     {
  295.         if(realchat)
  296.         {
  297.             if(PlayerInfo[playerid][pAccent] == 0)
  298.             {
  299.                 format(string, sizeof(string), "%s says: %s", RPName(playerid), text);
  300.                 ProxDetector(20.0, playerid, string,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);
  301.             }
  302.             else
  303.             {
  304.                 new
  305.                     accent[20]
  306.                 ;
  307.                 switch(PlayerInfo[playerid][pAccent])
  308.                 {
  309.                     case 1: accent = "Russian";
  310.                     case 2: accent = "Italian";
  311.                     case 3: accent = "German";
  312.                     case 4: accent = "Japanese";
  313.                     case 5: accent = "French";
  314.                     case 6: accent = "Spanish";
  315.                     case 7: accent = "Chinese";
  316.                     case 8: accent = "British";
  317.                 }
  318.                 format(string, sizeof(string), "%s says: [%s Accent] %s", RPName(playerid), accent, text);
  319.                 ProxDetector(20.0, playerid, string,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);
  320.             }
  321.             return 0;
  322.         }
  323.     }
  324.     return 1;
  325. }
  326.  
  327. public OnPlayerDeath(playerid, killerid, reason)
  328. {
  329.     PlayerInfo[playerid][pAlive] = 0;
  330.     return 1;
  331. }
  332.  
  333. public OnPlayerDisconnect(playerid, reason)
  334. {
  335.     SaveAccountStats(playerid);
  336.     return 1;
  337. }
  338.  
  339. function SetPlayerToTeamColor(playerid)
  340. {
  341.     if(IsPlayerConnected(playerid))
  342.     {
  343.         SetPlayerColor(playerid,TEAM_HIT_COLOR);
  344.     }
  345. }
  346.  
  347. function OOCOff(color,const string[])
  348. {
  349.     foreach (Player,i)
  350.     {
  351.         if(!gOoc{i})
  352.         {
  353.             SendClientMessage(i, color, string);
  354.         }
  355.     }
  356. }
  357.  
  358. function SaveAccountStats(playerid)
  359. {
  360.     new
  361.         Float:x,
  362.         Float:y,
  363.         Float:z
  364.     ;
  365.  
  366.     if(Logged[playerid] == 1)
  367.     {
  368.     new
  369.         INI:File = INI_Open(UserPath(playerid))
  370.     ;
  371.     INI_SetTag(File,"data");
  372.    
  373.     if(PlayerInfo[playerid][pAlive] == 1)
  374.     {
  375.         GetPlayerPos(playerid, x, y, z);
  376.         PlayerInfo[playerid][pPos_x] = x;
  377.         PlayerInfo[playerid][pPos_y] = y;
  378.         PlayerInfo[playerid][pPos_z] = z;
  379.     }
  380.    
  381.     PlayerInfo[playerid][pSkin] = GetPlayerSkin(playerid);
  382.     PlayerInfo[playerid][pCash] = GetPlayerCash(playerid);
  383.     INI_WriteInt(File,"Cash",GetPlayerMoney(playerid));
  384.     INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
  385.     INI_WriteInt(File,"Sex",PlayerInfo[playerid][pSex]);
  386.     INI_WriteInt(File,"Age",PlayerInfo[playerid][pAge]);
  387.     INI_WriteFloat(File,"Pos_x",PlayerInfo[playerid][pPos_x]);
  388.     INI_WriteFloat(File,"Pos_y",PlayerInfo[playerid][pPos_y]);
  389.     INI_WriteFloat(File,"Pos_z",PlayerInfo[playerid][pPos_z]);
  390.     INI_WriteInt(File,"Skin",GetPlayerSkin(playerid));
  391.     INI_WriteInt(File,"Team",PlayerInfo[playerid][pTeam]);
  392.     INI_WriteInt(File,"Accent",PlayerInfo[playerid][pAccent]);
  393.    
  394.     INI_Close(File);
  395.     }
  396.     return 1;
  397. }
  398.  
  399. function SaveAccounts()
  400. {
  401.     for(new i = 0; i < MAX_PLAYERS; i++)
  402.     {
  403.         if(IsPlayerConnected(i))
  404.         {
  405.             SaveAccountStats(i);
  406.         }
  407.     }
  408. }
  409.  
  410. function GameModeExitFunc()
  411. {
  412.     GameModeExit();
  413.     return 1;
  414. }
  415.  
  416. function LoadUser_data(playerid,name[],value[])
  417. {
  418.     INI_Int("Password",PlayerInfo[playerid][pPass]);
  419.     INI_Int("Cash",PlayerInfo[playerid][pCash]);
  420.     INI_Int("Admin",PlayerInfo[playerid][pAdmin]);
  421.     INI_Int("Sex",PlayerInfo[playerid][pSex]);
  422.     INI_Int("Age",PlayerInfo[playerid][pAge]);
  423.     INI_Float("Pos_x",PlayerInfo[playerid][pPos_x]);
  424.     INI_Float("Pos_y",PlayerInfo[playerid][pPos_y]);
  425.     INI_Float("Pos_z",PlayerInfo[playerid][pPos_z]);
  426.     INI_Int("Skin",PlayerInfo[playerid][pSkin]);
  427.     INI_Int("Team",PlayerInfo[playerid][pTeam]);
  428.     INI_Int("Accent",PlayerInfo[playerid][pAccent]);
  429.     return 1;
  430. }
  431.  
  432. function MoneyUpdate(playerid)
  433. {
  434.     if(GetPlayerCash(playerid) < GetPlayerMoney(playerid))
  435.     {
  436.         foreach(Player, i)
  437.         {
  438.             new const old_money = GetPlayerCash(playerid);
  439.             ResetPlayerCash(playerid), GivePlayerCash(playerid, old_money);
  440.         }
  441.     }
  442.     return 1;
  443. }
  444.  
  445. function ProxDetector(Float:radi, playerid, string[],col1,col2,col3,col4,col5)
  446. {
  447.     if(IsPlayerConnected(playerid))
  448.     {
  449.         new Float:posx, Float:posy, Float:posz;
  450.         new BigEar[MAX_PLAYERS];
  451.         new Float:oldposx, Float:oldposy, Float:oldposz;
  452.         new Float:tempposx, Float:tempposy, Float:tempposz;
  453.         GetPlayerPos(playerid, oldposx, oldposy, oldposz);
  454.         for(new i = 0; i < MAX_PLAYERS; i++)
  455.         {
  456.             if(IsPlayerConnected(i) && (GetPlayerVirtualWorld(playerid) == GetPlayerVirtualWorld(i)))
  457.             {
  458.                 if(!BigEar[i])
  459.                 {
  460.                     GetPlayerPos(i, posx, posy, posz);
  461.                     tempposx = (oldposx -posx);
  462.                     tempposy = (oldposy -posy);
  463.                     tempposz = (oldposz -posz);
  464.                     if (((tempposx < radi/16) && (tempposx > -radi/16)) && ((tempposy < radi/16) && (tempposy > -radi/16)) && ((tempposz < radi/16) && (tempposz > -radi/16)))
  465.                     {
  466.                         SendClientMessage(i, col1, string);
  467.                     }
  468.                     else if (((tempposx < radi/8) && (tempposx > -radi/8)) && ((tempposy < radi/8) && (tempposy > -radi/8)) && ((tempposz < radi/8) && (tempposz > -radi/8)))
  469.                     {
  470.                         SendClientMessage(i, col2, string);
  471.                     }
  472.                     else if (((tempposx < radi/4) && (tempposx > -radi/4)) && ((tempposy < radi/4) && (tempposy > -radi/4)) && ((tempposz < radi/4) && (tempposz > -radi/4)))
  473.                     {
  474.                         SendClientMessage(i, col3, string);
  475.                     }
  476.                     else if (((tempposx < radi/2) && (tempposx > -radi/2)) && ((tempposy < radi/2) && (tempposy > -radi/2)) && ((tempposz < radi/2) && (tempposz > -radi/2)))
  477.                     {
  478.                         SendClientMessage(i, col4, string);
  479.                     }
  480.                     else if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
  481.                     {
  482.                         SendClientMessage(i, col5, string);
  483.                     }
  484.                 }
  485.                 else
  486.                 {
  487.                     SendClientMessage(i, col1, string);
  488.                 }
  489.             }
  490.         }
  491.     }
  492.     return 1;
  493. }
  494.  
  495. // ============ STOCKS ============
  496. stock SendAdminMessage( color, string[] )
  497. {
  498.     foreach (Player,i)
  499.     {
  500.         if( PlayerInfo[ i] [ pAdmin ] > 1 )
  501.         {
  502.             SendClientMessage( i, color, string );
  503.         }
  504.     }
  505. }
  506.  
  507. stock UserPath(playerid)
  508. {
  509.     new string[128],playername[MAX_PLAYER_NAME];
  510.     GetPlayerName(playerid,playername,sizeof(playername));
  511.     format(string,sizeof(string),PATH,playername);
  512.     return string;
  513. }
  514.  
  515. /* Credits to Dracoblue */
  516. stock udb_hash(buf[]) {
  517.     new length=strlen(buf);
  518.     new s1 = 1;
  519.     new s2 = 0;
  520.     new n;
  521.     for (n=0; n<length; n++)
  522.     {
  523.        s1 = (s1 + buf[n]) % 65521;
  524.        s2 = (s2 + s1)     % 65521;
  525.     }
  526.     return (s2 << 16) + s1;
  527. }
  528.  
  529. stock RPName(playerid)
  530. {
  531.     new string[24];
  532.     GetPlayerName(playerid,string,24);
  533.     new str[24];
  534.     strmid(str,string,0,strlen(string),24);
  535.     for(new i = 0; i < MAX_PLAYER_NAME; i++)
  536.     {
  537.         if (str[i] == '_') str[i] = ' ';
  538.     }
  539.     return str;
  540. }
  541. // =================================
  542.  
  543. /* LOGS */
  544.  
  545. function OOCLog(string[])
  546. {
  547.     new
  548.         entry[ 128 ],
  549.         year,
  550.         month,
  551.         day,
  552.         hour,
  553.         minute,
  554.         second
  555.     ;
  556.     getdate(year, month, day);
  557.     gettime(hour, minute, second);
  558.  
  559.     format(entry, sizeof(entry), "%s | (%d-%d-%d) (%d:%d:%d)\n",string, day, month, year, hour, minute, second);
  560.     new File:hFile;
  561.     hFile = fopen("Basic/logs/OOCLog.log", io_append);
  562.     fwrite(hFile, entry);
  563.     fclose(hFile);
  564. }
  565.  
  566. /* COMMANDS */
  567.  
  568. CMD:stats(playerid, params[])
  569. {
  570.     if(IsPlayerConnected(playerid))
  571.     {
  572.         new
  573.             string[ 128 ],
  574.             Age = PlayerInfo[ playerid ][ pAge ],
  575.             Money = GetPlayerCash( playerid )
  576.         ;
  577.  
  578.         new Sex[20];
  579.         if(PlayerInfo[ playerid ][ pSex ] == 1) { Sex = "Male"; }
  580.         else if(PlayerInfo[ playerid ][ pSex ] == 2) { Sex = "Female"; }
  581.  
  582.         SendClientMessage(playerid, COLOR_LIGHTBLUE, "------------------------------------------------------------------------");
  583.         format(string, sizeof(string), "Name: %s | Money: %d | Age: %d | Sex: %s", RPName(playerid), Money, Age, Sex);
  584.         SendClientMessage(playerid, COLOR_GRAD2, string);
  585.     }
  586.     return 1;
  587. }
  588.  
  589.  
  590. ALTCOMMAND:ah->ahelp;
  591. CMD:ahelp(playerid, params[])
  592. {
  593.     if(PlayerInfo[playerid][pAdmin] == 0) return SendClientMessage(playerid, -1,"You are not admin!");
  594.     SendClientMessage(playerid, -1, "____________________________________________________________________");
  595.     if(PlayerInfo[playerid][pAdmin] >= 1)
  596.     {
  597.         SendClientMessage(playerid, COLOR_FADE, "Level 1: No commands yet!");
  598.     }
  599.     if(PlayerInfo[playerid][pAdmin] >= 2)
  600.     {
  601.         SendClientMessage(playerid, COLOR_FADE, "Level 2: No commands yet!");
  602.     }
  603.     if(PlayerInfo[playerid][pAdmin] >= 3)
  604.     {
  605.         SendClientMessage(playerid, COLOR_FADE, "Level 3: No commands yet!");
  606.     }
  607.     if(PlayerInfo[playerid][pAdmin] >= 4)
  608.     {
  609.         SendClientMessage(playerid, COLOR_FADE, "Level 4: No commands yet!");
  610.     }
  611.     if(PlayerInfo[playerid][pAdmin] >= 5)
  612.     {
  613.         SendClientMessage(playerid, COLOR_FADE, "Level 5: No commands yet!");
  614.     }
  615.     if(PlayerInfo[playerid][pAdmin] >= 6)
  616.     {
  617.         SendClientMessage(playerid, COLOR_FADE, "Level 6: No commands yet!");
  618.     }
  619.     if(PlayerInfo[playerid][pAdmin] >= 1337)
  620.     {
  621.         SendClientMessage(playerid, COLOR_FADE, "Level 1337: /givemoney - /gmx");
  622.     }
  623.     SendClientMessage(playerid, -1, "____________________________________________________________________");
  624.     return 1;
  625. }
  626.  
  627. CMD:help(playerid, params[])
  628. {
  629.     SendClientMessage(playerid, COLOR_LIGHTBLUE,"------------------------------------------------------------");
  630.     SendClientMessage(playerid, COLOR_GRAD2,"/do - /me - /accent - /ooc - /b - /report");
  631.     SendClientMessage(playerid, COLOR_LIGHTBLUE,"------------------------------------------------------------");
  632.     return 1;
  633. }
  634.  
  635. ALTCOMMAND:o->ooc;
  636. CMD:ooc(playerid, params[])
  637. {
  638.     new
  639.         string[ 186 ]
  640.     ;
  641.     if((noooc) && PlayerInfo[playerid][pAdmin] < 1) return SendClientMessage(playerid, COLOR_GRAD2, "OOC chat was disabled by an admin, you can request it to be enabled by using /report.");
  642.     if(isnull(params)) return SendClientMessage(playerid, COLOR_GRAD2, "USAGE: {FFFFFF}(/o)oc [ooc chat]");
  643.  
  644.     format(string, sizeof(string), "(( OOC: %s: %s ))", RPName(playerid), params);
  645.     OOCOff(0xCCFFFF00, string);
  646.     OOCLog(string);
  647.     printf("%s", string);
  648.     return 1;
  649. }
  650.  
  651. CMD:b(playerid, params[])
  652. {
  653.     new
  654.         string[ 128 ]
  655.     ;
  656.     if(isnull(params)) return SendClientMessage(playerid, COLOR_GRAD2, "USAGE: {FFFFFF} /b [ooc chat]");
  657.     format(string, sizeof(string), "(( OOC: %s[%i]: %s ))", RPName( playerid ), playerid, params);
  658.     printf("%s", string);
  659.     ProxDetector(30.0, playerid, string, COLOR_FADE,COLOR_FADE,COLOR_FADE,COLOR_FADE,COLOR_FADE);
  660.     return 1;
  661. }
  662.  
  663. CMD:do(playerid, params[])
  664. {
  665.     new
  666.         result[ 128 ],
  667.         string[ 128 ]
  668.     ;
  669.     if(sscanf(params, "s[128]", result)) return SendClientMessage(playerid, COLOR_GRAD2, "USAGE: {FFFFFF}/do [action]");
  670.     format(string, sizeof(string), "* %s (( %s ))", result, RPName(playerid));
  671.     ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
  672.     printf("%s", string);
  673.     return 1;
  674. }
  675.  
  676. CMD:me(playerid, params[])
  677. {
  678.     new
  679.         result[ 128 ],
  680.         string[ 128 ]
  681.     ;
  682.     if(sscanf(params, "s[128]", result)) return SendClientMessage(playerid, COLOR_GRAD2, "USAGE: {FFFFFF}/me [action]");
  683.     format(string, sizeof(string), "* %s %s", RPName(playerid), result);
  684.     ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
  685.     printf("%s", string);
  686.     return 1;
  687. }
  688.  
  689. CMD:report(playerid, params[])
  690. {
  691.     new
  692.         result[ 128 ],
  693.         string[ 128 ]
  694.     ;
  695.     if(sscanf(params, "s[128]", result)) return SendClientMessage(playerid, COLOR_GRAD2, "USAGE: {FFFFFF}/report [message]");
  696.     format(string, sizeof(string), ".:* Report from %s: %s *:.", RPName(playerid), result);
  697.     SendAdminMessage(COLOR_GOLD, string);
  698.     SendClientMessage(playerid, COLOR_GREEN, "Your report message has been submitted to the current online admins.");
  699.     SendClientMessage(playerid, COLOR_GREEN, "Please have some patience while the admins review your report.");
  700.     return 1;
  701. }
  702.  
  703. CMD:accent(playerid, params[])
  704. {
  705.     if(isnull(params)) return SendClientMessage(playerid, COLOR_GRAD1, "USAGE: {FFFFFF}/accent [Russian | Italian | German | Japanese | French | Spanish | Chinese | British | None]");
  706.     if(!strcmp(params,"russian",true))
  707.     {
  708.         PlayerInfo[playerid][pAccent] = 1;
  709.         SendClientMessage(playerid, COLOR_GRAD1, "Your accent is now Russian!");
  710.     }
  711.     else if(!strcmp(params,"italian",true))
  712.     {
  713.         PlayerInfo[playerid][pAccent] = 2;
  714.         SendClientMessage(playerid, COLOR_GRAD1, "Your accent is now Italian!");
  715.     }
  716.     else if(!strcmp(params,"german",true))
  717.     {
  718.         PlayerInfo[playerid][pAccent] = 3;
  719.         SendClientMessage(playerid, COLOR_GRAD1, "Your accent is now German!");
  720.     }
  721.     else if(!strcmp(params,"japanese",true))
  722.     {
  723.         PlayerInfo[playerid][pAccent] = 4;
  724.         SendClientMessage(playerid, COLOR_GRAD1, "Your accent is now Japanese!");
  725.     }
  726.     else if(!strcmp(params,"french",true))
  727.     {
  728.         PlayerInfo[playerid][pAccent] = 5;
  729.         SendClientMessage(playerid, COLOR_GRAD1, "Your accent is now French!");
  730.     }
  731.     else if(!strcmp(params,"spanish",true))
  732.     {
  733.         PlayerInfo[playerid][pAccent] = 6;
  734.         SendClientMessage(playerid, COLOR_GRAD1, "Your accent is now Spanish!");
  735.     }
  736.     else if(!strcmp(params,"chinese",true))
  737.     {
  738.         PlayerInfo[playerid][pAccent] = 7;
  739.         SendClientMessage(playerid, COLOR_GRAD1, "Your accent is now Chinese!");
  740.     }
  741.     else if(!strcmp(params,"british", true))
  742.     {
  743.         PlayerInfo[playerid][pAccent] = 8;
  744.         SendClientMessage(playerid, COLOR_GRAD1, "Your accent is now British!");
  745.     }
  746.     else if(!strcmp(params,"none",true))
  747.     {
  748.         PlayerInfo[playerid][pAccent] = 0;
  749.         SendClientMessage(playerid, COLOR_GRAD1, "You removed your accent!");
  750.     }
  751.     else return SendClientMessage(playerid, COLOR_GREY, "Invalid accent name!");
  752.     return 1;
  753. }
  754.  
  755. CMD:givemoney(playerid, params[])
  756. {
  757.     new targetid,type,string[128];
  758.     if(sscanf(params, "ui", targetid, type)) return SendClientMessage(playerid, COLOR_GRAD2, "USAGE: {FFFFFF}/givemoney [playerid] [amount]");
  759.     if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, COLOR_GREY, "* This player is not in server..");
  760.     if(type < 0 || type > 99999999) return SendClientMessage(playerid, COLOR_GREY, "* Cannot go under 0 or above 99999999.");
  761.     if(PlayerInfo[playerid][pAdmin] == 0) return SendClientMessage(playerid, -1,"You are not admin!");
  762.  
  763.     GivePlayerCash(targetid, type);
  764.     format(string, sizeof(string),"AdmCmd: %s gave %s %d", RPName( playerid ), RPName( targetid ), type);
  765.     SendAdminMessage(COLOR_YELLOW,string);
  766.     return 1;
  767. }
  768.  
  769. CMD:gmx(playerid, params[])
  770. {
  771.     if(PlayerInfo[playerid][pAdmin] == 0) return SendClientMessage(playerid, -1,"You are not admin!");
  772.     new name[24];
  773.     new result[65];
  774.     GetPlayerName(playerid, name, sizeof(name));
  775.     format(result, sizeof(result), "A fast server restart was initiated by server manager %s", name);
  776.     SaveAccounts();
  777.     SendClientMessageToAll(COLOR_RED, result);
  778.     SetTimer("gmx", 5000, 0);
  779.     return 1;
  780. }
  781.  
  782. CMD:kill(playerid, params[])
  783. {
  784.     new confirm[15];
  785.     if(sscanf(params, "s", confirm)) return SendClientMessage(playerid, COLOR_GRAD2, "USAGE: {FFFFFF}/kill [confirm]");
  786.     if(strcmp(confirm, "confirm", true) == 0)
  787.     {
  788.         new string[26];
  789.         new result [70];
  790.         GetPlayerName(playerid, string, sizeof(string));
  791.         format(result, sizeof(result), "(( %s has OOC'ly killed themselves, if you think this was to evade use /report ))", string);
  792.         ProxDetector(20.0, playerid, result,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);
  793.         SetPlayerHealth(playerid, 0.0);
  794.     }
  795.     else
  796.     {
  797.         SendClientMessage(playerid, COLOR_GRAD2, "USAGE: {FFFFFF}/kill [confirm]");
  798.     }
  799.     return 1;
  800. }
  801.  
  802. forward gmx();
  803. public gmx()
  804. {
  805.     SendRconCommand("gmx");
  806. }
  807.  
  808. forward cc(playerid);
  809. cc(playerid)
  810. {
  811.     SendClientMessage(playerid, -1, "");
  812.     SendClientMessage(playerid, -1, "");
  813.     SendClientMessage(playerid, -1, "");
  814.     SendClientMessage(playerid, -1, "");
  815.     SendClientMessage(playerid, -1, "");
  816.     SendClientMessage(playerid, -1, "");
  817.     SendClientMessage(playerid, -1, "");
  818.     SendClientMessage(playerid, -1, "");
  819.     SendClientMessage(playerid, -1, "");
  820.     SendClientMessage(playerid, -1, "");
  821.     SendClientMessage(playerid, -1, "");
  822.     SendClientMessage(playerid, -1, "");
  823.     SendClientMessage(playerid, -1, "");
  824.     SendClientMessage(playerid, -1, "");
  825.     SendClientMessage(playerid, -1, "");
  826.     SendClientMessage(playerid, -1, "");
  827.     SendClientMessage(playerid, -1, "");
  828.     SendClientMessage(playerid, -1, "");
  829.     SendClientMessage(playerid, -1, "");
  830.     SendClientMessage(playerid, -1, "");
  831.     SendClientMessage(playerid, -1, "");
  832.     SendClientMessage(playerid, -1, "");
  833.     SendClientMessage(playerid, -1, "");
  834.     SendClientMessage(playerid, -1, "");
  835.     SendClientMessage(playerid, -1, "");
  836.     SendClientMessage(playerid, -1, "");
  837.     SendClientMessage(playerid, -1, "");
  838.     SendClientMessage(playerid, -1, "");
  839.     SendClientMessage(playerid, -1, "");
  840.     SendClientMessage(playerid, -1, "");
  841.     SendClientMessage(playerid, -1, "");
  842.     SendClientMessage(playerid, -1, "");
  843.     SendClientMessage(playerid, -1, "");
  844.     SendClientMessage(playerid, -1, "");
  845.     SendClientMessage(playerid, -1, "");
  846.     SendClientMessage(playerid, -1, "");
  847.     SendClientMessage(playerid, -1, "");
  848.     SendClientMessage(playerid, -1, "");
  849.     SendClientMessage(playerid, -1, "");
  850.     SendClientMessage(playerid, -1, "");
  851.     SendClientMessage(playerid, -1, "");
  852.     SendClientMessage(playerid, -1, "");
  853.     SendClientMessage(playerid, -1, "");
  854.     SendClientMessage(playerid, -1, "");
  855.     SendClientMessage(playerid, -1, "");
  856.     SendClientMessage(playerid, -1, "");
  857.     SendClientMessage(playerid, -1, "");
  858.     SendClientMessage(playerid, -1, "");
  859.     SendClientMessage(playerid, -1, "");
  860.     SendClientMessage(playerid, -1, "");
  861.     SendClientMessage(playerid, -1, "");
  862.     SendClientMessage(playerid, -1, "");
  863.     SendClientMessage(playerid, -1, "");
  864.     SendClientMessage(playerid, -1, "");
  865.     SendClientMessage(playerid, -1, "");
  866.     SendClientMessage(playerid, -1, "");
  867.     SendClientMessage(playerid, -1, "");
  868.     SendClientMessage(playerid, -1, "");
  869.     SendClientMessage(playerid, -1, "");
  870.     SendClientMessage(playerid, -1, "");
  871.     SendClientMessage(playerid, -1, "");
  872.     SendClientMessage(playerid, -1, "");
  873.     SendClientMessage(playerid, -1, "");
  874.     SendClientMessage(playerid, -1, "");
  875.     SendClientMessage(playerid, -1, "");
  876.     SendClientMessage(playerid, -1, "");
  877.     SendClientMessage(playerid, -1, "");
  878.     SendClientMessage(playerid, -1, "");
  879.     SendClientMessage(playerid, -1, "");
  880.     SendClientMessage(playerid, -1, "");
  881. }
Advertisement
Add Comment
Please, Sign In to add comment