Advertisement
Jujuv

[SA:MP | GM] Base-GM Alt

Jun 9th, 2012
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 18.41 KB | None | 0 0
  1. /*
  2.  
  3.          ___                                                          
  4.         | . \ _ _  ___  ___  ___  _ _  ___  ___  ___  ___ ___ ___  _ _
  5.         |  _/| '_>/ ._>|___|| . \| '_>/ . \/ | '/ ._><_-<<_-</ . \| '_>
  6.         |_|  |_|  \___.     |  _/|_|  \___/\_|_.\___./__//__/\___/|_|  
  7.                             |_|                                        
  8.                             _    _    _              
  9.                           _| |_ | |_ <_>._ _  ___  ___
  10.                            | |  | . || || ' |/ . |<_-<
  11.                            |_|  |_|_||_||_|_|\_. |/__/
  12.                                              <___'    
  13. */
  14. /*--------------------------------------Librarys--------------------------------------------*/
  15. #include <a_samp>
  16. #include <djson>
  17. #include <dutils>
  18.  
  19. /*--------------------------------------Macros----------------------------------------------*/
  20. #define DIALOG_REGISTER 0
  21. #define DIALOG_LOGIN 1
  22. #define DIALOG_ADMIN_MENU 2
  23. #define DIALOG_ADMIN_SET 4
  24. #define DIALOG_BAN_CONFIRM 5
  25. #define DIALOG_DEL_ACCOUNT_CONFIRM 6
  26. #define DIALOG_DEL_ACCOUNT_DONE 7
  27. #define DIALOG_UNBAN_INPUT 8
  28. #define DIALOG_UNBAN_DONE 9
  29.  
  30. #define MEMBER 0
  31. #define MODO 1
  32. #define ADMIN 2
  33.  
  34. #define COLOR_YELLOW 0xFFD200FF
  35.  
  36.  
  37.  
  38.  
  39. /*
  40.  
  41.  
  42.            _____ _       _           _   _   _     _                
  43.           |  __ \ |     | |         | | | | | |   (_)                
  44.           | |  \/ | ___ | |__   __ _| | | |_| |__  _ _ __   __ _ ___
  45.           | | __| |/ _ \| '_ \ / _` | | | __| '_ \| | '_ \ / _` / __|
  46.           | |_\ \ | (_) | |_) | (_| | | | |_| | | | | | | | (_| \__ \
  47.            \____/_|\___/|_.__/ \__,_|_|  \__|_| |_|_|_| |_|\__, |___/
  48.                                                             __/ |    
  49.                                                            |___/    
  50.  
  51.  
  52.  
  53.  
  54. */
  55. /*--------------------------------------Variables------------------------------------*/
  56. new gMaxPlayersConnected;
  57. /*--------------------------------------Enumerations---------------------------------*/
  58. enum E_PLAYERINFO
  59. {
  60.         logued,
  61.         staffRank,
  62.         playerClicked
  63.        
  64. }
  65. /*--------------------------------------Arrays---------------------------------------*/
  66. new pInfo[MAX_PLAYERS][E_PLAYERINFO];
  67.  
  68. /*
  69.  
  70.               ______                    _    _                    
  71.               |  ___|                  | |  (_)                  
  72.               | |_  _   _  _ __    ___ | |_  _   ___   _ __   ___
  73.               |  _|| | | || '_ \  / __|| __|| | / _ \ | '_ \ / __|
  74.               | |  | |_| || | | || (__ | |_ | || (_) || | | |\__ \
  75.               \_|   \__,_||_| |_| \___| \__||_| \___/ |_| |_||___/
  76.                                                                  
  77.                                                                  
  78.                        _____  _      _                    
  79.                       |_   _|| |    (_)                  
  80.                         | |  | |__   _  _ __    __ _  ___
  81.                         | |  | '_ \ | || '_ \  / _` |/ __|
  82.                         | |  | | | || || | | || (_| |\__ \
  83.                         \_/  |_| |_||_||_| |_| \__, ||___/
  84.                                                 __/ |    
  85.                                                |___/      
  86. */
  87.  
  88. /*--------------------------------------------Functions-------------------------------------*/
  89. stock strs(string1[], string2[])//Strings Sames (strs)
  90. {
  91.         if(!strcmp(string1, string2) && strlen(string1) == strlen(string2) && strlen(string1) > 1)
  92.             {return true;}
  93.         else
  94.             {return false; }
  95. }
  96.  
  97. stock GivePlayerName(playerid)//Return the name of the given playerid
  98. {
  99.     new pName[MAX_PLAYER_NAME+1];
  100.     GetPlayerName(playerid, pName, sizeof(pName));
  101.    
  102.     return pName;
  103. }
  104. stock GetPlayerAccountFile(playerid)//Return the user file path
  105. {
  106.         new pName[MAX_PLAYER_NAME+1], filePath[50];
  107.         pName = GivePlayerName(playerid);
  108.         format(filePath, sizeof(filePath), "/Accounts/%s.json", pName);
  109.        
  110.         return filePath;
  111. }
  112. stock IsPlayerRegistered(playerid)
  113. {
  114.     if(fexist(GetPlayerAccountFile(playerid))) { return true; }//If the user-file for the nick exists
  115.     else{ return false; }
  116.        
  117. }
  118.  
  119. stock RemovePlayerAccount(playerid)
  120. {
  121.     if(IsPlayerRegistered(playerid)) { djRemoveFile(GetPlayerAccountFile(playerid)); }
  122. }
  123.  
  124. stock TryLogin(playerid, string[])//Return: 0 if sucefully logued in; 1 if password is bad; 2 if user is not registered
  125. {
  126.     if(IsPlayerRegistered(playerid))
  127.         {
  128.             new password[MAX_STRING];
  129.             password = dj(GetPlayerAccountFile(playerid), "GlobalInfo/Password");
  130.            
  131.             if(strs(hash(string), password))
  132.                 { pInfo[playerid][logued] = true; LoadPlayerData(playerid); return 0; }
  133.             else
  134.                 { return 1; }
  135.         }
  136.     else
  137.         { return 2; }
  138. }
  139. stock Register(playerid, password[], bool:force)
  140. {
  141.     if(force)
  142.         {
  143.             RemovePlayerAccount(playerid);
  144.             pInfo[playerid][logued] = false;
  145.             pInfo[playerid][staffRank] = MEMBER;
  146.             Register(playerid, password, false);
  147.             return true;
  148.         }
  149.     else if(!IsPlayerRegistered(playerid))
  150.         {
  151.                 new pName[MAX_PLAYER_NAME+1], filePath[50];
  152.                 pName = GivePlayerName(playerid);
  153.                 filePath = GetPlayerAccountFile(playerid);
  154.                
  155.                 djCreateFile(filePath);
  156.                 djSet(filePath, "GlobalInfo/password", hash(password));
  157.                
  158.                 return true;
  159.         }
  160.     else
  161.         { return false; }
  162. }
  163.  
  164. stock GetAdminRank(playerid)
  165. {
  166.         if(IsPlayerRegistered(playerid))
  167.             { return pInfo[playerid][staffRank]; }
  168.         else
  169.             { return -1; }
  170. }
  171. stock IsPlayerLoguedIn(playerid)
  172. {
  173.     if(pInfo[playerid][logued])
  174.         { return true; }
  175.     else
  176.         { return false; }
  177. }
  178.  
  179. stock SetPlayerAdmin(playerid, rank)
  180. {
  181.     if(IsPlayerLoguedIn(playerid))
  182.         { pInfo[playerid][staffRank] = rank; }
  183. }
  184.  
  185. stock IsPlayerBanned(playerid)
  186. {
  187.     if(djInt(GetPlayerAccountFile(playerid), "Moderation/ban"))
  188.         { return true;}
  189.     else
  190.         { return false; }
  191. }
  192.  
  193. stock LoadPlayerData(playerid)
  194. {
  195.     if(IsPlayerLoguedIn(playerid))
  196.         {
  197.             new filePath[50];
  198.             filePath = GetPlayerAccountFile(playerid);
  199.            
  200.             pInfo[playerid][staffRank] = djInt(filePath, "GlobalInfo/staffRank");
  201.         }
  202. }
  203.  
  204. stock SavePlayerData(playerid)
  205. {
  206.     if(IsPlayerLoguedIn(playerid))
  207.         {
  208.             new filePath[50];
  209.             filePath = GetPlayerAccountFile(playerid);
  210.            
  211.             djSetInt(filePath, "GlobalInfo/staffRank", pInfo[playerid][staffRank]);
  212.         }
  213. }
  214.  
  215. stock IsPlayerNearPlayer(player, playerpoint)
  216. {
  217.     new Float:x, Float:y, Float:z;
  218.     GetPlayerPos(playerpoint, x, y, z);
  219.    
  220.     if(IsPlayerInRangeOfPoint(player, 10.0, x, y, z))
  221.         { return true;}
  222.     else
  223.         { return false; }
  224. }
  225.  
  226. stock SpeakToNearPlayers(playerid, message[])
  227. {
  228.     for(new i = 0; i < gMaxPlayersConnected; i++)
  229.     {
  230.         if(IsPlayerNearPlayer(playerid, i))
  231.             { SendPlayerMessageToPlayer(i, playerid, message); }
  232.     }
  233. }
  234.  
  235. /*--------------------------------------------Forwards--------------------------------------*/
  236.  
  237. /*
  238.  
  239.                _____         _  _  _                   _        
  240.               /  __ \       | || || |                 | |        
  241.               | /  \/  __ _ | || || |__    __ _   ___ | | __ ___
  242.               | |     / _` || || || '_ \  / _` | / __|| |/ // __|
  243.               | \__/\| (_| || || || |_) || (_| || (__ |   < \__ \
  244.                \____/ \__,_||_||_||_.__/  \__,_| \___||_|\_\|___/
  245.                                                                  
  246.  
  247. */
  248. main()
  249. {
  250.     print("\n----------------------------------");
  251.     print(" Basic GM by Jujuv");
  252.     print("----------------------------------\n");
  253. }
  254.  
  255. public OnGameModeInit()
  256. {
  257.     djson_GameModeInit();
  258.     djAutocommit(true);
  259.     SetGameModeText("Blank Script");
  260.     AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  261.     return 1;
  262. }
  263.  
  264. public OnGameModeExit()
  265. {
  266.     djson_GameModeExit();
  267.     return 1;
  268. }
  269.  
  270. public OnPlayerRequestClass(playerid, classid)
  271. {
  272.     SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  273.     SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  274.     SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  275.     return 1;
  276. }
  277.  
  278. public OnPlayerConnect(playerid)
  279. {
  280.    
  281.     if(gMaxPlayersConnected < playerid)
  282.         { gMaxPlayersConnected = playerid; }
  283.    
  284.     if(IsPlayerRegistered(playerid))
  285.         { ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Please register", "Good to see you back, bro' !\n Enter your password to log-in and HAVE FUN !", "Ok", "Cancel (Kick"); }
  286.     else
  287.         { ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Please register", "Hello !\n Your account isn't registered yet but we will fix it right now !\n Choose a password for your new account", "Ok", "Cancel (Kick)"); }
  288.    
  289.        
  290.     if(IsPlayerBanned(playerid))
  291.         { Kick(playerid); }
  292.     return 1;
  293. }
  294.  
  295. public OnPlayerDisconnect(playerid, reason)
  296. {
  297.     SavePlayerData(playerid);
  298.    
  299.     if(playerid == gMaxPlayersConnected)
  300.         {
  301.                 for(new i = gMaxPlayersConnected-1; i >= 0; i--)
  302.                 {
  303.                         if(IsPlayerConnected(i))
  304.                                 {gMaxPlayersConnected = i; break;}
  305.                 }
  306.         }
  307.     return 1;
  308. }
  309.  
  310. public OnPlayerSpawn(playerid)
  311. {
  312.     return 1;
  313. }
  314.  
  315. public OnPlayerDeath(playerid, killerid, reason)
  316. {
  317.     return 1;
  318. }
  319.  
  320. public OnVehicleSpawn(vehicleid)
  321. {
  322.     return 1;
  323. }
  324.  
  325. public OnVehicleDeath(vehicleid, killerid)
  326. {
  327.     return 1;
  328. }
  329.  
  330. public OnPlayerText(playerid, text[])
  331. {
  332.     SpeakToNearPlayers(playerid, text);
  333.     return 0;
  334. }
  335. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  336. {
  337.     return 1;
  338. }
  339.  
  340. public OnPlayerExitVehicle(playerid, vehicleid)
  341. {
  342.     return 1;
  343. }
  344.  
  345. public OnPlayerStateChange(playerid, newstate, oldstate)
  346. {
  347.     return 1;
  348. }
  349.  
  350. public OnPlayerEnterCheckpoint(playerid)
  351. {
  352.     return 1;
  353. }
  354.  
  355. public OnPlayerLeaveCheckpoint(playerid)
  356. {
  357.     return 1;
  358. }
  359.  
  360. public OnPlayerEnterRaceCheckpoint(playerid)
  361. {
  362.     return 1;
  363. }
  364.  
  365. public OnPlayerLeaveRaceCheckpoint(playerid)
  366. {
  367.     return 1;
  368. }
  369.  
  370. public OnRconCommand(cmd[])
  371. {
  372.     return 1;
  373. }
  374.  
  375. public OnPlayerRequestSpawn(playerid)
  376. {
  377.     return 1;
  378. }
  379.  
  380. public OnObjectMoved(objectid)
  381. {
  382.     return 1;
  383. }
  384.  
  385. public OnPlayerObjectMoved(playerid, objectid)
  386. {
  387.     return 1;
  388. }
  389.  
  390. public OnPlayerPickUpPickup(playerid, pickupid)
  391. {
  392.     return 1;
  393. }
  394.  
  395. public OnVehicleMod(playerid, vehicleid, componentid)
  396. {
  397.     return 1;
  398. }
  399.  
  400. public OnPlayerClickMap(playerid, Float:fX, Float:fY, Float:fZ)
  401. {
  402.     return 1;
  403. }
  404.  
  405. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  406. {
  407.     return 1;
  408. }
  409.  
  410. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  411. {
  412.     return 1;
  413. }
  414.  
  415. public OnPlayerSelectedMenuRow(playerid, row)
  416. {
  417.     return 1;
  418. }
  419.  
  420. public OnPlayerExitedMenu(playerid)
  421. {
  422.     return 1;
  423. }
  424.  
  425. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  426. {
  427.     return 1;
  428. }
  429.  
  430. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  431. {
  432.     return 1;
  433. }
  434.  
  435. public OnUnoccupiedVehicleUpdate(vehicleid, playerid, passenger_seat)
  436. {
  437.     return 1;
  438. }
  439.  
  440. public OnVehicleDamageStatusUpdate(vehicleid, playerid)
  441. {
  442.     return 1;
  443. }
  444.  
  445. public OnRconLoginAttempt(ip[], password[], success)
  446. {
  447.     return 1;
  448. }
  449.  
  450. public OnPlayerUpdate(playerid)
  451. {
  452.     return 1;
  453. }
  454.  
  455. public OnPlayerStreamIn(playerid, forplayerid)
  456. {
  457.     return 1;
  458. }
  459.  
  460. public OnPlayerStreamOut(playerid, forplayerid)
  461. {
  462.     return 1;
  463. }
  464.  
  465. public OnVehicleStreamIn(vehicleid, forplayerid)
  466. {
  467.     return 1;
  468. }
  469.  
  470. public OnVehicleStreamOut(vehicleid, forplayerid)
  471. {
  472.     return 1;
  473. }
  474.  
  475. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  476. {
  477.     switch(dialogid)
  478.         {
  479.             case DIALOG_REGISTER:
  480.                 {
  481.                     if(!response)
  482.                         { Kick(playerid); }
  483.                     else if(strlen(inputtext) >= 7 && strlen(inputtext) <= 24)
  484.                         { Register(playerid, inputtext, false); ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Please register", "You must enter your password to enjoy the server!\n The one you entered is bad\n Please enter your password", "Ok", "Cancel (Kick)");}
  485.                     else
  486.                         { ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Please register", "Your password is too short or too long (min 6; max 24)", "Ok", "Cancel (Kick)"); }
  487.                 }
  488.             case DIALOG_LOGIN:
  489.                 {
  490.                         if(!response)
  491.                             { Kick(playerid); }
  492.                         else
  493.                             {
  494.                                 new anwser = TryLogin(playerid, inputtext);
  495.                                
  496.                                 if(anwser == 1)
  497.                                     { ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Please register", "You must enter your password to enjoy the server!\n The one you entered is bad\n Please enter your password", "Ok", "Cancel (Kick)"); }
  498.                             }
  499.                 }
  500.             case DIALOG_ADMIN_MENU://Copy-Paste from another of my OWNS public scripts !
  501.              {
  502.                         switch(listitem)
  503.                         {
  504.                                         case 0://Set admin
  505.                                         {
  506.                                         if((GetAdminRank(playerid) >= ADMIN && GetAdminRank(pInfo[playerid][playerClicked]) < ADMIN) || IsPlayerAdmin(playerid))
  507.                                         {
  508.                                                 ShowPlayerDialog(playerid, DIALOG_ADMIN_SET, DIALOG_STYLE_LIST, "Choisisez:", "Membre\r\nModerateur\r\nAdministrateur\r\n", "Valider", "Annuler");
  509.                                         }
  510.                                 }
  511.                                         case 1://Kick
  512.                                         {
  513.                                         if(GetAdminRank(pInfo[playerid][playerClicked]) == MEMBER)
  514.                                         {
  515.                                             new msg[MAX_STRING];
  516.                                             format(msg, sizeof(msg), "[Moderation]%s has been kicked from the server", GivePlayerName(playerid));
  517.                                             SendClientMessageToAll(COLOR_YELLOW, msg);
  518.                                             Kick(pInfo[playerid][playerClicked]);
  519.                                         }
  520.                                 }
  521.                                         case 2://Ban
  522.                                         {
  523.                                         if(GetAdminRank(pInfo[playerid][playerClicked]) == MEMBER)
  524.                                         {
  525.                                                         ShowPlayerDialog(playerid, DIALOG_BAN_CONFIRM, DIALOG_STYLE_MSGBOX, "Confirmation", "Are you sure ?", "Yes", "No");
  526.                                         }
  527.                                 }
  528.                                         case 3://Remove player account
  529.                                         {
  530.                                             ShowPlayerDialog(playerid, DIALOG_DEL_ACCOUNT_CONFIRM, DIALOG_STYLE_MSGBOX, "Confirmation", "EAre you sure ?", "Yes", "No");
  531.                                 }
  532.                                 case 4://TP
  533.                                 {
  534.                                     new Float:x, Float:y, Float:z;
  535.                                     GetPlayerPos(pInfo[playerid][playerClicked], x, y, z);
  536.                                     SetPlayerPosFindZ(playerid, x+random(20), y+random(20), z);
  537.                                 }
  538.                                 case 5://Spec
  539.                                 {
  540.                                     if(IsPlayerLoguedIn(pInfo[playerid][playerClicked]))
  541.                                     {
  542.                                         if(playerid == pInfo[playerid][playerClicked])
  543.                                         {
  544.                                            TogglePlayerSpectating(playerid, 0);
  545.                                         }
  546.                                         else
  547.                                         {
  548.                                             TogglePlayerSpectating(playerid, 1);
  549.                                             PlayerSpectatePlayer(playerid, pInfo[playerid][playerClicked]);
  550.                                         }
  551.                                     }
  552.                                 }
  553.                         }
  554.                 }
  555.                     case DIALOG_ADMIN_SET:
  556.                         {
  557.                                 switch(listitem)
  558.                                 {
  559.                                         case 0://member
  560.                                         {
  561.                                                 SetPlayerAdmin(pInfo[playerid][playerClicked], MEMBER);
  562.                                         }
  563.                                         case 1://modo
  564.                                         {
  565.                                                 SetPlayerAdmin(pInfo[playerid][playerClicked], MODO);
  566.                                         }
  567.                                         case 2://admin
  568.                                         {
  569.                                                 SetPlayerAdmin(pInfo[playerid][playerClicked], ADMIN);
  570.                                         }
  571.                                 }
  572.                         }
  573.                     case DIALOG_BAN_CONFIRM:
  574.                         {
  575.                                 if(response)
  576.                                 {
  577.                                     new msg[MAX_STRING];
  578.                                     format(msg, sizeof(msg), "[Moderation] %s has been banned from the server", GivePlayerName(pInfo[playerid][playerClicked]));
  579.                                     djSetInt(GetPlayerAccountFile(pInfo[playerid][playerClicked]),"Moderation/ban", 1);
  580.                                     SendClientMessageToAll(COLOR_YELLOW, msg);
  581.                                     Kick(playerid);
  582.                                 }
  583.                         }
  584.                     case DIALOG_DEL_ACCOUNT_CONFIRM:
  585.                     {
  586.                         if(response && !GetAdminRank(pInfo[playerid][playerClicked]))
  587.                                 {
  588.                                     RemovePlayerAccount(pInfo[playerid][playerClicked]);
  589.                                    
  590.                                     if(IsPlayerConnected(pInfo[playerid][playerClicked]))
  591.                                                 { Kick(pInfo[playerid][playerClicked]); }
  592.                                            
  593.                                     ShowPlayerDialog(playerid, DIALOG_DEL_ACCOUNT_DONE, DIALOG_STYLE_MSGBOX, "Done", "Account sucefully removed", "Ok", "");
  594.                                 }
  595.                     }
  596.                     case DIALOG_UNBAN_INPUT:
  597.                     {
  598.                             if(response)
  599.                             {
  600.                                     new filePath[50];
  601.                                     format(filePath, sizeof(filePath), "/Accounts/%s.json", inputtext);
  602.                                    
  603.                                     if(fexist(filePath))
  604.                                         {
  605.                                                 if(djInt(filePath, "Moderation/ban"))
  606.                                                     { djSetInt(filePath, "Moderation/ban", 0); SendClientMessage(playerid, COLOR_YELLOW, "Player has been sucefully unbanned"); }
  607.                                                 else
  608.                                                     { SendClientMessage(playerid, COLOR_YELLOW, "This player isn't banned"); }
  609.                                         }
  610.                                     else
  611.                                         { SendClientMessage(playerid, COLOR_YELLOW, "This username isn't registered"); }
  612.                                    
  613.                             }
  614.                     }
  615.         }
  616.     return 1;
  617. }
  618.  
  619. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  620. {
  621.     pInfo[playerid][playerClicked] = clickedplayerid;
  622.    
  623.     if(GetAdminRank(playerid) > MEMBER)
  624.         {  ShowPlayerDialog(playerid, DIALOG_ADMIN_MENU, DIALOG_STYLE_LIST, "Administration", "Set Admin\r\nKick\r\nBan\r\nRempve Account\r\nTeleport to player\r\nSpec player\r\n", "Ok", "Cancel"); }
  625.     return 1;
  626. }
  627.  
  628.  
  629. public OnPlayerCommandText(playerid, cmdtext[])
  630. {
  631.     if (!strcmp("/unban", cmdtext, true, 10))
  632.     {
  633.         if(GetAdminRank(playerid) == ADMIN)
  634.             {  ShowPlayerDialog(playerid,  DIALOG_UNBAN_INPUT, DIALOG_STYLE_INPUT, "Unban", "Enter the name of the player wich you want to unban", "Unban", "Cancel"); }
  635.         else
  636.             { SendClientMessage(playerid, COLOR_YELLOW, "You must be an andmin to do that"); }
  637.         return 1;
  638.     }
  639.     return 0;
  640. }
  641. public OnEnterExitModShop(playerid, enterexit, interiorid)
  642. {
  643.     return 1;
  644. }
  645.  
  646. public OnPlayerGiveDamage(playerid, damagedid, Float: amount, weaponid)
  647. {
  648.     return 1;
  649. }
  650.  
  651. public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid)
  652. {
  653.    
  654.  
  655.     return 1;
  656. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement