Jump to content

  • Log in with Facebook Log in with Twitter Log In with Google Log In with Steam Sign In
  • Create Account

Most Liked Content


#18400 ETPro Support in near future

Posted by Zelly on 04 June 2015 - 01:16 AM

I managed to makeshift my way to lua 5.0 compatibility, in a separate branch of LESM 2.7.5

 

Basically was able to get ingame and do commands with no errors now.

 

Haven't tested all the features, but I don't think I will run into anything too surprising now, possibily a few things that will not be fully functional.

 

But I am pretty excited for the future :P

 

 




#10206 Proxies which admins can pre-ban to stop cheaters, trouble makers, etc

Posted by hellreturn on 10 January 2013 - 08:49 AM

Well, I have banned few proxies on my servers. Just thought to share with other admins so they can also pre-ban cheaters, trouble makers, etc. Regular players don't use proxies so they wouldn't be banned on your servers. 
 
How to use: Just copy paste in your shrubbot.cfg above [command] block. 
 

[subnetban]
subnet   = 199.255.209.*
reason   = Try More1
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 199.255.210.*
reason   = Try More2
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 173.234.216.*
reason   = Try More3
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 173.208.*.*
reason   = Try More4
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 69.57.161.*
reason   = Try More5
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 184.75.208.*
reason   = Try More6
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 184.75.209.*
reason   = Try More7
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 184.75.212.*
reason   = Try More8
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 184.75.220.*
reason   = Try More9
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 184.75.221.*
reason   = Try More10
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 184.75.222.*
reason   = Try More11
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 184.75.223.*
reason   = Try More12
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 173.234.217.*
reason   = Try More13
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 173.234.218.*
reason   = Try More14
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 173.234.219.*
reason   = Try More15
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 198.136.63*.*
reason   = Try More16
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 198.136.62*.*
reason   = Try More17
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 173.198.19*.*
reason   = Try More18
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 173.198.20*.*
reason   = Try More19
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 173.198.21*.*
reason   = Try More20
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 173.198.22*.*
reason   = Try More21
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 173.198.23*.*
reason   = Try More22
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 173.198.24*.*
reason   = Try More23
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 173.198.25*.*
reason   = Try More24
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 67.231.25*.*
reason   = Try More25
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 67.231.24*.*
reason   = Try More26
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 199.114.22*.*
reason   = Try More27
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 199.114.23*.*
reason   = Try More28
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 89.233.104.*
reason   = Try More29
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 216.119.14*.*
reason   = Try More30
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 216.119.15*.*
reason   = Try More31
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 50.7.1.*
reason   = Try More32
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 74.122.19*.*
reason   = Try More34
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 68.232.191.*
reason   = Try More35
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 68.232.190.*
reason   = Try More36
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 68.232.18*.*
reason   = Try More37
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 68.232.17*.*
reason   = Try More38
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 68.232.16*.*
reason   = Try More39
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 109.201.152.*
reason   = Try More40
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 192.210.143.*
reason   = Try More41
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 192.210.4*.*
reason   = Try More42
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 192.210.5*.*
reason   = Try More43
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 192.210.6*.*
reason   = Try More44
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 173.231.1.*
reason   = Try More45
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 173.231.2.*
reason   = Try More46
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 173.231.3.*
reason   = Try More47
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 173.231.4.*
reason   = Try More48
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 173.231.5.*
reason   = Try More49
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 173.231.6.*
reason   = Try More50
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 173.231.7.*
reason   = Try More51
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 173.231.8.*
reason   = Try More52
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 173.231.9.*
reason   = Try More53
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 173.231.10.*
reason   = Try More54
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 173.231.11.*
reason   = Try More55
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 173.231.12.*
reason   = Try More56
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 67.213.218.*
reason   = Try More57
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 162.253.128.*
reason   = Try More58
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 162.253.129.*
reason   = Try More59
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 162.253.130.*
reason   = Try More60
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 162.253.131.*
reason   = Try More61
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 46.16.32.*
reason   = Try More62
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 46.16.33.*
reason   = Try More63
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 46.16.34.*
reason   = Try More64
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 46.16.35.*
reason   = Try More65
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 89.233.105.*
reason   = Try More66
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 89.233.106.*
reason   = Try More67
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 89.233.107.*
reason   = Try More68
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 89.233.108.*
reason   = Try More69
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 89.233.109.*
reason   = Try More70
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 89.233.110.*
reason   = Try More71
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 89.233.111.*
reason   = Try More72
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 8.33.136.*
reason   = Try More73
made     = 01/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 95.141.20.*
reason   = Try More74
made     = 07/01/15 09:38:03
expires  = 0
banner   = console

[subnetban]
subnet   = 79.141.16*.*
reason   = Try More75
made     = 07/01/15 09:39:03
expires  = 0
banner   = console

[subnetban]
subnet   = 93.190.14*.*
reason   = Try More76
made     = 07/01/15 09:39:03
expires  = 0
banner   = console

[subnetban]
subnet   = 5.254.9*.*
reason   = Try More77
made     = 07/01/15 09:39:03
expires  = 0
banner   = console

[subnetban]
subnet   = 5.101.14*.*
reason   = Try More78
made     = 07/01/15 09:39:03
expires  = 0
banner   = console

[subnetban]
subnet   = 84.19.16*.*
reason   = Try More79
made     = 07/02/15 09:39:03
expires  = 0
banner   = console

[subnetban]
subnet   = 185.31.15*.*
reason   = Try More80
made     = 07/02/15 09:39:03
expires  = 0
banner   = console

[subnetban]
subnet   = 188.13*.*.*
reason   = Try More81
made     = 07/07/15 09:39:03
expires  = 0
banner   = console

[subnetban]
subnet   = 151.236.5.*
reason   = Try More82
made     = 07/07/15 09:39:03
expires  = 0
banner   = console

[subnetban]
subnet   = 87.236.19*.*
reason   = Try More83
made     = 07/07/15 09:39:03
expires  = 0
banner   = console

