Thread: Gravity Menu
View Single Post
adma
Senior Member
Join Date: Oct 2015
Old 01-22-2019 , 11:23   Re: Gravity Menu
Reply With Quote #3

!gm (!gravity is already a command)
If you've removed it, just edit RegConsoleCmd("sm_gm", sm_gm, "Open gravity menu") -> RegConsoleCmd("sm_gravity", sm_gm, "Open gravity menu");

Five cvars:
gm_verylow
gm_low
gm_normal
gm_high
gm_veryhigh

Values are percentages, e.g. 0.5 makes your gravity half, 2.0 double, etc.

PHP Code:
#include <sourcemod>

ConVar g_veryLowGravity,
g_lowGravity
g_normalGravity
g_highGravity
g_veryHighGravity;

public 
Plugin myinfo = {
  
name "Gravity Menu",
  
author "adma",
  
description "",
  
version "1.0",
  
url ""
};

public 
void OnPluginStart() {
  
RegConsoleCmd("sm_gm"sm_gm"Open gravity menu");
  
g_veryLowGravity CreateConVar("gm_verylow""0.2"""_true0.0);
  
g_lowGravity CreateConVar("gm_low""0.5"""_true0.0);
  
g_normalGravity CreateConVar("gm_normal""1.0"""_true0.0);
  
g_highGravity CreateConVar("gm_high""2.0"""_true0.0);
  
g_veryHighGravity CreateConVar("gm_veryhigh""5.0"""_true0.0);
}

public 
Action sm_gm(int clientint args) {
  if (
client <= || !IsClientInGame(client)) return Plugin_Handled;
  
Menu menu = new Menu(GMHandlerMENU_ACTIONS_ALL);
  
menu.SetTitle("Gravity Menu");
  
menu.AddItem("1""Very Low");
  
menu.AddItem("2""Low");
  
menu.AddItem("3""Normal");
  
menu.AddItem("4""High");
  
menu.AddItem("5""Very High");
  
menu.Display(clientMENU_TIME_FOREVER);
  return 
Plugin_Handled;
}

public 
int GMHandler(Menu menuMenuAction actionint param1int param2) {
  switch (
action) {
    case 
MenuAction_Enddelete menu;
    case 
MenuAction_Select: {
      
char info[2]; menu.GetItem(param2infosizeof(info));
      
int selection StringToInt(info);
      switch (
selection) {
        case 
1SetEntityGravity(param1g_veryLowGravity.FloatValue);
        case 
2SetEntityGravity(param1g_lowGravity.FloatValue);
        case 
3SetEntityGravity(param1g_normalGravity.FloatValue);
        case 
4SetEntityGravity(param1g_highGravity.FloatValue);
        case 
5SetEntityGravity(param1g_veryHighGravity.FloatValue);
      }
    }
  }

  return 
0;

Note: gravity is not saved, so it is not reapplied if the player disconnects then reconnects
Attached Files
File Type: sp Get Plugin or Get Source (gravitymenu.sp - 104 views - 1.8 KB)

Last edited by adma; 01-22-2019 at 11:31.
adma is offline