Skip to content
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Donate
Collapse

Plutonium

  1. Home
  2. MW3 Modding Releases & Resources
  3. [Release] Lua Scripting

[Release] Lua Scripting

Scheduled Pinned Locked Moved MW3 Modding Releases & Resources
24 Posts 13 Posters 6.0k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • st0rmundefined st0rm

    Thanks Fed. That work just fine. I learnt the hard way the mw3 sets death perks in a really dumb way where there is not way to unset them since they're based on death streaks.

    Kalitosundefined Offline
    Kalitosundefined Offline
    Kalitos
    wrote on last edited by
    #21

    st0rm And regarding this, I don't know what you want to achieve, but if it works for you, in GSC I use this to deactivate the death streaks

    onPlayerKilled()
    {
        self endon("disconnect");
        level endon("game_ended");
        for(;;)
        {
            self waittill("killed_player");
            self.pers["cur_death_streak"] = 0; //Stop deathstreak
        }
    } 
    
    1 Reply Last reply
    0
    • Kalitosundefined Offline
      Kalitosundefined Offline
      Kalitos
      wrote on last edited by
      #22

      I needed Net Framework 3.5. I already solved it.

      1 Reply Last reply
      0
      • fedundefined fed

        As many of you probably know the current chaiscript scripting is pretty bad and has many limitations. This plugin implements lua scripting in IW5 and fixes all those problems.

        Everything is basically the same as in IW6x (documentation can be found here).

        How

        • Download the latest version from the Releases tab
        • Copy it to %localappdata%/Plutonium/storage/iw5/plugins/
        • Create a __init__.lua file in a folder with a name of your choice in %localappdata%/Plutonium/storage/iw5/scripts/
        • Example %localappdata%/Plutonium/storage/iw5/scripts/myscript/__init__.lua
        • Run the server (preferably with the -no-scripting flag to disable ChaiScript)

        Below are some features that are not available or documented in IW6x

        Chat notifies

        level:onnotify("say", function(player, message)
            print(player.name .. " said: " .. message)
        end)
        

        or

        level:onnotify("connected", function(player)
            player:onnotify("say", function(message)
                print(player.name .. " said: " .. message)
            end)
        end)
        

        Player damage/killed callbacks

        Callbacks can be added using the game:onplayerkilled or game:onplayerdamage functions:

        Damage can be changed by returning it

        Returning anything other than a number will not do anything (must be an integer)

        game:onplayerdamage(function(_self, inflictor, attacker, damage, dflags, mod, weapon, point, dir, hitloc)
            damage = 0
        
            return damage
        end)
        
        game:onplayerkilled(function(_self, inflictor, attacker, damage, mod, weapon, dir, hitloc, timeoffset, deathanimduration)
            print(attacker.name .. " killed " .. _self.name)
        end)
        

        Arrays

        GSC arrays are supported and can be accessed similarly to gsc:

        local ents = game:getentarray()
        
        for i = 1, #ents do
            print(ents[i])
        end
        

        To get the array's keys use the getkeys method:

        local keys = player.pers.getkeys()
        
        for i = 1, #keys do
            print(keys[i])
        end
        

        Structs

        GSC structs are also supported similarly as the arrays.

        To get an entity's struct use the getstruct method:

        local levelstruct = level:getstruct()
        
        levelstruct.inGracePeriod = 10000
        

        Structs in other variables like arrays are automatically converted:

        level:onnotify("connected", function(player)
            player:onnotify("spawned_player", function()
                player.pers.killstreaks[1].streakName = "ac130"
                player.pers.killstreaks[1].available = 1
            end)
        end)
        

        Note: you cannot create new struct fields but only modify or read existing ones, same thing for arrays

        Functions

        You can call (will not work for every function) functions and methods within the game's gsc scripts using the

        scriptcall(filename, function, ...) method:

        level:onnotify("connected", function(player)
            player:onnotify("spawned_player", function()
                local hudelem = player:scriptcall("maps/mp/gametypes/_hud_utils", "createFontString", 1)
                
                hudelem:scriptcall("maps/mp/gametypes/_hud_util", "setPoint", "CENTER", nil, 100, 100)
                hudelem.label = "&Hello world"
            end)
        end)
        

        Functions in variables such as structs or arrays will be automatically converted to a lua function.

        The first argument must always be the entity to call the function on (level, player...)

        local levelstruct = level:getstruct()
        
        level:onnotify("connected", function(player)
            player:onnotify("spawned_player", function()
                levelstruct.killstreakFuncs["ac130"](player)
            end)
        end)
        
        Desempregradoundefined Offline
        Desempregradoundefined Offline
        Desempregrado
        wrote on last edited by
        #23

        fed I came here today to ask a question about the lua language in Bo2 Plutonium, I wanted to know another method to change or add custom menus in bo2 Plutonium without having to use the plutonium files that is privategamelobby_project.lua ?

        I want to load my own lua script into the game, is that possible ? How to do that..?

        1 Reply Last reply
        0
        • Major_Tomundefined Offline
          Major_Tomundefined Offline
          Major_Tom
          wrote on last edited by
          #24

          Hi
          I try to use the 1.8 version when i start the server it crashs without error
          i use windows server 2019

          1 Reply Last reply
          0
          Reply
          • Reply as topic
          Log in to reply
          • Oldest to Newest
          • Newest to Oldest
          • Most Votes


          • 1
          • 2
          • Login

          • Don't have an account? Register

          • Login or register to search.
          • First post
            Last post
          0
          • Recent
          • Tags
          • Popular
          • Users
          • Groups
          • Donate