ETMods.net

N!tmod, a Wolfenstein: Enemy Territory Modification!

You are not logged in.

Announcement

You can donate to help us keeping services online.

#1 26-May-14 00:16:30

NoHero
Member
Registered: 07-Dec-13
Posts: 19

Help me understand this please.

Can someone tell me what infostrings and configstrings are? I am struggling to understand what is happening in this (etpro)script:

Modname = "stenwar"
Version = "1.0"
Author  = "Micha!"
Description = "^7Stenwar"
Homepage = "www.gs2175.fastdl.de"

--[[
			Based on noweapon.lua
-------------------------------------------------------
  Updated Feb 2011
  Changelog:
  
    1.0:
      Known bugs u still get a knife
      Initial release

-------------------------------------------------------
 --]]
 
 --Shrubbot min level to execute the command
 min_level     = 3
 
 --Max covert ops allowed (normal gameplay)
 maxcoverts = -1
 
 --[[
 Usage: 
 !stenwar on
 !stenwar off
 --]]
 stenwar_cmd 			= "!stenwar"
 
 
 --[[
 Set to "true" to enable it
 noreload = true
 noreload = false
 --]]
 noreload = false
 
 
 --Sound that get played if you enable stenwar
 sound =  "sound/chat/allies/953a.wav" 
 
 --------------------------------------------------------------------------------
 
--global vars
et.MAX_WEAPONS = 50
et.CS_PLAYERS = 689
samplerate = 200
STEN = 10
--

--note sme got no comments because it arent weapons
weapons = {
	false,		--WP_THROWABLE_KNIFE // 1
	false,	--WP_LUGER,				// 2
	false,	--WP_MP40,				// 3
	false,	--WP_GRENADE_LAUNCHER,		// 4
	false,	--WP_PANZERFAUST,			// 5
	false,	--WP_FLAMETHROWER,		// 6
	false,		--WP_COLT,				// 7	// equivalent american weapon to german luger
	false,	--WP_THOMPSON,			// 8	// equivalent american weapon to german mp40
	false,	--WP_GRENADE_PINEAPPLE,	/	// 9
	true,	--WP_STEN,				// 10	// silenced sten sub-machinegun
	true,		--WP_MEDIC_SYRINGE,		// 11	// JPW NERVE -- broken out from CLASS_SPECIAL per Id request
	true,		--WP_AMMO,				// 12	// JPW NERVE likewise
	false,	--WP_ARTY,				// 13
	false,	--WP_SILENCER,			// 14	// used to be sp5
	true,	--WP_DYNAMITE,			// 15
	nil,		--// 16
	nil,		--// 17
	nil,		--// 18
	true,		--WP_MEDKIT,			// 19
	true,	--WP_BINOCULARS,			// 20
	nil,		--// 21
	nil,		--// 22
	false,	--WP_KAR98,				// 23	// WolfXP weapons
	false,	--WP_CARBINE,			// 24
	false,	--WP_GARAND,			// 25
	false,	--WP_LANDMINE,			// 26
	true,	--WP_SATCHEL,			// 27
	true,	--WP_SATCHEL_DET,			// 28
	nil,		--// 29
	true,	--WP_SMOKE_BOMB,			// 30
	false,	--WP_MOBILE_MG42,			// 31
	false,	--WP_K43,				// 32
	false,	--WP_FG42,				// 33
	nil,		--// 34
	false,	--WP_MORTAR,			// 35
	nil,		--// 36
	false,	--WP_AKIMBO_COLT,			// 37
	false,	--WP_AKIMBO_LUGER,		// 38
	nil,		--// 39
	nil,		--// 40
	false,	--WP_SILENCED_COLT,		// 41
	false,	--WP_GARAND_SCOPE,		// 42
	false,	--WP_K43_SCOPE,			// 43
	false,	--WP_FG42SCOPE,			// 44
	false,	--WP_MORTAR_SET,			// 45
	true,	--WP_MEDIC_ADRENALINE,		// 46
	false,	--WP_AKIMBO_SILENCEDCOLT,	// 47
	false		--WP_AKIMBO_SILENCEDLUGER,	// 48
}

function et_InitGame(levelTime,randomSeed,restart)
	maxclients = tonumber( et.trap_Cvar_Get( "sv_maxClients" ) )   --gets the maxclients
	gamestate = tonumber(et.trap_Cvar_Get( "gamestate" ))
	et.G_Print("[Stenwar] Version:"..Version.." Loaded\n")
	et.RegisterModname(Modname .. "  " .. Version)
	blocker = 0
	if stenwar == nil then
		et.trap_Cvar_Set( "g_stenwar", "0" )
		et.trap_Cvar_Set( "team_maxcovertops", maxcoverts )
	end
end

-- called every server frame
function et_RunFrame( levelTime )
local stenwar = tonumber(et.trap_Cvar_Get( "g_stenwar" ))
		--et.trap_SendServerCommand(-1, "cp \"^w"..stenwar.."\n\"") -- Debug to get stenwar value
if math.mod(levelTime, samplerate) ~= 0 then return end
   -- for all clients
   for j = 0, (maxclients - 1) do
      for k=1, (et.MAX_WEAPONS - 1), 1 do
		if stenwar == 1 then
         if not weapons[k] then
			if noreload then
			   et.gentity_set(j, "ps.ammoclip", 10, 32)
			end
            et.gentity_set(j, "ps.ammoclip", k, 0)
            et.gentity_set(j, "ps.ammo", k, 0)
            et.gentity_set(j, "ps.ammo", 10, 1337)
			et.gentity_set(j,"sess.latchPlayerType",4)
			if checkclass(j) ~= 4 and blocker == 0 then
				changeclass(j)
				changeweapon(j)
				SetHP()
				blocker = 1
			end
			latchweapon(j)
		 end
		end
	  end
	end
 end
 
function checkclass(client)
   local cs = et.trap_GetConfigstring(et.CS_PLAYERS + client, 4)
	return tonumber(et.Info_ValueForKey(cs, "c"))
end

function changeclass(client)
   local cs = et.trap_GetConfigstring(et.CS_PLAYERS + client)
	local infoclass = et.Info_SetValueForKey( cs, "c", 4 )
	et.trap_SetConfigstring(689 + client, infoclass)
end

function changeweapon(client)
   local cs = et.trap_GetConfigstring(et.CS_PLAYERS + client)
	local infoweapon = et.Info_SetValueForKey( cs, "w", STEN )
	et.trap_SetConfigstring(689 + client, infoweapon)
end

