User:Luk4ward

From WolfWiki

acpro2.1.png

Contents

Contact



About


I have put some stuff which are available for public, the rest you can see @ those servers:

  • ET.GamesNet.pl OBJective Cmpgn [ /connect 193.33.34.11:27965 ]
    • -- *) killer's hp mod created by Phenomenon modified by Luk4ward & McSteve
    • -- *) shield mod created by Nappy
    • -- *) /kill mod created by Infty modified by Luk4ward & McSteve
    • -- *) clients' commands and votes mod created by Hadr0 modified by Luk4ward
    • -- *) auto-spec999 mod created by Clutch152 modified by Luk4ward
    • -- *) !punish & !kill mod created by =FF=im2good4u modified by Deus & Luk4ward
    • -- *) funny warmup created by McSteve modified by Luk4ward
    • -- *) enhanced PM system based on ID mod (via rcon also) from KMOD created by Clutch152 modified by Luk4ward
    • -- *) playsound clientnum soundfile plugin created by Phenomenon
    • -- *) ACpro 2.1 mod (see below) by Luk4ward
  • ET.GamesNet.pl TeamDeathMatch Cmpgn [ /connect 193.33.34.15:27960 ]
    • -- *) killer's hp mod created by Phenomenon modified by Luk4ward
    • -- *) clients' commands and votes mod created by Hadr0 modified by Luk4ward
    • -- *) auto-spec999 mod created by Clutch152 modified by Luk4ward
    • -- *) !punish & !kill mod created by =FF=im2good4u modified by Deus & Luk4ward
    • -- *) funny warmup mod created by McSteve modified by Luk4ward
    • -- *) enhanced PM system based on ID mod (via rcon also) from KMOD created by Clutch152 modified by Luk4ward
    • -- *) playsound clientnum soundfile plugin created by Phenomenon
    • -- *) ACpro 2.1 mod (see below) by Luk4ward
  • u|k. public server 3.2.6_2.60b [ /connect 83.142.226.97:29023 ]
    • -- *) killer's hp mod created by Phenomenon modified by Luk4ward
    • -- *) ACpro 2.1 mod (see below) by Luk4ward


All server got modified etadmin mod which includes fixes and some other custom things, even individual pk3 files !

More servers with this mod:

[ N e X u S ] ET - 01 - [ETPro 3.2.6]: /connect 137.224.240.8:27960
[ N e X u S ] ET - 03 - [ETPro 3.2.6]: /connect 137.224.240.16:27960

G4@UPC.[PL]: /connect 81.18.192.11:27960
G5@UPC.[PL]: /connect 81.18.192.12:27960

#et-merc.fr + FunZone: /connect 91.121.74.154:27960

ETpro lua scripts


>> Download ACpro 2.1 mod <<


>> Screenies of ACpro 2.1 mod <<



ftp_dir.gif

23:57:21:> lua_status
---------------------
etpro: Loaded lua scripts
VM Modname                  Signature                                Filename
-- ------------------------ ---------------------------------------- ------------------------
01 ACpro:2.1slot:1          A9CE3267322FB4990329EDDEA53B10A6B9174B78 ac2pro.lua
-- ------------------------ ---------------------------------------- ------------------------
  • rcon:


rcon_ac2pro.gif
rule10.gif

This Plugin / Mod / Script includes Reyalp' fixes and such mods:



rule10.gif

  1. Notes:
    • cl_guid is spoofable so keep this data secured !
    • tested on 2.60b server using etpro 3.2.6 and etadmin mod
    • you have to get the write/read rights inside your etpro folder


rule10.gif

Logging & checking data of players


rule10.gif


acpro_logs.gif

Separated file logs
  • ok_eguids.log -> logging all passed etpro guids in format:
[ EGUID ] @ DATE 2008 from IP [ nick ]
  • bad_guids.log -> logging all refused guids (includes checking cl_guid !!!), REAL examples:
