Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #if !defined _samp_included
- #include <a_samp>
- #endif
- new s_waffe[MAX_PLAYERS][46][2],
- PlayerText:WaffenTD[MAX_PLAYERS];
- forward GivePlayerWeapon_Ex(playerid,Gun,Muni);
- forward _nl(playerid,time,weaponid);
- forward SSAR_PlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ);
- forward SSAR_OnGameModeInit();
- forward SSAR_OnPlayerUpdate(playerid);
- /* Settings */
- stock Nachladen(playerid,weaponid){
- new time;
- switch(weaponid){
- case 22..24,26..32,37,38,41,42:time = 3; //Ladezeit der Waffen anpassen ( Nachladezeit: 3 Sekunden )
- default:{ //Shotguns, Rifles etc.
- if(s_waffe[playerid][weaponid][0] - GunAmmo(weaponid) <= 0)return RemovePlayerWeapon(playerid,weaponid);
- s_waffe[playerid][weaponid][1] = GunAmmo(weaponid),
- s_waffe[playerid][weaponid][0] -= GunAmmo(weaponid);
- return SetPlayerAmmo(playerid,weaponid,99999);
- }
- }
- SetPlayerAmmo(playerid,weaponid,99999);
- SetTimerEx("_nl",888,false,"iii",playerid,time,weaponid);
- return SetPlayerArmedWeapon(playerid,0);
- }
- stock GunAmmo(weaponid){ //Munitionen der Waffen anpassen! ( im Magazin )
- new muni;
- switch(weaponid){
- case 22:muni = 34;
- case 23:muni = 17;
- case 24:muni = 7;
- case 26:muni = 2;
- case 27:muni = 7;
- case 28:muni = 100;
- case 29:muni = 30;
- case 30:muni = 30;
- case 31:muni = 50;
- case 32:muni = 100;
- case 37:muni = 100;
- case 38:muni = 500;
- case 41:muni = 200;
- case 42:muni = 100;
- default:muni = 1;
- }
- return muni;
- }
- /* Settings */
- public OnGameModeInit(){
- print(" Serverside Ammo / Reload by ErikSon");
- for(new playerid = 0; playerid < MAX_PLAYERS; playerid++){
- WaffenTD[playerid] = CreatePlayerTextDraw(playerid,503.5 ,20 , "");
- PlayerTextDrawFont(playerid,WaffenTD[playerid] , 1);
- PlayerTextDrawLetterSize(playerid,WaffenTD[playerid] , 0.3, 2.1);
- PlayerTextDrawColor(playerid,WaffenTD[playerid] , 0xE10000FF);
- PlayerTextDrawSetOutline(playerid,WaffenTD[playerid] , false);
- PlayerTextDrawSetProportional(playerid,WaffenTD[playerid] , true);
- PlayerTextDrawSetShadow(playerid,WaffenTD[playerid] , 1);
- PlayerTextDrawShow(playerid,WaffenTD[playerid]);
- }
- return CallLocalFunction("SSAR_OnGameModeInit","");
- }
- public OnPlayerUpdate(playerid){
- if(FireWeapon(GetPlayerWeapon(playerid))){
- new string[16];
- format(string,16,"%i - %i",s_waffe[playerid][GetPlayerWeapon(playerid)][0],s_waffe[playerid][GetPlayerWeapon(playerid)][1]);
- PlayerTextDrawSetString(playerid,WaffenTD[playerid],string);
- }
- else PlayerTextDrawSetString(playerid,WaffenTD[playerid],"");
- return CallLocalFunction("SSAR_OnPlayerUpdate","i",playerid);
- }
- public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ){
- s_waffe[playerid][weaponid][1] --;
- if(s_waffe[playerid][weaponid][0] <= 0 && s_waffe[playerid][weaponid][1] <= 0)RemovePlayerWeapon(playerid,weaponid);
- else if(s_waffe[playerid][weaponid][1] <= 0)Nachladen(playerid,weaponid);
- return CallLocalFunction("SSAR_OnPlayerWeaponShot","iiiifff",playerid,weaponid,hittype,hitid,fX,fY,fZ);
- }
- public _nl(playerid,time,weaponid){
- ClearAnimations(playerid);
- SetPlayerArmedWeapon(playerid,weaponid);
- if(s_waffe[playerid][weaponid][0] - GunAmmo(weaponid) <= 0)return RemovePlayerWeapon(playerid,weaponid);
- s_waffe[playerid][weaponid][1] = GunAmmo(weaponid),
- s_waffe[playerid][weaponid][0] -= GunAmmo(weaponid);
- if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_DUCK)return ApplyAnimation(playerid,"BUDDY","buddy_crouchreload",1.0,0,1,1,0,888*time,1);
- else return ApplyAnimation(playerid,"BUDDY","buddy_reload",1.0,0,1,1,0,888*time,1);
- }
- stock FireWeapon(weaponid){
- switch(weaponid){
- case 16..18:return 1;
- case 22..39:return 1;
- default:return 0;
- }
- return 1;
- }
- stock RemovePlayerWeapon(playerid, weaponid){
- if(!IsPlayerConnected(playerid) || weaponid < 0 || weaponid > 50)return 1;
- s_waffe[playerid][weaponid][0] = 0,s_waffe[playerid][weaponid][1] = 0;
- new saveweapon[13], saveammo[13];
- for(new slot = 0; slot < 13; slot++)
- GetPlayerWeaponData(playerid, slot, saveweapon[slot], saveammo[slot]);
- ResetPlayerWeapons(playerid);
- for(new slot; slot < 13; slot++){
- if(saveweapon[slot] == weaponid || saveammo[slot] == 0)continue;
- GivePlayerWeapon_Ex(playerid, saveweapon[slot], saveammo[slot]);
- }
- return GivePlayerWeapon_Ex(playerid, 0, 1);
- }
- public GivePlayerWeapon_Ex(playerid,Gun,Muni){
- if(Muni - GunAmmo(Gun) <= 0){
- s_waffe[playerid][Gun][1] = Muni;
- }
- else {
- s_waffe[playerid][Gun][0] = Muni - GunAmmo(Gun), s_waffe[playerid][Gun][1] = GunAmmo(Gun);
- }
- return GivePlayerWeapon(playerid,Gun,99999);
- }
- #if defined _ALS_GivePlayerWeapon
- #undef GivePlayerWeapon
- #else
- #define _ALS_GivePlayerWeapon
- #endif
- #define GivePlayerWeapon GivePlayerWeapon_Ex
- #if defined _ALS_OnGameModeInit
- #undef OnGameModeInit
- #else
- #define _ALS_OnGameModeInit
- #endif
- #define OnGameModeInit SSAR_OnGameModeInit
- #if defined _ALS_OnPlayerUpdate
- #undef OnPlayerUpdate
- #else
- #define _ALS_OnPlayerUpdate
- #endif
- #define OnPlayerUpdate SSAR_OnPlayerUpdate
- #if defined _ALS_OnPlayerWeaponShot
- #undef OnPlayerWeaponShot
- #else
- #define _ALS_OnPlayerWeaponShot
- #endif
- #define OnPlayerWeaponShot SSAR_OnPlayerWeaponShot
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement