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; }