OBS: if you use others filterscripts in the server, add this in the filterscript if case use GivePlayerWeapon
pawn Код:
#define GivePlayerWeapon(%1,%2,%3)\
CallRemoteFunction("rGivePlayerWeapon","ddd",%1,%2,%3)
#define ResetPlayerWeapons(%1)\
CallRemoteFunction("rResetPlayerWeapons","d",%1)
pawn Код:
public OnPlayerSpawn(playerid)
{
GivePlayerWeapon(playerid,24,999);//give a player weapon and register the weapon in the server
return true;
}
public OnPlayerUpdate(playerid)
{
rWeaponCheck(playerid);//check the current weapon is registered and autorized in the server
//rWeaponCheckEx(playerid);//check all weapons of the player if is registered in the server
return true;
}
public OnPlayerWeaponHack(playerid,weaponid,ammo)
{
SendClientMessage(playerid,-1,"You has used weapon hack mother fucker!");
//BanEx(playerid,"WeaponHack");
return true;
}
pawn Код:
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////// rWEAPON HACK PROTECT 0.1 ////////////////////////// ////////////////////////// Desenvolvido por [iPs]Ivanzicco / [JD]BlackFire ////////////////////////// ////////////////////////// http://www.rocksbrasil.com.br ////////////////////////// http://www.ips-team.forumeiros.com ////////////////////////// ////////////////////////// ////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////#define GivePlayerWeapon(%1,%2,%3)\ rGivePlayerWeapon
(%1,
%2,
%3
)#define ResetPlayerWeapons(%1)\ rResetPlayerWeapons
(%1
)forward OnPlayerGiveWeapon
(playerid,weaponid,ammo
);
forward OnPlayerWeaponHack
(playerid,weaponid,ammo
);
new rWeapon
[MAX_PLAYERS
][13];
new rAmmo
[MAX_PLAYERS
][13];
stock rGivePlayerWeapon
(playerid,weaponid,ammo
){ if(rWeapon
[playerid
][WeaponSlot
(weaponid
)] == weaponid
){ rAmmo
[playerid
][WeaponSlot
(weaponid
)] += ammo;
}else{ rWeapon
[playerid
][WeaponSlot
(weaponid
)] = weaponid;
rAmmo
[playerid
][WeaponSlot
(weaponid
)] = ammo;
} #undef GivePlayerWeapon GivePlayerWeapon
(playerid,weaponid,ammo
);
#define GivePlayerWeapon(%1,%2,%3)\ rGivePlayerWeapon
(%1,
%2,
%3
) CallLocalFunction
("OnPlayerGiveWeapon",
"ddd",playerid,weaponid,ammo
);
return true;
}stock rWeaponCheck
(playerid
){ if(IsPlayerConnected
(playerid
) && !IsPlayerNPC
(playerid
)){ new ammo,weaponid
= GetPlayerWeapon
(playerid
);
GetPlayerWeaponData
(playerid,WeaponSlot
(weaponid
),weaponid,ammo
);
if((weaponid
!= 0) && ammo
> rAmmo
[playerid
][WeaponSlot
(weaponid
)] || weaponid
!= rWeapon
[playerid
][WeaponSlot
(weaponid
)]){ CallLocalFunction
("OnPlayerWeaponHack",
"ddd",playerid,weaponid,ammo
);
new string
[100];
format(string,
100,
"--WeaponHack: '%s', Arma:%d , Muniзгo:%d",rPlayerName
(playerid
),weaponid,ammo
);
print(string
);
rLOG
(string
);
} rWeapon
[playerid
][WeaponSlot
(weaponid
)] = weaponid;
rAmmo
[playerid
][WeaponSlot
(weaponid
)] = ammo;
} return true;
}stock rWeaponCheckEx
(playerid
){ if(IsPlayerConnected
(playerid
) && !IsPlayerNPC
(playerid
)){ for(new i;i
<=12;i
++){ new ammo,weaponid;
GetPlayerWeaponData
(playerid,i,weaponid,ammo
);
if((weaponid
!= 0) && ammo
> rAmmo
[playerid
][WeaponSlot
(weaponid
)] || weaponid
!= rWeapon
[playerid
][WeaponSlot
(weaponid
)]){ CallLocalFunction
("OnPlayerWeaponHack",
"ddd",playerid,weaponid,ammo
);
new string
[100];
format(string,
100,
"--WeaponHack: '%s', Arma:%d , Muniзгo:%d",rPlayerName
(playerid
),weaponid,ammo
);
print(string
);
rLOG
(string
);
} rWeapon
[playerid
][WeaponSlot
(weaponid
)] = weaponid;
rAmmo
[playerid
][WeaponSlot
(weaponid
)] = ammo;
} }}stock rResetPlayerWeapons
(playerid
){ for(new i; i
<=12; i
++) { rWeapon
[playerid
][i
] = 0;
rAmmo
[playerid
][i
] = 0;
} #undef ResetPlayerWeapons ResetPlayerWeapons
(playerid
);
#define ResetPlayerWeapons(%1)\ rResetPlayerWeapons
(%1
)}stock WeaponSlot
(weaponid
){ if(weaponid
== 0){return 0;
} else if(weaponid
== 1){return 0;
} else if(weaponid
== 2){return 1;
} else if(weaponid
== 3){return 1;
} else if(weaponid
== 4){return 1;
} else if(weaponid
== 5){return 1;
} else if(weaponid
== 6){return 1;
} else if(weaponid
== 7){return 1;
} else if(weaponid
== 8){return 1;
} else if(weaponid
== 9){return 1;
} else if(weaponid
== 10){return 10;
} else if(weaponid
== 11){return 10;
} else if(weaponid
== 12){return 10;
} else if(weaponid
== 13){return 10;
} else if(weaponid
== 14){return 10;
} else if(weaponid
== 15){return 10;
} else if(weaponid
== 16){return 8;
} else if(weaponid
== 17){return 8;
} else if(weaponid
== 18){return 8;
} else if(weaponid
== 22){return 2;
} else if(weaponid
== 23){return 2;
} else if(weaponid
== 24){return 2;
} else if(weaponid
== 25){return 3;
} else if(weaponid
== 26){return 3;
} else if(weaponid
== 27){return 3;
} else if(weaponid
== 28){return 4;
} else if(weaponid
== 29){return 4;
} else if(weaponid
== 30){return 5;
} else if(weaponid
== 31){return 5;
} else if(weaponid
== 32){return 4;
} else if(weaponid
== 33){return 6;
} else if(weaponid
== 34){return 6;
} else if(weaponid
== 35){return 7;
} else if(weaponid
== 36){return 7;
} else if(weaponid
== 37){return 7;
} else if(weaponid
== 38){return 7;
} else if(weaponid
== 39){return 8;
} else if(weaponid
== 40){return 12;
} else if(weaponid
== 41){return 9;
} else if(weaponid
== 42){return 9;
} else if(weaponid
== 43){return 9;
} else if(weaponid
== 44){return 11;
} else if(weaponid
== 45){return 11;
} else if(weaponid
== 46){return 11;
} else {return false;
}}stock rLOG
(log
[]){ new File:file
=fopen("rWeapon.log", io_append
);
if(file
&& strlen(log
) > 1) { new dia,mes,ano,hora,minuto,segundo;
getdate(ano,mes,dia
);
gettime(hora,minuto,segundo
);
format(log,
1000,
"[%02d/%02d/%04d - %02d:%02d:%02d] %s\r\n",dia,mes,ano,hora,minuto,segundo,log
);
fwrite(file,log
);
} fclose(file
);
}stock rPlayerName
(playerid
){ new name
[MAX_PLAYER_NAME
];
GetPlayerName
(playerid,name,MAX_PLAYER_NAME
);
return name;
}
:To use this script is necessary to you deactivate all forms to the player give weapons without the server using GivePlayerWeapon