function latchweapon(slot)
		local fallback -- default weapon
		if team == AXIS then 
			fallback = STEN
		else fallback = STEN
		end

		-- now update the client (in order for the change to be immidieate, and not wait for the server, we need to update the client's configstring)
		local infostring  
		infostring = et.trap_GetConfigstring(689 + slot)
		infostring = et.Info_SetValueForKey( infostring, "lw", fallback )
		et.trap_SetConfigstring(689 + slot, infostring)
		et.gentity_set(slot,"sess.latchPlayerWeapon",fallback)
end
 
 function getlevel(client)
	local lvl = et.G_shrubbot_level(client)
	if lvl >= min_level then
		return true
	elseif lvl < min_level then
		et.trap_SendServerCommand(client, "cpm \"^3Sorry, you don't have the right to execute this command\n\" " )
		return false
	end
		return nil
end

function SetHP()
	for target = 0, (maxclients - 1) do
	local hp = tonumber(et.gentity_get(target,"health"))
	  if hp < 0 then
		return
	  else
		et.gentity_set(target, "health", -200)
	  end
	 end
end

function et_ClientCommand(client, command)
 local stenwar = tonumber(et.trap_Cvar_Get( "g_stenwar" ))
  if getlevel(client) then
	if et.trap_Argv(0) == "say" or et.trap_Argv(0) == "say_team" or et.trap_Argv(0) == "say_buddy" or et.trap_Argv(0) == "say_teamnl" then
	   	local s, e, type = string.find(et.trap_Argv(1), "^" .. stenwar_cmd .. " ([%w%_]+)$")
			if type == "on" and stenwar == 0 then
					et.trap_Cvar_Set( "g_stenwar", "1" )
					et.G_globalSound( sound )
					et.trap_SendServerCommand(-1, "chat \"^.stenwar: ^3stenwar ^1enabled\" " )
			elseif type == "off" and stenwar == 1 then
					et.trap_Cvar_Set( "g_stenwar", "0" )
					for j = 0, (maxclients - 1) do
						et.gentity_set(j, "ps.ammo", 10, 96)
					end
					et.trap_SendServerCommand(-1, "chat \"^.stenwar: ^3stenwar ^1disabled\" " )
			elseif type == "on" and stenwar == 1 then
					et.trap_SendServerCommand(client, "cpm \"^.stenwar: ^3stenwar ^wis already ^1on\" " )
			elseif type == "off" then
					et.trap_SendServerCommand(client, "cpm \"^.stenwar: ^3stenwar ^wmust be ^1on ^wbefore you can disable it\" " )
			end
			if string.lower(et.trap_Argv(1)) == stenwar_cmd then
				if string.lower(et.trap_Argv(2)) == "on" and stenwar == 0 then
					et.trap_Cvar_Set( "g_stenwar", "1" )
					et.trap_Cvar_Set( "team_maxcovertops", "-1" )
					et.G_globalSound( sound )
					et.trap_SendServerCommand(-1, "chat \"^.stenwar: ^3stenwar ^1enabled\" " )
				elseif string.lower(et.trap_Argv(2)) == "off" and stenwar == 1 then
					et.trap_Cvar_Set( "g_stenwar", "0" )
					et.trap_Cvar_Set( "team_maxcovertops", maxcoverts )
				    for j = 0, (maxclients - 1) do
						et.gentity_set(j, "ps.ammo", 10, 96)
					end
					et.trap_SendServerCommand(-1, "chat \"^.stenwar: ^3stenwar ^1disabled\" " )
				elseif string.lower(et.trap_Argv(2)) == "on" and stenwar == 1 then
					et.trap_SendServerCommand(client, "cpm \"^.stenwar: ^3stenwar ^wis already ^1on\" " )
				elseif string.lower(et.trap_Argv(2)) == "off" then
					et.trap_SendServerCommand(client, "cpm \"^.stenwar: ^3stenwar ^wmust be ^1on ^wbefore you can disable it\" " )
				elseif string.lower(et.trap_Argv(2)) == "" then
					et.trap_SendServerCommand(client, "cpm \"^3!stenwar ^1on/off\" " )
				end
			end
	end
  end

I am trying to use this script to gain knowledge on how to set weapons to player etc.. i tried looking up configstring in the et source. I think i lack the knowledge of whats going on in et to really understand them, is 689 some sort of offset? I was hoping one of the devs or someone knowledgeable can help me out.

Last edited by NoHero (26-May-14 00:18:27)

Offline

#2 28-May-14 03:21:03

N!trox*
Administrator
Registered: 30-Mar-10
Posts: 1,090

Re: Help me understand this please.

This is quite complicated, and i'm not really sure how to simply explain it (especially in english -- french is my native language ^^), but i'll try to do my best smile
Configstrings are multiple text strings contained in the "gamestate" (stored in the engine memory, and then accessed by either server or client game code).
Every configstring is identified by a configstring index, this way both client and server game code can retreive them whenever they need to use them.
They can be used for a lot of things, like transmitting required players info/models/sounds/skins to client, and a lot of other informations that are absolutely required on client side.
On large servers, with large maps, lots of players, and custom stuff, sometimes this gamestate becomes too big, and to avoid exceeding engine limits, ET automaticly drops all clients with the "MAX_GAMESTATE_CHARS" error.

In N!tmod, i've added a different way of handling some of these configstrings, to avoid the MAX_GAMESTATE_CHARS error, so the configstrings index are not the same as in ETPro (and i think they are different in every mods anyway).

The one you need in this script is CS_PLAYERS, which has value 64 in N!tmod.


iluvnitmod.png

Offline

#3 28-May-14 03:23:12

N!trox*
Administrator
Registered: 30-Mar-10
Posts: 1,090

Re: Help me understand this please.

And adter writing all this post, i discovered this: http://wolfwiki.anime.net/index.php/Configstring

Oh well, seems like i've not been to bad at explaining it.

Keep in mind that N!tmod doesn't use the same configstring indexes than ETPro, so if you ever need another CS index, you can ask here.
Or maybe i'll post a list smile


iluvnitmod.png

Offline

#4 28-May-14 10:38:25

NoHero
Member
Registered: 07-Dec-13
Posts: 19

Re: Help me understand this please.

Thank you so much, i figured after posting the thread that is was a mod specific index needed. Your explanation was very good, and will get me script moving along now.

Offline

#5 28-May-14 20:56:06

Micha
Member
From: Germany
Registered: 11-Feb-13
Posts: 38
Website

Re: Help me understand this please.

Nice explanation Nitrox.

Maybe you should make a nice list cvars (with explanation), luas, etc (like silent and etpro mod).
Problem on this forum is that some infos can get lost after new posts.

You can check etconst.lua for some etpro configstrings.

Note to the custom functions I used:

function changeclass(client)
   local cs = et.trap_GetConfigstring(et.CS_PLAYERS + client)
	local infoclass = et.Info_SetValueForKey( cs, "c", 4 )
	et.trap_SetConfigstring(689 + client, infoclass)
end

You can get these with the following code too but I prefer the function because it seems like old etpub has some bugs in it (atleast I had much problems using sess.*).

"sess.playerType" - the class of the player. Possible values are

    0 - soldier 
    1 - medic 
    2 - engineer 
    3 - fieldops 
    4 - covert ops 

-> checkclass = et.gentity_get( clientNum, sess.playerType )

Last edited by Micha (28-May-14 20:57:21)

Offline

#6 01-Jun-14 21:05:52

NoHero
Member
Registered: 07-Dec-13
Posts: 19

Re: Help me understand this please.

Yeah silent mod wiki is a massive source of info, but often trial and error to see if the same things work for nitmod. I think nitmod also has some specific lua functions, i think i read in one of the updates a while ago? If there are there isn't any documentation on them. Is there a way to list the nitmod lua interface? Im not a lua programmer normally, but i think i saw that somehow you can list the interface functions.

If anyone want to create a more comprehensive documentation count me in ill help flesh it out, as much as i can.

Last edited by NoHero (01-Jun-14 21:06:31)

Offline

#7 13-Jun-14 00:43:43

NoHero
Member
Registered: 07-Dec-13
Posts: 19

Re: Help me understand this please.

Currently i am stuck with a bug when i try to disable the weapons and leave the person to use pistol, they can still select the grenade. The grenade cannot be thrown, but when activated it locks the players weapons and upon death explodes. Since there seems to be no weapon ID to link to the grenade im not sure whats happening; i tried "WP_GRENADE_PINEAPPLE" but doesnt work and im not sure what the even does.

Offline

#8 13-Jun-14 11:05:54

maras
Member
Registered: 09-May-14
Posts: 23

Re: Help me understand this please.

You must added this lua to your server.cfg:

Download

Offline

#9 14-Jun-14 01:15:47

Micha
Member
From: Germany
Registered: 11-Feb-13
Posts: 38
Website

Re: Help me understand this please.

Try to use "et.gentity_set(j, "ps.ammoclip", 4, 0)". Maybe you just removed allies ones.
Pineapple is allies and launcher is axis.

Last edited by Micha (14-Jun-14 01:21:56)

Offline

#10 14-Jun-14 16:22:47

Micha
Member
From: Germany
Registered: 11-Feb-13
Posts: 38
Website

Re: Help me understand this please.

Allies: Rifle bullets 24 (WP_CARBINE) and rnades 40 (WP_M7)
Axis: Rifle should be 23 (WP_KAR98) and rnade 39 (WP_GPG40)

I took this out of etpub souce bg_misc.c. I'm not sure if nitmod uses the same.

Allies: 9 grenade
Axis: 4 grenade

Offline

#11 14-Jun-14 17:05:43

NoHero
Member
Registered: 07-Dec-13
Posts: 19

Re: Help me understand this please.

Thanks Micha stupid me forgot axis and allies have different nades

Offline

#12 31-Dec-16 09:57:41

pawel321
Member
Registered: 31-Dec-16
Posts: 6

Re: Help me understand this please.

How does it run on the server?

set lua_modules "stenwar.lua"

I say on a server !stenwar on but there does not work.
On /rcon the same.
In /lua_status  shows in stenwar.lua
Please help yikes

Last edited by pawel321 (31-Dec-16 10:01:59)

Offline

#13 31-Dec-16 19:30:15

jay1110
BETA Tester
Registered: 01-Sep-12
Posts: 208
Website

Re: Help me understand this please.

et.CS_PLAYERS = 689
change this to
et.CS_PLAYERS = 64

i cant test it at the moment.

Offline

#14 02-Jan-17 11:04:15

pawel321
Member
Registered: 31-Dec-16
Posts: 6

Re: Help me understand this please.

Still not work

Offline

#15 04-Jan-17 00:55:38

jay1110
BETA Tester
Registered: 01-Sep-12
Posts: 208
Website

Re: Help me understand this please.

try this script.

i changed some little things.

the script works on my testserver.

the weapons i didnt modified. Need to sleep now smile
But this you can do self i think, ids are here http://etmods.net/forums/viewtopic.php?id=1354


Modname = "stenwar"

Version = "1.0"

Author  = "MNwa!"

Description = "^7Stenwar"

Homepage = "www.gs2175.fastdl.de"



--[[

			Based on noweapon.lua

-------------------------------------------------------

updated Jan 2017 by ETc|#.Jay.#
modified lua to get it work for nitmod.
You was spammed when you not had the minimum lvl, removed cpm.



  Updated Feb 2011

  Changelog:

  

    1.0:

      Known bugs u still get a knife

      Initial release



-------------------------------------------------------

 --]]

 

 --Shrubbot min level to execute the command

 min_level     = 3

 

 

 --[[

 Usage: 

 !stenwar on

 !stenwar off

 --]]

 stenwar_cmd 			= "!stenwar"

 

 

 --[[

 Set to "true" to enable it

 noreload = true

 noreload = false

 --]]

 noreload = false

 

 

 --Sound that get played if you enable stenwar

 sound =  "sound/chat/allies/953a.wav" 

 

 --------------------------------------------------------------------------------

 

--global vars

et.MAX_WEAPONS = 52

et.CS_PLAYERS = 64

samplerate = 200

STEN = 10

--



--note sme got no comments because it arent weapons

weapons = {

	false,		--WP_THROWABLE_KNIFE // 1

	false,	--WP_LUGER,				// 2

	false,	--WP_MP40,				// 3

	false,	--WP_GRENADE_LAUNCHER,		// 4

	false,	--WP_PANZERFAUST,			// 5

	false,	--WP_FLAMETHROWER,		// 6

	false,		--WP_COLT,				// 7	// equivalent american weapon to german luger

	false,	--WP_THOMPSON,			// 8	// equivalent american weapon to german mp40

	false,	--WP_GRENADE_PINEAPPLE,	/	// 9

	true,	--WP_STEN,				// 10	// silenced sten sub-machinegun

	true,		--WP_MEDIC_SYRINGE,		// 11	// JPW NERVE -- broken out from CLASS_SPECIAL per Id request

	true,		--WP_AMMO,				// 12	// JPW NERVE likewise

	false,	--WP_ARTY,				// 13

	false,	--WP_SILENCER,			// 14	// used to be sp5

	true,	--WP_DYNAMITE,			// 15

	nil,		--// 16

	nil,		--// 17

	nil,		--// 18

	true,		--WP_MEDKIT,			// 19

	true,	--WP_BINOCULARS,			// 20

	nil,		--// 21

	nil,		--// 22

	false,	--WP_KAR98,				// 23	// WolfXP weapons

	false,	--WP_CARBINE,			// 24

	false,	--WP_GARAND,			// 25

	false,	--WP_LANDMINE,			// 26

	true,	--WP_SATCHEL,			// 27

	true,	--WP_SATCHEL_DET,			// 28

	nil,		--// 29

	true,	--WP_SMOKE_BOMB,			// 30

	false,	--WP_MOBILE_MG42,			// 31

	false,	--WP_K43,				// 32

	false,	--WP_FG42,				// 33

	nil,		--// 34

	false,	--WP_MORTAR,			// 35

	nil,		--// 36

	false,	--WP_AKIMBO_COLT,			// 37

	false,	--WP_AKIMBO_LUGER,		// 38

	nil,		--// 39

	nil,		--// 40

	false,	--WP_SILENCED_COLT,		// 41

	false,	--WP_GARAND_SCOPE,		// 42

	false,	--WP_K43_SCOPE,			// 43

	false,	--WP_FG42SCOPE,			// 44

	false,	--WP_MORTAR_SET,			// 45

	true,	--WP_MEDIC_ADRENALINE,		// 46

	false,	--WP_AKIMBO_SILENCEDCOLT,	// 47

	false		--WP_AKIMBO_SILENCEDLUGER,	// 48

}



function et_InitGame(levelTime,randomSeed,restart)

	maxclients = tonumber( et.trap_Cvar_Get( "sv_maxClients" ) )   --gets the maxclients

	gamestate = tonumber(et.trap_Cvar_Get( "gamestate" ))

	et.G_Print("[Stenwar] Version:"..Version.." Loaded\n")

	et.RegisterModname(Modname .. "  " .. Version)

	blocker = 0

	if stenwar == nil then

		et.trap_Cvar_Set( "g_stenwar", "0" )

	end

end



-- called every server frame

function et_RunFrame( levelTime )

local stenwar = tonumber(et.trap_Cvar_Get( "g_stenwar" ))

		--et.trap_SendServerCommand(-1, "cp \"^w"..stenwar.."\n\"") -- Debug to get stenwar value

if math.mod(levelTime, samplerate) ~= 0 then return end

   -- for all clients

   for j = 0, (maxclients - 1) do

      for k=1, (et.MAX_WEAPONS - 1), 1 do

		if stenwar == 1 then

         if not weapons[k] then

			if noreload then

			   et.gentity_set(j, "ps.ammoclip", 10, 32)

			end

            et.gentity_set(j, "ps.ammoclip", k, 0)

            et.gentity_set(j, "ps.ammo", k, 0)

            et.gentity_set(j, "ps.ammo", 10, 1337)

			et.gentity_set(j,"sess.latchPlayerType",4)

			if checkclass(j) ~= 4 and blocker == 0 then

				changeclass(j)

				changeweapon(j)

				SetHP()

				blocker = 1

			end

			latchweapon(j)

		 end

		end

	  end

	end

 end

 

function checkclass(client)

   local cs = et.trap_GetConfigstring(et.CS_PLAYERS + client, 4)

	return tonumber(et.Info_ValueForKey(cs, "c"))

end



function changeclass(client)

   local cs = et.trap_GetConfigstring(et.CS_PLAYERS + client)

	local infoclass = et.Info_SetValueForKey( cs, "c", 4 )

	et.trap_SetConfigstring(64 + client, infoclass)

end



function changeweapon(client)

   local cs = et.trap_GetConfigstring(et.CS_PLAYERS + client)

	local infoweapon = et.Info_SetValueForKey( cs, "w", STEN )

	et.trap_SetConfigstring(64 + client, infoweapon)

end



function latchweapon(slot)

		local fallback -- default weapon

		if team == AXIS then 

			fallback = STEN

		else fallback = STEN

		end



		-- now update the client (in order for the change to be immidieate, and not wait for the server, we need to update the client's configstring)

		local infostring  

		infostring = et.trap_GetConfigstring(64 + slot)

		infostring = et.Info_SetValueForKey( infostring, "lw", fallback )

		et.trap_SetConfigstring(64 + slot, infostring)

		et.gentity_set(slot,"sess.latchPlayerWeapon",fallback)

end

 

 function getlevel(client)

	local lvl = et.G_shrubbot_level(client)

	if lvl >= min_level then

		return true


	end

		return nil

end



function SetHP()

	for target = 0, (maxclients - 1) do

	local hp = tonumber(et.gentity_get(target,"health"))

	  if hp < 0 then

		return

	  else

		et.gentity_set(target, "health", -200)

	  end

	 end

end



function et_ClientCommand(client, command)

 local stenwar = tonumber(et.trap_Cvar_Get( "g_stenwar" ))

  if getlevel(client) then

	if et.trap_Argv(0) == "say" or et.trap_Argv(0) == "say_team" or et.trap_Argv(0) == "say_buddy" or et.trap_Argv(0) == "say_teamnl" then

	   	local s, e, type = string.find(et.trap_Argv(1), "^" .. stenwar_cmd .. " ([%w%_]+)$")

			if type == "on" and stenwar == 0 then

					et.trap_Cvar_Set( "g_stenwar", "1" )

					et.G_globalSound( sound )

					et.trap_SendServerCommand(-1, "chat \"^.stenwar: ^3stenwar ^1enabled\" " )

			elseif type == "off" and stenwar == 1 then

					et.trap_Cvar_Set( "g_stenwar", "0" )

					for j = 0, (maxclients - 1) do

						et.gentity_set(j, "ps.ammo", 10, 96)

					end

					et.trap_SendServerCommand(-1, "chat \"^.stenwar: ^3stenwar ^1disabled\" " )

			elseif type == "on" and stenwar == 1 then

					et.trap_SendServerCommand(client, "cpm \"^.stenwar: ^3stenwar ^wis already ^1on\" " )

			elseif type == "off" then

					et.trap_SendServerCommand(client, "cpm \"^.stenwar: ^3stenwar ^wmust be ^1on ^wbefore you can disable it\" " )

			end

			if string.lower(et.trap_Argv(1)) == stenwar_cmd then

				if string.lower(et.trap_Argv(2)) == "on" and stenwar == 0 then

					et.trap_Cvar_Set( "g_stenwar", "1" )

					et.G_globalSound( sound )

					et.trap_SendServerCommand(-1, "chat \"^.stenwar: ^3stenwar ^1enabled\" " )

				elseif string.lower(et.trap_Argv(2)) == "off" and stenwar == 1 then

					et.trap_Cvar_Set( "g_stenwar", "0" )

				    for j = 0, (maxclients - 1) do

						et.gentity_set(j, "ps.ammo", 10, 96)

					end

					et.trap_SendServerCommand(-1, "chat \"^.stenwar: ^3stenwar ^1disabled\" " )

				elseif string.lower(et.trap_Argv(2)) == "on" and stenwar == 1 then

					et.trap_SendServerCommand(client, "cpm \"^.stenwar: ^3stenwar ^wis already ^1on\" " )

				elseif string.lower(et.trap_Argv(2)) == "off" then

					et.trap_SendServerCommand(client, "cpm \"^.stenwar: ^3stenwar ^wmust be ^1on ^wbefore you can disable it\" " )

				elseif string.lower(et.trap_Argv(2)) == "" then

					et.trap_SendServerCommand(client, "cpm \"^3!stenwar ^1on/off\" " )

				end

			end

	end

  end

 return 0

end

Last edited by jay1110 (04-Jan-17 01:45:22)

Offline

#16 04-Jan-17 09:32:15

pawel321
Member
Registered: 31-Dec-16
Posts: 6

Re: Help me understand this please.

Not work sad
rcon !stenwar on
Unknown cmd in line '!stenwar on'
----------------------------------------------
Scripts It works disconnect and connect to server
rcon g_stenwar 0-1
And console spam:

g_stenwar 1
et_RunFrame error running lua script: [string "stenwar.lua"]:297: expected at most 1 arguments, got 2
et_RunFrame error running lua script: [string "stenwar.lua"]:297: expected at most 1 arguments, got 2
et_RunFrame error running lua script: [string "stenwar.lua"]:297: expected at most 1 arguments, got 2
et_RunFrame error running lua script: [string "stenwar.lua"]:297: expected at most 1 arguments, got 2
et_RunFrame error running lua script: [string "stenwar.lua"]:297: expected at most 1 arguments, got 2
et_RunFrame error running lua script: [string "stenwar.lua"]:297: expected at most 1 arguments, got 2

g_stenwar 0
et_ClientCommand error running lua script: [string "stenwar.lua"]:361: attempt to call field `G_shrubbot_level' (a nil value)
et_ClientCommand error running lua script: [string "stenwar.lua"]:361: attempt to call field `G_shrubbot_level' (a nil value)
et_ClientCommand error running lua script: [string "stenwar.lua"]:361: attempt to call field `G_shrubbot_level' (a nil value)
et_ClientCommand error running lua script: [string "stenwar.lua"]:361: attempt to call field `G_shrubbot_level' (a nil value)

Can be to run on and off during the game?

Last edited by pawel321 (04-Jan-17 09:43:39)

Offline

#17 04-Jan-17 09:36:31

jay1110
BETA Tester
Registered: 01-Sep-12
Posts: 208
Website

Re: Help me understand this please.

you have to be higher than admin level 3, And not over rcon.

Offline

#18 04-Jan-17 09:45:22

pawel321
Member
Registered: 31-Dec-16
Posts: 6

Re: Help me understand this please.

I have a level 5 admin

Offline

#19 04-Jan-17 09:49:45

jay1110
BETA Tester
Registered: 01-Sep-12
Posts: 208
Website

Re: Help me understand this please.

then type in chat !stenwar on
if that not work, restart your server. And i hope you use nitmod.

Offline

#20 04-Jan-17 09:57:10

pawel321
Member
Registered: 31-Dec-16
Posts: 6

Re: Help me understand this please.

You can do that without rebooting the server?
Mod etpro + kmod.

Offline

#21 04-Jan-17 10:06:02

jay1110
BETA Tester
Registered: 01-Sep-12
Posts: 208
Website

Re: Help me understand this please.

this is not for etpro mod. the script on top is for etpub. and the script i posted is for nitmod. You are on nitmod forums here.

Offline

#22 04-Jan-17 21:12:24

jay1110
BETA Tester
Registered: 01-Sep-12
Posts: 208
Website

Re: Help me understand this please.

pawel, i checked out the kmod, its possible to add stenwar in kmod. Tell me wich version of kmod you are using.

edit: post your kmod.lua here or in pm. will edit it. and send you back.

Last edited by jay1110 (04-Jan-17 21:26:45)

Offline

#23 05-Jan-17 10:39:40

pawel321
Member
Registered: 31-Dec-16
Posts: 6

Re: Help me understand this please.

Kmod 1.5

Offline

#24 11-Jan-17 10:34:38

mazak
Member
From: Poland
Registered: 11-Jun-13
Posts: 17

Re: Help me understand this please.

Say your etpro.config

set g_stenwar 1
set g_stenwar 0

The maps

map te_valhalla
{
  set g_userTimeLimit 10
  set g_stenwar 1
  setl g_useralliedrespawntime 1
  setl g_useraxisrespawntime 1
}
map supply
{
  set g_userTimeLimit 15
  set g_stenwar 0
  setl g_useralliedrespawntime 15
  setl g_useraxisrespawntime 15
}
map oasis
{
  set g_userTimeLimit 25
  set g_stenwar 0
  setl g_useralliedrespawntime 15
  setl g_useraxisrespawntime 15
}

Offline

Board footer

Powered by FluxBB