Page 2 of 2 FirstFirst 12
Results 11 to 12 of 12

Thread: Player movement & grenades.

  1. #11
    Corporal voron00's Avatar
    Join Date
    Nov 2014
    Posts
    248
    Thanks
    64
    Thanked 216 Times in 116 Posts
    Quote Originally Posted by filthy_freak_ View Post
    Sorry for the late reply, but I just remembered that this was for fixing bots that are shooting with snipers/semi rifles. Without the fix the gun will 'jam' due to not releasing the shoot button. A proper fix would be to find the 'semiAuto' & 'boltAction' addresses from the weaponfile and use it like this;

    From

    Code:
                    if(!bot_wepType[clientnum])
                    {
                        if(bot_shoot[clientnum] == 4097)
                            bot_shoot[clientnum] = 0;
                        else
                            bot_shoot[clientnum] = 4097;
                    } else
                        bot_shoot[clientnum] = 4097;
    To something like

    Code:
                    if(iswepbolt[clientnum] || isweprifle[clientnum])
                    {
                        if(bot_shoot[clientnum] == 4097)
                            bot_shoot[clientnum] = 0;
                        else
                            bot_shoot[clientnum] = 4097;
                    } else
                        bot_shoot[clientnum] = 4097;
    There are no issues with that in the current setup, just fireWeapon(false) on endframe always means the button is released.

    Quote Originally Posted by croni1012 View Post
    I was tried to achieve with libcod to make a weapon with script (set sounds and everything else) so I get almost every offsets for the weapons. If you need I can send it. It contains the boltaction and semiauto option too.
    I already got most of the weapon offsets mounts ago: https://github.com/voron00/libcod/bl...ions.hpp#L1652, only some really redundant/unknown stuff are missing.
    sudo apt-get rekt

  2. The Following User Says Thank You to voron00 For This Useful Post:

    kung foo man (15th March 2018)

  3. #12
    Private
    Join Date
    Sep 2015
    Posts
    33
    Thanks
    0
    Thanked 21 Times in 13 Posts
    set this function to libcod:

    PHP Code:
    void gsc_utils_getweaponidbyname() {

        
    charweapon;
        if(!
    stackGetParams("s", &weapon)) {
            
    printf("scriptengine> wrongs args for: gsc_utils_getweaponkeydatabyidandoffset(weapon)\n");
            
    stackPushUndefined();
            return;
        }
        
    stackPushInt(getWeapon(hook_findWeaponIndex(weapon)));    
    }

    void gsc_utils_getweaponkeydatabyidandoffset() {

        
    int id;
        
    int offset;
        
    int type;
        if(!
    stackGetParams("iii", &id, &offset, &type)) {
            
    printf("scriptengine> wrongs args for: gsc_utils_getweaponkeydatabyidandoffset(id,offset,type)\n");
            
    stackPushUndefined();
            return;
        }
        if(
    type == 0
            
    stackPushString(*(char**)(id offset));        
        else if(
    type == 1)
            
    stackPushInt(*(int*)(id offset));    
        else
            
    stackPushFloat(*(float*)(id offset));    
    }

    void gsc_utils_setweaponkeydatabyidandoffset_int() {

        
    int id;
        
    int offset;
        
    int value;
        if(!
    stackGetParams("iii", &id, &offset, &value)) {
            
    printf("scriptengine> wrongs args for: gsc_utils_setweaponkeydatabyidandoffset(id,offset,value)\n");
            
    stackPushUndefined();
            return;
        } 
        *(
    int*)(id offset) = value;
    }

    void gsc_utils_setweaponkeydatabyidandoffset_string() {

        
    int id;
        
    int offset;
        
    charvalue;
        if(!
    stackGetParams("iis", &id, &offset, &value)) {
            
    printf("scriptengine> wrongs args for: gsc_utils_setweaponkeydatabyidandoffset(id,offset,value)\n");
            
    stackPushUndefined();
            return;
        } 
        *(
    char**)(id offset) = value;
    }

    void gsc_utils_setweaponkeydatabyidandoffset_float() {

        
    int id;
        
    int offset;
        
    float value;
        if(!
    stackGetParams("iif", &id, &offset, &value)) {
            
    printf("scriptengine> wrongs args for: gsc_utils_setweaponkeydatabyidandoffset(id,offset,value)\n");
            
    stackPushUndefined();
            return;
        } 
        *(
    float*)(id offset) = value;

    and in gsc:
    PHP Code:
    getOffset(key)
    {
        switch(
    key)
        {
            case 
    "displayName": return 4;
            case 
    "modeName": return 112;
            case 
    "playerAnimType ": return 116;
            case 
    "AIOverlayDescription": return 8;
            case 
    "gunModel": return 12;
            case 
    "handModel": return 16;
            case 
    "worldModel": return 436;
            case 
    "idleAnim": return 24;
            case 
    "emptyIdleAnim": return 28;
            case 
    "fireAnim": return 32;
            case 
    "lastShotAnim": return 40;
            case 
    "rechamberAnim": return 44;
            case 
    "meleeAnim": return 48;
            case 
    "reloadAnim": return 52;
            case 
    "reloadEmptyAnim": return 56;
            case 
    "reloadStartAnim": return 60;
            case 
    "reloadEndAnim": return 64;
            case 
    "raiseAnim": return 68;
            case 
    "dropAnim": return 72;
            case 
    "altRaiseAnim": return 76;
            case 
    "altDropAnim": return 80;
            case 
    "quickRaiseAnim": return 84;
            case 
    "quickDropAnim": return 88;
            case 
    "adsFireAnim": return 92;
            case 
    "adsLastShotAnim": return 96;
            case 
    "adsRechamberAnim": return 100;
            case 
    "adsUpAnim": return 104;
            case 
    "adsDownAnim": return 108;
            case 
    "viewFlashEffect": return 144;
            case 
    "worldFlashEffect": return 148;
            case 
    "pickupSound": return 152;
            case 
    "ammoPickupSound": return 156;
            case 
    "fireSound": return 168;
            case 
    "fireSoundPlayer": return 172;
            case 
    "lastShotSound": return 192;
            case 
    "lastShotSoundPlayer": return 196;
            case 
    "meleeSwipeSound": return 200;
            case 
    "rechamberSound": return 204;
            case 
    "rechamberSoundPlayer": return 208;
            case 
    "reloadSound": return 212;
            case 
    "reloadSoundPlayer": return 216;
            case 
    "reloadEmptySound": return 220;
            case 
    "reloadEmptySoundPlayer": return 224;
            case 
    "reloadStartSound": return 228;
            case 
    "reloadStartSoundPlayer": return 232;
            case 
    "reloadEndSound": return 236;
            case 
    "reloadEndSoundPlayer": return 240;
            case 
    "raiseSound": return 244;
            case 
    "altSwitchSound": return 248;
            case 
    "putawaySound": return 252;
            case 
    "noteTrackSoundA": return 256;
            case 
    "noteTrackSoundB": return 260;
            case 
    "noteTrackSoundC": return 264;
            case 
    "noteTrackSoundD": return 268;
            case 
    "shellEjectEffect": return 272;
            case 
    "lastShotEjectEffect": return 276;
            case 
    "reticleCenter": return 280;
            case 
    "reticleSide": return 284;
            case 
    "reticleCenterSize": return 288;
            case 
    "reticleSideSize": return 292;
            case 
    "reticleMinOfs": return 296;
            case 
    "hudIcon": return 440;
            case 
    "modeIcon": return 444;
            case 
    "killIcon": return 844;
            case 
    "ammoName": return 452;
            case 
    "startAmmo": return 448;
            case 
    "clipName": return 460;
            case 
    "maxAmmo": return 468;
            case 
    "clipSize": return 472;
            case 
    "shotCount": return 476;
            case 
    "damage": return 492;
            case 
    "minDamage": return 1424;
            case 
    "meleeDamage": return 500;
            case 
    "minDamageRange": return 1432;
            case 
    "maxDamageRange": return 1436;
            case 
    "fireDelay": return 508;
            case 
    "meleeDelay": return 512;
            case 
    "fireTime": return 516;
            case 
    "rechamberTime": return 520;
            case 
    "rechamberBoltTime": return 524;
            case 
    "meleeTime": return 532;
            case 
    "reloadTime": return 536;
            case 
    "reloadEmptyTime": return 540;
            case 
    "reloadAddTime": return 544;
            case 
    "reloadStartTime": return 548;
            case 
    "reloadStartAddTime": return 552;
            case 
    "reloadEndTime": return 556;
            case 
    "dropTime": return 560;
            case 
    "raiseTime": return 564;
            case 
    "altDropTime": return 568;
            case 
    "altRaiseTime": return 572;
            case 
    "quickDropTime": return 576;
            case 
    "quickRaiseTime": return 580;
            case 
    "adsTransInTime": return 704;
            case 
    "adsTransOutTime": return 708;
            case 
    "aiVsAiAccuracyGraph": return 1292;
            case 
    "aiVsPlayerAccuracyGraph": return 1296;
            case 
    "fireRumble": return 1532;
            case 
    "meleeImpactRumble": return 1536;
            case 
    "adsOverlayShader": return 628;
            case 
    "adsOverlayWidth": return 636;
            case 
    "adsOverlayHeight": return 640;
            case 
    "altWeapon": return 872;
            case 
    "moveSpeedScale": return 612;
            case 
    "weaponType": return 120;
            case 
    "weaponClass": return 124;
            case 
    "weaponSlot": return 128;
            case 
    "rifleBullet": return 796;
            case 
    "armorPiercing": return 800;
            case 
    "semiAuto": return 804;
            case 
    "boltAction": return 808;
            case 
    "aimDownSight": return 812;
            case 
    "rechamberWhileAds": return 816;
            case 
    "noPartialReload": return 856;
            case 
    "segmentedReload": return 860;
            case 
    "wideListIcon": return 836;
            case 
    "wideKillIcon": return 848;
            case 
    "flipKillIcon": return 848;
            case 
    "dropAmmoMin": return 880;
            case 
    "dropAmmoMax": return 884;
            case 
    "reloadAmmoAdd": return 864;
            case 
    "reloadStartAdd": return 868;
            case 
    "locNone": return 1456;
            case 
    "locHelmet": return 1460;
            case 
    "locHead": return 1464;
            case 
    "locNeck": return 1468;
            case 
    "locTorsoUpper": return 1472;
            case 
    "locTorsoLower": return 1476;
            case 
    "locRightArmUpper": return 1480;
            case 
    "locRightArmLower": return 1484;
            case 
    "locRightHand": return 1488;
            case 
    "locLeftArmUpper": return 1492;
            case 
    "locLeftArmLower": return 1496;
            case 
    "locLeftHand": return 1500;
            case 
    "locRightLegUpper": return 1504;
            case 
    "locRightLegLower": return 1508;
            case 
    "locRightFoot": return 1512;
            case 
    "locLeftLegUpper": return 1516;
            case 
    "locLeftLegLower": return 1520;
            case 
    "locLeftFoot": return 1524;
            case 
    "locGun": return 1528;
            default: return 
    0;
        }
    }

    getType(key)
    {
        switch(
    key)
        {
            case 
    "displayName":
            case 
    "modeName":
            case 
    "AIOverlayDescription":
            case 
    "gunModel":
            case 
    "handModel":
            case 
    "worldModel":
            case 
    "idleAnim":
            case 
    "emptyIdleAnim":
            case 
    "fireAnim":
            case 
    "lastShotAnim":
            case 
    "rechamberAnim":
            case 
    "meleeAnim":
            case 
    "reloadAnim":
            case 
    "reloadEmptyAnim":
            case 
    "reloadStartAnim":
            case 
    "reloadEndAnim":
            case 
    "raiseAnim":
            case 
    "dropAnim":
            case 
    "altRaiseAnim":
            case 
    "altDropAnim":
            case 
    "quickRaiseAnim":
            case 
    "quickDropAnim":
            case 
    "adsFireAnim":
            case 
    "adsLastShotAnim":
            case 
    "adsRechamberAnim":
            case 
    "adsUpAnim":
            case 
    "adsDownAnim":
            case 
    "viewFlashEffect":
            case 
    "worldFlashEffect":
            case 
    "pickupSound":
            case 
    "ammoPickupSound":
            case 
    "fireSound":
            case 
    "fireSoundPlayer":
            case 
    "lastShotSound":
            case 
    "lastShotSoundPlayer":
            case 
    "meleeSwipeSound":
            case 
    "rechamberSound":
            case 
    "rechamberSoundPlayer":
            case 
    "reloadSound":
            case 
    "reloadSoundPlayer":
            case 
    "reloadEmptySound":
            case 
    "reloadEmptySoundPlayer":
            case 
    "reloadStartSound":
            case 
    "reloadStartSoundPlayer":
            case 
    "reloadEndSound":
            case 
    "reloadEndSoundPlayer":
            case 
    "raiseSound":
            case 
    "altSwitchSound":
            case 
    "putawaySound":
            case 
    "noteTrackSoundA":
            case 
    "noteTrackSoundB":
            case 
    "noteTrackSoundC":
            case 
    "noteTrackSoundD":
            case 
    "shellEjectEffect":
            case 
    "lastShotEjectEffect":
            case 
    "reticleCenter":
            case 
    "reticleSide":
            case 
    "hudIcon":
            case 
    "modeIcon":
            case 
    "killIcon":
            case 
    "ammoName":
            case 
    "clipName":
            case 
    "aiVsAiAccuracyGraph":
            case 
    "aiVsPlayerAccuracyGraph":
            case 
    "fireRumble":
            case 
    "meleeImpactRumble":
            case 
    "adsOverlayShader":
            case 
    "altWeapon":        
                return 
    "string"
                
            case 
    "playerAnimType":
            case 
    "startAmmo":
            case 
    "maxAmmo":
            case 
    "reticleCenterSize":
            case 
    "reticleSideSize":
            case 
    "reticleMinOfs":
            case 
    "clipSize":
            case 
    "shotCount":
            case 
    "damage":
            case 
    "minDamage":
            case 
    "meleeDamage":
            case 
    "weaponType":
            case 
    "weaponClass":
            case 
    "weaponSlot":
            case 
    "rifleBullet":
            case 
    "armorPiercing":
            case 
    "semiAuto":
            case 
    "boltAction":
            case 
    "aimDownSight":
            case 
    "rechamberWhileAds":
            case 
    "noPartialReload":
            case 
    "segmentedReload":
            case 
    "wideListIcon":
            case 
    "wideKillIcon":
            case 
    "flipKillIcon":
            case 
    "dropAmmoMin":
            case 
    "dropAmmoMax":
            case 
    "reloadAmmoAdd":
            case 
    "reloadStartAdd":
                return 
    "int";
                
            case 
    "fireDelay":
            case 
    "meleeDelay":
            case 
    "fireTime":
            case 
    "rechamberTime":
            case 
    "rechamberBoltTime":
            case 
    "meleeTime":
            case 
    "reloadTime":
            case 
    "reloadEmptyTime":
            case 
    "reloadAddTime":
            case 
    "reloadStartTime":
            case 
    "reloadStartAddTime":
            case 
    "reloadEndTime":
            case 
    "dropTime":
            case 
    "raiseTime":
            case 
    "altDropTime":
            case 
    "altRaiseTime":
            case 
    "quickDropTime":
            case 
    "quickRaiseTime":
            case 
    "adsTransInTime":
            case 
    "adsTransOutTime":
                return 
    "int_multiplied";
                
            case 
    "moveSpeedScale":
            case 
    "minDamageRange":
            case 
    "maxDamageRange":
            case 
    "adsOverlayWidth":
            case 
    "adsOverlayHeight":
            case 
    "locNone":
            case 
    "locHelmet":
            case 
    "locHead":
            case 
    "locNeck":
            case 
    "locTorsoUpper":
            case 
    "locTorsoLower":
            case 
    "locRightArmUpper":
            case 
    "locRightArmLower":
            case 
    "locRightHand":
            case 
    "locLeftArmUpper":
            case 
    "locLeftArmLower":
            case 
    "locLeftHand":
            case 
    "locRightLegUpper":
            case 
    "locRightLegLower":
            case 
    "locRightFoot":
            case 
    "locLeftLegUpper":
            case 
    "locLeftLegLower":
            case 
    "locLeftFoot":
            case 
    "locGun":
                return 
    "float";
        }
    }

    readWeaponKeyData(namekey)
    {
        
    id getweaponidbyname(name);
        
    offset getOffset(key);
        
        if(
    offset == 0)
            return 
    "unknown key or offset (" key ")";
            
        
    type getType(key); 
        
    data "";
        switch(
    type)
        {
            case 
    "string":
                
    data getweaponkeydatabyidandoffset(idoffset0);
                break;
            case 
    "int":
                
    data getweaponkeydatabyidandoffset(idoffset1);
                break;
            case 
    "int_multiplied":
                
    data getweaponkeydatabyidandoffset(idoffset1) / 1000;
                break;
            case 
    "float":
                
    data getweaponkeydatabyidandoffset(idoffset2);
                break;
        }    
        
        switch(
    key)
        {
            case 
    "playerAnimType":
                switch(
    data)
                {
                    case 
    0data "none"; break;
                    case 
    1data "other"; break;
                    case 
    2data "panzerfaust"; break;
                    case 
    3data "stickgrenade"; break;
                    case 
    4data "springfield"; break;
                    case 
    5data "bar"; break;
                    case 
    6data "mp40"; break;
                    case 
    7data "thompson"; break;
                    case 
    8data "sten"; break;
                    case 
    9data "bren"; break;
                    case 
    10data "kar98k"; break;
                    case 
    11data "m1carbine"; break;
                    case 
    12data "enfield"; break;
                }
                break;
            case 
    "weaponType":
                switch(
    data)
                {
                    case 
    0data "bullet"; break;
                    case 
    1data "grenade"; break;
                    case 
    2data "projectile"; break;
                    case 
    3data "binoculars"; break;
                }
                break;
            case 
    "weaponClass":
                switch(
    data)
                {
                    case 
    0data "rifle"; break;
                    case 
    1data "mg"; break;
                    case 
    2data "smg"; break;
                    case 
    3data "spread"; break;
                    case 
    4data "pistol"; break;
                    case 
    5data "grenade"; break;
                    case 
    6data "rocketlauncher"; break;
                    case 
    7data "turret"; break;
                    case 
    8data "non-player"; break;
                    case 
    9data "item"; break;
                }
                break;
            case 
    "weaponSlot":
                switch(
    data)
                {
                    case 
    0data "none"; break;
                    case 
    1data "primary"; break;
                }
                break;        
        }
        
        return 
    data;
    }

    setWeaponKeyData(namekeyvalue)
    {
        
    id getweaponidbyname(name);
        
    offset getOffset(key);
        
        if(
    offset == 0)
            return 
    false;
            
        
    type getType(key);
        switch(
    key)
        {
            case 
    "playerAnimType":
                switch(
    value)
                {
                    case 
    "none"value 0; break;
                    case 
    "other"value 1; break;
                    case 
    "panzerfaust"value 2; break;
                    case 
    "stickgrenade"value 3; break;
                    case 
    "springfield"value 4; break;
                    case 
    "bar"value 5; break;
                    case 
    "mp40"value 6; break;
                    case 
    "thompson"value 7; break;
                    case 
    "sten"value 8; break;
                    case 
    "bren"value 9; break;
                    case 
    "kar98k"value 10; break;
                    case 
    "m1carbine"value 11; break;
                    case 
    "enfield"value 12; break;
                    default: 
    value 0; break;
                }
                break;
            case 
    "weaponType":
                switch(
    value)
                {
                    case 
    "bullet"value 0; break;
                    case 
    "grenade"value 1; break;
                    case 
    "projectile"value 2; break;
                    case 
    "binoculars"value 3; break;
                    default: 
    value 0; break;
                }
                break;
            case 
    "weaponClass":
                switch(
    value)
                {
                    case 
    "rifle"value 0; break;
                    case 
    "mg"value 1; break;
                    case 
    "smg"value 2; break;
                    case 
    "spread"value 3; break;
                    case 
    "pistol"value 4; break;
                    case 
    "grenade"value 5; break;
                    case 
    "rocketlauncher"value 6; break;
                    case 
    "turret"value 7; break;
                    case 
    "non-player"value 8; break;
                    case 
    "item"value 9; break;
                    default: 
    value 0; break;
                }
                break;
            case 
    "weaponSlot":
                switch(
    value)
                {
                    case 
    "none"value 0; break;
                    case 
    "primary"value 1; break;
                    default: 
    value 1; break;
                }
                break;        
        }

        switch(
    type)
        {
            case 
    "string":
                
    setweaponkeydatabyidandoffset_string(idoffsetvalue);
                break;
            case 
    "int":
                
    setweaponkeydatabyidandoffset_int(idoffsetvalue);
                break;
            case 
    "int_multiplied":
                
    setweaponkeydatabyidandoffset_int(idoffsetint(value 1000));
                break;
            case 
    "float":
                
    setweaponkeydatabyidandoffset_float(idoffsetvalue);
                break;
        }
        
        return 
    true;

    use it like:

    PHP Code:
    //get weapon information (the small and capital letters are important. see getOffset or getType function how to write it)
    name readWeaponKeyData("thompson_mp""displayName");
    iprintln(name);

    setWeaponKeyData("thompson_mp""displayName""some variable");
    setWeaponKeyData("thompson_mp""fireTime"0.05);
    setWeaponKeyData("thompson_mp""maxAmmo"400); 
    Every weapon's variable is tested and working.
    However, if you change something it will not affect client side. (E.g models or sounds)

  4. The Following 3 Users Say Thank You to croni1012 For This Useful Post:

    filthy_freak_ (16th March 2018),kung foo man (16th March 2018),maxdamage99 (9th January 2019)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •