wklejto.pl

Dodane przez: ~Anonim (2019-04-28 22:44) -> c
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
#pragma semicolon 1
#include <sourcemod>    
#include <sdktools>
#include <cstrike>
#include <multicolors>
 
#define STANDARDMAPSMAX 12
 
new String:BSAL[1];
new EIBA = -1;
new EIBB = -1;
new Handle:Timer = INVALID_HANDLE;
new String:StandardMaps[STANDARDMAPSMAX][2][11] =
{       
        {
                "de_mirage","A"
        },
        {
                "de_cache","A"
        },
        {
                "de_chateau","A"
        },
        {
                "de_dust","A"
        },
        {
                "de_dust2","A"
        },
        {
                "de_inferno","B"
        },
        {
                "de_nuke","B"
        },
        {
                "de_piranesi","A"
        },
        {
                "de_port","A"
        },
        {
                "de_prodigy","B"
        },
        {
                "de_tides","A"
        },
        {
                "de_train","A"
        }
};
 
public Plugin:myinfo =
{
    name = "Bombsite Limiter",
    author = "Tomasz 'anacron' Motylinski",
    description = "Limiting Bomsites when due to low CT players.",
    version = "1.2.3",
    url = "http://anacron.pl/"
}
public OnPluginStart()
{
        HookEvent("round_freeze_end",Event_RoundFreezeEnd,EventHookMode_Post); 
        HookEvent("bomb_planted",Event_RoundEnd,EventHookMode_Post); 
        HookEvent("round_end",Event_RoundEnd,EventHookMode_Post); 
        CreateConVar("sm_bslimiter","1.2.3","Version Information",FCVAR_REPLICATED|FCVAR_NOTIFY);
}
stock bool:IsVecBetween(const Float:vecVector[3],const Float:vecMin[3],const Float:vecMax[3]) 
{ 
    return ( (vecMin[0] <= vecVector[0] <= vecMax[0]) && 
             (vecMin[1] <= vecVector[1] <= vecMax[1]) && 
             (vecMin[2] <= vecVector[2] <= vecMax[2])    ); 
}
public Message()
{
        CPrintToChatAll("{green}========================================");
        CPrintToChatAll("{lightgreen}[BS Limiter] {default}Ze wzgledu na mala liczbe CT w tej rundzie. Beda oni bronic tylko {darkred}BombSite %s.",BSAL);
        CPrintToChatAll("{green}========================================");
}
public Action:RepeatMessage(Handle:timer)
{
        Message();
}
public Action:Event_RoundFreezeEnd (Handle:event,const String:name[],bool:dontBroadcast)
{
        if(IsValidEntity(EIBA)) 
        {
                EIBA = -1;
        }
        if(IsValidEntity(EIBB)) 
        {
                EIBB = -1;
        }
        if(Timer != INVALID_HANDLE)
        {
                CloseHandle(Timer);
                Timer = INVALID_HANDLE;
        }
 
        new Float:VBCPA[3]; 
        new Float:VBCPB[3]; 
        new EI = -1;
        
        EI = FindEntityByClassname(EI,"cs_player_manager");
        
        if(IsValidEntity(EI)) 
        { 
                GetEntPropVector(EI,Prop_Send,"m_bombsiteCenterA",VBCPA); 
                GetEntPropVector(EI,Prop_Send,"m_bombsiteCenterB",VBCPB); 
        } 
        
        EI = -1; 
        EI = FindEntityByClassname(EI,"func_bomb_target");
        
        while(IsValidEntity(EI)) 
        { 
                new Float:VBMin[3]; 
                new Float:VBMax[3]; 
                 
                GetEntPropVector(EI,Prop_Send,"m_vecMins",VBMin); 
                GetEntPropVector(EI,Prop_Send,"m_vecMaxs",VBMax); 
                 
                if (IsVecBetween(VBCPA,VBMin,VBMax)) 
                { 
                        EIBA = EI; 
                } 
                else if (IsVecBetween(VBCPB,VBMin,VBMax)) 
                { 
                        EIBB = EI; 
                } 
                EI = FindEntityByClassname(EI,"func_bomb_target");
        }
    
        if(IsValidEntity(EIBA) && IsValidEntity(EIBB))
    {
                new CTPlayers = GetTeamClientCount(CS_TEAM_CT);
                new TTPlayers = GetTeamClientCount(CS_TEAM_T);
 
                if(((CTPlayers > TTPlayers) && (TTPlayers == 1 || CTPlayers > 3)) || CTPlayers > 4)
                {
                        AcceptEntityInput(EIBB,"Enable");
                        AcceptEntityInput(EIBA,"Enable");
                        BSAL = "";
                        CPrintToChatAll("{green}========================================");
                        CPrintToChatAll("{lightgreen}[BS Limiter] {default}Ze wzgledu na mala liczbe CT w tej rundzie. Beda oni bronic tylko {darkred}BombSite %s.");
                        CPrintToChatAll("{green}========================================");
                        PrintCenterTextAll("<font color='#00FF00'>[BS Limiter]</font> W tej rundzie sa wlaczone <font color='#00FF00'>wszystkie BS'y</font>");
                }
                else
                {
                        if(GetRandomInt(1,2) == 1)
                        {
                                AcceptEntityInput(EIBA,"Disable");
                                AcceptEntityInput(EIBB,"Enable");
                                BSAL = "B";
                        }
                        else
                        {
                                AcceptEntityInput(EIBB,"Disable");
                                AcceptEntityInput(EIBA,"Enable");
                                BSAL = "A";
                        }
                        decl String:CurrentMap[256];
                        GetCurrentMap(CurrentMap,sizeof(CurrentMap));
                        for(new i=0; i<STANDARDMAPSMAX; i++)
                        {
                                if(StrEqual(CurrentMap,StandardMaps[i][0],false)) 
                                {
                                        if(StrEqual(StandardMaps[i][1],"B",false))
                                        {
                                                AcceptEntityInput(EIBA,"Disable");
                                                AcceptEntityInput(EIBB,"Enable");
                                                BSAL = "B";
                                        }
                                        else
                                        {
                                                AcceptEntityInput(EIBB,"Disable");
                                                AcceptEntityInput(EIBA,"Enable");
                                                BSAL = "A";
                                        }
                                }
                        }
                        if(GetClientCount(true) > 1)
                        {
                                Message();
                                Timer = CreateTimer(35.0,RepeatMessage, _,TIMER_REPEAT); 
                        }
                }
        }
}
public Action:Event_RoundEnd (Handle:event,const String:name[],bool:dontBroadcast)
{
        if(Timer != INVALID_HANDLE)
        {
                CloseHandle(Timer);
                Timer = INVALID_HANDLE;
        }
        if(IsValidEntity(EIBA)) 
        {
                AcceptEntityInput(EIBA,"Enable");
                EIBA = -1;
        }
        if(IsValidEntity(EIBB)) 
        {
                AcceptEntityInput(EIBB,"Enable");
                EIBB = -1;
        }
}
 
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par }
*/
 
Wygenerowano w 0.020s, przy pomocy GeSHi 1.0.8
'
Podziel się na Facebook Podziel się na BLIP Podziel się na Twitter Podziel się na Buzz Podziel się na Flaker Dodaj zakładkę Google Podziel się na Delicious Wykop to!

Nowy Komentarz:

Komentarze:

Brak Komentarzy!