07.12.2015, 15:46
Achei um ANTI CBUG aqui no fуrum, fui editando ele e personalizando, mas hб um problema! Os players as vezes conseguem burlar...
Nгo sei como, alguйm que entenda pode me dizer o pq eles tгo burlando ou me ajudar a arrumar? Isso ajudaria muita gente, pq cbug й horrivel, tira a realidade do GTA
Isso ajudaria mts svs rp/rpg
Variaveis
OnPlayerKeyStateChange
OnPlayerUpdate(playerid)
Nгo sei como, alguйm que entenda pode me dizer o pq eles tгo burlando ou me ajudar a arrumar? Isso ajudaria muita gente, pq cbug й horrivel, tira a realidade do GTA
Isso ajudaria mts svs rp/rpg
Variaveis
Код:
// anti cbug 1 new NotMoving[MAX_PLAYERS]; new WeaponID[MAX_PLAYERS]; new CheckCrouch[MAX_PLAYERS]; new Ammo[MAX_PLAYERS][MAX_PLAYERS];
Код:
// anti cbug 2
if((newkeys & KEY_FIRE) && (oldkeys & KEY_CROUCH) && !((oldkeys & KEY_FIRE) || (newkeys & KEY_HANDBRAKE)) || (oldkeys & KEY_FIRE) && (newkeys & KEY_CROUCH) && !((newkeys & KEY_FIRE) || (newkeys & KEY_HANDBRAKE)) ) {
switch(GetPlayerWeapon(playerid)) {
case 23..25, 27, 29..34, 41: {
if(Ammo[playerid][GetPlayerWeapon(playerid)] > GetPlayerAmmo(playerid)) {
OnPlayerCBug(playerid);
}
return 1;
}
}
}
if(CheckCrouch[playerid] == 1) {
switch(WeaponID[playerid]) {
case 23..25, 27, 29..34, 41: {
if((newkeys & KEY_CROUCH) && !((newkeys & KEY_FIRE) || (newkeys & KEY_HANDBRAKE)) && GetPlayerSpecialAction(playerid) != SPECIAL_ACTION_DUCK ) {
if(Ammo[playerid][GetPlayerWeapon(playerid)] > GetPlayerAmmo(playerid)) {
OnPlayerCBug(playerid);
}
}
}
}
}
//if(newkeys & KEY_CROUCH || (oldkeys & KEY_CROUCH)) return 1;
else if(((newkeys & KEY_FIRE) && (newkeys & KEY_HANDBRAKE) && !((newkeys & KEY_SPRINT) || (newkeys & KEY_JUMP))) ||
(newkeys & KEY_FIRE) && !((newkeys & KEY_SPRINT) || (newkeys & KEY_JUMP)) ||
(NotMoving[playerid] && (newkeys & KEY_FIRE) && (newkeys & KEY_HANDBRAKE)) ||
(NotMoving[playerid] && (newkeys & KEY_FIRE)) ||
(newkeys & KEY_FIRE) && (oldkeys & KEY_CROUCH) && !((oldkeys & KEY_FIRE) || (newkeys & KEY_HANDBRAKE)) ||
(oldkeys & KEY_FIRE) && (newkeys & KEY_CROUCH) && !((newkeys & KEY_FIRE) || (newkeys & KEY_HANDBRAKE)) ) {
SetTimerEx("CrouchCheck", 3000, 0, "d", playerid);
CheckCrouch[playerid] = 1;
WeaponID[playerid] = GetPlayerWeapon(playerid);
Ammo[playerid][GetPlayerWeapon(playerid)] = GetPlayerAmmo(playerid);
return 1;
}
Код:
// anti cbug 3
new Keys, ud, lr;
GetPlayerKeys(playerid, Keys, ud, lr);
if(CheckCrouch[playerid] == 1) {
switch(WeaponID[playerid]) {
case 23..25, 27, 29..34, 41: {
if((Keys & KEY_CROUCH) && !((Keys & KEY_FIRE) || (Keys & KEY_HANDBRAKE)) && GetPlayerSpecialAction(playerid) != SPECIAL_ACTION_DUCK ) {
if(Ammo[playerid][GetPlayerWeapon(playerid)] > GetPlayerAmmo(playerid)) {
OnPlayerCBug(playerid);
}
}
//else SendClientMessage(playerid, COLOR_RED, "Failed in onplayer update");
}
}
}
if(!ud && !lr) { NotMoving[playerid] = 1; /*OnPlayerKeyStateChange(playerid, Keys, 0);*/ }
else { NotMoving[playerid] = 0; /*OnPlayerKeyStateChange(playerid, Keys, 0);*/ }
Код:
// anti cbug 4
forward OnPlayerCBug(playerid);
public OnPlayerCBug(playerid) {
SendClientMessage(playerid, COLOR_BLACKRED, "(ANTI-GLITCH) Actived!");
new Float:hp;
GetPlayerHealth(playerid, hp);
new Float:novohp = hp - 25;
SetPlayerHealthEx(playerid, novohp);
new stringajuda[128];
format(stringajuda,sizeof(stringajuda),"(ANTI-GLITCH) NO C BUG\n[PT]Vocꡰerdeu 25 de vida por fazer GLITCH\n[EN]You lost 25 lives by making GLITCH");
ShowPlayerDialog(playerid,20000,DIALOG_STYLE_MSGBOX,"CBUG:",stringajuda,"Ok","");
CheckCrouch[playerid] = 0;
return 1;
}
forward CrouchCheck(playerid);
public CrouchCheck(playerid) {
CheckCrouch[playerid] = 0;
return 1;
}


