namechange.pwn 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. /*
  2. /$$ /$$ /$$$$$$ /$$$$$$$ /$$$$$$$
  3. | $$$ | $$ /$$__ $$ | $$__ $$| $$__ $$
  4. | $$$$| $$| $$ \__/ | $$ \ $$| $$ \ $$
  5. | $$ $$ $$| $$ /$$$$ /$$$$$$| $$$$$$$/| $$$$$$$/
  6. | $$ $$$$| $$|_ $$|______/| $$__ $$| $$____/
  7. | $$\ $$$| $$ \ $$ | $$ \ $$| $$
  8. | $$ \ $$| $$$$$$/ | $$ | $$| $$
  9. |__/ \__/ \______/ |__/ |__/|__/
  10. Name Change System
  11. Next Generation Gaming, LLC
  12. (created by Next Generation Gaming Development Team)
  13. * Copyright (c) 2016, Next Generation Gaming, LLC
  14. *
  15. * All rights reserved.
  16. *
  17. * Redistribution and use in source and binary forms, with or without modification,
  18. * are not permitted in any case.
  19. *
  20. *
  21. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  22. * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  23. * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
  24. * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
  25. * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
  26. * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
  27. * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
  28. * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
  29. * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
  30. * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  31. * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  32. */
  33. stock IsAtNameChange(playerid)
  34. {
  35. if(IsPlayerConnected(playerid))
  36. {
  37. if(IsPlayerInRangeOfPoint(playerid, 3.0,1154.7295,-1440.2323,15.7969)) return 1;//LS
  38. else if(IsPlayerInRangeOfPoint(playerid, 3.0,-2279.6545, 2311.2238, 4.9641)) return 1;//TR
  39. }
  40. return 0;
  41. }
  42. /*CMD:nchange(playerid, params[]) return cmd_namechanges(playerid, params);
  43. CMD:namechanges(playerid, params[])
  44. {
  45. if(PlayerInfo[playerid][pAdmin] >= 3)
  46. {
  47. new
  48. nstring[64 + (MAX_PLAYER_NAME * 2)],
  49. newname[ MAX_PLAYER_NAME ];
  50. SendClientMessageEx(playerid, COLOR_GREEN, "* Pending name changes:");
  51. foreach(new i: Player)
  52. {
  53. if(GetPVarType(i, "RequestingNameChange"))
  54. {
  55. GetPVarString(i, "NewNameRequest", newname, MAX_PLAYER_NAME);
  56. format(nstring, sizeof(nstring), "Current name: %s (ID: %d) | Requested name: %s | Price: %d", GetPlayerNameEx(i), i, newname, GetPVarInt(i, "NameChangeCost"));
  57. SendClientMessageEx(playerid, COLOR_YELLOW, nstring);
  58. }
  59. }
  60. SendClientMessageEx(playerid, COLOR_GREEN, "_____________________________________________________");
  61. }
  62. return 1;
  63. } */
  64. /*CMD:changename(playerid, params[])
  65. {
  66. if(PlayerInfo[playerid][pAdmin] == 1 && PlayerInfo[playerid][pSMod] > 0) return ShowPlayerDialogEx( playerid, DIALOG_NAMECHANGE, DIALOG_STYLE_INPUT, "Name Change","Please enter your new desired name!\n\nNote: Name Changes are free because you are a Senior Moderator.", "Change", "Cancel" );
  67. if(!IsAtNameChange(playerid)) return SendClientMessageEx( playerid, COLOR_WHITE, " You are not in the Name Change Place!" );
  68. if(!isnull(PlayerInfo[playerid][pWarrant]) || PlayerInfo[playerid][pWarrant] != 0) return SendClientMessageEx(playerid, COLOR_GRAD2, "You cant name change, while warranted.");
  69. if(gettime()-GetPVarInt(playerid, "LastNameChange") < 120) return SendClientMessageEx(playerid, COLOR_GRAD2, "You can only request a name change every two minutes.");
  70. new iGroupID = PlayerInfo[playerid][pMember];
  71. if((0 <= PlayerInfo[playerid][pMember] < MAX_GROUPS) && (PlayerInfo[playerid][pRank] >= arrGroupData[iGroupID][g_iFreeNameChange] && (PlayerInfo[playerid][pDivision] == arrGroupData[iGroupID][g_iFreeNameChangeDiv] || arrGroupData[iGroupID][g_iFreeNameChangeDiv] == INVALID_DIVISION)))
  72. {
  73. ShowPlayerDialogEx( playerid, DIALOG_NAMECHANGE, DIALOG_STYLE_INPUT, "Name Change","Please enter your new desired name!\n\nNote: Name Changes are free for your faction.", "Change", "Cancel" );
  74. }
  75. else if(gettime() >= PlayerInfo[playerid][pNextNameChange])
  76. {
  77. ShowPlayerDialogEx(playerid, DIALOG_NAMECHANGE, DIALOG_STYLE_INPUT, "Free Name Change", "Please enter your new desired name!\n\nNote: Name Changes are free every 120 days.", "Change", "Cancel");
  78. }
  79. else
  80. {
  81. if(GetPVarInt(playerid, "PinConfirmed"))
  82. {
  83. new string[128];
  84. format(string, sizeof(string), "Please enter your new desired name!\n\nYour Credits: %s\nCost: {FFD700}%s{A9C4E4}\nCredits Left: %s", number_format(PlayerInfo[playerid][pCredits]), number_format(ShopItems[40][sItemPrice]), number_format(PlayerInfo[playerid][pCredits]-ShopItems[40][sItemPrice]));
  85. ShowPlayerDialogEx(playerid, DIALOG_NAMECHANGE, DIALOG_STYLE_INPUT, "Name Change", string, "Purchase", "Cancel");
  86. }
  87. else SetPVarInt(playerid, "OpenShop", 10), PinLogin(playerid);
  88. }
  89. return 1;
  90. }*/
  91. CMD:changename(playerid, params[])
  92. {
  93. if(PlayerInfo[playerid][pAdmin] == 1 && PlayerInfo[playerid][pSMod] > 0) return ShowPlayerDialogEx( playerid, DIALOG_NAMECHANGE, DIALOG_STYLE_INPUT, "Free Name Change","Please enter your new desired name!\n\nNote: Name Changes are free because you are a Senior Moderator.", "Change", "Cancel" );
  94. if(!IsAtNameChange(playerid)) return SendClientMessageEx( playerid, COLOR_WHITE, "You are not in the Name Change Place!" );
  95. if(!isnull(PlayerInfo[playerid][pWarrant]) || PlayerInfo[playerid][pWarrant] != 0) return SendClientMessageEx(playerid, COLOR_GRAD2, "You cant name change, while warranted.");
  96. if(gettime()-GetPVarInt(playerid, "LastNameChange") < 120) return SendClientMessageEx(playerid, COLOR_GRAD2, "You can only request a name change every two minutes.");
  97. new iGroupID = PlayerInfo[playerid][pMember];
  98. if((0 <= PlayerInfo[playerid][pMember] < MAX_GROUPS) && (PlayerInfo[playerid][pRank] >= arrGroupData[iGroupID][g_iFreeNameChange] && (PlayerInfo[playerid][pDivision] == arrGroupData[iGroupID][g_iFreeNameChangeDiv] || arrGroupData[iGroupID][g_iFreeNameChangeDiv] == INVALID_DIVISION)))
  99. {
  100. ShowPlayerDialogEx( playerid, DIALOG_NAMECHANGE, DIALOG_STYLE_INPUT, "Free Name Change","Please enter your new desired name!\n\nNote: Name Changes are free for your faction.", "Change", "Cancel" );
  101. }
  102. else if(gettime() >= PlayerInfo[playerid][pNextNameChange])
  103. {
  104. ShowPlayerDialogEx(playerid, DIALOG_NAMECHANGE, DIALOG_STYLE_INPUT, "Free Name Change", "Please enter your new desired name!\n\nNote: Name Changes are free every 120 days.", "Change", "Cancel");
  105. }
  106. else
  107. {
  108. new string[128];
  109. switch(PlayerInfo[playerid][pLevel])
  110. {
  111. case 1: string = "10,000";
  112. case 2: string = "15,000";
  113. case 3: string = "20,000";
  114. default: string = number_format((PlayerInfo[playerid][pLevel]-3)*50000);
  115. }
  116. format(string, sizeof(string), "Please enter your new desired name!\n\nCost of a currnet name change is: $%s\nUse /nextnamechange to see the next free change.", string);
  117. ShowPlayerDialogEx(playerid, DIALOG_NAMECHANGE, DIALOG_STYLE_INPUT, "Name Change", string, "Change", "Cancel");
  118. }
  119. return 1;
  120. }
  121. CMD:nextnamechange(playerid, params[])
  122. {
  123. if(PlayerInfo[playerid][pNextNameChange] == 0 || gettime() >= PlayerInfo[playerid][pNextNameChange]) return SendClientMessageEx(playerid, -1, "You can change your name for free now.");
  124. else
  125. {
  126. new string[128];
  127. format(string, sizeof(string), "Your next free name change will be on %s", date(PlayerInfo[playerid][pNextNameChange], 4));
  128. SendClientMessageEx(playerid, -1, string);
  129. }
  130. return 1;
  131. }