View Single Post
shanapu
Veteran Member
Join Date: Apr 2015
Location: .de
Old 08-18-2018 , 10:47   Re: new zombie class idea
#2

Zombie:Reloaded?

I made this years ago, it's not exactly what you linked, test it.

PHP Code:
#include <sourcemod> 
#include <classzr>

// Compiler Options
#pragma semicolon 1
#pragma newdecls required

int g_iFroggyJumped[MAXPLAYERS 1];

// Info
public Plugin myinfo = {
    
name "Froggy Jump for Hunter",
    
author "shanapu",
    
description "Add Froggy Jump for Hunter class in Zombie:Reloaded",
    
version "1.0",
    
url "https://github.com/shanapu/"
};

public 
Action OnPlayerRunCmd(int clientint &buttonsint &impulsefloat vel[3], float angles[3], int &weapon)
{
    
int classIndex ZR_GetClassByName("Hunter");
    
int clientClass ZR_GetActiveClass(client); 
    
    
int water GetEntProp(clientProp_Data"m_nWaterLevel");
    
    
// Last button
    
static bool bPressed[MAXPLAYERS+1] = false;
    
    if (
IsPlayerAlive(client) && clientClass == classIndex)
    {
        
// Reset when on Ground
        
if (GetEntityFlags(client) & FL_ONGROUND)
        {
            
g_iFroggyJumped[client] = 0;
            
bPressed[client] = false;
        }
        else
        {
            
// Player pressed jump button?
            
if (buttons IN_JUMP)
            {
                if (
water <= 1)
                {
                    if (!(
GetEntityMoveType(client) & MOVETYPE_LADDER))
                    {
                        
SetEntPropFloat(clientProp_Send"m_flStamina"0.0);
                        if (!(
GetEntityFlags(client) & FL_ONGROUND)) buttons &= ~IN_JUMP;
                    }
                }
                                
                
// For second time?
                
if (!bPressed[client] && g_iFroggyJumped[client]++ == 1)
                {
                    
float velocity[3];
                    
float velocity0;
                    
float velocity1;
                    
float velocity2;
                    
float velocity2_new;
                    
                    
// Get player velocity
                    
velocity0 GetEntPropFloat(clientProp_Send"m_vecVelocity[0]");
                    
velocity1 GetEntPropFloat(clientProp_Send"m_vecVelocity[1]");
                    
velocity2 GetEntPropFloat(clientProp_Send"m_vecVelocity[2]");
                    
                    
velocity2_new 200.0;
                    
                    
// calculate new velocity^^
                    
if (velocity2 150.0velocity2_new velocity2_new 20.0;
                    
                    if (
velocity2 100.0velocity2_new velocity2_new 30.0;
                    
                    if (
velocity2 50.0velocity2_new velocity2_new 40.0;
                    
                    if (
velocity2 0.0velocity2_new velocity2_new 50.0;
                    
                    if (
velocity2 < -50.0velocity2_new velocity2_new 60.0;
                    
                    if (
velocity2 < -100.0velocity2_new velocity2_new 70.0;
                    
                    if (
velocity2 < -150.0velocity2_new velocity2_new 80.0;
                    
                    if (
velocity2 < -200.0velocity2_new velocity2_new 90.0;
                    
                    
// Set new velocity
                    
velocity[0] = velocity0 0.1;
                    
velocity[1] = velocity1 0.1;
                    
velocity[2] = velocity2_new;
                    
                    
// Double Jump
                    
SetEntPropVector(clientProp_Send"m_vecBaseVelocity"velocity);
                }
                
                
bPressed[client] = true;
            }
            else 
bPressed[client] = false;
        }
    }
    return 
Plugin_Continue;

Attached Files
File Type: smx hunterjump.smx (5.1 KB, 91 views)
File Type: sp Get Plugin or Get Source (hunterjump.sp - 94 views - 3.7 KB)
__________________
coding & free software

Last edited by shanapu; 08-18-2018 at 10:49.
shanapu is offline