Jump to content

Sol

Coders
  • Posts

    117
  • Joined

  • Last visited

  • Days Won

    16

Posts posted by Sol

  1.  

     

    My friend isnt a cheater and tests alot of mods hacks and other tools which is good for us because it helps a lot of us in our circle better understand what hacks to watch out for.

    Good one, I wonder how are you gonna recognize these cheats after "testing" them, thought that every multihack in ET is kinda same. Well trolled.

  2. "and if my friend was an idiot testing hacks", so if it's a past what is a problem? I'm guessing that silent anticheat bans only when someone has enabled a cheat, there is no any returning bans afaik. So after you'v unbanned him everything should be fine? Isn't it? or hes still cheating and you with him just want to have a fun?

  3. I don't see how string.find helps me here... I get exactly same results as I would with string.match :S 

    you have not, string.match() is returning substring instead of position thats the problem.

    if level >= 1 and flood == 0 then
    	if arg0 == "say" or arg0 == "say_team" or arg0 == "say_buddy" or arg0 == "say_teamnl" then
    		if string.find(arg1, "!example") == 1 then	-- if string is looking like that "!examplebabababala" then it will return anyway position, just in case it check for position '1' to avoid situation like that "bababa!examplehaha" because string.find will return position inside that string of a match
    			et.G_globalSound("path/to/example.wav")
    		end
    	end
    end
  4. Just try to use string.find in your case that would work

    string.find(arg1, "!example") -- if there is a !example command inside then function will always return value different than nil
    -- string.match() is a kinda different function, it's designed for patterns especially, in your case it should be "(!example.*)" but this function will always return string
    
  5. Probably et_ClientConnect is called first thats why 'client' is empty.

    That's not good idea to use one global variable for all clients, you should consider to use a table.

    Try to use et_ClientBegin instead of et_ClientConnect it's called after et_ClientConnect for sure.

  6. That is incorrect and you know it as you have made your own AC dlls too. Any admin can run any code on any players computer and the situation is even worse if the program is running as an admin. Malicious code in our mod would be easily tracked to us. That is not the case for every server out there that might have their malicious codes in add on pk3s. However, I never recommend running the mod as an admin even if it is directly from us. There is no reason for the silEnT mod to require admin privileges. The engine does not need admin privileges either as long as it can write to the folders it unpacks the zip files and can write the player configs.

    Yeah, you understood me wrong, didn't say that your mod have any sign of malware code but I said it on basically that any server admin can make own creepy malware mod. Personally it will be a lot of pain for my AC to run it without admin persmissions because some things may not be working correctly, additionally ET as any application without these rights is essentially restricted when it comes to self-update, network or memory scanning. I had many troubles to make this AC compatible with any mod without binary replacing (launcher).

     

    But without departing from the subject:

    Game code(ui_mp_x86.dll) failed Pure Server check

    I was just curious to find out what was the cause of it.

     

    Sometimes I had such an this error when module was loaded twice or wasn't unloaded correctly.

  7. This is a bad advice. Only reason to run the game as an admin is the lack of permissions to write to the "Program Files" folder. Better solution is to install(copy) the game outside of the Program Files tree. Outside of all system directories of course.

    Yeah that's right, but is ET not trusted application I think it is but only thing which threatens is the mod that can contain malware code.

  8. Game code(ui_mp_x86.dll) failed Pure Server check

    As I remember this error is accompanied by a admin/file rights if you have packs installed correctly.

    You should try to run this as admin and additionally try to lower a bit UAC settings I think it is causing the problem.

    Overall, you shouldn't run programs as admin unless they really do have some serious reason they would need it.

    This problem is really common on Vista & Windows 7 too, personally didn't have any problems with that but my friend had.

  9. I had originally thought that I could basically create my own with client command (And Possibly a runframe for inactivity) but it doesn't seem like the limbo menu passes any kind of command that lua catches(Or am I wrong?)

    Yeah, any team, limbo changes are shown in et_clientUserinfoChanged always for sure.

    You don't have to check them directly from userinfo, you can use instead et.gentity_get function, works faster imo.

     

    edit:

    If you want to stop client from team switching then catch commands from et_ClientCommand callback, check team etc. and then just return value to stop from post-executing or not.

  10.  

    Have you ever considered to split Silent Mod with Silent Anti-Cheat, to make SAC standalone?

    I mean in the way that it wont be in conflict with any mod... like ACPro for ETPro (http://wolfwiki.anim...:Luk4ward#About). 

     

    Possibility of installation with no dependency would be nice for many server admins running non SM servers, on the other hand SAC standalone should attract very much people to SM.

     

    Am I correct?

    I thought always that this 'inside' feature is the best side of this anticheat, it makes it more secure and more difficult to understand by crackers. Additionally making something from outside is a way harder than inside, there is several reasons that explain that: compatibility, security, complexity.

  11. Replacing the et.exe with the AC binary is a bad idea in my opinion. First of all it breaks the et scene by adding another binary, 2nd it does not allow you to use features of et:legacy improvements if someone wanted to use what they have added to the et.

    I thought they would do it in a way AVs are done as an external app, but this way of implementing it is a step in the wrong direction in my opinion.

    We are happy to have know up with another method but there is no another way in my opinion, but server admins choosing easiest path. About et:legacy I wanted to partner with them but they refused, I can't support another versions because it is associated with endless time with debuging binary over and over to find what I need, also it is not legal to use external closed libraries with GPL lisence.

     

    I also would prefer it as a standalone. I don't like the idea of getting my ET.exe replaced by a third party. Also, the method of distributing it in a custom silent pk3 with modified silent binaries makes it harder to be sure of the content. In the worst case, there will be a lot of different silent pk3 files that players have to download.

    I don't modified any binaries, it uses proxy to gain access and as always it asking client to install or not this. Also I have mentioned admins to keep it renamed because it would confuse clients and in the worst case they will need to download it again and again.

    I could create external installer as well but it would works only for competitive side which doesn't depend on me as in random player.

  12. Hi, 

    I would like to have that option too like double jumping its really funny.

    In general in RTCW you don't lose speed and acceleration it would be funny to have that too

    I'm guessing that won't work with doublejump, would be good to add another cvar to control client's acceleration per jump

  13. No, I'm sure, it was my server and I didn't change anything after restarting ET everything was fine.

    ( I don't use any custom hitsounds on my server )

     

    FIX:

    Sorry but I wrote it wrong, if you play on server 0.8.0 and then directly connect to older server than 0.8.0 then this bug appear

  14. Just for information, if you play on a server 0.8.0 and ( without disconnecting ) directly connect to older version than 0.8.0 then your hitsounds will be bugged & HUD settings may too.

  15. 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

  16. @sol

    There is no lack of code samples. I have, in fact, made external program that handles minimizer and raw input. http://www.himalia.fi/forum/viewtopic.php?f=5&t=1178&sid=1d3b5b189944d7bb737114a18dc0b78e

    Yeah you're right. But as you've seen about your minimizer sometimes AVs gonna false positive because of dll injections & hooks ( I have really huge problems with it now ) thats why embedding it into entire mod is better idea imo. But this is just my opinion

    And yeah, coding & developing properly is not quite simple therefore I chose another way.

  17. void Minimize()
    {
    	HWND hwet = GetActiveWindow();		
    	if (hwet)
    	{
    		WINDOWPLACEMENT wp;
    		GetWindowPlacement(hwet, &wp);
    		if (wp.showCmd == SW_SHOWMINIMIZED)
    			ShowWindow(hwet, SW_RESTORE);
    		else
    			ShowWindow(hwet, SW_MINIMIZE);
    	}
    }
    

    For Windowz, it works from DLL level tested it.

    But the resolution has to be same as system

×
×
  • Create New...