[ OpensourcePowa ] @ Sun Mar  9 11:56:05 2008 from 84.95.125.101:62733 [ HUHUH??? ]
[ 256624374273789392012475FUFUFUFU ] @ Wed Mar 19 10:39:52 2008 from 80.54.117.13:27960 [ Corky ]
[ UNKNOWN ] @ Sat Mar 29 20:47:48 2008 from 87.105.54.61:27960 [ Grim ]
[ CHEATERS_ALWAYS_WIN_LOLOLOLOLOLOLOLOLOLO ] @ Sat Mar 29 23:16:49 2008 from 90.213.91.116:27960 [ downloaded5kill ]
[TahBambucha] @ Sun Apr 27 23:33:19 2008 from 201.15.159.39:50200 [ mx.ETTV-1 ]

example output to etconsole.log:

etpro IAC: 4 GUID [ EGUID ] [ ETPRO_PLAYER ]
guidcheck: 4) client ETPRO_PLAYER from IP got ok eGUID: EGUID more info @ logs/ok_eguids.log 

Guids' logging and filenames are up to Admin !

log_badguids = true -- includes cl_guid
log_okeguids = true -- only eguids

logfile_badguids = "logs/bad_guids.log"
logfile_okeguids = "logs/ok_eguids.log"

-- check file logfile_badguids for the names, date and IPs of people with spoofed guids (cl_guids and etpro guids)
-- check file okeguids for the names, date and IPs of people with ok etpro guids (no etadmin format)
  • not/accepted_players.log & players.log include data of connecting players in format:
    • name
    • cl_guid
    • yawn link
    • ip
    • date
[Data logged/[Guid NOT/accepted from banned IP] @ Wed Nov 28 19:09:35 2007] (depends on condition)
	name    = player
	guid    = GUIDGUIDGUIDGUIDGUIDGUIDGUIDGUID
	yawn    = http://www.yawn.be/findPlayer.yawn?gamecode=ET&pbGuid=GUIDGUID
	ip      = 123.456.789.0
	reason  = data logged
	made    = 11/28/07 19:09:35
	expires = 0
	banner  = admin

example output to etconsole.log:

Client 7 connecting with 50 challenge ping
filtercheck: client 4 cnt 1st time @ Mon Apr 14 18:57:37 2008
running script for client 4 @ Mon Apr 14 18:57:37 2008
filtercheck: mode 2
filtercheck: opening ipbans/83_25_.dat
filtercheck: closing ipbans/83_25_.dat
filtercheck: client 4 ok, more info @ logs/players.log !
Checking userinfo
  • How to check player userinfo via Reyalp script modified by me:
19:38:57:> checkuserinfo
------------------------
Usage: checkuserinfo [etpro id]

rcon_checkuserinfo.gif

  • An option to ignore server administration by most modules of this script! You just have to type the tag (min length 3), but its recommended only if u got protected tag on the server !

Remember script will check a player while connecting and then while his userinfo is changed. Reyalp added also an option to check every x seconds one by one every player, but u can disable it via this script and use rcon command !


rule10.gif

players module


rule10.gif


ingame_players.gif

in game

Showing after typing /players :

  • Punkbuster IDs
  • Punkbuster GUIDs (last 8 digits from cl_guid)
  • IP (3 parts of IP)
  • Team (team and spawnpoint)
  • ETpro ID
  • Cut names (u can set the amount)
  • State of player (blank / REF or PRV / muted)
  • Optional
  • You can easily set the notes and warns !
ID                 Player                           PBid       PBguid            Team                 IP     
    name of player & STATE: blank/REF or PRV/muted         last 8 parts    team & spawnpoint    3 parts of IP

                                            Counted players 

 Notes and warning about players' data
via rcon


  • Admin can see players via rcon, just type:
players

and you will see this:
rcon_players.gif


rule10.gif

Name module


rule10.gif

name change
  • You can set after how many times player can change his nick, after the limit it will restore to the default one and info with his ID will be shown to everyone

