Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

[Release] Auto Drug Pump System

Banned
Banned
Joined
Apr 16, 2018
Messages
466
Reaction score
252
Have Fun!:dancemental::amongmental::dancingpepe::pumpkinman:

credit by me...:linux:

Now go to WarZ_Server.sln

search:


C++:
PKT_C2C_ChatMessage,            // client sends to server chat message, server will relay it to everyone except for sender

add below:

C++:
PKT_C2C_Mercybandages,

search:

C++:
struct PKT_C2C_ChatMessage_s : public DefaultPacketMixin<PKT_C2C_ChatMessage>

add below:

C++:
struct PKT_C2C_Mercybandages_s : public DefaultPacketMixin<PKT_C2C_Mercybandages>
{
    gp2pnetid_t    PlayerID;
    float Cooldown;
};

search:

C++:
m_lastTimeUsedConsumable = -99999.0f;

add below:

C++:
// There will be 2 of them when searching for both of them as well.

C++:
m_lastTimeUsedMercybandages = -99999.0f;
m_currentMercybandagesCooldownTime = 0;

search:

C++:
loadout_->Health -= d;

add below:

C++:
const HeroConfig* mercylol = g_pWeaponArmory->getHeroConfig(loadout_->HeroItemID);
        if (mercylol && mercylol->m_ABMercy == 1)
        {
            if(loadout_->Health >= 0)
            {
                if(loadout_->Health < mercylol->m_ABHealth)
                {
                    if((r3dGetTime() - m_lastTimeUsedMercybandages) > m_currentMercybandagesCooldownTime) //NoCooldown //Mercybandages
                    {
                        if((r3dGetTime() - m_lastTimeUsedConsumable) < m_currentConsumableCooldownTime)
                        {
                        }
                        else
                        {
                            m_lastTimeUsedMercybandages = r3dGetTime();
                            m_currentMercybandagesCooldownTime = mercylol->m_ABCooldown;

                            gServerLogic.MercybandagesSend(this,mercylol->m_ABCooldown);

                            loadout_->Health = 100.0f;
                            m_lastTimeUsedConsumable = r3dGetTime();
                            m_currentConsumableCooldownTime = 5;
                        }
                    }
                }
            }
        }

search:

C++:
if((r3dGetTime()-m_lastTimeUsedConsumable)<(m_currentConsumableCooldownTime*0.95f))

add below in the function Notice it and put it on top:

C++:
m_lastTimeUsedConsumable = GPP_Data.c_fConsumableCooldownTimeTier[itmC->m_LevelRequired];

C++:
m_lastTimeUsedConsumable = GPP_Data.c_fConsumableCooldownTimeTier[itmC->m_LevelRequired];
            const HeroConfig* mercylol = g_pWeaponArmory->getHeroConfig(loadout_->HeroItemID);
            if (mercylol && mercylol->m_ABMercy == 1)
            {
                m_lastTimeUsedMercybandages = r3dGetTime();
                m_currentMercybandagesCooldownTime = 5;
            }
        }
    }

search:

C++:
float        m_currentConsumableCooldownTime;

add below:

C++:
float        m_lastTimeUsedMercybandages;
float        m_currentMercybandagesCooldownTime;

search:

C++:
void ServerGameLogic::GiveDevEventLoadout(DWORD peerId)

add below:

C++:
void ServerGameLogic::MercybandagesSend(obj_ServerPlayer* plr, float m_ABCooldown)
{   
    PKT_C2C_Mercybandages_s n;   
    n.Cooldown = m_ABCooldown;
    p2pSendToPeer(plr->peerId_, plr, &n, sizeof(n));
}

search:

C++:
void          GetSpawnPositionAfterDeath2(const r3dPoint3D& GamePos, r3dPoint3D* pos, float* dir);

add below:

C++:
void        MercybandagesSend(obj_ServerPlayer* plr, float m_ABCooldown);

search:

C++:
r3d_assert(m_HeadMeshes.size() == 0);

put on top:

C++:
m_ABMercy = xmlHero.child("BandagesAuto").attribute("OnOff").as_int();
m_ABHealth = xmlHero.child("BandagesAuto").attribute("Health").as_int();
m_ABCooldown = xmlHero.child("BandagesAuto").attribute("Cooldown").as_float();

search:

C++:
int   m_ProtectionLevel;

put on top:

C++:
int m_ABMercy;
int m_ABHealth;
float m_ABCooldown;

Now go to WarZ.sln

search:


C++:
R3DPROFILE_FUNCTION("obj_Player::OnCreate");

add below to observe:

C++:
lastTimeAirHornUse = 0.0f;

C++:
lastTimeUsedMercybandages = -99999.0f;

search:

C++:
// show FPS and PING

put on top:

C++:
const HeroConfig* mercylol = g_pWeaponArmory->getHeroConfig(CurLoadout.HeroItemID);
        if (NetworkLocal && mercylol && mercylol->m_ABMercy == 1 && !d_video_spectator_mode->GetBool() && gClientLogic().localPlayer_)
        {
            if((r3dGetTime() - lastTimeUsedMercybandages) < currentMercybandagesCooldownTime) //HaveCooldown
            {
                float time = mercylol->m_ABCooldown - (r3dGetTime() - lastTimeUsedMercybandages);
                if (time>0)
                {
                    Font_Editor->PrintF(10, 85,    r3dColor(255,0,255), "Skill Delay : %.1f", time); //Mercybandages
                }
            }
        }

search:

C++:
float        m_SpawnProtectedUntil;

add below:

C++:
float    lastTimeUsedMercybandages;
float    currentMercybandagesCooldownTime;

search:

C++:
IMPL_PACKET_FUNC(ClientGameLogic, PKT_C2C_ChatMessage)

add below:

C++:
IMPL_PACKET_FUNC(ClientGameLogic, PKT_C2C_Mercybandages)
{
    obj_Player* plr = gClientLogic().localPlayer_;
    plr->lastTimeUsedMercybandages = r3dGetTime();
    plr->currentMercybandagesCooldownTime = n.Cooldown;

    SoundSys.PlayAndForget(SoundSys.GetEventIDByPath("Sounds/UI Events/User_Action/User_Action_Use_Bandage"), plr->GetPosition());
    plr->CurLoadout.Health = 100;
    plr->m_BandagesEffectTime = r3dGetTime() + 0.5f;
    plr->lastTimeUsedConsumable = r3dGetTime();
    plr->currentConsumableCooldownTime = 5;
}

search:

C++:
DEFINE_PACKET_HANDLER(PKT_C2C_ChatMessage);

add below:

C++:
DEFINE_PACKET_HANDLER(PKT_C2C_Mercybandages);

search:

C++:
DEFINE_PACKET_FUNC(PKT_C2C_ChatMessage);

add below:

C++:
DEFINE_PACKET_FUNC(PKT_C2C_Mercybandages);

Now go to ItemsDB.xml:

Rich (BB code):
<BandagesAuto OnOff="1" Health="19" Cooldown="30"/>
 
Back
Top