Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Help SOG-Knive in my gungame mod.
#1
Hi guys,
I'm a new modder and wantet to make my first own mod.
I read the .gsc modding tut and the tut to import SP weapons.
Then i started working on a modified gungame. I got now 80 weapons in the gungame list and this worked perfect... since i wantet to start my gungame with the SOG knife. I modified it in Asset Manager so that it kills with one hit and added it to the first position on my gun-list.

When I start gungame with my mod, I get really get the SOG Knife, but i cant kill someone by hitting the left mousebutton (set to "fire"). I just can use it as a knife (with key "V"), that would't be a problem for me, but if I kill someone that way, I dont get promoted to next level. Instead my enemie gets humilated =(

Is there a way, to modify it that way, that the SOG Knife don't humiliate and i get promoted to the next weapon?

Thank you very much
iMaster

Here is the code of my ".../maps/mp/gametype/gun.gsc":
Code:
#include maps\mp\_utility;
#include maps\mp\gametypes\_hud_util;

    
main()
{

    maps\mp\gametypes\_globallogic::init();
    maps\mp\gametypes\_callbacksetup::SetupCallbacks();
    maps\mp\gametypes\_globallogic::SetupCallbacks();
    level.onStartGameType = ::onStartGameType;
    level.onSpawnPlayer = ::onSpawnPlayer;
    level.onSpawnPlayerUnified = ::onSpawnPlayerUnified;
    level.onPlayerKilled = ::onPlayerKilled;
    level.onWagerAwards = ::onWagerAwards;
    game["dialog"]["gametype"] = "gg_start_00";
    
    
    game["dialog"]["wm_promoted"] = "gg_promote";
    game["dialog"]["wm_humiliation"] = "boost_gen_08";
    game["dialog"]["wm_humiliated"] = "boost_gen_09";
    
    level.giveCustomLoadout = ::giveCustomLoadout;
    
    
    if( !isPregameEnabled() )
    {
        PrecacheItem( "m202_flash_wager_mp" );
    }
    
    PrecacheString( &"MPUI_PLAYER_KILLED" );
    PrecacheString( &"MP_GUN_NEXT_LEVEL" );
    PrecacheString( &"MP_GUN_PREV_LEVEL" );
    PrecacheString( &"MP_GUN_PREV_LEVEL_OTHER" );
    PrecacheString( &"MP_HUMILIATION" );
    PrecacheString( &"MP_HUMILIATED" );
    precacheItem("mosin_scope_sp");
    precacheItem("mosin_sp");
    precacheItem("tokarevtt30_sp");
    precacheItem("sten_sp");
    precacheItem("stg44_sp");
    precacheItem("vorkuta_motorcycle_shotgun_sp");
    precacheItem("mp40_mp");
    precacheItem("m2_flamethrower_mp");
    precacheItem("crossbow_sp");
    precacheItem("crossbow_vzoom_sp");
    precacheItem("ks23_sp");
    precacheItem("molotov_sp");
    precacheItem("panzerschreck_sp");
    precacheItem("ppsh_sp");
    precacheItem("spas_db_sp");
    PrecacheItem( "m202_flash_wager_mp" );
    PrecacheItem( "m220_tow_wager_mp" );
    PrecacheItem( "minigun_wager_mp" );
    PrecacheItem( "ray_gun_zm" );
    PrecacheItem( "tesla_gun_zm" );
    PrecacheItem( "thundergun_zm" );
    PrecacheItem( "creek_knife_sp" );
    PrecacheItem( "shovel_sp" );
    PrecacheItem( "vorkuta_knife_sp" );
    PrecacheItem( "waltherp38_sp" );
    PrecacheItem( "m16_upgraded_zm" );
    
    
    addGunToProgression( "creek_knife_sp" );
    addGunToProgression( "shovel_sp" );
    addGunToProgression( "vorkuta_knife_sp" );
    addGunToProgression( "waltherp38_sp" );
    addGunToProgression( "m16_upgraded_zm" );

    
    
    addGunToProgression( "m1911_upgradesight_extclip_silencer_mp" );
    addGunToProgression( "aspdw_mp" );
    addGunToProgression( "python_acog_mp" );
    addGunToProgression( "makarovdw_mp" );
    addGunToProgression( "cz75_mp" );
    addGunToProgression( "cz75_auto_mp" );
    addGunToProgression( "tokarevtt30_sp" );
    
    addGunToProgression( "knife_ballistic_mp" );
    
    addGunToProgression( "rottweil72_mp" );
    addGunToProgression( "ithaca_mp" );    
    addGunToProgression( "spas_silencer_mp" );
    addGunToProgression( "hs10dw_mp" );
    addGunToProgression( "spas_db_sp" );
    addGunToProgression( "vorkuta_motorcycle_shotgun_sp" );
    addGunToProgression( "ks23_sp" );
    
    addGunToProgression( "crossbow_sp" );
    
    addGunToProgression( "skorpion_grip_mp" );
    addGunToProgression( "mp5k_silencer_mp" );
    addGunToProgression( "mac11dw_mp" );
    addGunToProgression( "ak74u_elbit_mp" );
    addGunToProgression( "mp40_mp" );
    addGunToProgression( "uzi_mp" );
    addGunToProgression( "pm63_mp" );
    addGunToProgression( "mpl_reflex_mp" );
    addGunToProgression( "spectre_mp" );
    addGunToProgression( "ppsh_sp" );
    addGunToProgression( "kiparisdw_mp" );
    
    addGunToProgression( "knife_ballistic_mp" );

    addGunToProgression( "enfield_reflex_mp" );
    addGunToProgression( "m14_acog_mp" );
    addGunToProgression( "m16_mp" );
    addGunToProgression( "mosin_sp" );    
    addGunToProgression( "famas_mp" );    
    addGunToProgression( "stoner63_mp" );
    addGunToProgression( "galil_silencer_mp" );
    addGunToProgression( "aug_mp" );
    addGunToProgression( "sten_sp" );
    addGunToProgression( "fnfal_acog_mp" );
    addGunToProgression( "ak47_mp" );
    addGunToProgression( "g11_vzoom_mp" );
    addGunToProgression( "commando_mp" );
    
    addGunToProgression( "crossbow_sp" );
    
    addGunToProgression( "hk21_mp" );
    addGunToProgression( "stg44_sp" );
    addGunToProgression( "rpk_mp" );
    addGunToProgression( "m60_ir_mp" );
    
    addGunToProgression( "knife_ballistic_mp" );

    addGunToProgression( "dragunov_mp" );    
    addGunToProgression( "wa2000_acog_mp" );
    addGunToProgression( "l96a1_vzoom_mp" );
    addGunToProgression( "psg1_mp" );
    addGunToProgression( "mosin_scope_sp" );
    
    addGunToProgression( "crossbow_vzoom_sp" );
    addGunToProgression( "knife_ballistic_mp" );
    
    addGunToProgression( "m72_law_mp" );
    addGunToProgression( "rpg_mp" );    
    addGunToProgression( "panzerschreck_sp" );
    addGunToProgression( "m202_flash_wager_mp" );
  
    addGunToProgression( "china_lake_mp" );
    addGunToProgression( "minigun_wager_mp" );
    addGunToProgression( "m2_flamethrower_mp" );
    
    addGunToProgression( "crossbow_sp" );
    addGunToProgression( "crossbow_vzoom_sp" );
    addGunToProgression( "crossbow_explosive_mp", "explosive_bolt_mp" );
    
    addGunToProgression( "claymore_mp" );
    addGunToProgression( "frag_grenade_mp" );
    addGunToProgression( "sticky_grenade_mp" );
    addGunToProgression( "molotov_sp" );
    addGunToProgression( "hatchet_mp" );
    
    addGunToProgression( "crossbow_vzoom_sp", "explosive_bolt_mp" );
    
    addGunToProgression( "ray_gun_zm" );
    
    addGunToProgression( "thundergun_zm" );
    addGunToProgression( "tesla_gun_zm" );
    
    
    
    maps\mp\gametypes\_globallogic_utils::registerTimeLimitDvar( level.gameType, 10, 0, 1440 );
    maps\mp\gametypes\_globallogic_utils::registerScoreLimitDvar( level.gameType, level.gunProgression.size, 0, 5000 );
    maps\mp\gametypes\_globallogic_utils::registerRoundLimitDvar( level.gameType, 1, 0, 10 );
    maps\mp\gametypes\_globallogic_utils::registerRoundWinLimitDvar( level.gameType, 0, 0, 10 );
    maps\mp\gametypes\_globallogic_utils::registerNumLivesDvar( level.gameType, 0, 0, 10 );
    
    setscoreboardcolumns( "kills", "deaths", "stabs", "humiliated" );
}
addGunToProgression( gunName, altName )
{
    if ( !IsDefined( level.gunProgression ) )
        level.gunProgression = [];
    
    newWeapon = SpawnStruct();
    newWeapon.names = [];
    newWeapon.names[newWeapon.names.size] = gunName;
    if ( IsDefined( altName ) )
        newWeapon.names[newWeapon.names.size] = altName;
    level.gunProgression[level.gunProgression.size] = newWeapon;
}
giveCustomLoadout( takeAllWeapons, alreadySpawned )
{
    chooseRandomBody = false;
    if ( !IsDefined( alreadySpawned ) || !alreadySpawned )
        chooseRandomBody = true;
    self maps\mp\gametypes\_wager::setupBlankRandomPlayer( takeAllWeapons, chooseRandomBody );
    self DisableWeaponCycling();
    
    if ( !IsDefined( self.gunProgress ) )
        self.gunProgress = 0;
    
    currentWeapon = level.gunProgression[self.gunProgress].names[0];
    self giveWeapon( currentWeapon );
    self switchToWeapon( currentWeapon );
    self giveWeapon( "knife_mp" );
    
    if ( !IsDefined( alreadySpawned ) || !alreadySpawned )
        self setSpawnWeapon( currentWeapon );
    
    if ( IsDefined( takeAllWeapons ) && !takeAllWeapons )
        self thread takeOldWeapons( currentWeapon );
    else
        self EnableWeaponCycling();
        
    return currentWeapon;
}
takeOldWeapons( currentWeapon )
{
    self endon( "disconnect" );
    self endon( "death" );
    
    for ( ;; )
    {
        self waittill( "weapon_change", newWeapon );
        if ( newWeapon != "none" )
            break;
    }
    
    weaponsList = self GetWeaponsList();
    for ( i = 0 ; i < weaponsList.size ; i++ )
    {
        if ( ( weaponsList[i] != currentWeapon ) && ( weaponsList[i] != "knife_mp" ) )
            self TakeWeapon( weaponsList[i] );
    }
    
    self EnableWeaponCycling();
}
promotePlayer( weaponUsed )
{
    self endon( "disconnect" );
    self endon( "cancel_promotion" );
    level endon( "game_ended" );
    
    wait 0.05;
    for ( i = 0 ; i < level.gunProgression[self.gunProgress].names.size ; i++ )
    {
        if ( weaponUsed == level.gunProgression[self.gunProgress].names[i] )
        {
            if ( self.gunProgress < level.gunProgression.size-1 )
            {
                self.gunProgress++;
                if ( IsAlive( self ) )
                    self thread giveCustomLoadout( false, true );
                self thread maps\mp\gametypes\_wager::queueWagerPopup( &"MPUI_PLAYER_KILLED", 0, &"MP_GUN_NEXT_LEVEL" );
            }
            score = maps\mp\gametypes\_globallogic_score::_getPlayerScore( self );
            if ( score < level.gunProgression.size )
                maps\mp\gametypes\_globallogic_score::_setPlayerScore( self, score + 1 );
            return;
        }
    }
}
demotePlayer()
{
    self endon( "disconnect" );
    self notify( "cancel_promotion" );
    if ( self.gunProgress > 0 )
    {
        score = maps\mp\gametypes\_globallogic_score::_getPlayerScore( self );
        maps\mp\gametypes\_globallogic_score::_setPlayerScore( self, score - 1 );
        self.gunProgress--;
        if ( IsAlive( self ) )
            self thread giveCustomLoadout( false, true );
    }
    self.pers["humiliated"]++;
    self.humiliated = self.pers["humiliated"];
    self thread maps\mp\gametypes\_wager::queueWagerPopup( &"MP_HUMILIATED", 0, &"MP_GUN_PREV_LEVEL", "wm_humiliated" );
}
onPlayerKilled( eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc, psOffsetTime, deathAnimDuration )
{
    if ( sMeansOfDeath == "MOD_SUICIDE" )
    {
        self thread demotePlayer();
        return;
    }
    
    if ( IsDefined( attacker ) && IsPlayer( attacker ) )
    {
        if ( attacker == self )
        {
            self thread demotePlayer();
            return;
        }
        
        if ( sMeansOfDeath == "MOD_MELEE" )
        {
            self thread demotePlayer();
            attacker thread maps\mp\gametypes\_wager::queueWagerPopup( &"MP_HUMILIATION", 0, &"MP_GUN_PREV_LEVEL_OTHER", "wm_humiliation" );
            return;
        }
        
        attacker thread promotePlayer( sWeapon );
    }
}
onStartGameType()
{
    setDvar("scr_gun_timelimit", 0);
    setDvar( "scr_disable_cac", 1 );
    makedvarserverinfo( "scr_disable_cac", 1 );
    setDvar( "scr_disable_weapondrop", 1 );
    setdvar( "scr_game_perks", 0 );
    level.killstreaksenabled = 0;
    level.hardpointsenabled = 0;    
    setDvar( "scr_xpscale", 0 );
    setDvar( "ui_allow_teamchange", 0 );
    makedvarserverinfo( "ui_allow_teamchange", 0 );
    setDvar( "ui_weapon_tiers", level.gunProgression.size );
    makedvarserverinfo( "ui_weapon_tiers", level.gunProgression.size );
    
    setClientNameMode("auto_change");
    maps\mp\gametypes\_globallogic_ui::setObjectiveText( "allies", &"OBJECTIVES_GUN" );
    maps\mp\gametypes\_globallogic_ui::setObjectiveText( "axis", &"OBJECTIVES_GUN" );
    if ( level.splitscreen )
    {
        maps\mp\gametypes\_globallogic_ui::setObjectiveScoreText( "allies", &"OBJECTIVES_GUN" );
        maps\mp\gametypes\_globallogic_ui::setObjectiveScoreText( "axis", &"OBJECTIVES_GUN" );
    }
    else
    {
        maps\mp\gametypes\_globallogic_ui::setObjectiveScoreText( "allies", &"OBJECTIVES_GUN_SCORE" );
        maps\mp\gametypes\_globallogic_ui::setObjectiveScoreText( "axis", &"OBJECTIVES_GUN_SCORE" );
    }
    maps\mp\gametypes\_globallogic_ui::setObjectiveHintText( "allies", &"OBJECTIVES_GUN_HINT" );
    maps\mp\gametypes\_globallogic_ui::setObjectiveHintText( "axis", &"OBJECTIVES_GUN_HINT" );
    level.spawnMins = ( 0, 0, 0 );
    level.spawnMaxs = ( 0, 0, 0 );
    
    newSpawns = GetEntArray( "mp_wager_spawn", "classname" );
    if (newSpawns.size > 0)
    {
        maps\mp\gametypes\_spawnlogic::addSpawnPoints( "allies", "mp_wager_spawn" );
        maps\mp\gametypes\_spawnlogic::addSpawnPoints( "axis", "mp_wager_spawn" );
    }
    else
    {
        maps\mp\gametypes\_spawnlogic::addSpawnPoints( "allies", "mp_dm_spawn" );
        maps\mp\gametypes\_spawnlogic::addSpawnPoints( "axis", "mp_dm_spawn" );
    }
    
    maps\mp\gametypes\_spawning::updateAllSpawnPoints();
    level.mapCenter = maps\mp\gametypes\_spawnlogic::findBoxCenter( level.spawnMins, level.spawnMaxs );
    setMapCenter( level.mapCenter );
    spawnpoint = maps\mp\gametypes\_spawnlogic::getRandomIntermissionPoint();
    setDemoIntermissionPoint( spawnpoint.origin, spawnpoint.angles );
    
    
    level.useStartSpawns = false;
    
    allowed[0] = "gun";
    maps\mp\gametypes\_gameobjects::main(allowed);
    
    maps\mp\gametypes\_spawning::create_map_placed_influencers();
    maps\mp\gametypes\_rank::registerScoreInfo( "kill", 0 );
    maps\mp\gametypes\_rank::registerScoreInfo( "headshot", 0 );
    maps\mp\gametypes\_rank::registerScoreInfo( "assist_75", 0 );
    maps\mp\gametypes\_rank::registerScoreInfo( "assist_50", 0 );
    maps\mp\gametypes\_rank::registerScoreInfo( "assist_25", 0 );
    maps\mp\gametypes\_rank::registerScoreInfo( "assist", 0 );
    maps\mp\gametypes\_rank::registerScoreInfo( "suicide", 0 );
    maps\mp\gametypes\_rank::registerScoreInfo( "teamkill", 0 );
    
    level.displayRoundEndText = false;
    level.QuickMessageToAll = true;
}
onSpawnPlayerUnified()
{
    maps\mp\gametypes\_spawning::onSpawnPlayer_Unified();
    self thread infiniteAmmo();
}
onSpawnPlayer()
{
    spawnPoints = maps\mp\gametypes\_spawnlogic::getTeamSpawnPoints( self.pers["team"] );
    spawnPoint = maps\mp\gametypes\_spawnlogic::getSpawnpoint_DM( spawnPoints );
    self spawn( spawnPoint.origin, spawnPoint.angles, "gun" );
    self thread infiniteAmmo();
}
infiniteAmmo()
{
    self endon( "death" );
    self endon( "disconnect" );
    
    for ( ;; )
    {
        wait( 0.1 );
        
        weapon = self GetCurrentWeapon();
        
        self GiveMaxAmmo( weapon );
    }
}
onWagerAwards()
{
    stabs = self maps\mp\gametypes\_globallogic_score::getPersStat( "stabs" );
    if ( !IsDefined( stabs ) )
        stabs = 0;
    self maps\mp\gametypes\_persistence::setAfterActionReportStat( "wagerAwards", stabs, 0 );
    
    headshots = self maps\mp\gametypes\_globallogic_score::getPersStat( "headshots" );
    if ( !IsDefined( headshots ) )
        headshots = 0;
    self maps\mp\gametypes\_persistence::setAfterActionReportStat( "wagerAwards", headshots, 1 );
    
    bestKillstreak = self maps\mp\gametypes\_globallogic_score::getPersStat( "best_kill_streak" );
    if ( !IsDefined( bestKillstreak ) )
        bestKillstreak = 0;
    self maps\mp\gametypes\_persistence::setAfterActionReportStat( "wagerAwards", bestKillstreak, 2 );
}