[subnetban]
subnet   = 46.246.*.*
reason   = Try More84
made     = 07/07/15 09:39:03
expires  = 0
banner   = console

[subnetban]
subnet   = 176.9.1*.*
reason   = Try More85
made     = 07/10/15 09:39:03
expires  = 0
banner   = console

[subnetban]
subnet   = 46.19.139.*
reason   = Try More86
made     = 08/10/15 09:39:03
expires  = 0
banner   = console



#15443 ET Server Series!

Posted by Purple on 08 September 2014 - 07:26 PM

I've started on a basic ET server configuration series for people. I will continue to update this topic with more and more videos

 

(p.s sorry for the low quality videos going to use something else for recording <3)

 

 

$part 1




#16873 Log playernames w/o colorcodes

Posted by Dragonji on 15 January 2015 - 01:27 PM

Playernames without colorcodes would definitely improve readability of admin and cheat logs.




#6087 silEnT release 0.5.1

Posted by TheSilencerPL on 04 March 2012 - 07:19 PM

New version of silEnT mod 0.5.1 is available.

Download

Main things in this version, briefly:

New !hstats command which will display the hitregions players are hitting.
New flag (512) for g_medics cvar, which makes adrenaline take only half charge.
Admins are given the possibility to control the damage reduction when players under the effect of adrenaline are hit. Check g_adrendmgreduction cvar.
Want smaller body hitboxes? No problem, just use g_realbody cvar.
Long-awaited landmine bahaviour: only the engineer that planted the landmine can trigger/defuse it. New flag (12) to g_friendlyFireOpts cvar added for this purpose.
Themed time, fps, timer, speedometer, K/D/S display and lagometer.
We also made Lua interpreter built into the server binary. This should make installing easier.

What else? Bug fixes and some reworks. Just check the change log below:

Added: !hstats, command will display the hitregions players are hitting.
Added: g_medics flag 512, adrenaline takes only half charge.
Added: g_adrendmgreduction, admins can control the damage reduction when players under the effect of adrenaline are hit.
Added: themed Draws (time, fps, timer, speedometer), K/D/S display and lagometer. New cvar for this: cg_themedDraws {0,1}: 0-use the old style, 1- themed style
Added: new flag to g_friendlyFireOpts: 32. Only the engineer that planted the landmine can trigger/defuse it.
Added: g_realbody, possibility for server admins to set up smaller body hitboxes
Fixed: !userlist command was not working if noone was online on the server.
Fixed: In certain cases same player was displayed multiple times on the userlist output.
Fixed: SP_team_WOLF_objective: exceeded MAX_MULTI_SPAWNTARGETS (16), fix from flms of ETPub
Fixed: !showbans didn't always display bans properly when the banned player didn't have PB GUID. Also, silEnT ID is now included in the list.
Fixed: Warmup was not dislayed to players before the warmup countdown started.
Fixed: Proned players moving when others were standing on their backs.
Fixed: vid_restart crash
Fixed: Temp Ban System didn't handle silEnT GUIDs
Fixed: Passed nextmap vote will now correctly go into intermission when map voting is enabled.
Fixed: maps not listed in the vote menu when game type is mapvoting or TDM
Fixed: not themed fireteam menus
Fixed: additional space behind location in fireteam window
Reworked: The K/D in the scores is renamed to KR to reduce confusion about it.
Reworked: The !finger output prints the current PB GUID of the player. Not the one that is stored in the database.
Reworked: The silEnT GUID handling is changed a little. This prevents certain types of copy paste spoofings. Note, players that are not stored to the database with valid PB GUIDs will create new player records. Also, from the old ban lists, at least the silEnT GUID (sguid) fields must be cleared to prevent false bans.
Reworked: Lua interpreter is now built into the server binary. This will make installing easier.
Removed: g_realHead realistic hitboxes from ETPub/zinx are now used always
Removed: g_mapVoteFlags no longer has flag 16. If admin needs a command to get next map in rotation when map voting is enabled, he can easily create one executing "vstr nextmap".
Removed: g_spoofOptions, the spoofing is now checked unconditionally.
Removed: g_punkbuster, the PunkBuster is no longer supported by EvenBalance and this cvar is no longer needed.

Download

Enjoy!

silEnT mod team

Click here to view the article


#5567 How to protect admins from GUID spoofing

Posted by gaoesa on 04 January 2012 - 10:30 PM

I'm writing this post to bring attention since the documentation is not well written around the subject.

Since GUIDs are not trustable at all. Not PB GUIDs or silEnT GUIDs. We included admin level protection system into the 0.5.0 version of the mod. This system effectively limits all benefits from GUID spoofing into gaining XP of the spoofed players. Even private messages are not possible without proper authentication with the server.

The system uses 2 cvars:

g_adminProtection : bitmask
1 Log succesfull authentications to the cheat log
2 Log admin spoofing attempts to the cheat log
4 Report admins waiting for confirmation on their level to the admin chat

g_protectMinLevel : integer
The minimum level of the protected admins.

To use the system, set the g_adminProtection to 7. This will enable all logging so you can see who authenticates to what level and if the authentication is succesfull or not. Set the g_protectMinLevel to the lowest level you want to protect. Don't set this to too low because it causes little overhead and also the credentials need to be given using online commands on the server.

When the silEnT notices there is an admin connecting to the server who has protected admin level but no credentials, it will report this admin to the admin chat. When this happens, the admin needs to be confirmed with !confirm command by someone who is able to identify the player identity. This only needs to done once for each admin. In the following connections, the silEnT is able to handle the authentications silently itself.

From now on, if someone spoofs the GUID of an admin, he will face the authentication procedure. The silEnT will inform into the admin chat that the player has lost his authentication and !setlevel is required. Do not do the !setlevel unless you know this one is genuinly the correct admin. Also, the !confirm command cannot be used anymore for the reason that the !confirm command can be given to less high admins without risks. If the player spoofing the GUID attempts to spoof the credentials, again the admin chat and cheat log is reported with the spoof attempt.

Important thing to know is that the !confirm command and !setlevel commands do not give credentials during the warmup period. Also, authentication does not operate during warmup but player needs to wait until the end of warmup before he gains access to his admin level. If you do !confrim or !setlevel during the warmup and the player is later on reported to not have yet been confirmed, just do the !confirm again.

I hope this information helps and brings some light to the subject. Feel free to ask questions in this thread and I we will answer those.


#4425 silEnT release 0.4.0

Posted by TheSilencerPL on 01 November 2011 - 09:34 PM

The silEnT Mod Team presents the new 0.4.0 version of silEnT Mod for Enemy Territory.

Download

Special thanks for Krauersaut for building the Mac OS X client and crapshoot from the omni-bot team for his help and co-operation

New main features in silEnT 0.4.0 are:
  • New User Interface with 2 themes. Themes can be switched with "ui_theme" cvar {1,2}
  • Widescreen support.
  • New front end user interface for private message system.
  • 3rd person view for knife throw animations.
  • db improvements.
  • Enhanced Hardware Based Identification system. g_identOptions 16. The server will automatically create a new ban for a player that is circumventing old ban and the client identification catches it.
  • Subnet ban feature to replace pb_sv_banmask.
  • Performance enhancements.
  • Ban numbers are printed in the outputs of !userinfo, !userlist and !usersearch commands, if the player is banned.

Miscellaneous added features:
  • Added: tripmines markers on the command map.
  • Added: new tripmine wire shaders.
  • Added: tripmines can be now spotted by coverts to be marked on the command map.
  • Added: Possibility for server admins to enable Jaymod style double jumping This is controlled with g_misc flag 32.
  • Added: hint for tripmine placement (hint is displayed when tripmine can be attached to the pointed place)
  • Added: new cvar: cg_themedCMap {0,1}, which activates/deactivates themed command map frame
  • Added: New shrubbot flag '#'. Players or levels with this flag are not allowed to call votes. Voting is automatically denied from players without PB GUIDs. Do note, it does not require the punkbuster to be enabled on the server for a player to have a PB GUID.
  • Added: new private message which allows to select players from the list or just type the name in
  • Added: Possiblity to mute only global chat sounds with cg_noVoiceChats 2. Also added into the menu.
Traditionally, the changelog:

Version 0.4.0
  • Added: different power bolt colors for fops to show arty/airstrikes availability (http://mygamingtalk....ops-air-strike/)
  • Added: tripmines can be tripped by movers (doors etc.) when they cross the wire
  • Added: ui_themedCursor client cvar to disable/enable themed cursor. For those who don't like the new themed mouse cursors.
  • Reworked: new tripmine model, new tripmine icons
  • Fixed: narrow screens (aspect ratio where the width is smaller then in 4:3 aspect ratio) were stretching some visuals
  • Fixed: the map voting during intermission accepted mouse presses under the map list
  • Fixed: landmines and tripmines were positioned wrong in the command map
  • Fixed: throwing knives in air
  • Fixed: map and player list scroller: http://mygamingtalk....if-you-drag-it/
  • Fixed: tripmines do not disappear from command map after being destructed (tripped, not shot)
  • Fixed: bans no longer write NO_GUID to the guid field in the shrubbot.cfg.
  • Renamed: g_settings renamed to g_banners. That is what it is only for so the change is to clarify the purpose.
  • Removed: /rcon ban. This command was causing issues because of the similar name to !ban. Also, there was no unban method.
Version 0.4.0rc1
  • Added: new UI with 2 themes. Themes can be switched with "ui_theme" cvar {1,2}
  • Added: tripmines markers on the command map.
  • Added: new tripmine wire shaders.
  • Added: tripmines can be now spotted by coverts to be marked on the command map.
  • Added: g_identOptions flag 16. The server will automatically create a new ban for a player that is circumventing old ban and the client identification catches him.
  • Added: Ban numbers are printed in the outputs of !userinfo, !userlist and !usersearch commands, if the player is banned.
  • Added: Possibility for server admins to enable Jaymod style double jumping This is controlled with g_misc flag 32.
  • Added: hint for tripmine placement (hint is displayed when tripmine can be attached to the pointed place)
  • Added: new cvar: cg_themedCMap {0,1}, which activates/deactivates themed command map frame
  • Added: New shrubbot flag '#'. Players or levels with this flag are not allowed to call votes. Voting is automatically denied from players without PB GUIDs. Do note, it does not require the punkbuster to be enabled on the server for a player to have a PB GUID.
  • Added: new private message which allows to select players from the list or just type the name in
  • Added: 3rd person view knife throw animations
  • Added: Possiblity to mute only global chat sounds with cg_noVoiceChats 2. Also added into the menu.
  • Fixed: Aspect ratios with widescreen monitors.
  • Fixed: Empty player name in adminchat report when a player who got just kicked based on client identification reconnects instantly.
  • Fixed: throw knife bug during leaning (http://mygamingtalk....e-71-knife-bug/)
  • Fixed: The [i] shortcut with custom commands now gives the client number always correctly.
  • Fixed: Soldier with secondary SMG was able to keep the SMG when switching classes. Can be troublesome if switching to covert.
  • Fixed: weapon banks shown when knife is thrown: http://mygamingtalk....throwing-knife/
  • Fixed: xp not shown in limbo menu before joining the team: http://mygamingtalk....ed-into-a-team/
  • Fixed: it was possible to still write inside edit box after tabbing out to non edit box
  • Removed: g_bot_minPlayers. The omnibot librarys MinBots and MaxBots settings cover this feature better.
  • Fixed: thrown knive dissapears on destructible: http://mygamingtalk....ives-disappear/
  • Fixed: watermark bug: http://mygamingtalk....-watermark-bug/
  • Fixed: latched class in fire team not shown: http://mygamingtalk....n-notification/
  • Fixed: http://mygamingtalk....lose-limbomenu/
  • Fixed: !nextmap & callvote nextmap, don't work with g_gametype 6
  • Fixed: fast reload animations for weapons: http://mygamingtalk....2-speed-reload/
Download

Posted Image

Click here to view the article


#414 Omnibots

Posted by gaoesa on 25 September 2010 - 12:14 PM

Hi

I will answer to your questions one by one.

1. silEnT mod is compatible with Omni-bot 0.8

2. NoQuarter 1.2.7 bots are not compatible with silEnT mod. NoQuarter 1.2.7 uses bot version 0.71.

3. Here is the link to the omni-bor downloads http://www.omni-bot....m/downloads.php on the right you see links to the full install packages. For new waypoints that are not yet in the full install packages, you can download them directly from their repository http://svn.assembla....ory/0.8/et/nav/

I hope this was helpfull :)


#2190 silEnT release 0.3.0

Posted by TheSilencerPL on 22 March 2011 - 11:14 PM

We proudly announce the silEnT Enemy Territory mod 0.3.0.

We worked hard for it to become what it is in 0.3.0 version.
We made many things server side as well as client side.

To cut the story short, here are the top things in 0.3.0 release:
  • new database version
  • hardware based identification
  • new game type: Team Death Match
  • shrubbot improvements
  • new landmine notifications
  • new ppsh model
  • weapon banks display
Traditionally, here is the change log (0.3.0):
  • Added: weapon banks shown during weapon change - incorporated into HUD editor (introduced new client cvars for this: cg_wbShowDuration, cg_wbOrientation, cg_wbWideSlots)
  • Fixed: defect with following FT (killed player was picked when he/she was the FT leader - but next FT member should be picked)
  • Improved the database performance.
  • Added new command !baninfo.
  • Removed cg_damageKick client cvar.
  • Reworked cg_hitSounds client cvar. Now a new option play only headshots is available
  • Added: New server cvar g_punkbuster. Server that don't have punkbuster enbaled can still force clients enabling punkbuster for them to have GUIDs. This does not guarantee that every player will have a GUID but if the player has it, it will be sent to the server.
  • Added: warmup countdown (last 3 seconds). Can be turned off by setting cg_showCountDown client cvar to "0"
  • Added: g_classWeapons server cvar. Enables weapons per class (so far only PPSh is handled)
  • Changed: allied tripmine beam color changed to blue
  • Added: Muted players can't call votes.
  • Added: New command !readadmins.
  • Added: separate meaning of death for shoving to death (enemy killing and team killing supported)
  • Added: new type of revealed landmines notifications (cg_landmineNotifyType client cvar and g_landmineNotifyType server cvar provided for this)
  • Added new command !resetpls that reset individual player stats leaving XP save untouched. There has been some cases when the stats have bugged and this is an easy command for admins to correct such stats.
  • Players can customise the announcements and even disable them if they like.
  • Added possibility for First Blood sound for server admins.
  • Fixed headshots from proned players.
  • Added: silEnT mod icon displayed on loading screen
  • Added: new PPSH weapon model and enhanced the weapon overall (sounds)
  • Fixed: follow Fire Team bug with spec not switching outside of FT for "FT first" option.
  • Fixed: spectator follow bug: SPACE + RMB caused wrong behavior.
  • pmove_fixed is now recognised by the server if the players set it.
  • Added new shrubbot flag '/' that will disables private messages from levels or individual players.
  • Fixed !useredit add command. Before the command checked only valid command flags were added. Now it accepts any flags.
  • Added kills/deaths/spree counters hud display managed by cg_killsDisplay cvar.
  • Added: predefined HUDs can be now chosen from the HUD configuration menu
  • Added: new predefined HUDs: etpro, etpro2 (thanks to Dragon)
  • Fixed: in chat after every map players' pings are very weird (http://mygamingtalk....c/437-big-ping/)
  • Added: new game type: Team Death Match (easy to be configured server side and client side)
  • Added: when alternate HUD is chosen with compass in the lower part of the screen the compass slides out to bottom.

The 0.3.0 is no longer provided as download. Use 0.3.1 instead.


#15591 New section in Wiki for creting custom commands

Posted by BECK on 19 September 2014 - 04:30 PM

This is a great idea.  I can provide a simple example of a shrubbot command working with LUA - we have a bunch of working scripts that use this method.   You can use this if you want.

 

 

 

For the purposes of this example, the command is mycommand.   It will be executed when the uses enters !mycommand in the console, assuming that player has been assigned level 2 or higher shrubbot level.

 

1. Create your command in the shrubbot file.   Open your shrubbot.cfg file (in silent\database directory) and add the following block:

[command]
command  = mycommand
exec     = mycommand [i]
desc     = Does something cool for people over level 2
syntax   = 
levels   = 2 3 4 5

2.  Create a LUA file in your silent directory on the server.  Call it mycommand.lua (or whatever name you want to give it).   Begin with the following stub:

function et_ConsoleCommand(command)

	-- if the user types !mycommand in the console

	if et.trap_Argv(0) == "mycommand" then

                -- Do your custom processing here

		return 1 -- Tells silEnT that this method handled this command
	end
	return 0  -- Tells silEnT that this file did not handle this command
end

3. Update your server config to load the LUA file.   Add or modify the following server var (lua_modules):

set lua_modules "mycommand.lua"

4. Restart your server.  Assuming you are shrubbot level 2 or higher, !mycommand will execute and do cool stuff.




#13416 etpro and the silent anticheat?

Posted by gaoesa on 20 January 2014 - 11:19 AM

Like solar and Dragonji already pointed out, ETPro sourcecode is not available. But I will add as a representative of the silEnT mod team, that even if ETPro source code would be available, there would be no motivation for the silEnT mod team to add features to it. If we would do anything with it, we would just look for things we could use to improve our mod.




#13217 play sound command (ATTN BECK)

Posted by BECK on 08 January 2014 - 11:26 PM

heh, you just assume :)   Petty arguments aside, I can share it here for you or anyone else who wants to do custom sounds this way.  The advantage of this is that you can restrict certain sounds by shrubbot level.  We use this as a small benefit for regulars, vip regulars and members.

 

In full disclosure, another member of IoW wrote these scripts, so I can't really help you if things aren't working or this is poorly written or wrong or causes your server to crash.  Use at your own risk!   All I know is, it works...

 

First you need formatting.lua.  I think it was supposed to be a general purpose utility script that is shared by other scripts.

function makeDisplayString(text, color, length, alignment)

	-- Initialize display string
	local displayString

	-- Get the display length of the text
	local textDisplayLength = displayLength(text)

	-- If the text display length fits in the desired display length
	if textDisplayLength <= length then

		-- Create enough padding to make the text the correct length for display
		local padding = ""
		for i = 1, length - textDisplayLength do
			padding = padding .. ' '
		end

		-- If alignment is set to centered
		if alignment == "center" and string.len(padding) >= 2 then
			-- Find the middle of the padding and put each half on one side of the string
			local paddingSplitPoint = math.floor(string.len(padding) / 2)
			displayString = string.sub(padding, 1, paddingSplitPoint) .. text .. string.sub(padding, paddingSplitPoint + 1)

		-- Otherwise, if alignment was set to right
		elseif alignment == "right" then
			-- Put the padding at the beginning of the string
			displayString = padding .. text

		else
			-- Otherwise add the padding to the end of the string (left aligned)
			displayString = text .. padding
		end

	-- If the text is too big to fit in the desired display length
	else
		-- If the display length was specified as a very low number (so can't display the text properly)
		if length <= 3 then
			-- Fill the display length with dots
			displayString = ""
			for i = 1, length do
				displayString = displayString .. '.'
			end

		-- Otherwise, the display length has enough space to show part of the text
		else
			-- Create a table to hold parts of the text (chunks beginning with a color code [if possible])
			local textTable = {}

			-- Split up the text into color coded pieces until there is no more text
			local moreText = true

			while moreText do
				-- Try to find the first occurence of a color code
				local firstColorCodeLocation = string.find(text, "%^[^%^]")

				-- Initialize text part
				local textPart

				-- If there are no color codes in the text
				if not firstColorCodeLocation then
					-- Set the text part to the entire text and specify that there is no more text to add
					textPart = text
					moreText = false

				-- Otherwise, a color code was found
				else
					-- If the first color code is not at the beginning of the text
					if firstColorCodeLocation > 1 then
						-- Set the text part to the text leading up to the first color code
						textPart = string.sub(text, 1, firstColorCodeLocation - 1)

					-- Otherwise, the first color code is at the beginning of the text
					else
						-- Attempt to find the second color code
						local secondColorCodeLocation = string.find(text, "%^[^%^]", firstColorCodeLocation + 2)

						-- If the second color code is found
						if secondColorCodeLocation then
							-- Set the text part to be the text leading up to the second color code (including the first one)
							textPart = string.sub(text, 1, secondColorCodeLocation - 1)
						else
							-- Otherwise, set the text part to the entire remaining text and specify that there is no more text to add
							textPart = text
							moreText = false
						end
					end

					-- After determining a text part for the table remove that part from the text
					text = string.sub(text, string.len(textPart) + 1)
				end

				-- Add the text part to the table
				table.insert(textTable, textPart)
			end

			-- Set the amount of text needed to fill the desired display length (not including the ellipses)
			local displayTextNeeded = length - 3

			-- Initialize the display string that will hold the display text
			displayString = ""

			-- While more text is needed
			while displayTextNeeded > 0 do
				-- Get the next text part from the table and remove the table entry for it
				local nextTextPart = textTable[1]
				table.remove(textTable, 1)

				-- If the text part begins with a color code
				if string.find(nextTextPart, "%^[^%^]") then
					-- Get the amount of text needed from the text part (or as much as possible) and update the text needed
					nextTextPart = string.sub(nextTextPart, 1, displayTextNeeded + 2)
					displayTextNeeded = displayTextNeeded - (string.len(nextTextPart) - 2)
				-- Otherwise, there is no color code in the text part
				else
					-- Get the amount of text needed from the text part (or as much as possible) and update the text needed
					nextTextPart = string.sub(nextTextPart, 1, displayTextNeeded)
					displayTextNeeded = displayTextNeeded - string.len(nextTextPart)
				end

				-- Add the text part to the display string
				displayString = displayString .. nextTextPart
			end

			-- Now that no more text is needed, add ellipses to show that it didn't fit
			displayString = displayString .. colorString("...", color)
		end
	end

	displayString = colorString(displayString, color)

	-- return the formatted string
	return displayString
end

function colorString(text, color)
	if color then
		-- If text does not begin with a color code
		if string.find(text, "%^[^%^]") ~= 1 then
			-- Add the color code to the beginning of the text
			text = '^' .. color .. text
		end
	end

	-- Return text with color code
	return text
end

function displayLength(text)
	-- Initialize the display length to the full length of the text
	local textDisplayLength = string.len(text)

	-- Loop through each color code
	for colorCode in string.gmatch(text, "%^[^%^]") do
		-- Subtract the color code characters from the display length
		textDisplayLength = textDisplayLength - string.len(colorCode)
	end

	return textDisplayLength
end

function makeLine(character, length)
	-- Initialize the line string
	local line = ""

	-- Add characters until the string is as long as specified
	for i = 1, length do
		line = line .. character
	end

	-- Return the print line
	return line
end

function trim(s, side)
	-- Initialize the number of spaces removed to 0
	local i = 0

	-- If the right side was not specified
	if side ~= 'r' then
		-- While there are spaces at the beginning of the string
		while string.find(s, "^%s") do
			-- Remove the first space and increment counter
			s = string.gsub(s, "^%s", "")
			i = i + 1
		end
	end

	-- If the left side was not specified
	if side ~= 'l' then
		-- While there are spaces at the end of the string
		while string.find(s, "%s$") do
			-- Remove the last space and increment counter
			s = string.gsub(s, "%s$", "")
			i = i + 1
		end
	end

	-- Return the trimmed string and the amount of spaces removed
	return s, i
end

function printETLine(clientNum, text)
	-- Print the specified text into the specified client's console
    if clientNum ~= "[i]" then
        et.trap_SendServerCommand(clientNum, 'print "' .. text .. '\n"')
    else 
        et.G_Print( text )
    end
end

function printMessage(clientNum, text, messageType)
	-- Print the specified text into the specified client's console
    if clientNum ~= "[i]" then
        et.trap_SendServerCommand(clientNum, messageType .. ' "' .. text .. '"')
    else
        et.G_Print( text )
    end
end

Then playsound.lua contains the command implementation

require("formatting")

-- Initialize a table to hold all possible sounds
soundTable = {}

-- Initialize a table to hold all players playsound cvar values
playsoundCvarTable = {}

function et_InitGame(levelTime, randomSeed, restart)
	-- Read sounds into soundTable
	local configFile, length = et.trap_FS_FOpenFile("playsound.cfg", et.FS_READ)

	-- If there were no errors opening the file
	if length ~= -1 then
		-- Read data from config file and close it
		local soundData = et.trap_FS_Read(configFile, length)
		et.trap_FS_FCloseFile(configFile)

		-- For each sound block in config file
		for soundBlock in string.gmatch(soundData, "[%w%-_]+[%s\n\r]+%b{}") do

			-- Get the sound command name
			local sound = string.match(soundBlock, "[%w%-_]+")

			-- Initialize parameter table for the sound command
			local soundParameterTable = {}

			-- Get level required from the sound block
			soundParameterTable["level"] = tonumber(string.sub(string.match(soundBlock, "level:[%d_]+"), 7))

			-- Get a list of sound filenames from the sound block
			local soundFilenameList = {}
			for soundFilenameLine in string.gmatch(soundBlock, "sound:[%w%-_]+.wav") do
				local soundFilename = string.sub(soundFilenameLine, 7)
				table.insert(soundFilenameList, soundFilename)
			end
			soundParameterTable["sounds"] = soundFilenameList

			-- Add the sound parameters to the sound table
			soundTable[string.lower(sound)] = soundParameterTable
		end
	end
end

function et_CvarValue(clientNum, cvar, value)
	-- Add the cvar value to the script cvar table
	playsoundCvarTable[clientNum][cvar] = value
end

function et_ClientConnect(clientNum, firstTime, isBot)
	-- Querry server to get cvar value
	et.G_QueryClientCvar(clientNum, "playsound_method")

	-- Initialize the playsound_method cvar to nil since we do not know the value yet
	local clientCvarValueTable = {}

	-- Add client to the cvar table
	playsoundCvarTable[clientNum] = clientCvarValueTable

	-- Return nil to indicate that the player was not rejected by this function
	return nil
end

function et_ClientDisconnect(clientNum)
	-- Remove the player from the playsound cvar table
	playsoundCvarTable[clientNum] = nil
end


function et_ConsoleCommand(command)
	-- If client executed play command from console
	if string.lower(et.trap_Argv(0)) == "play" then

		-- If there were at least 3 parameters (including command name)
		if et.trap_Argc() >= 3 then

			-- Get client's admin level
            local clientNum=0
            local clientLevel=0        
            if et.trap_Argv(1) == "[i]" then
                -- When CONSOLE executes this command, there is no clientNum.  So we force the value to 50
                -- Avoids a server crash, which is always good :)
                clientLevel = 50
            else
                clientNum = et.trap_Argv(1)
                clientLevel = et.G_shrubbot_level(clientNum)
            end            

			-- Get sound client passed as a parameter
			local sound = et.trap_Argv(2)

			-- Get the parameter table for the requested sound
			local soundParameterTable = soundTable[string.lower(sound)]

			-- If the sound exists
			if soundParameterTable then

				-- Get the level required to play the sound
				local level = soundParameterTable["level"]
				
				-- If the client has high enough level
				if clientLevel >= level then

					-- Choose a random sound from the parameters
					local soundFilename = soundParameterTable["sounds"][math.random(# soundParameterTable["sounds"])]

					-- -- Play the sound
					-- local soundPath = "sound/playsound/" .. soundFilename
					-- -- et.trap_SendConsoleCommand(et.EXEC_NOW, soundCommand)
					-- et.G_globalSound(soundPath)

					-- Loop through the clients and play sound based on their cvar playsound_method
					for slot, clientCvarValueTable in pairs(playsoundCvarTable) do
						local playsoundMethod = clientCvarValueTable["playsound_method"] or "sound"
						if playsoundMethod == "sound" then
							-- Play the sound for the client
							local soundPath = "sound/playsound/" .. soundFilename
							local soundIndex = et.G_SoundIndex(soundPath)
							et.G_ClientSound(slot, soundIndex)
						end
						if playsoundMethod == "text" then

							local soundText = soundParameterTable["text"]
							-- Send message to the client showing the text version of the sound command
							printETLine(slot, soundText)
							printETLine(slot, "test")
						end
					end

				else
					-- Otherwise warn client that they do not have high enough level
					printETLine(clientNum, "^oplay: ^7Permission denied")
				end
			else
				-- Otherwise inform client that the sound doesn't exist
				printETLine(clientNum, "^oplay: ^7The sound you specified does not exist")
			end

		else
			-- Otherwise inform client that they need to specify a sound name
			printETLine(clientNum, "^oplay: ^7You must specify a sound name")
		end

		-- Return 1 to indicate that the command was handled by this function
		return 1
	end

	if string.lower(et.trap_Argv(0)) == "listsounds" then

		-- Initialize display variables
		local columnSeparator = " "
		local lineCharacter = '-'
		local borderColor = '9'
		local textColor = 'f'
		local columnWidth = 12
		local numberColumns = 6

        -- Get client's admin level
        local clientNum=0
        local clientLevel=0        
        if et.trap_Argv(1) == "[i]" then
            -- When CONSOLE executes this command, there is no clientNum.  So we force the value to 50
            -- Avoids a server crash, which is always good :)
            clientLevel = 50
        else
            clientNum = et.trap_Argv(1)
            clientLevel = et.G_shrubbot_level(clientNum)
        end   

		-- Create a table to hold sounds available to the client
		local playerSoundTable = {}

		-- For each sound in the sound table
		for sound, parameterTable in pairs(soundTable) do
			-- If the client has high enough level
			if clientLevel >= parameterTable['level'] then
				-- Add sound to player sound table
				table.insert(playerSoundTable, sound)
			end
		end

		-- Sort player sound table in alphebetical order
		table.sort(playerSoundTable)

		-- Get number of characters that would be removed from the trimmed separator
		local trimmedSeparator, charactersRemoved = trim(columnSeparator)

		-- Determine line length based on number of columns, column width, and the separator display length
		local lineLength = (columnWidth * numberColumns) + (displayLength(columnSeparator) * (numberColumns + 1)) - charactersRemoved

		-- Print a line to act as the top border of the chart
		-- printETLine(clientNum, colorString(makeLine(lineCharacter, lineLength), borderColor))

		-- While there are sounds in the player sound table
		while # playerSoundTable > 0 do

			-- Initialize line holding sound names
			local soundsLine = colorString(trim(columnSeparator, 'l'), borderColor)

			-- For each column
			for i = 1, numberColumns do
				-- Add the sound from the beginning of the list
				soundsLine = soundsLine .. makeDisplayString(playerSoundTable[1] or '', textColor, columnWidth, "left")

				-- If this is not the last column
				if i < numberColumns then
					-- Add a separator (column border)
					soundsLine = soundsLine .. colorString(columnSeparator, borderColor)
				else
					-- Otherwise add a separator with the right side trimmed
					soundsLine = soundsLine .. colorString(trim(columnSeparator, 'r'), borderColor)
				end

				-- Remove first sound from the beginning of the table
				table.remove(playerSoundTable, 1)
			end

			-- Print the sound line followed by a border line
			printETLine(clientNum, soundsLine)
			-- printETLine(clientNum, colorString(makeLine(lineCharacter, lineLength), borderColor))
		end

		-- Return 1 to indicate that the command was handled by this function
		return 1
	end

	-- Return 0 to pass any command for standard et processing
	return 0
end

There is some stuff in here about having clients opt out of the sounds, but I don't think it was ever finished nor does it work AFAIK.    But take them as-is if you like.

 

Next, the format of the playsound.cfg file is this:

wewin
{
	level:1
	sound:the_game.wav
}
...

So you've got the command (as in !play wewin), the minimum shrubbot level required to use the sound (note all higher levels can use it), then the sound file name itself.   The sound file must be in 'sound/playsound/'  in your pk3 file, or else you can change the path coded in the playsound.lua file.  But this way, you can just edit playsound.cfg to add your sounds, the command string and level required to run it.   No end to the amount of sounds you can have.

 

Next, define the commands in your shrubbot.cfg file:

[command]
command  = ^bplay
exec     = play [i] [1]
desc     = Play a sound
syntax   = 
levels   = 0 1 2 3 4 5 

[command]
command  = ^blistsounds
exec     = listsounds [i]
desc     = List all sounds
syntax   = 
levels   = 0 1 2 3 4 5

Finally, be sure to include the LUA scripts in your et config files:

set lua_modules "playsound.lua"



#12300 BACKUPS

Posted by clan DIABOLIK on 20 October 2013 - 09:46 AM

Thanks a lot @all for your support, nice from you  

 

 

If they deleted your data they would be very foolish.. 

I'm afraid it is the case, they just propose to make a new command for another VPS, I learn here the term 'foolish' ...

This stupid company is: http://qualityserv.fr/  :ph34r:  I remember when I was at http://dediserverhosting.com/ it was zero problem !

 

 

I don't have the courage to build another one...

I found the courage, now I tune a @home server  to get the same settings as the original one, g_mode+g_weapons+g_misc make 90% of the server; cool !

In few days, a good BACKUP <_<  and will upload on another VPS

 

Bye all !




#12245 g_shuffle_staytime or something?

Posted by Sol on 12 October 2013 - 12:02 AM

MINIMAL_LEVEL_TOEXECUTE	= 20			-- minimal level to execute this command
SHUFFLE_COMMAND			= "!shuffle"	-- shuffle command
SHUFFLE_AFTERTIME		= 5*60			-- 5min

Client = { }

function et_InitGame( levelTime, randomSeed, restart ) 
	maxclients = et.trap_Cvar_Get( "sv_maxclients" ) 
end

function et_ClientCommand( num, cmd )
	local arg0 = string.lower(cmd)
	local arg1 = string.lower(et.trap_Argv(1))
	
	if et.G_shrubbot_level( num ) >= MINIMAL_LEVEL_TOEXECUTE and arg0 == SHUFFLE_COMMAND or arg1 == SHUFFLE_COMMAND then
		StartTime = os.time()
		for i = 0, maxclients - 1 do
			local team = et.gentity_get(i, "sess.sessionTeam")
			if team ~= 3 then
				Client[i] = team
			end
		end
		return true	-- let execute it
	end
	
	if arg0 == "team" and StartTime ~= nil then
		if arg1 == "b" then
			if os.time() >= (StartTime + SHUFFLE_AFTERTIME) and Client[num] == 1 then
				return false
			end
		elseif arg1 == "r" then
			if os.time() >= (StartTime + SHUFFLE_AFTERTIME) and Client[num] == 2 then
				return false
			end
		end
	end
end

It is just concept but it should works, in this case they won't be able to change to ->spec-> another team too




#12192 silEnT release 0.8.0

Posted by TheSilencerPL on 05 October 2013 - 05:12 PM

silEnT mod version 0.8.0 is out!

Information (Oct 06 2013 12:25 PM)
Before you read below, we would like to inform you that there's been a 0.8.0 server patch created for 0.8.0 version.
Download attachment: silent_0.8.0_server_patch.zip
It fixes 1 defect that somehow slept into the release version, that is classes other than soldier could receive Improvised Demolition with the ammo pack.
All of you who downloaded 0.8.0 before this information are advised to use this patch or download the full package again - it has been fixed already.
We apologize for this small inconvenience.

Download

Change log:

Version 0.8.0

Added: silEnT AntiCheat, this is an old feature existing several versions in the mod, that is now made public. Control the behaviour with g_silentac.
Added: New read only cvar, sv_sac. When silEnT AC is set to autoban, this cvar is set. This cvar can be used by external server trackers to enable/disable server anti cheat status on their lists.
Added: New Lua hook et_IntermissionStarts( round ). This hook is called right before the intermission. So that any changes to the cvars in the script, will take effect before the actual intermission. Do note that this will not run in the background and the script will need to exit fast just like always during the game.
Added: New g_logOptions flag 16384. When this flag is set, the admin log will use new format.
Added: minimizer, so far for linux only (minimize via menu or /minimize command).
Added: new weapon for Soldier: Improvised Demolition Charge (g_enableDemolition cvar).
Added: g_recognition cvar to enable/disable additional recognition notifications for players doing objective.
Added: !country command that displays the country of the player.
Added: g_muteRename cvar which, if enabled (set to 1), doesn't allow the muted player to change his name.
Added: cg_debugBullets. In combination with g_debugBullets, it can be used to visually test the antilag.
Improved: UI - items selected by keyboard (TAB, arrows) drawn as hovered, now we know which one has focus.
Improved: danger zone marker size based on the map size.
Fixed: Distorted player icon in map when in spectator and wide screen aspect ratio.
Fixed: Player scoreboard no longer displays 0.000 to PRW or KR when server doesn't have those enabled but the client cg_scoreboard cvar is set to show those.
Fixed: XP save doesn't need to be enabled to save mutes, weapon statistic, KR or PRW.
Fixed: Wrong compass grid and map position with widescreen.
Fixed: Antilag issue regarding Omni-bots. The Omni-bot hitboxes were not in the place where the players saw the bots while running.
Fixed: Last blood message was not printed if the client number of the player who made the last kill was 0.
Fixed: MG42 will not make headshots unless enabled.
Fixed: Many typos regarding log prints on reading different config files.
Fixed: Announcement positions for custom max values.
Fixed: osp fight sound not played fully (if the sound is longer).
Fixed: Memory leak in Lua et.trap_FS_Read.
Fixed: panzerwar bugs: 1) g_maxPanzerScuicides behavior, 2) weapon charge bar behavior, 3) panzerfaust auto switching to nades after couple fires
Fixed: giba minor bug (did not gib players that were protected by g_spawnInvul)
Fixed: Panzerwar and sniperwar no longer lose original weapon values when map changes.
Fixed: Missing head box when g_debugBullets is 3 or higher.
Fixed: Fixed no_ammo icon shown for binoculars (g_weapons, flag 8192)
Fixed: riflewar bug with animation of grenade being unloaded after each shot.
Fixed: Very rare client crash.

Download

Enjoy!

silEnT mod team

Click here to view the article


#11807 EA titles on Humble Bundle

Posted by Dragonji on 15 August 2013 - 12:07 AM

"Pay what you want for epic games on Origin. Support charity."
 
https://www.humblebundle.com/
 
8 triumphant games. Pay what you want and get the terrifying sci-fi horror third person shooter Dead Space 3; the original bone-chilling horror shooter Dead Space; the intense action-packed supersoldier shooter Crysis 2 Maximum Edition; the high speed open-world crash happy racer Burnout Paradise: The Ultimate Box; the authentic modern warfare sim Medal of Honor; and the first person parkour thrill ride Mirror's Edge. Pay over the average and receive the beloved life sim The Sims 3 (along with two expansion packs in The Sims 3 Starter Pack) and the unrivaled military shooter Battlefield 3.
 

Fire it up on Origin. Buying the Humble Origin Bundle gets you the games to play on Windows through Origin (system requirements here), with The Sims 3 also available on Mac! Electronic Arts has also provided Steam keys for some of the games (full list here)!
 

Pay what you want. On their own, all these mind-blowing titles would cost about $215, but we're letting you name your price! Pay any price to get soundtracks for The Sims 3 and Battlefield 3. A purchase of $1 or more gets you Origin* keys for all the games, and you can also get Steam keys for Dead Space, Crysis 2 Maximum Edition, Burnout Paradise: The Ultimate Box, Medal of Honor, and Mirror's Edge! Beat the average to also get The Sims 3, two expansion packs in The Sims 3 Starter Pack, and Battlefield 3.
 
This offer ends on 28.08.2013 (if I am correct :P)




#10910 Spec Command - Enemy Territory LUA

Posted by Geo on 03 April 2013 - 02:55 PM

File Name: Spec Command

File Submitter: Arcane

File Submitted: 03 Apr 2013

File Category: LUA

Spec Command lua script which works as a shrubbot command. An alternative for the console command "follow".

To install:

You need to unzip the file and extract the spec.lua file
Upload this file into the silent folder on server (/serverip/silent)
In server.cfg cvar: lua_modules "spec.lua"
In shrubbot.cfg add the shrubbot command information from inside Readme.txt

Click here to download this file




#18357 Spectators ET closes itself

Posted by Purple on 31 May 2015 - 05:43 AM

Sorry for shit quality but yeah, 




#17585 Simple lua protection

Posted by gaoesa on 09 March 2015 - 11:33 AM

For silEnT mod, the mod built admin level protection (http://mygamingtalk....adminProtection) works both reliably and with less inconvenience than this.




#11984 Thank you!

Posted by Antichrist on 15 September 2013 - 03:35 PM

The new changes to the SilentAC system are amazing, and take even more work off admins, giving us more play time. 

 

It is MUCH appreciated!

 

Silent has by far exceeded every expectation I've ever had from a mod. I've played EtPub for years, and when Silent was going to release ETPub, I was a little nervous at first, but It has done nothing but good things for our servers.

 

I've always been a creature of habit, and hate changes to what I'm used to, but I actually get excited when I hear about a new Silent release. All the features and changes I see are always an improvement over the previous release.

 

Thank you all, keep up the great work!!