Daz_ShadowFox

GMod13 Nospread source (C++)

Jun 12th, 2013
3,716
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.97 KB | None | 0 0
  1. int GetWeaponCone(lua_State* L)
  2. {
  3.     if (LUA->IsType(1, Type::USERCMD) && LUA->IsType(2, Type::ANGLE) && LUA->IsType(3, Type::VECTOR))
  4.     {
  5.         CUserCmd* cmd = GET(CUserCmd*, 1);
  6.        
  7.         uint uiSeed = MD5_PseudoRandom(cmd->command_number) & 0x7FFFFFFF;
  8.         RandomSeed(uiSeed & 255);
  9.        
  10.         QAngle qAngs = *GET(QAngle*, 2);
  11.         Vector* vSpread = GET(Vector*, 3);
  12.  
  13.         float x = RandomFloat(-0.5, 0.5) + RandomFloat(-0.5, 0.5);
  14.         float y = RandomFloat(-0.5, 0.5) + RandomFloat(-0.5, 0.5);
  15.  
  16.         QAngle spreadAngles;
  17.         Vector forward, right, up;
  18.  
  19.         AngleVectors(qAngs, &forward, &right, &up);
  20.  
  21.         Vector vecDir = forward + (x * vSpread->x * right) + (y * vSpread->y * up);
  22.         VectorAngles(vecDir, spreadAngles);
  23.  
  24.         spreadAngles -= qAngs;
  25.  
  26.         ILuaInterface* gLua = new ILuaInterface(L);
  27.  
  28.         gLua->GetGlobal("Angle")->Push();
  29.         gLua->Push(spreadAngles.x);
  30.         gLua->Push(spreadAngles.y);
  31.         gLua->Push(spreadAngles.z);
  32.         gLua->Call(3, 1);
  33.         gLua->Push(gLua->GetReturn(1));
  34.     }
  35.  
  36.     return 1;
  37. }
Advertisement
Add Comment
Please, Sign In to add comment