Facebook
From gouda/extreme, 7 Years ago, written in C++.
Embed
Download Paste or View Raw
Hits: 253
  1. #include <a_samp>
  2. #include <sscanf2>
  3. #include <zcmd>
  4.  
  5. /*
  6. // %d - int - liczba  252
  7. // %f - Float - liczba zmienno przecinkowa  52.25
  8. // %d - prawda/fałsz
  9. // %s - ciąg tekstowy  jakiś tekst
  10. // char - jedna literka  'a'
  11. // string "jakis"
  12. */
  13.  
  14. //KOLORY
  15. #define COLOR_GREEN 0x6dc066AA
  16. #define COLOR_RED 0xf41111AA
  17. #define COLOR_WHITE 0xffffffAA
  18. #define COLOR_BLUE 0x4c40d6AA
  19. #define COLOR_LEMON 0xc2d61eAA
  20. #define COLOR_ORANGE 0xee8d15AA
  21. #define COLOR_DARKPINK 0xe14169AA
  22. #define COLOR_PINK 0xe76687AA
  23. #define COLOR_PURPLE 0x9b3aa7AA
  24. #define COLOR_GREY 0x898989AA
  25. #define COLOR_AQUA 0x66cdaaAA
  26. #define COLOR_YELLOW 0xdddf1fAA
  27.  
  28. //takie tam
  29. #undef MAX_PLAYERS
  30. #define MAX_PLAYERS 20
  31.  
  32. #define DIALOG_GUNSHOP     1
  33. #define DIALOG_TP          2
  34. #define DIALOG_HELP        3
  35. #define DIALOG_NEWBIE      4
  36. #define DIALOG_KILL        5
  37. #define DIALOG_DRUG        6
  38. #define pickup             7
  39. main() {}
  40.  
  41. //mode
  42. new pickup;
  43.  
  44. public OnGameModeInit()
  45. {
  46.         SetGameModeText("DM v0.1 (extreme)");
  47.  
  48.         pickup = CreatePickup(1242, 2, 2465.03, -1667.45, 13.48, -1);  //ganton marker z dragami
  49.  
  50.         AddPlayerClass(7,198.7482,-107.7110,1.5505,90,WEAPON_COLT45,150,WEAPON_FIREEXTINGUISHER,1000,WEAPON_CAMERA,30); // 0 - cywil
  51.         AddPlayerClass(266,198.7482,-107.7110,1.5505,90,WEAPON_DEAGLE,80,WEAPON_NITESTICK,1,WEAPON_MP5,400); // 1 - policjant
  52.         AddPlayerClass(110,198.7482,-107.7110,1.5505,90,WEAPON_DEAGLE,80,WEAPON_TEC9,500,WEAPON_MOLTOV,2); // 2 - gangster
  53.         AddPlayerClass(72,198.7482,-107.7110,1.5505,90,WEAPON_COLT45,150,WEAPON_FIREEXTINGUISHER,1000,WEAPON_RIFLE,30); // 3 - Rolnik
  54.         AddPlayerClass(164,198.7482,-107.7110,1.5505,90,WEAPON_SILENCED,90,WEAPON_SHOTGUN,50,WEAPON_TEARGAS,4); // 4 - Ochroniarz
  55.  
  56.         return 1;
  57. }
  58.  
  59. public OnPlayerPickUpPickup(playerid, pickupid)
  60. {
  61.     if(pickupid == pickup)
  62.     {
  63.         ShowPlayerDialog(playerid, DIALOG_DRUG, DIALOG_STYLE_LIST, "Deathmatch v0.1 - System narkotykow", "Kokaina\nHeroina", "Zazyj", "Wyjdz");
  64.     }
  65.     return 1;
  66. }
  67.  
  68. public OnPlayerRequestClass(playerid, classid)
  69. {
  70.         SetPlayerPos(playerid, 198.7482,-107.7110,1.5505);
  71.         SetPlayerCameraPos(playerid, 191.2887,-108.0239,1.5489);
  72.         SetPlayerCameraLookAt(playerid, 198.7482,-107.7110,3.5505);
  73.         SetPlayerFacingAngle(playerid, 90.0000);
  74.         switch(classid)
  75.         {
  76.                 case 0:
  77.                 {
  78.                         GameTextForPlayer(playerid, "Wybierz klase:~n~~w~Cywil", 2000, 4);
  79.                 }
  80.                 case 1:
  81.                 {
  82.                         GameTextForPlayer(playerid, "Wybierz klase:~b~Policjant", 2000, 4);
  83.                 }
  84.                 case 2:
  85.                 {
  86.                         GameTextForPlayer(playerid, "Wybierz klase:~g~Gangster", 2000, 4);
  87.                 }
  88.                 case 3:
  89.                 {
  90.                         GameTextForPlayer(playerid, "Wybierz klase:~n~~y~Rolnik", 2000, 4);
  91.                 }
  92.                 case 4:
  93.                 {
  94.                         GameTextForPlayer(playerid, "Wybierz klase:~n~~p~Ochroniarz", 2000, 4);
  95.                 }
  96.         }
  97.  
  98.  
  99.         return 1;
  100. }
  101.  
  102. public OnPlayerRequestSpawn(playerid)
  103. {
  104.         SetPlayerFacingAngle(playerid, 90.0000);
  105.         return 1;
  106. }
  107.  
  108. public OnPlayerConnect(playerid)
  109. {
  110.  
  111.         return 1;
  112. }
  113.  
  114. public OnPlayerSpawn(playerid)
  115. {
  116.         SetPlayerSkillLevel(playerid, WEAPONSKILL_PISTOL, 1);
  117.         SetPlayerSkillLevel(playerid, WEAPONSKILL_SHOTGUN, 11);
  118.         SetPlayerSkillLevel(playerid, WEAPONSKILL_MP5, 11);
  119.         SetPlayerSkillLevel(playerid, WEAPONSKILL_AK47, 11);
  120.         SetPlayerSkillLevel(playerid, WEAPONSKILL_M4, 11);
  121.         SetPlayerSkillLevel(playerid, WEAPONSKILL_MICRO_UZI, 1);
  122.         SetPlayerSkillLevel(playerid, WEAPONSKILL_DESERT_EAGLE, 11);
  123.         SetPlayerSkillLevel(playerid, WEAPONSKILL_SAWNOFF_SHOTGUN, 1);
  124.         SetPlayerSkillLevel(playerid, WEAPONSKILL_SPAS12_SHOTGUN, 1);
  125.         SetPlayerSkillLevel(playerid, WEAPONSKILL_PISTOL_SILENCED, 11);
  126.  
  127.         new name[24];
  128.         GetPlayerName(playerid, name, sizeof(name));
  129.         GivePlayerMoney(playerid, 1000);
  130.         SetPlayerArmour(playerid, 50.0);
  131.         SetPlayerHealth(playerid, 75.0);
  132.  
  133.         new string[120];
  134.         format (string, sizeof(string), "Witaj %s na serwerze Deathmatch, otrzymujesz $1000 na start gry.", name);
  135.         SendClientMessage(playerid, COLOR_GREEN, string);
  136.         SendClientMessage(playerid, COLOR_AQUA, "Wpisz /pomoc aby zobaczyc liste dostepnych komend.");
  137.  
  138.         return 1;
  139. }
  140.  
  141. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  142. {
  143.         if(dialogid == DIALOG_GUNSHOP)
  144.         {
  145.                 if(response == 1)
  146.                 switch(listitem)
  147.                 {
  148.                         case 0:
  149.                         {
  150.                                 if(GetPlayerMoney(playerid) < 500) return SendClientMessage(playerid, -1, "Nie masz tyle kasy!");
  151.                                 GivePlayerWeapon(playerid, WEAPON_DEAGLE, 90);
  152.                                 GivePlayerMoney(playerid, -500);
  153.                                 SendClientMessage(playerid, COLOR_ORANGE, "Kupiles Deagle za $500.");
  154.                         }
  155.                         case 1:
  156.                         {
  157.                                 if(GetPlayerMoney(playerid) < 700) return SendClientMessage(playerid, -1, "Nie masz tyle kasy!");
  158.                                 GivePlayerWeapon(playerid, WEAPON_AK47, 90);
  159.                                 GivePlayerMoney(playerid, -700);
  160.                                 SendClientMessage(playerid, COLOR_ORANGE, "Kupiles AK47 za $700.");
  161.                         }
  162.  
  163.                 }
  164.         }
  165.         else if(dialogid == DIALOG_TP)
  166.         {
  167.               if(response == 1)
  168.               switch(listitem)
  169.               {
  170.                 case 0: //ganton
  171.                 {
  172.                         SetPlayerPos(playerid, 2494.0708,-1668.6140,13.3438);
  173.                         SendClientMessage(playerid, COLOR_YELLOW, "Teleportowales sie na Ganton.");
  174.                 }
  175.                 case 1: //dillmore
  176.                 {
  177.                         SetPlayerPos(playerid, 653.9586,-584.6425,16.3281);
  178.                         SendClientMessage(playerid, COLOR_YELLOW, "Teleportowales sie do Dillmore.");
  179.                 }
  180.                 case 2: //Las Colinas
  181.                 {
  182.                         SetPlayerPos(playerid, 2166.2385,-1005.1613,62.8047);
  183.                         SendClientMessage(playerid, COLOR_YELLOW, "Teleportowales sie na Las Colinas.");
  184.                 }
  185.                 case 3: //Skate Park
  186.                 {
  187.                         SetPlayerPos(playerid, 1969.0618,-1440.6733,13.5438);
  188.                         SendClientMessage(playerid, COLOR_YELLOW, "Teleportowales sie na Skate Park.");
  189.                 }
  190.                 case 4: //Glen Park
  191.                 {
  192.                         SetPlayerPos(playerid, 1971.5627,-1179.6821,25.9066);
  193.                         SendClientMessage(playerid, COLOR_YELLOW, "Teleportowales sie na Glen Park.");
  194.                 }
  195.               }  
  196.         }
  197.         else if(dialogid == DIALOG_NEWBIE)
  198.         {
  199.                 if(response == 1)
  200.                 {
  201.                         ShowPlayerDialog(playerid, 0, DIALOG_STYLE_MSGBOX, "Deathmatch v0.1", "Rozpoczynasz samouczek... [wkrotce]", "Dalej", "");
  202.                 }
  203.                 if(response == 0)
  204.                         {
  205.                                 GameTextForPlayer(playerid, "~r~Anulowano", 2000, 3);
  206.                                 return 1;
  207.                         }
  208.         }
  209.         else if(dialogid == DIALOG_DRUG)
  210.         {
  211.                 if(response == 1)
  212.                 switch(listitem)
  213.                 {
  214.                 case 0: //KOKA
  215.                 {
  216.                         SetPlayerDrunkLevel(playerid, 3500);
  217.                         SendClientMessage(playerid, COLOR_YELLOW, "Wziales kokaine.");
  218.                 }
  219.                 case 1: //heroina
  220.                 {
  221.                         SetPlayerDrunkLevel(playerid, 3000);
  222.                         SendClientMessage(playerid, COLOR_YELLOW, "Wziales heroine.");
  223.                 }
  224.                        
  225.                 }
  226.                 if(response == 0)
  227.                         {
  228.                                 GameTextForPlayer(playerid, "~r~Anulowano", 2000, 3);
  229.                                 return 1;
  230.                         }
  231.         }
  232.         return 1;
  233. }
  234.  
  235. public OnPlayerCommandPerformed(playerid, cmdtext[], success)
  236. {
  237.     return 1;
  238. }
  239.  
  240. CMD:hp(playerid, params[]) //to bedzie dla admina kiedys tylko
  241. {
  242.         new give_playerid,
  243.         Float:hp;
  244.  
  245.         if(sscanf(params, "df", give_playerid, hp))
  246.         {
  247.                 ShowPlayerDialog(playerid, 0, DIALOG_STYLE_MSGBOX, "Deathmatch v0.1", "Uzycie komendy: /hp [id] [wartosc]", "Zamknij", "");
  248.                 return 1;
  249.         }
  250.  
  251.         if(!IsPlayerConnected(give_playerid))
  252.         {
  253.                 ShowPlayerDialog(playerid, 0, DIALOG_STYLE_MSGBOX, "Deathmatch v0.1", "Nie ma takiego gracza.", "Zamknij", "");
  254.                 return 1;
  255.         }
  256.  
  257.         if(hp < 0 || hp > 100)
  258.         {
  259.                 ShowPlayerDialog(playerid, 0, DIALOG_STYLE_MSGBOX, "Deathmatch v0.1", "Wartosc HP powinna byc w przedziale 1-100", "Zamknij", "");
  260.                 return 1;
  261.         }
  262.  
  263.         SetPlayerHealth(give_playerid, hp);
  264.         SendClientMessage(playerid, COLOR_ORANGE, "HP zostalo nadane.");
  265.         return 1;
  266. }
  267.  
  268. CMD:pomoc(playerid, params[])
  269. {
  270.         ShowPlayerDialog(playerid, DIALOG_HELP, DIALOG_STYLE_LIST, "Deathmatch v0.1- Komendy","/newbie - Jestes nowy? Zajrzyj!\n/kamizelka - Gracz dostaje kamizelke ($500)\n/zdrowie - Gracz zostaje uleczony($250)\n/spawn - Teleport gracza na spawn\n/sklep - Menu sklepu z bronia\n/tp - Lista teleportow", "Zamknij", "");
  271.         return 1;
  272. }
  273.  
  274. CMD:spawn(playerid, params[])
  275. {
  276.         SetPlayerFacingAngle(playerid, 90.0000);
  277.         SendClientMessage(playerid, COLOR_YELLOW, "Teleportowales sie na spawn!");
  278.         SetPlayerPos(playerid, 198.7482,-107.7110,1.5505);
  279.         return 1;
  280. }
  281.  
  282. CMD:zdrowie(playerid, params[])
  283. {
  284.         if(GetPlayerMoney(playerid) < 250)
  285.                 return SendClientMessage(playerid, COLOR_AQUA, "Nie masz wystarczajaco pieniedzy! ($250)");
  286.  
  287.         GivePlayerMoney(playerid, -250);
  288.         SendClientMessage(playerid, COLOR_ORANGE, "Zostales uleczony za $250.");
  289.         SetPlayerHealth(playerid, 100.0);
  290.         return 1;
  291. }
  292.  
  293. CMD:kamizelka(playerid, params[])
  294. {
  295.         if(GetPlayerMoney(playerid) < 500)
  296.                 return SendClientMessage(playerid, COLOR_AQUA, "Nie masz wystarczajaco pieniedzy! ($500)");
  297.  
  298.         GivePlayerMoney(playerid, -500);
  299.         SendClientMessage(playerid, COLOR_ORANGE, "Dostales kamizelke za $500.");
  300.         SetPlayerArmour(playerid, 100.0);
  301.         return 1;
  302. }
  303.  
  304. CMD:sklep(playerid, params[])
  305. {
  306.     ShowPlayerDialog(playerid, DIALOG_GUNSHOP, DIALOG_STYLE_LIST, "Deathmatch v0.1 - Sklep z bronia", "Deagle($500)\nAK47($700)", "Kup", "Wyjdz");
  307.     return 1;
  308. }
  309.  
  310. CMD:tp(playerid, params[])
  311. {
  312.         ShowPlayerDialog(playerid, DIALOG_TP, DIALOG_STYLE_LIST, "Deathmatch v0.1 - Teleporty", "Ganton\nDillmore\nLas Colinas\nSkate Park\nGlen Park", "Idz", "Anuluj");
  313.         return 1;
  314. }
  315.  
  316. CMD:newbie(playerid, params[])
  317. {
  318.         ShowPlayerDialog(playerid, DIALOG_NEWBIE, DIALOG_STYLE_MSGBOX, "Deathmatch v0.1 - Samouczek", "Uzyles tej komendy bo prawdopodobnie jestes nowy na serwerze\n i nie radzisz sobie z gra. Specjalnie dla Ciebie przygotowalismy maly poradnik,\n dzieki niemu powinienes zrozumiec o co tutaj chodzi.\n\nChcesz rozpoczac samouczek?", "Rozpocznij", "Anuluj");
  319.         return 1;
  320. }
  321.  
  322. CMD:kill(playerid, params[])
  323. {
  324.         ShowPlayerDialog(playerid, DIALOG_KILL, DIALOG_STYLE_MSGBOX, "Deathmatch v0.1 - Samobojstwo", "Jestes pewien, ze chcesz popelnic samobojstwo?", "Tak", "Nie chce");
  325.         GameTextForPlayer(playerid, "~r~Zginales", 2000, 3);
  326.         return 1;
  327. }