Advertisement
GaMeRFoReVeR

DD2 Pack v1.2

Jul 7th, 2015
469
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 8.32 KB | None | 0 0
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <colorchat>
  4. #include <cstrike>
  5.  
  6. #define PLUGIN "DD2 Pack"
  7. #define VERSION "1.2"
  8. #define AUTHOR "GaMeR FoReVeR"
  9.  
  10. new const szConfig[] = "settings.cfg";
  11.  
  12. new const szTextConfig[][] =
  13. {
  14.     "; DD2 Pack",
  15.     "; v1.2",
  16.     "; GaMeR FoReVeR",
  17.     "; https://www.facebook.com/pages/MagicBrush-Software/666346276834469",
  18.     "",
  19.     "dd2_restart_mode ^"1^"         // Mod restartovanja [0 - vreme | 1 - runde]",
  20.     "dd2_rounds_restart ^"50^"      // Koliko je potrebno runde da se resetuje mapa",
  21.     "dd2_time_restart ^"3600.0^"        // Vreme u sekundama kada se vrsi restart (svakih x sekundi)",
  22.     "dd2_spec_admin ^"1^"           // Da li samo admini mogu uci u spec",
  23.     "dd2_wlc_msg ^"1^"          // Poruka dobrodoslice [1 - upaljeno | 0 - ugaseno]",
  24.     "dd2_wlc_type ^"3^"         // Mod poruke dobrodoslice [1-HUD poruka | 2-chat poruka | 3-oboje]",
  25.     "dd2_spec ^"1^"             // Da li je ukljucena komanda spec",
  26.     "dd2_back ^"1^"             // Da li je ukljucena komanda back",
  27.     "dd2_back_alive ^"0^"           // Da li se ozivljava igrac kada kuca back",
  28.     "dd2_round_fade ^"1^"           // Kratki screen fade na pocetku runde",
  29.     "dd2_community ^"[Vas Community]^"  // Naziv vase zajednice (pojavljuje se u chat porukama)"
  30. };
  31.  
  32. enum Cvars
  33. {
  34.     RestartTime,
  35.     AdminSpec,
  36.     Welcome,
  37.     WelcomeType,
  38.     CmdSpec,
  39.     CmdBack,
  40.     BackAlive,
  41.     StartFade,
  42.     CommunityName,
  43.     RestartMode,
  44.     RestartRounds
  45. };
  46. new const szCvars[Cvars][][] =
  47. {
  48.     {"dd2_time_restart",            "3600.0"},
  49.     {"dd2_spec_admin",          "1"},
  50.     {"dd2_wlc_msg",             "1"},
  51.     {"dd2_wlc_type",            "3"},
  52.     {"dd2_spec",                "1"},
  53.     {"dd2_back",                "1"},
  54.     {"dd2_back_alive",          "0"},
  55.     {"dd2_round_fade",          "1"},
  56.     {"dd2_community",           "[Vas Community]"},
  57.     {"dd2_restart_mode",            "1"},
  58.     {"dd2_rounds_restart",          "50"}
  59. };
  60. new cvar_pointer[Cvars];
  61.  
  62. new const szSayCmd[][][] =
  63. {
  64.     {"say /spec",           "cmdSpec"},
  65.     {"say /back",           "cmdBack"},
  66.     {"say /nazad",          "cmdBack"},
  67.     {"say /timeleft",       "cmdLeft"}
  68. };
  69.  
  70. new CsTeams:szTeam[33];
  71. new SyncHud;
  72. new bool:szNeedRestart = false;
  73. new szCommunity[64];
  74. new gRounds;
  75. new dir[64], gFolder[64], gSettings[64];
  76. new Float:started_time;
  77.  
  78. public plugin_init()
  79. {
  80.     register_plugin(PLUGIN, VERSION, AUTHOR);
  81.    
  82.     register_cvar("dd2_pack", VERSION, FCVAR_SERVER | FCVAR_SPONLY);
  83.    
  84.     for(new Cvars: i = RestartTime; i < Cvars ; i++) cvar_pointer[i] = register_cvar(szCvars[i][0], szCvars[i][1]);
  85.     for(new i; i<sizeof(szSayCmd); i++) register_clcmd(szSayCmd[i][0], szSayCmd[i][1]);
  86.    
  87.     get_pcvar_string(cvar_pointer[CommunityName], szCommunity, charsmax(szCommunity));
  88.     SyncHud = CreateHudSyncObj();
  89.    
  90.     register_logevent("Round_Start", 2, "1=Round_Start");
  91.     register_logevent("Round_End", 2, "1=Round_End")
  92.    
  93.     server_cmd("exec %s", gSettings);
  94.    
  95.     if(get_pcvar_num(cvar_pointer[RestartMode]) == 0)
  96.     {
  97.         set_task(get_pcvar_float(cvar_pointer[RestartTime]), "Restart_Check");
  98.         started_time = get_gametime();
  99.     }
  100.    
  101.     szNeedRestart = false;
  102. }
  103.  
  104. public plugin_precache()
  105. {
  106.     get_configsdir(dir, charsmax(dir));
  107.     formatex(gFolder, charsmax(gFolder), "%s/DD2Pack", dir);
  108.     formatex(gSettings, charsmax(gSettings), "%s/DD2Pack/%s", dir, szConfig);
  109.    
  110.     if(!dir_exists(gFolder)) mkdir(gFolder);
  111.    
  112.     if(!file_exists(gSettings))
  113.     {
  114.         for(new i = 0; i < sizeof szTextConfig; i++)
  115.             write_file(gSettings, szTextConfig[i]);
  116.     }
  117. }
  118.  
  119. public client_putinserver(id)
  120. {
  121.     if(get_pcvar_num(cvar_pointer[Welcome]) == 1)
  122.         Welcome_Message(id);
  123. }
  124.    
  125. public Round_Start()
  126. {
  127.     if(get_pcvar_num(cvar_pointer[StartFade]) == 1)
  128.     {
  129.         message_begin(MSG_BROADCAST, get_user_msgid("ScreenFade"));
  130.         write_short(1<<10);
  131.         write_short(1<<10);
  132.         write_short(0x0000);
  133.         write_byte(0);
  134.         write_byte(255);
  135.         write_byte(0);
  136.         write_byte(75);
  137.         message_end();
  138.     }
  139.     if(szNeedRestart)
  140.         Restart_Process();
  141.    
  142.     if(get_pcvar_num(cvar_pointer[RestartMode]) == 1)
  143.         gRounds++;
  144. }
  145.  
  146. public Round_End()
  147. {
  148.     Restart_Check();
  149. }
  150.  
  151. public Welcome_Message(id)
  152. {
  153.     if(!is_user_connected(id) || is_user_bot(id) || get_pcvar_num(cvar_pointer[Welcome]) == 0)
  154.         return PLUGIN_HANDLED;
  155.    
  156.     new szNick[43];
  157.     get_user_name(id, szNick, charsmax(szNick));
  158.    
  159.     switch(get_pcvar_num(cvar_pointer[WelcomeType]))
  160.     {
  161.         case 0: return PLUGIN_CONTINUE;
  162.         case 1:
  163.         {
  164.             set_hudmessage(255, 0 , 0, -1.0, 0.27, 2, 0.02, 4.0, 0.01, 0.1, 10);
  165.             ShowSyncHudMsg(id, SyncHud, "Dobrodosao %s !^n%s ti zeli srecnu igru i puno fragova !", szNick, szCommunity);
  166.            
  167.         }
  168.         case 2: ColorChat(id, NORMAL, "Dobrodosao^4 %s ^1!^4 %s ^1ti zeli srecnu igru i puno fragova!", szNick, szCommunity);
  169.         case 3:
  170.         {
  171.             set_hudmessage(255, 0 , 0, -1.0, 0.27, 2, 0.02, 4.0, 0.01, 0.1, 10);
  172.             ShowSyncHudMsg(id, SyncHud, "Dobrodosao %s !^n%s ti zeli srecnu igru i puno fragova !", szNick, szCommunity);
  173.            
  174.             ColorChat(id, NORMAL, "Dobrodosao^4 %s ^1!^4 %s ^1ti zeli srecnu igru i puno fragova!", szNick, szCommunity);
  175.         }
  176.     }
  177.     return PLUGIN_CONTINUE;
  178. }
  179.  
  180. public cmdLeft(id)
  181. {
  182.     if(!is_user_connected(id) || is_user_bot(id))
  183.         return PLUGIN_HANDLED;
  184.    
  185.     if(get_pcvar_num(cvar_pointer[RestartMode]) == 0)
  186.     {
  187.         new Float:left = get_gametime()-started_time;
  188.         new Float:result = get_pcvar_float(cvar_pointer[RestartTime])-left;
  189.        
  190.         ColorChat(0, NORMAL, "^4[DD2 Pack] ^1Preostalo vremena:^4 %d ^1minuta.", (floatround(result) / 60));
  191.     }
  192.     else
  193.     {
  194.         new lRemains = get_pcvar_num(cvar_pointer[RestartRounds])-gRounds;
  195.        
  196.         if(lRemains == 0)
  197.             ColorChat(0, NORMAL, "^4[DD2 Pack] ^1Ovo je poslednja runda !");
  198.         else
  199.             ColorChat(0, NORMAL, "^4[DD2 Pack] ^1Preostalo rundi:^4 %i", lRemains);
  200.         return PLUGIN_CONTINUE;
  201.     }
  202.    
  203.     return PLUGIN_CONTINUE;
  204. }
  205.  
  206. public cmdSpec(id)
  207. {
  208.     if(!is_user_connected(id) || is_user_bot(id) || get_pcvar_num(cvar_pointer[CmdSpec]) == 0)
  209.         return PLUGIN_HANDLED;
  210.    
  211.     if(get_pcvar_num(cvar_pointer[AdminSpec]) == 1)
  212.     {
  213.         if(get_user_flags(id) && ADMIN_BAN)
  214.             Switch_Spec(id);
  215.         else
  216.             ColorChat(id, NORMAL, "^4[DD2 Pack] ^1Samo admini imaju pristup toj komandi.");
  217.     }
  218.     else
  219.         Switch_Spec(id);
  220.    
  221.     return PLUGIN_CONTINUE;
  222. }
  223.  
  224. public cmdBack(id)
  225. {
  226.     if(!is_user_connected(id) || is_user_bot(id) || get_pcvar_num(cvar_pointer[CmdSpec]) == 0)
  227.         return PLUGIN_HANDLED;
  228.    
  229.     if(get_pcvar_num(cvar_pointer[AdminSpec]) == 1)
  230.     {
  231.         if(get_user_flags(id) && ADMIN_BAN)
  232.             Switch_Back(id);
  233.         else
  234.             ColorChat(id, NORMAL, "^4[DD2 Pack] ^1Samo admini imaju pristup toj komandi.");
  235.     }
  236.     else
  237.         Switch_Back(id);
  238.    
  239.     return PLUGIN_CONTINUE;
  240. }
  241.  
  242. public Switch_Spec(id)
  243. {
  244.     if(cs_get_user_team(id) == CS_TEAM_SPECTATOR)
  245.         return PLUGIN_HANDLED;
  246.    
  247.     szTeam[id] = cs_get_user_team(id);
  248.    
  249.     cs_set_user_team(id, CS_TEAM_SPECTATOR);
  250.     user_silentkill(id);
  251.    
  252.     ColorChat(id, NORMAL, "^4[DD2 Pack] ^1Kucaj^4 /back ^1da se vratis iz Spectatora.");
  253.    
  254.     return PLUGIN_CONTINUE;
  255. }
  256.  
  257. public Switch_Back(id)
  258. {
  259.     if(cs_get_user_team(id) != CS_TEAM_SPECTATOR)
  260.         return PLUGIN_HANDLED;
  261.    
  262.     cs_set_user_team(id, szTeam[id]);
  263.    
  264.     if(get_pcvar_num(cvar_pointer[BackAlive]) == 1)
  265.         cs_user_spawn(id);
  266.    
  267.     return PLUGIN_CONTINUE;
  268. }
  269.  
  270. public Restart_Check()
  271. {
  272.     switch(get_pcvar_num(cvar_pointer[RestartMode]))
  273.     {
  274.         case 0:
  275.         {
  276.             szNeedRestart = true;
  277.    
  278.             ColorChat(0, NORMAL, "^4[DD2 Pack] ^1Vreme za restart mape je isteklo.");
  279.             ColorChat(0, NORMAL, "^4[DD2 Pack] ^1Kada se zavrsi runda mapa ce se resetovati.");
  280.         }
  281.         case 1:
  282.         {
  283.             if(gRounds >= get_pcvar_num(cvar_pointer[RestartRounds]))
  284.             {
  285.                 szNeedRestart = true;
  286.                
  287.                 ColorChat(0, NORMAL, "^4[DD2 Pack] ^1To je bila poslednja runda.");
  288.                 ColorChat(0, NORMAL, "^4[DD2 Pack] ^1Kada se zavrsi runda mapa ce se resetovati.");
  289.             }
  290.             return PLUGIN_CONTINUE
  291.         }
  292.     }
  293.     return PLUGIN_CONTINUE;
  294. }
  295.  
  296. public Restart_Process()
  297. {
  298.     if(get_pcvar_num(cvar_pointer[RestartMode]) == 0)
  299.     {
  300.         set_task(get_pcvar_float(cvar_pointer[RestartTime]), "Restart_Check");
  301.         started_time = 0.0;
  302.         started_time = get_gametime();
  303.     }
  304.    
  305.     server_cmd("amx_reloadadmins; sv_restartround 1; exec misc.cfg; exec listip.cfg; exec %s", gSettings);
  306.    
  307.     set_task(3.0, "Wish_Good");
  308.    
  309.     szNeedRestart = false;
  310.     gRounds = 0;
  311. }
  312.  
  313. public Wish_Good()
  314. {
  315.     set_hudmessage(0, 255, 0, -1.0, 0.26, 1, 6.0, 12.0);
  316.     ShowSyncHudMsg(0, SyncHud, "Mapa se upravo resetovala !^nGo Go Go nova runda !^n%s vam zeli sve najbolje !", szCommunity);
  317.    
  318.     ColorChat(0, NORMAL, "^4[DD2 Pack]^1 Mapa se upravo resetovala !");
  319.     ColorChat(0, NORMAL, "^4[DD2 Pack] Go Go Go ^1nova runda !");
  320.     ColorChat(0, NORMAL, "^4[DD2 Pack] %s ^1vam zeli sve najbolje !", szCommunity);
  321. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement