Jump to content

Purple

Members
  • Posts

    148
  • Joined

  • Last visited

  • Days Won

    28

Reputation Activity

  1. Like
    Purple got a reaction from blackknight8653 in Question on XPSave on silent   
    I used to have a php script for it (ask schnoog? (dont remember his name)) that was given to me. anyways if you look inside the etlegacy source you can see how its done.
     
    Go here https://github.com/etlegacy/etlegacy/blob/master/src/client/cl_main.c
     
    and you'll see this 
    /** * @brief Update cl_guid using #ETKEY_FILE */ static void CL_UpdateGUID(void) { fileHandle_t f; int len; len = FS_SV_FOpenFileRead(BASEGAME "/" ETKEY_FILE, &f); FS_FCloseFile(f); if (len < ETKEY_SIZE) { Com_Printf(S_COLOR_RED "ERROR: Could not set etkey (size mismatch).\n"); Cvar_Set("cl_guid", ""); } else { char *guid = Com_MD5FileETCompat(ETKEY_FILE); if (guid) { Cvar_Set("cl_guid", guid); } } } Here you can see how they check for a guid in the dir and if its not there generate one.
     
    also information in the header where the size and name is defined
     https://github.com/etlegacy/etlegacy/blob/master/src/client/client.h
    #define ETKEY_FILE "etkey" #define ETKEY_SIZE 28 but where most of the real magic happens for the acutal generating part is in md5.c
    https://github.com/etlegacy/etlegacy/blob/159c4169fdcd6a2f80317a796514eb7d43c1b3c5/src/qcommon/md5.c
     
    and if i'm correct this is the main peice where the actual generating happens ofc there is more to it then just this but you should get the point.
    char *Com_MD5FileETCompat(const char *filename) { char key[19] = { 0 }; char *buffer; int len; len = FS_ReadFile(filename, ( void ** ) &buffer); if (buffer) { if (len >= 28) { int i; for (i = 0; i < 18; i++) { key[i] = buffer[i + 10]; } FS_FreeFile(buffer); return CalculateGUID(key); } } return NULL; } and if you don't understand the language just backtrack it afaik next stop > CalcluateGUID() and so on
     
    I know this isn't the exact answer you wanted (sorry) but it should give you a understanding of something
  2. Like
    Purple got a reaction from blackknight8653 in Question on XPSave on silent   
    Did you also have an etkey? even though PB doesn't support ET anymore most mods are still compatible with ETkeys, as the post by hellreturn is just stating silent mod has its own method of generating "etkeys" and yes the data is stored in silent.dat (hence when you reinstall et backup silent.dat for your admin/xp). 
  3. Like
    Purple got a reaction from hellreturn in Help-with-fun-settings   
    sorry for spam post but couldn't edit my other one, I uploaded the updated file in the download section called "CrazyMod".
  4. Like
    Purple got a reaction from HunTer in Help-with-fun-settings   
    sorry for spam post but couldn't edit my other one, I uploaded the updated file in the download section called "CrazyMod".
  5. Like
    Purple got a reaction from Tweek in Help-with-fun-settings   
    I looked into this and I don't think it can be done via lua? The only way I can think off was latching the player weapon, but in order to latch the panzer the class would need to be soldier. So I don't think I can do that part, although i did update the lua script and will post it in the downloads sections has a bit more settings and features pre-done in the lua so users won't need to change anything in their server configuration files.
  6. Like
    Purple got a reaction from hellreturn in Help-with-fun-settings   
    I looked into this and I don't think it can be done via lua? The only way I can think off was latching the player weapon, but in order to latch the panzer the class would need to be soldier. So I don't think I can do that part, although i did update the lua script and will post it in the downloads sections has a bit more settings and features pre-done in the lua so users won't need to change anything in their server configuration files.
  7. Like
    Purple got a reaction from HunTer in Help-with-fun-settings   
    I looked into this and I don't think it can be done via lua? The only way I can think off was latching the player weapon, but in order to latch the panzer the class would need to be soldier. So I don't think I can do that part, although i did update the lua script and will post it in the downloads sections has a bit more settings and features pre-done in the lua so users won't need to change anything in their server configuration files.
  8. Like
    Purple got a reaction from Decretis in kspree crash   
    Alright I can take a look (no promises pretty busy atm with a few other projects + gf ;c )
  9. Like
    Purple got a reaction from Decretis in kspree crash   
    pretty old script could use an update ill see what i can't do to make a quick one to suit your needs
     
    Edit: are you just wanting the Killingspree part or are you wanting the multikills/revivesprees/killingsprees and all? Let me know so i know what i can do
  10. Like
    Purple reacted to HunTer in Help-with-fun-settings   
    thank you for the reply.  I understand what you are saying about the enhanced mod. Purple said he would look into a possible solution and to give him some time. so I'll keep my fingers crossed 
  11. Like
    Purple got a reaction from BECK in Help-with-fun-settings   
    Shouldn't be any errors tried a different method (sets ammo on spawn like code beck posted) let me know if any guns etc are missing or ammo is not right
    --[[ Unlimited ammo and weapons for Hunter @ mygamingtalk Credits: Purple & Lilly (my gf :DDD) 3/24/2015 ]] function et_InitGame(levelTime,randomSeed,restart) et.RegisterModname( "Unlimited Ammo & Guns" ) maxclients = tonumber( et.trap_Cvar_Get( "sv_maxClients" ) ) end function et_ClientSpawn(clientNum,revived) et.gentity_set(clientNum, "ps.ammo", 2, 9999) et.gentity_set(clientNum, "ps.ammo", 3, 9999) et.gentity_set(clientNum, "ps.ammo", 4, 9999) et.gentity_set(clientNum, "ps.ammo", 5, 9999) et.gentity_set(clientNum, "ps.ammo", 6, 9999) et.gentity_set(clientNum, "ps.ammo", 7, 9999) et.gentity_set(clientNum, "ps.ammo", 8, 9999) et.gentity_set(clientNum, "ps.ammo", 9, 9999) et.gentity_set(clientNum, "ps.ammo", 10, 9999) et.gentity_set(clientNum, "ps.ammo", 11, 9999) et.gentity_set(clientNum, "ps.ammo", 12, 9999) et.gentity_set(clientNum, "ps.ammo", 13, 9999) et.gentity_set(clientNum, "ps.ammo", 15, 9999) et.gentity_set(clientNum, "ps.ammo", 23, 9999) et.gentity_set(clientNum, "ps.ammo", 24, 9999) et.gentity_set(clientNum, "ps.ammo", 25, 9999) et.gentity_set(clientNum, "ps.ammo", 26, 9999) et.gentity_set(clientNum, "ps.ammo", 29, 9999) et.gentity_set(clientNum, "ps.ammo", 31, 9999) et.gentity_set(clientNum, "ps.ammo", 32, 9999) et.gentity_set(clientNum, "ps.ammo", 33, 9999) et.gentity_set(clientNum, "ps.ammo", 35, 9999) et.gentity_set(clientNum, "ps.ammo", 37, 9999) et.gentity_set(clientNum, "ps.ammo", 38, 9999) et.gentity_set(clientNum, "ps.ammo", 39, 9999) et.gentity_set(clientNum, "ps.ammo", 42, 9999) et.gentity_set(clientNum, "ps.ammo", 43, 9999) et.gentity_set(clientNum, "ps.ammo", 44, 9999) et.gentity_set(clientNum, "ps.ammo", 45, 9999) et.gentity_set(clientNum, "ps.ammo", 47, 9999) et.gentity_set(clientNum, "ps.ammo", 48, 9999) et.gentity_set(clientNum, "ps.ammo", 49, 9999) end
  12. Like
    Purple reacted to BECK in Help-with-fun-settings   
    Copy that LUA script that purple posted above and place it in your silent directory (like 'weapons.lua' or something).   You'll need to update the script to factor in the silent-specific weapons (the second list he put), but basically you need an array with 51 items, either true or nil.   I think all should be "true" except the first one (WP_NONE).
     
    What this script does is just constantly set ammo to 9999 for any weapon or weapon modifications (e.g. scoped) that they currently have.
     
    Then add this to your config:
    set lua_modules "weapons.lua" Restart your server and test.
  13. Like
    Purple reacted to twt_thunder in Automove   
    thx for sharing
  14. Like
    Purple got a reaction from ETsneak in Automove   
    Always see some sort of automove talk on here, so here is a simple automove that works well and i have been using on my server for months, modified quiet a bit to be usable by anyone. 
    -- automove redone. function et_InitGame(levelTime,randomSeed,restart) et.RegisterModname("^1D^0Ri Team Balance") players = { } players[0] = 0 --all players[1] = 0 --axis players[2] = 0 --allies players[3] = 0 --spectators end function et_Obituary(client, killer, death) axiskilled = 0 allieskilled = 0 count2 = 0 player_name2 = GetPlayerName(client) local game_state = tonumber(et.trap_Cvar_Get("gamestate")) local player_team = et.gentity_get(client, "sess.SessionTeam") if game_state ~= 1 and game_state ~= 2 then players[0] = 0 --all players[1] = 0 --axis players[2] = 0 --allies players[3] = 0 --spectators for i = 0, tonumber(et.trap_Cvar_Get("sv_maxclients")) -1, 1 do local teamnumber = tonumber(et.gentity_get(i,"sess.sessionTeam")) if et.gentity_get(i,"pers.connected") == 2 then players[0] = players[0] + 1 players[teamnumber] = players[teamnumber] + 1 end end if (( (players[1] - players[2]) > 1 and player_team == 1 ) or ( (players[2] - players[1]) > 1 and player_team == 2 )) then if player_team == 1 then axiskilled = 1 else allieskilled = 1 end et.trap_SendServerCommand(-1, "chat \"^3Automoving " .. player_name2 .. " ^3as teams were uneven... \"") end end return nil end function et_RunFrame() if axiskilled == 1 then delayaxis() elseif allieskilled == 1 then delayallies() end end function delayaxis() count2 = count2 + 1 if count2 >= 5 then --every 5 deaths move the next player that dies et.trap_SendConsoleCommand( et.EXEC_APPEND, "putteam " .. player_name2 .. " b") count2 = 0 axiskilled = 0 end end function delayallies() count2 = count2 + 1 if count2 >= 5 then--every 5 deaths move the next player that dies et.trap_SendConsoleCommand( et.EXEC_APPEND, "putteam " .. player_name2 .. " r") count2 = 0 allieskilled = 0 end end function GetPlayerName(client) return et.Q_CleanStr(et.gentity_get(client, "pers.netname")) end function et_ShutdownGame(restart) end
  15. Like
    Purple got a reaction from hellreturn in Simple lua protection   
    We all know there are always going to be some sort of exploit in ET always has always will so for me and my server what i've gone ahead and done just to prevent any way shape or form of guid spoofing mainly is a simple lua file that just whitelists your admin level.
    --[[ Simple Lua protection by purple ]] function et_InitGame( levelTime, randomSeed, restart ) local SecName = "Simple Sec" et.RegisterModname(SecName) end function et_ClientConnect( clientNum, firstTime, isBot ) local clientIp = et.Info_ValueForKey( et.trap_GetUserinfo(clientNum), "ip" ) local banTime = "300y" -- change this to your ban duration local Reason = "Not Whitelisted." -- change this to your ban reason local adminLevel = "7" -- change this to your Admin level if et.G_shrubbot_level( clientNum ) == adminLevel and clientIp ~= "YOUR IP ADDRESS HERE" then -- put your ip address here. et.trap_SendConsoleCommand( et.EXEC_APPEND, "!ban ".. clientNum.." "..banTime.." "..Reason.." \n" ) --ban the user. end end
  16. Like
    Purple got a reaction from hellreturn in Modernfront 0.5.0 Release   
    As i mentioned on TB you should probably post some images, other wise this is just walk by and skip mode.
  17. Like
    Purple got a reaction from hellreturn in Automove   
    Always see some sort of automove talk on here, so here is a simple automove that works well and i have been using on my server for months, modified quiet a bit to be usable by anyone. 
    -- automove redone. function et_InitGame(levelTime,randomSeed,restart) et.RegisterModname("^1D^0Ri Team Balance") players = { } players[0] = 0 --all players[1] = 0 --axis players[2] = 0 --allies players[3] = 0 --spectators end function et_Obituary(client, killer, death) axiskilled = 0 allieskilled = 0 count2 = 0 player_name2 = GetPlayerName(client) local game_state = tonumber(et.trap_Cvar_Get("gamestate")) local player_team = et.gentity_get(client, "sess.SessionTeam") if game_state ~= 1 and game_state ~= 2 then players[0] = 0 --all players[1] = 0 --axis players[2] = 0 --allies players[3] = 0 --spectators for i = 0, tonumber(et.trap_Cvar_Get("sv_maxclients")) -1, 1 do local teamnumber = tonumber(et.gentity_get(i,"sess.sessionTeam")) if et.gentity_get(i,"pers.connected") == 2 then players[0] = players[0] + 1 players[teamnumber] = players[teamnumber] + 1 end end if (( (players[1] - players[2]) > 1 and player_team == 1 ) or ( (players[2] - players[1]) > 1 and player_team == 2 )) then if player_team == 1 then axiskilled = 1 else allieskilled = 1 end et.trap_SendServerCommand(-1, "chat \"^3Automoving " .. player_name2 .. " ^3as teams were uneven... \"") end end return nil end function et_RunFrame() if axiskilled == 1 then delayaxis() elseif allieskilled == 1 then delayallies() end end function delayaxis() count2 = count2 + 1 if count2 >= 5 then --every 5 deaths move the next player that dies et.trap_SendConsoleCommand( et.EXEC_APPEND, "putteam " .. player_name2 .. " b") count2 = 0 axiskilled = 0 end end function delayallies() count2 = count2 + 1 if count2 >= 5 then--every 5 deaths move the next player that dies et.trap_SendConsoleCommand( et.EXEC_APPEND, "putteam " .. player_name2 .. " r") count2 = 0 allieskilled = 0 end end function GetPlayerName(client) return et.Q_CleanStr(et.gentity_get(client, "pers.netname")) end function et_ShutdownGame(restart) end
  18. Like
    Purple got a reaction from twt_thunder in Automove   
    Always see some sort of automove talk on here, so here is a simple automove that works well and i have been using on my server for months, modified quiet a bit to be usable by anyone. 
    -- automove redone. function et_InitGame(levelTime,randomSeed,restart) et.RegisterModname("^1D^0Ri Team Balance") players = { } players[0] = 0 --all players[1] = 0 --axis players[2] = 0 --allies players[3] = 0 --spectators end function et_Obituary(client, killer, death) axiskilled = 0 allieskilled = 0 count2 = 0 player_name2 = GetPlayerName(client) local game_state = tonumber(et.trap_Cvar_Get("gamestate")) local player_team = et.gentity_get(client, "sess.SessionTeam") if game_state ~= 1 and game_state ~= 2 then players[0] = 0 --all players[1] = 0 --axis players[2] = 0 --allies players[3] = 0 --spectators for i = 0, tonumber(et.trap_Cvar_Get("sv_maxclients")) -1, 1 do local teamnumber = tonumber(et.gentity_get(i,"sess.sessionTeam")) if et.gentity_get(i,"pers.connected") == 2 then players[0] = players[0] + 1 players[teamnumber] = players[teamnumber] + 1 end end if (( (players[1] - players[2]) > 1 and player_team == 1 ) or ( (players[2] - players[1]) > 1 and player_team == 2 )) then if player_team == 1 then axiskilled = 1 else allieskilled = 1 end et.trap_SendServerCommand(-1, "chat \"^3Automoving " .. player_name2 .. " ^3as teams were uneven... \"") end end return nil end function et_RunFrame() if axiskilled == 1 then delayaxis() elseif allieskilled == 1 then delayallies() end end function delayaxis() count2 = count2 + 1 if count2 >= 5 then --every 5 deaths move the next player that dies et.trap_SendConsoleCommand( et.EXEC_APPEND, "putteam " .. player_name2 .. " b") count2 = 0 axiskilled = 0 end end function delayallies() count2 = count2 + 1 if count2 >= 5 then--every 5 deaths move the next player that dies et.trap_SendConsoleCommand( et.EXEC_APPEND, "putteam " .. player_name2 .. " r") count2 = 0 allieskilled = 0 end end function GetPlayerName(client) return et.Q_CleanStr(et.gentity_get(client, "pers.netname")) end function et_ShutdownGame(restart) end
  19. Like
    Purple reacted to TheSilencerPL in more skill levels like NQ   
    That's only your opinion. We consider each feature based on the discussion and opinions of other players too Cheers.
  20. Like
    Purple reacted to Zelly in Lua Enhanced Server Module   
    Hello everyone!
     
    I have been working on a project with pure lua that enhances current ET servers.
    I have been working on it alone for a few years and just recently invited purple to come help me out.
     
    A short description of some of the many features that it has: 
    It is very configurable, if something isn't already configurable it would be very easy to make it configurable.
    It includes over 60 custom commands.
    Has a mail system.
    It has an option to register a profile to see all your stats over time. (Also used for a bunch of other stuff)
     
    There is a lot in the project and it is constantly changing, so for more up to date information you can view the wiki on bitbucket:
    https://bitbucket.org/zelly/lua-enhanced-server-mod/wiki/Home
    The wiki has a feature list, command list, information about the keys, how to report bugs, how to join development and more.
     
    I am always open to ideas to improve my project so please take a look.
    Here is the home page if you want to take a look around the project: https://bitbucket.org/zelly/lua-enhanced-server-mod/overview
  21. Like
    Purple got a reaction from clan DIABOLIK in balance.lua + sound   
    Do me a favor. fill this out and let me know.
     
    Mod:
    version:
    Did you include the file in your server config?(lua_modules "name.lua":
    What is your problem?:
  22. Like
    Purple got a reaction from Jhonny/Shinobi in ET Server Series!   
    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
    https://www.youtube.com/watch?v=ewwoq1ZUo-Y&feature=youtu.be
  23. Like
    Purple got a reaction from twt_thunder in ET Server Series!   
    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
    https://www.youtube.com/watch?v=ewwoq1ZUo-Y&feature=youtu.be
  24. Like
    Purple got a reaction from hellreturn in balance.lua + sound   
    modname = "balance" version = "0.1" function et_InitGame(levelTime,randomSeed,restart) et.RegisterModname(modname .. " " .. version) end unevenDiff = 2 max_unevenTime = 15 max_unevenDiff = 4 axisPlayers = {} alliedPlayers = {} unevenTime = 15 function et_RunFrame( levelTime ) local numAlliedPlayers = table.getn( alliedPlayers ) local numAxisPlayers = table.getn( axisPlayers ) if numAlliedPlayers >= numAxisPlayers + max_unevenDiff then if et.G_shrubbot_level(clientNum) >= 12 then return end local clientNum = alliedPlayers[ numAlliedPlayers ] et.trap_SendConsoleCommand( et.EXEC_APPEND, "putteam " .. clientNum .. " r" ) et.trap_SendConsoleCommand( et.EXEC_APPEND, "playsound playermove.wav\n" ) et.trap_SendServerCommand(-1, "chat \"balancing teams... " .. et.gentity_get( clientNum, "pers.netname" ) .. "^7 moved to ^1AXIS\"" ) elseif numAxisPlayers >= numAlliedPlayers + max_unevenDiff then if et.G_shrubbot_level(clientNum) >= 12 then return end local clientNum = axisPlayers[ numAxisPlayers ] et.trap_SendConsoleCommand( et.EXEC_APPEND, "putteam " .. clientNum .. " b" ) et.trap_SendConsoleCommand( et.EXEC_APPEND, "playsound playermove.wav\n" ) et.trap_SendServerCommand(-1, "chat \"balancing teams... " .. et.gentity_get( clientNum, "pers.netname" ) .. "^7 moved to ^4ALLIES\"" ) elseif numAlliedPlayers >= numAxisPlayers + unevenDiff then if unevenTime > 0 then if tonumber( levelTime ) - unevenTime >= max_unevenTime * 1000 then if et.G_shrubbot_level(clientNum) >= 12 then return end local clientNum = alliedPlayers[ numAlliedPlayers ] et.trap_SendConsoleCommand( et.EXEC_APPEND, "putteam " .. clientNum .. " r" ) et.trap_SendConsoleCommand( et.EXEC_APPEND, "playsound playermove.wav\n" ) et.trap_SendServerCommand(-1, "chat \"balancing teams... " .. et.gentity_get( clientNum, "pers.netname" ) .. "^7 moved to ^1AXIS\"" ) end else unevenTime = tonumber( levelTime ) end elseif numAxisPlayers >= numAlliedPlayers + unevenDiff then if unevenTime > 0 then if et.G_shrubbot_level(clientNum) >= 12 then return end if tonumber( levelTime ) - unevenTime >= max_unevenTime * 1000 then local clientNum = axisPlayers[ numAxisPlayers ] et.trap_SendConsoleCommand( et.EXEC_APPEND, "putteam " .. clientNum .. " b" ) et.trap_SendConsoleCommand( et.EXEC_APPEND, "playsound playermove.wav\n" ) et.trap_SendServerCommand(-1, "chat \"balancing teams... " .. et.gentity_get( clientNum, "pers.netname" ) .. "^7 moved to ^4ALLIES\"" ) end else unevenTime = tonumber( levelTime ) end else unevenTime = -1 end end function et_ClientSpawn( clientNum, revived, teamChange, restoreHealth ) if teamChange ~= 0 then local team = tonumber( et.gentity_get( clientNum, "sess.sessionTeam" ) ) -- these were the teamnumbers prior to the move local numAlliedPlayers = table.getn( alliedPlayers ) local numAxisPlayers = table.getn( axisPlayers ) if team == 1 then for i, num in ipairs( alliedPlayers ) do if num == clientNum then table.remove( alliedPlayers, i ) break end end -- this should not happen but still check for it to avoid doubles for i, num in ipairs( axisPlayers ) do if num == clientNum then return end end -- make sure a player who (got) moved when teams were uneven doesn't get moved right back if numAlliedPlayers >= numAxisPlayers + unevenDiff then table.insert( axisPlayers, 1, clientNum ) else table.insert( axisPlayers, clientNum ) end elseif team == 2 then for i, num in ipairs( axisPlayers ) do if num == clientNum then table.remove( axisPlayers, i ) break end end for i, num in ipairs( alliedPlayers ) do if num == clientNum then return end end if numAxisPlayers >= numAlliedPlayers + unevenDiff then table.insert( alliedPlayers, 1, clientNum ) else table.insert( alliedPlayers, clientNum ) end else for i, num in ipairs( alliedPlayers ) do if num == clientNum then table.remove( alliedPlayers, i ) return end end for i, num in ipairs( axisPlayers ) do if num == clientNum then table.remove( axisPlayers, i ) return end end end end end function et_ClientDisconnect( clientNum ) for i, num in ipairs( alliedPlayers ) do if num == clientNum then table.remove( alliedPlayers, i ) return end end for i, num in ipairs( axisPlayers ) do if num == clientNum then table.remove( axisPlayers, i ) return end end end
  25. Like
    Purple got a reaction from hellreturn in ET AMP   
    ET AMP
     
    ET AMP is a server sided lua modification for wolfenstein enemy territory. ET AMP brings you multiadministration functionality on the go. ET amp offers many features and custom optimization for every servers need.
     
    -Features
     
    Auto Team balance~
    Auto team balance makes sure that weather there is a admin online or offline teams will be even and fair for players!
     
    Connect info~
    Connect info gives various information about a player when they connect to the server such as their location and their client version.
     
    AMMo4u~
    Ammo4u allows you to edit the amount of ammo inside of each weapon giving you full customization to every weapon.
     
    xp4level~
    Xp4level allows you to give players admin levels based off how much xp they have on your server.
     
    ETA rate~
    ETA Rate is a custom stats list based off a calculation of kills, deaths and xp aquired to give each player a skill rating
     
    ETA STATS~ 
    ETA stats are players global stats that are uploaded to a database online then show to a webpage via php allowing each user to see their total ammount of kills deaths xp and more.
     
    ETA KEY~
    ETA key is a custom server sided guid to make sure weather player looses their Silent.dat/etkey/nguid they will continue to have their xp and admin levels.
     
    ETA IRC~
    ETA IRC will alow you to see everything being said on your server on a irc server. 
     
    ETA DONATE~
    ETA Donate will allow you to set custom affixes/suffixes to players that have donated to your server. e.g ( [DONATOR]DRI*VJ* )
     
    ETA MAIL~
    ETA mail allows you to send a message to a player wheather they are online or offline. 
     
    ETA PANEL~
    ETA PANEL is a php panel for server administrators and moderators allowing you to have remote access to your server.
    Features included:
    Send custom commands from php
    See server logs (pm, say, say_team, say_teamnl)
    See server console via ETA IRC
    See server information such as players online, names, and ETA RATE
     
     
    These are some of the basics of what ETA is offering to the ET community. I got the idea for ENHMOD for jaymod which didn't support othere mods. If you are interested in having this on your server and or beta testing it when it comes out please fill out this small application.
     
    Name:
    xfire:
    Server name:
    server ip: 
    Why ETA?:
     
     
    ( will add pictures and stuff in the future, if you are interested in contributing to this project please pm me)
×
×
  • Create New...