rename_limit.gif

  • You can set the kick name limit of player trying to change the name after reaching the name change limit

renames.gif

name length
  • You can also set min and max length of allowed nicknames (length will not count spaces and color codes !)

badname_len.gif

bad names
  • You can set bad names, by default script will check for Reyalp's bad names, english & polish bad names and for random bad nicks

badname.gif

  • And also for extra carat char, which looks like this: ^

extra_carat.gif

  • Fixed ETADMIN MOD exploit which allow the attacker to get same level using prepared nick of victim (version 2.1)


rcon cmds
  • Script also gives u new rcon rename commands
19:33:40:> rename
-----------------
Usage: rename ID newnick
Example#1 (to clean the nick): rename ID clean
Example#2 (to cut the nick): rename ID cutnick

rcon_rename.gif

    • In game looks like this

ingame_rename.gif clean_name.gif

Anti-highping mod


rule10.gif

  • This module allows admin to put on spec players with specified ping
20:00:19:> ping2spec
--------------------
Usage: ping2spec [ ping >0 ]

ingame_ping2spec.gif rcon_ping2spec.gif


rule10.gif

Exec files depends on warmup time or playing time


rule10.gif

  • This module is to exec for example pb_agressive.cfg on warmup (with info @ cpm) and pb_normal.cfg while playing
  • Files can be edited
  • Optional mod


rule10.gif

Date&time module


rule10.gif

  • This module will log into your log files data and time so u will know when the map starts etc.


fixed_gamedate.gif

  • It also set every day a new etserver log with the date


etserver_logs.gif

rule10.gif

Banmask with exceptions


rule10.gif


howitworks.gif

  • ACpro ver 2.1 gives u the avability to change the Filter Mode:
-- mode 1 will check against the first part of IP (like 83.)
-- mode 2 will check against the first two parts of IP (like 83.60.)
-- mode 4 will check against the first part of IP (like 83.)
--             and allow to join only from the added players of your added FilterMasks
--             example:
--             1) player from 1.2.3.4 is connecting
--             2) script not found a filename [1_.dat] from ipbans/ with his IP
--	       3) script refused entry
--             4) admin is adding FilterMask for ip 1.2.3.4 via rcon
--             5) player from 1.2.3.4 is connecting
--             6) script not found his GUID in the filename [1_.dat] from ipbans/ of his IP
--             7) script refused entry
--             8) admin is adding his guid for ip 1.2.3.4 via rcon
--             9) player from 1.2.3.4 is connecting
--             10) script found his GUID in the filename [1_.dat] from ipbans/ of his IP
--             11) script allowed to join the sever
  • #1 It's checking if the part/s of IP of connecting player matched with the names of files in the ipbans/

if #1 is true then compare his guid with the guids inside the file if the guid wasnt found then script will kick a player
if #1 is false then allow player to join the server [ mode 1,2 ] or kick not recognized IP [ mode 4 ]

  • For every condition script will get the data of connecting player (his name, cl_guid, etpro guid, ip and date -> see part about Logging data of players)

There are 3 ways how to manage those bans (rcon, ftp, etadmin), the HOW TO under is based on mode 2 but it looks the same for other (you just have to change filenames to one part of IP for 1,4 modes) ! Modes 1,2 are for public server, but mode 4 is for leagues' or private servers because it will allow to join only specified players.


rule10.gif

#1st way via rcon:


rule10.gif


rcon_add.gif

20:07:30:> add
--------------
Examples depend on filter_mode [activated: 2] -> enter 2 first parts of IP (with 2 dots: one after each number) !

Usage:     add             cl_guid                 nick        ip           by
Example#1: add GUIDGUIDGUIDGUIDGUIDGUIDGUIDGUID clean_player 83.100.      admin
Example#2: add GuidGuidGUIDGUIDGUIDGuidGUIDGUID clean_player 83.100.123.  admin
Example#3: add GUIDGUIDGUIDGUIDGUIDGUIDGUIDGUID clean_player 83.100.100.5 admin

