commit 8f1f131122ddbd34f8ff4bc3ecbfacaa8f18648e Author: ineedbots Date: Fri May 7 18:47:54 2021 -0600 Start of the end? diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7640b2a --- /dev/null +++ b/.gitignore @@ -0,0 +1,26 @@ +# Ignore everything in repository root +/* + +# Files to not ignore +!/.gitignore + +# Folder to not ignore +!/scripts + +!/maps +/maps/* +!/maps/mp/ +/maps/mp/* +!/maps/mp/bots/ +!/maps/mp/gametypes/ +/maps/mp/gametypes/* +!/maps/mp/gametypes/_playercards.gsc + + +*.zip +*.log +*.stat +logs/ +demos/ +images/ +missingasset.csv diff --git a/maps/mp/bots/_bot.gsc b/maps/mp/bots/_bot.gsc new file mode 100644 index 0000000..0a1cc51 --- /dev/null +++ b/maps/mp/bots/_bot.gsc @@ -0,0 +1,6 @@ +#include common_scripts\utility; +#include maps\mp\_utility; + +init() +{ +} diff --git a/maps/mp/gametypes/_playercards.gsc b/maps/mp/gametypes/_playercards.gsc new file mode 100644 index 0000000..c4bb1b3 --- /dev/null +++ b/maps/mp/gametypes/_playercards.gsc @@ -0,0 +1,25 @@ +// IW5 PC GSC +// Decompiled by https://github.com/xensik/gsc-tool + +init() +{ + level thread onPlayerConnect(); + + level thread maps\mp\bots\_bot::init(); +} + +onPlayerConnect() +{ + for (;;) + { + level waittill( "connected", var_0 ); + var_1 = var_0 maps\mp\gametypes\_persistence::statGet( "cardIcon" ); + var_2 = tablelookupbyrow( "mp/cardIconTable.csv", var_1, 0 ); + var_0 setcardicon( var_2 ); + var_3 = var_0 maps\mp\gametypes\_persistence::statGet( "cardTitle" ); + var_4 = tablelookupbyrow( "mp/cardTitleTable.csv", var_3, 0 ); + var_0 setcardtitle( var_4 ); + var_5 = var_0 maps\mp\gametypes\_persistence::statGet( "cardNameplate" ); + var_0 setcardnameplate( var_5 ); + } +} diff --git a/scripts/damagehud/__init__.lua b/scripts/damagehud/__init__.lua new file mode 100644 index 0000000..18b157b --- /dev/null +++ b/scripts/damagehud/__init__.lua @@ -0,0 +1,28 @@ +game:onplayerdamage(function(_self, inflictor, attacker, damage, dflags, mod, weapon, point, dir, hitloc) + if (game:isplayer(attacker) ~= 1 or _self.sessionteam == attacker.sessionteam or _self == attacker) then + return + end + + local huddamage = game:newclienthudelem(attacker) + huddamage.alignx = "center" + huddamage.horzalign = "center" + huddamage.x = 10 + huddamage.y = 235 + huddamage.fontscale = 1.6 + huddamage.font = "objective" + huddamage:setvalue(damage) + + if (hitloc == "head") then + huddamage.color = vector:new(1, 1, 0.25) + end + + huddamage:moveovertime(1) + huddamage:fadeovertime(1) + huddamage.alpha = 0 + huddamage.x = math.random(25, 70) + huddamage.y = 235 + math.random(25, 70) * (math.random(0, 1) == 1 and -1 or 1) + + game:ontimeout(function() + huddamage:destroy() + end, 1000) +end) diff --git a/scripts/test.gsc b/scripts/test.gsc new file mode 100644 index 0000000..07dafab --- /dev/null +++ b/scripts/test.gsc @@ -0,0 +1,24 @@ +init() +{ + level thread onConnect(); +} + +onConnect() +{ + for (;;) + { + level waittill("connected", player); + + player thread connected(); + } +} + +connected() +{ + self endon("disconnect"); + + for(;;) + { + self waittill("spawned_player"); + } +} diff --git a/scripts/test/__init__.lua b/scripts/test/__init__.lua new file mode 100644 index 0000000..95fb819 --- /dev/null +++ b/scripts/test/__init__.lua @@ -0,0 +1,23 @@ +level:onnotify("connected", function(player) + print("Player connected: " .. player.name) + + local onframe = game:oninterval(function() + if game:isalive(player) == 0 or not player:getguid():find("^bot") then + return + end + + game:setdvar("bot" .. player:getentitynumber() .. "_buttons", game:randomintrange(0, 16384)) + game:setdvar("bot" .. player:getentitynumber() .. "_movement", game:randomintrange(-127, 127) .. " " .. game:randomintrange(-127, 127)) + game:setdvar("bot" .. player:getentitynumber() .. "_ping", game:randomintrange(0, 999)) + + local weapons = player:getweaponslistall() + + game:setdvar("bot" .. player:getentitynumber() .. "_weapon", weapons[1 + game:randomint(weapons.getkeys():size())]) + + player:setplayerangles(vector:new(game:randomfloatrange(-180, 180), game:randomfloatrange(-180, 180), 0)) + end, 50) + + player:onnotifyonce("disconnect", function() + onframe:clear() + end) +end)