Skocz do zawartości
Sqower

[Rozwiązane] Dodanie ammo

Rekomendowane odpowiedzi

Witam , mam problem z pluginem po dodaniu tutaj funkcji żeby była inna wartość niż 20 zawsze po przeładowaniu broni wraca do tej samej 

czyli ustawiłem 14 naboi i po przeładowaniu wraca do 20 

 

 

Spoiler

#pragma semicolon 1

 

#include <sourcemod>

#include <cstrike>

#include <sdktools>

#include <sdkhooks>

#include <gum>

#include <smlib>

#include <swarm/utils>

#include <fpvm_interface>

 

 

#define WEAPON_VIEWMODEL "models/weapons/boteq/fiveseven/v_fiveseven.mdl"

#define WEAPON "weapon_fiveseven"

 

#define DamageBoost 2.0

 

#define ITEM_COST 80

 

#define GUN_UNLOCK "fiveseven"

 

bool itemEnabled[MAXPLAYERS + 1];

 

int _viewmodel;

 

public void OnPluginStart()

{

    // We are registering item here with parameters

    // itemRebuy - 0 = Item can be bought one time per connect, 1 = Buy item many times, 2 = Item can be bought one time per round

    // itemRebuyTimes - 0 = Infinite buy, >0 = Item rebuy times

    registerGumItem("[fiveseven] TEST", "\x0ETEST \x01| \x02Damage+\x01 \x10Accuracy+", ITEM_COST, 0, 0);

}

 

public void OnMapStart()

{

    _viewmodel = PrecacheModel(WEAPON_VIEWMODEL);

 

}

 

// Called when item/unlock was selected by menu

public void gumItemSetCallback(int client)

{

    itemEnabled[client] = true;

   

    FPVMI_SetClientModel(client, "weapon_fiveseven", _viewmodel);

    Client_SetWeaponClipAmmo(client, "weapon_fiveseven", 14);

   

}

 

// Called when item/unlock was selected by menu

public void gumItemUnSetCallback(int client)

{

    itemEnabled[client] = false;

    FPVMI_SetClientModel(client, "weapon_fiveseven", -1, -1);

}

 

// Take the item/unlock from the player

public void OnClientDisconnect(int client)

{

    if ( UTIL_IsValidClient(client) )

        itemEnabled[client] = false;

}

 

public void OnClientPutInServer(int client)

{

    if ( UTIL_IsValidClient(client) )

        SDKHook(client, SDKHook_OnTakeDamage, onTakeDamage);

}

 

public Action onTakeDamage(int victim, int &attacker, int &inflictor, float &damage, int &damagetype, int &weapon, float damageForce[3], float damagePosition[3])

{

    if (victim == attacker)

        return Plugin_Continue;

 

    if (!UTIL_IsValidAlive(attacker))

        return Plugin_Continue;

       

    if (!UTIL_IsValidClient(victim))

        return Plugin_Continue;

       

    if (GetClientTeam(victim) == GetClientTeam(attacker))

        return Plugin_Continue;

       

    if (!itemEnabled[attacker])

        return Plugin_Continue;

       

    char weaponName[16];

   

    int iWeapon = GetEntPropEnt(attacker, Prop_Send, "m_hActiveWeapon");

    if(!(iWeapon > 0 && IsValidEdict(iWeapon))) return Plugin_Continue;

    GetEdictClassname(iWeapon, weaponName, sizeof(weaponName));

   

    if (StrContains(weaponName, GUN_UNLOCK) == -1)

        return Plugin_Continue;

   

    damage = damage*DamageBoost;

    return Plugin_Changed;

}

 

Z góry dzięki za pomoc 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Wiadomość wygenerowana automatycznie

 

Problem został rozwiązany

Jeżeli się z tym nie zgadzasz, raportuj ten post

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.

×
×
  • Dodaj nową pozycję...