Кстати если что-то публикуешь, банальные ошибки исправляй!
Ну поехали:
В сибирь, вобще не используется:
pawn Code:
public OnPlayerCommandText(playerid, cmdtext[])
{
new cmd[256];
new idx;
cmd = strtokc(cmdtext, idx);
/*if(strcmp(cmd, "/get", true) == 0)
{
SetPlayerArmedWeapon(playerid,31);
SendClientMessage(playerid,COLOR_WHITE,"Done.");
return 1;
}*/
return 0;
}
//------------------------------------------------------------------------------------------------------------------------------------
strtokc(const string[], &index)
{
new length = strlen(string);
while ((index < length) && (string[index] <= ' '))
{
index++;
}
new offset = index;
new result[20];
while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
{
result[index - offset] = string[index];
index++;
}
result[index - offset] = EOS;
return result;
}
Это:
pawn Code:
public OnFilterScriptExit()
{
print("Antibug Collection 0.1 Psycho unloaded!");
for(new i = 0; i < MAX_PLAYERS; i++)
{
PressedFire[i] = false;
BugTickCountOld[i] = 0;
BugTickCountNew[i] = 0;
}
return 1;
}
Заменяем, этим
pawn Code:
public OnFilterScriptExit()
{
print("Antibug Collection 0.1 Psycho unloaded!");
return 1;
}
зачем нам обнулять локальные переменные которые уничтожаются как только ФС выгрузиться, они в другие скрпты не передаются!
Самое вкусное:
pawn Code:
stock GetPlayerSpeed(playerid)
{
new Float:ST[4];
if(IsPlayerInAnyVehicle(playerid))
{
GetVehicleVelocity(GetPlayerVehicleID(playerid),ST[0],ST[1],ST[2]);
} else {
GetPlayerVelocity(playerid,ST[0],ST[1],ST[2]);
ST[3] = floatsqroot(floatpower(floatabs(ST[0]), 2.0) + floatpower(floatabs(ST[1]), 2.0) + floatpower(floatabs(ST[2]), 2.0)) * 179.28625;
}
return floatround(ST[3]);
}
1) конвертирование скорости происходит только когда игрок пешком!!!
2) навига 3 раза возвращать модуль когда при возведении в квадрат знак сам собой исчезнет, в школе вместо уроков математики за забором курили?!
3) что за множитель "* 179.28625", это вы у тупых америкосов скопировали? Я всегда 100 делаю - что аргументировано как банальное округление реальных результатов, а не коэфициент с потолка!
4) юзать можно 3 переменных просто записав конечный результат в одну из ST[0..2]
В итоге имеем:
pawn Code:
stock GetPlayerSpeed(playerid)
{
new Float:ST[3];
if(IsPlayerInAnyVehicle(playerid))GetVehicleVelocity(GetPlayerVehicleID(playerid),ST[0],ST[1],ST[2]);
else GetPlayerVelocity(playerid,ST[0],ST[1],ST[2]);
ST[0] = floatsqroot(floatpower(ST[0], 2.0) + floatpower(ST[1], 2.0) + floatpower(ST[2], 2.0));
return floatround(ST[0])*100;
}
Ещё кое что, я нажал огонь отпустил его бегал пол часа, потом присел, по твоему коду, я багер!!!
По твоему коду
PressedFire[playerid] = true; возвращается в false только если игрок заюзал баг!