Reply

#2
I'm not sure what the weapon file name is, so did you add it to the progression like the others? Just looking at the code, you would need to for it to count:

PHP Code:
promotePlayerweaponUsed )
{
    
/*
    Code snipped
    */
    // This for loop checks the weapon used against all in the gun progression list
    
for ( level.gunProgression[self.gunProgress].names.size i++ )
    {
        if ( 
weaponUsed == level.gunProgression[self.gunProgress].names[i] )
        {
            
/*
            Code snipped
            */
        
}
    }


You might be able to just add an else if to check if the 'weaponUsed' is equal to the name of the knife, but I'm not sure.
Reply

#3
Thanks for answering,
Yes, i added it like every other weapon. As you can see in the code above; at the first "AddGunToProgression-position" is creek_knife_sp, which is the SOG-Knife.

Its very annoying, i thougt you just humiliate someone, when you kill someone with knife_mp. But as i saw...

Has nobody an idea how i could this get working?

thanks a lot
iMaster

OK; EDIT:

I found the crushal point:

Code:
{
    if ( sMeansOfDeath == "MOD_SUICIDE" )
    {
        self thread demotePlayer();
        return;
    }
    
    if ( IsDefined( attacker ) && IsPlayer( attacker ) )
    {
        if ( attacker == self )
        {
            self thread demotePlayer();
            return;
        }
        
        if ( sMeansOfDeath == "MOD_MELEE" )        {
            self thread demotePlayer();
            attacker thread maps\mp\gametypes\_wager::queueWagerPopup( &"MP_HUMILIATION", 0, &"MP_GUN_PREV_LEVEL_OTHER", "wm_humiliation" );
            return;
        }
        
        attacker thread promotePlayer( sWeapon );
    }
}

If i kill someone with knife_mp or creek_knife_sp, its both a MOD_MELEE kill, so it humiliats and not promotes. Does anyone find a way to edit it that way, that just knife_mp humiliates?


OK again EDIT: I SOLVED it Big GrinBig GrinBig Grin

I just had to edit this code:
Code:
if ( sMeansOfDeath == "MOD_MELEE" )

to

Code:
if ( sMeansOfDeath == "MOD_MELEE" && sWeapon == "knife_mp" )

If ya knife someone with a knife which is not "knife_mp", the second argumet is false and you dont humiliate the enemie, you get Promoted.

SOLVED, Thread can get closed ;D
Reply



Possibly Related Threads…
Thread Author Replies Views Last Post
  Preview Gungame Mod Howl3r 8 5,533 08-04-2013, 21:39
Last Post: Howl3r
  [Request] modded gungame for combat training ultimate 0 2,311 06-02-2013, 13:14
Last Post: ultimate
  GunGame with doors Mathdu91 22 20,177 04-07-2013, 15:35
Last Post: DYNAMIA
  [Release] Smiles GunGame v2 _Smile_Man_ 8 16,410 04-07-2013, 13:54
Last Post: Borealis
  [Release] SanX GunGame Mod 1.8 d0h! 4 11,277 10-30-2012, 06:01
Last Post: ironcore
  [Release] [contest]Leipe GunGame Dountill 65 37,911 10-19-2012, 16:16
Last Post: willorp
  How can i create a Gungame-Server with own weapons? gumpo03 4 4,948 09-06-2012, 20:06
Last Post: JariZ
  More than 18 gungame? mikeoxbig 7 4,630 08-20-2012, 22:18
Last Post: mikeoxbig
  Ranked gungame synaptik 4 3,593 01-29-2012, 13:46
Last Post: kokole
  Help GunGame .cfg atz3 1 3,615 11-11-2011, 18:47
Last Post: Pozzuh

Forum Jump:


Users browsing this thread:
1 Guest(s)

Forum Powered By MyBB, Theme by © 2002-2024 Melroy van den Berg.