Nekro
Терра инкогнита
- Сообщения
- 4,025
- Реакции
- 2,260
Про глобальную понял, а про локальную можно на пальцах?Introduction to SourcePawn 1.7 - AlliedModders Wiki
wiki.alliedmods.net
Про глобальную понял, а про локальную можно на пальцах?Introduction to SourcePawn 1.7 - AlliedModders Wiki
wiki.alliedmods.net
Выделена память для неё, которая не удаляется и сохраняется. Грубо говоря, если в команде объявить static int a = 0;, то a всегда равно 0. Но если при каком-либо условии ВНУТРИ блока команды (Action Cmd_Test(...) например) изменить a на 1, то в следующих случаях a = 1. Тяжело как-то объяснить xDпро локальную можно на пальцах?
public void OnPluginStart()
{
RegConsoleCmd("sm_statictest", Command_StaticTest);
}
Action Command_StaticTest(int client, int args)
{
static int a = 0;
if(args > 0)
{
char arg1[8];
GetCmdArg(1, arg1, sizeof(arg1));
a = StringToInt(arg1);
return Plugin_Handled;
}
ReplyToCommand(client, "Значение a = %d", a);
return Plugin_Handled;
}
Код не работает так как надо, срабатывает от первого нажатия, а не двойного.C-подобный:#define DELAY 9 public Action OnPlayerRunCmd(int iClient, int& iButtons, int& impulse, float vel[3], float angles[3], int& weapon, int& subtype, int& cmdnum, int& tickcount, int& seed, int mouse[2]) { static int iBtn[MAXPLAYERS + 1], iTime[MAXPLAYERS + 1]; if(iButtons & IN_USE && !(iBtn[iClient] & IN_USE)) { if(tickcount <= iTime[iClient] + DELAY) { //.... } iTime[iClient] = tickcount; } iBtn[iClient] = iButtons; }
А точно именно этот плагин установлен? Там нет ничего о админахВсем вечер добрый,можно сделать так,чтоб админы не бегали с диглами?
А то обычные игроки без диглов,а у кого стоят флаги,то-есть админы,бегают с диглами.
Заранее благодарю
тоже ничего не нашёл,админам выдает что то другое диглы,такой же модуль от вип на авто закупкуА точно именно этот плагин установлен? Там нет ничего о админах
Согласен, небось он отрабатывает, а потом какой-то плагин определённым игрокам (видимо с флагом) выдаёт диглытоже ничего не нашёл,админам выдает что то другое диглы,такой же модуль от вип на авто закупку
да этот,диглов нет на авп,ну у обычных игроков,а админы с диглами бегают)А точно именно этот плагин установлен? Там нет ничего о админах
Ну это же на запрет диглов,на авп карте,обычные игроки бегают без диглов,а админы с диглами,вот и подумал,что может можно,добавить какую то проверку,что и у кого флаги,тоже запрещал@-=|УЧЕНИК|=-, а с чего такая уверенность, что именно этот плагин? Не шарю...
#include <sdkhooks>
#include <sdktools_entinput>
bool bLate, bEnable;
public Plugin myinfo =
{
name = "No deagles on awp_* maps"
}
public APLRes AskPluginLoad2(Handle myself, bool late, char[] error, int err_max)
{
bLate = late;
}
public void OnMapStart()
{
char map[128]
GetCurrentMap(map, sizeof(map));
GetMapDisplayName(map, map, sizeof(map));
map[4] = 0;
bEnable = !strcmp(map, "awp_", false);
if(!bLate) return;
bLate = false;
if(!bEnable) return;
char cls[16];
for(int i = MaxClients+1, max = GetMaxEntities(); i <= max; i++) if(GetEntityClassname(i, cls, sizeof(cls)))
{
cls[13] = 0;
OnEntityCreated(i, cls);
}
}
public void OnEntityCreated(int ent, const char[] cls)
{
if(bEnable && ent > MaxClients && !strcmp(cls, "weapon_deagle", false)) AcceptEntityInput(ent, "kill");
}
public void OnClientPutInServer(int client)
{
if(!IsFakeClient(client)) SDKHook(client, SDKHook_WeaponEquip, OnEquip);
}
public Action OnEquip(int client, int wpn)
{
static char cls[16];
if(!bEnable || !IsValidEntity(wpn) || !GetEntityClassname(wpn, cls, sizeof(cls)) || strcmp(cls, "weapon_deagle", false))
return Plugin_Continue;
AcceptEntityInput(wpn, "kill");
return Plugin_Handled;
}
Да все четко,от души.@-=|УЧЕНИК|=-, вот так любые диглы нельзя будет заюзать, кроме тех, у которых кастомный класс (да и то смотря как изменено его имя):C-подобный:#include <sdkhooks> #include <sdktools_entinput> bool bLate, bEnable; public Plugin myinfo = { name = "No deagles on awp_* maps" } public APLRes AskPluginLoad2(Handle myself, bool late, char[] error, int err_max) { bLate = late; } public void OnMapStart() { char map[128] GetCurrentMap(map, sizeof(map)); GetMapDisplayName(map, map, sizeof(map)); map[4] = 0; bEnable = !strcmp(map, "awp_", false); if(!bLate) return; bLate = false; if(!bEnable) return; char cls[16]; for(int i = MaxClients+1, max = GetMaxEntities(); i <= max; i++) if(GetEntityClassname(i, cls, sizeof(cls))) { cls[13] = 0; OnEntityCreated(i, cls); } } public void OnEntityCreated(int ent, const char[] cls) { if(bEnable && ent > MaxClients && !cls[13] && !strcmp(cls, "weapon_deagle", false)) AcceptEntityInput(ent, "kill"); } public void OnClientPutInServer(int client) { if(!IsFakeClient(client)) SDKHook(client, SDKHook_WeaponEquip, OnEquip); } public Action OnEquip(int client, int wpn) { static char cls[16]; if(!bEnable || !IsValidEntity(wpn) || !GetEntityClassname(wpn, cls, sizeof(cls)) || strcmp(cls, "weapon_deagle", false)) return Plugin_Continue; AcceptEntityInput(wpn, "kill"); return Plugin_Handled; }
только ошибками сыпит чет)Да все четко,от души.
А то у меня с тем плагином,админы и випы гоняли с диглами)
ВДа все четко,от души.
А то у меня с тем плагином,админы и випы гоняли с диглами)
Сообщения автоматически склеены:
только ошибками сыпит чет)
L 03/31/2021 - 00:58:24: [SM] Call stack trace:
L 03/31/2021 - 00:58:24: [SM] [1] Line 38, C:\Users\dddd\Desktop\no_deagles_awp_map.sp::OnEntityCreated
L 03/31/2021 - 00:58:24: [SM] Exception reported: Invalid memory access
L 03/31/2021 - 00:58:24: [SM] Blaming: no_deagles_awp_map.smx
name = "No deagles on awp_* maps"
- свое название карты вставь.Это тут причем ваше?Вname = "No deagles on awp_* maps"
- свое название карты вставь.
Ой, сорян, яЭто тут причем ваше?
&& !cls[13]
. Видимо встречаются энтити с именем класса короче 13 символов