Softegg 0 Posted March 25, 2002 hello. i ask here for new commands in ofp-script-language which makes the detection of weapon-cheaters in multiplayer easier. there is a new program released  which gives unlimited ammo. you can shoot, but the bulletcounter is always the same. in the future, all normal players cannot be sure that other players don't use this tool. i am searching ways and writing scripts for detection of cheaters. but it's very difficulty. maybe BI can add some commands, so the detection of cheaters will be much more easier. something like "HasFired unit" can be used in a script like this: </span><table border="0" align="center" width="95%" cellpadding="3" cellspacing="1"><tr><td>Code Sample </td></tr><tr><td id="CODE">_ammo=player ammo "LawLauncher" @HasFired player ?_ammo==player ammo "LawLauncher":player globalchat "Cheater!"<span id='postcolor'> something like "weapon unit" (should be the actual active weapon) can be used like this: </span><table border="0" align="center" width="95%" cellpadding="3" cellspacing="1"><tr><td>Code Sample </td></tr><tr><td id="CODE">_ammo=player ammo (weapon player) @HasFired player ?_ammo==player ammo (weapon player):player globalchat "Cheater!"<span id='postcolor'> so the scripters we be able to detect cheaters easier. cheating kills this game. the fun will be lost. finally my actual script: </span><table border="0" align="center" width="95%" cellpadding="3" cellspacing="1"><tr><td>Code Sample </td></tr><tr><td id="CODE">;***************************************************************************************** ********************* #AmmoCheaterCheck JudgeCheater=-1 _unit=_this select 1 _gweaponlist = ["M16","LawLauncher"] _gshelllist = ["BulletSingleW","Law"] _uweaponlist=["","","","","","","","","",""] _ushelllist=["","","","","","","","","",""] _uammolist=[0,0,0,0,0,0,0,0,0,0] #DoAmmoCheaterCheck _windex=0 _ucount=0 #DoDetermineWeapons _cwaffe=_gweaponlist select _windex ?_unit hasWeapon _cwaffe:_uweaponlist set [_ucount,_cwaffe];_ushelllist set [_ucount,_gshelllist select _windex];_uammolist set [_ucount,_unit ammo _cwaffe];_ucount=_ucount+1 _windex=_windex+1 ?_windex<count _gweaponlist:goto "DoDetermineWeapons" _windex=0 #DoCheckFire _firedweapon=NearestObject [_unit,_ushelllist select _windex] ?not (isnull _firedweapon):goto "AmmoCheaterCheckPause" #LoopFireCheck _windex=_windex+1 ?_windex<_ucount:goto "DoCheckFire" goto "DoAmmoCheaterCheck" ;***************************************************************************************** ********************* #AmmoCheaterCheckPause ~1 ?_uammolist select _windex==_unit ammo (_uweaponlist select _windex):goto "AmmoCheaterDetected" goto "LoopFireCheck" ;***************************************************************************************** ********************* #AmmoCheaterDetected _index=0 #DoJa ?name player==name (list JudgeLou select _index):JudgeCheater=_index _index=_index+1 ?_index<count list JudgeLou and JudgeCheater!=-1:goto "DoJa" publicVariable "JudgeCheater" _text=format["Name: %1",name player]+"\n" _text=_text+format["Weapon: %1",_uweaponlist select _windex]+"\n" _text=_text+format["Ammo old: %1",_uammolist select _windex]+"\n" _text=_text+format["Ammo new: %1",_unit ammo (_uweaponlist select _windex)] TitleText[_text,"Plain"] goto "DoAmmoCheaterCheck"<span id='postcolor'> Share this post Link to post Share on other sites
Placebo 29 Posted March 26, 2002 Toss up between ME and MP but I'll go with MP Share this post Link to post Share on other sites
Softegg 0 Posted April 1, 2002 i want to describe the reason for my request more detailed: we are making mp-maps for a league and are adding judges which can follow each player with a flying camera. we want to give the judges some hints if something unusual happens, so they can take a closer look at a conspicuous player. Share this post Link to post Share on other sites
suma 8 Posted April 2, 2002 I am afraid the script you show here can have some problems: </span><table border="0" align="center" width="95%" cellpadding="3" cellspacing="1"><tr><td>Code Sample </td></tr><tr><td id="CODE">_ammo=player ammo "LawLauncher" @HasFired player ?_ammo==player ammo "LawLauncher":player globalchat "Cheater!"<span id='postcolor'> Due to asychnronous and non-guaranteed nature of some updates like ammo state, it may easily happen that message about firing will arive much sooner that update of ammo state that follows it, especially in huge bandwidth limited missions. If this happens, your script will show "Cheater". </span><table border="0" align="center" width="95%" cellpadding="3" cellspacing="1"><tr><td>Code Sample </td></tr><tr><td id="CODE">_ammo=player ammo (weapon player) @HasFired player ?_ammo==player ammo (weapon player):player globalchat "Cheater!"<span id='postcolor'> Even if weapon player would be implemeted, this would also accuse player of cheating when player would select different weapon or took some ammo (from crates or body) while script is waiting during @HasFired. We are considering to build functionality similiar to what you suggest here directly into the game, but as you can see, it may prove to be quite difficult to implement it well. Share this post Link to post Share on other sites
Lt_Damage 0 Posted April 2, 2002 It is a difficult issue. I am an admin of a dedicated server, I have only had to ban one cheater. Basically the admin has to be aware of whats going on. Cheaters can often be caught visually.. and then kicked / banned. Implementing suggested code would create problems. Let the admin's do the work. On that note, there needs to be more support for the dedicated server admins, we need commands to find information quickly. For example : #userlist - Displays awkwardly with very long time taken to search for specific user. Suggestion: #details <user number / name> -Displays following details about user: playerid, connection number, ip address. #ban <user number / name> <days> bans the user for specified number of days. The days part is not as important as the facility to implement bans immediately. Admin is often occupied with constantly kicking a user they plan to add to the ban.txt file. #upload <local dir path \ map name.pbo> Many dedicated servers are hosted by companies that often do not have quick support response times. If a map is discovered to include a bug that impacts server performance / gameplay, this map could be fix and overwritten. #removemap <map name> This command would be useful to remove problem maps from a server. #restartserver This option would be useful as #shutdown can be a problem for servers that are not configured to automatically reload. This will allow an admin with login pass to restart the server, refreshing the map list. #motd <insert message> This will allow important information to be displayed for players when connecting, allowing admin to keep players updated even when he is not online. This would be useful for advising players a new map is online, a new update is available from BIS, or any other useful information. Note these commands should only be available to an admin with the login pass Regards, Share this post Link to post Share on other sites
BigQEd 0 Posted April 3, 2002 #details <user number / name> -This is a good idea. Especially added info such as IP address. #ban <user number / name> <days> -This is definitely needed! However I would suggest that when a BAN is done IN-GAME by an Admin it should be in the following format in the Ban.txt </span><table border="0" align="center" width="95%" cellpadding="3" cellspacing="1"><tr><td>Code Sample </td></tr><tr><td id="CODE"> //BAN.TXT 123456 //PLAYERNAME DATE TIME ADMIN REASON 654321 //PLAYERNAME DATE TIME ADMIN REASON 321654 //PLAYERNAME DATE TIME ADMIN REASON <span id='postcolor'> #upload -Not needed as much... as most Admins have FTP or other remote access to servers (or they should). I believe this would be a major operation for BIS to implement when we have much more important issues at hand. #removemap <map name> -Same as Upload... not a major issue for most Admins. #restartserver -Agreed... but may be difficult to actually shutdown the server and make it restart. Possibly it could simply kick all the players and clear the mission that is loaded. #motd -Not a major issue... many other issues should be before this. Not a bad idea... maybe option to allow MOTD to be changed by a Password Admin. I think in addition to these... there should be 2 or 3 levels of Admins with certain abilities. Lowest being a Voted Admin. A Voted Admin should maybe be able to just Change Missions, Drag/Lock Players and Kick people. I have a few commands to add: #changepassword -Be able to change the Access Password (if a password is present) would be nice. Only allow Password Admins access to this feature though. Or if you have multiple levels of Admins allow this to be set in the Server.cfg with settings. #mictoggle -This would allow the Admin to turn off/on all MICs if there is a lot of LAG in a certain Mission. #mickey -Display who is utilizing MIC so spammers could be caught. Or use (mic) beside everyones name in the PlayerList... like the (Admin) is currently. Share this post Link to post Share on other sites