Usage:     add mask cheater     ip        by
Example#1: add mask cheater 83.100.      admin
Example#2: add mask cheater 83.100.123.  admin
Example#3: add mask cheater 83.100.100.5 admin


rule10.gif

#2nd way via ftp:


rule10.gif


ftp_2.gif

  1. how to ban 83.100:
    • create a file 83_100_.dat
    • copy to ipbans/
    • the end ! you can add comments by using #, example:
   # Banmask for banned IP 83.100.100.5 of cheater @ Wed Nov 28 16:48:11 2007 created by admin !
   #             cl_guid           =nick     @ Wed Nov 28 16:48:11 2007 by admin
   
  1. how to add exception:
    • open file 83_100.dat and add new line:
   GUIDGUIDGUIDGUIDGUIDGUIDGUIDGUID=luk4ward @ Wed Nov 28 16:45:09 2007 by admin
   


rule10.gif

#3rd way via etadmin mod:


rule10.gif


etadmin.gif

  • edit etc/etadmin.cfg
  • find:
* IP Bans (works with all (etmain, etpro, shrub):
  • after commands add:
addguid = add <PART2GUID> <PART2NAME> <PART2IP> <PLAYER>
addmask = add mask <PART2NAME> <PART2IP> <PLAYER>
  • find where x is the highest level:
# Level x
    • and add:
x       = addguid, addmask
  • Usage in game:
/m mynick !addguid id/part2nick_of_clean_player
/m mynick !addmask id/part2nick_of_cheater
  • Notes:

You can use those commands only when a target is on the server or is connecting to the server !

Php scripts

VSP stats fixes

>> Stop full punkbuster guids from being displayed <<


ETadmin mod hacks

Min guid age


  • Hack for fixing min guid age in etadmin mod which was propably not working because of punkbuster updates
  • Tested on etpro 3.2.6, etadmin mod 0.29, ET 2.60b, latest punkbuster version with:
    • pb_sv_cvarlogging 1
    • pb_sv_cvarwalk 1
    • PB_SV_CvarChangedPulse 90
    • pb_sv_cvaruserpulse 90


rule10.gif

Instructions


rule10.gif

  • Previously it was searching for line:
ET PB Server: [From #3 bb78(VALID:324) ^7[^4d1p^7]^1H. ^3Potter] My gl C:\WINNT\system32\opengl32.dll size=692496 md5=81BF9FD76F2D1EE684FFDA1CA1C666AE

And parsing the data like slot of the player and the age of guid. I searched in my 4 mb log for such line and there was only 1 line ! I think becuase of pb updates, nvm. The next step was to find any other lines with the (valid: x) phrase, so there are 3 lines:

^3PunkBuster Server: Lost Connection (slot #3) 83.x.x.x:27960  pbguid(VALID:3) balduran^0! -> after a map
^3PunkBuster Server: [From #9 a9ea(VALID:397) soul] cg_etVersion = "ET Pro, ET 2.60" -> enabled pb_sv_cvarwalk x [0>x<5]
  • So You have to enable punkbuster cvar searching and logging into your game log by using those commands:
PB_SV_CvarChangedPulse [Number]
The number of minutes (default is 99 which means disabled) between automatic sends of the CVARCHANGED command described in the command section above
PB_SV_CvarUserPulse [Number]
The number of minutes (default is 99 which means disabled) between automatic sends of the CVARUSER command described in the command section above
  • Remember to set pb_sv_cvarlogging to 1 (creating .log) or 3 (creating .log and .var)
  • Remember to set pb_sv_cvarwalk [from 1 to 4] OR PB_SV_CvarChangedPulse or pb_sv_cvaruserpulse [from 10 to 90]
  • Now hack your etadmin mod, to do this open etadmin_mod.pl
  • Find:
elsif ( $config{'minguidage'} && index( $line, "$config{'pb_sv_msgprefix'}: [From " ) == 0 )
    {

#ET PB Server: [From #6 e9a9(VALID:153) ^4[^jbd^4] S^1cow^4L] My gl G:\WINDOWS\System32\opengl32.dll size=685568 md5=11CC241BEE030FC2982413A59E6E32B7
#ET PB Server: [From #3 bb78(VALID:324) ^7[^4d1p^7]^1H. ^3Potter] My gl C:\WINNT\system32\opengl32.dll size=692496 md5=81BF9FD76F2D1EE684FFDA1CA1C666AE

        $line =~ /: \[From \#(\d+) .{4}\(VALID:(\d+)\)(.*) My gl /i;

        # The age is the (days +1)
        my $age = $2 - 1;
        my $id  = $1 - 1;
        next if ( $age < 0 || $id < 0 );

        my $pb_id = $1;
        my $name = &convert_name( $tmphash{$id}{'name'}, 0, 0 );
        &log("Checking KEY AGE: Slot: $id($name), KeyAge: $age");
        if ( $config{'minguidage'} > $age )
        {
            &say(   $tmphash{$id}{'name'}
                  . "^7 has a GUID, that is only ^3"
                  . $age
                  . "^7 days old. Server refused entry!" );
            &cmd(   "pb_sv_kick $pb_id 5 \"Your GUID is too new. Try again in "
                  . ( $config{'minguidage'} - $age )
                  . " days\"" );
            &disconnect( $pb_id - 1, $pb_id );
        }
    }
  • Replace whole block of code with this:
# old: ET PB Server: [From #3 bb78(VALID:324) ^7[^4d1p^7]^1H. ^3Potter] My gl C:\WINNT\system32\opengl32.dll size=692496 md5=81BF9FD76F2D1EE684FFDA1CA1C666AE
# $line =~ /: \[From \#(\d+) .{4}\(VALID:(\d+)\)(.*) My gl /i;
#^3PunkBuster Server: [From #9 a9ea(VALID:397) soul] cg_etVersion = "ET Pro, ET 2.60" -> enabled pb_sv_cvarwalk from 1 to 4
#^3PunkBuster Server: [From #9 a9ea(VALID:397) soul] "cg_etVersion" "cg_uinfo" "ui_connecting" "cl_guid" "cl_motdString" "gamestate" -> enabled PB_SV_CvarChangedPulse or pb_sv_cvaruserpulse from 10 to 90
# Remember to set pb_sv_cvarlogging to 1 or 3 !
#
# Code modified by Luk4ward based on Tommy100 modification

elsif ( $config{'minguidage'} && index( $line, "$config{'pb_sv_msgprefix'}: [From " ) == 0 )
    {

    $line =~ /: \[From \#(\d+) .{4}\(VALID:(\d+)\)(.*) /i;
    
              # The age is the (days +1)
        my $age = $2 - 1;
        my $id  = $1 - 1;
        next if ( $age < 0 || $id < 0 );

        my $pb_id = $1;
        my $name = &convert_name( $tmphash{$id}{'name'}, 0, 0 );
        #now etadmin will be checking if the guy is already kicked or not
        #if the name isnt empty (so hes on server) then i ll kick him out with his new guid
        if ( $name ne "" )
        {
        if ( $config{'minguidage'} > $age )
        {
        &log("Checking KEY AGE: Slot: $id($name), KeyAge: $age");
            &say(   $tmphash{$id}{'name'}
                  . "^7 has a GUID, that is only ^3"
                  . $age
                  . "^7 days old. Server refused entry!" );
            &cmd(   "pb_sv_kick $pb_id 1440 \"Your GUID is too new. Try again in "
                  . ( $config{'minguidage'} - $age )
                  . " days\"" );
            &disconnect( $pb_id - 1, $pb_id );
        }
      }          
    }
  • Result in game:
[17:45:15] qsay "WPX has a GUID, that is only 5 days old. Server refused entry!"
[17:45:16] pb_sv_kick 20 5 "Your GUID is too new. Try again in 9 days"

Thanks to Tommy100 from PsB

Programms

soon