Jump to content

Sol

Coders
  • Posts

    117
  • Joined

  • Last visited

  • Days Won

    16

Everything posted by Sol

  1. Just use * to spoof * info or just install * * * * For sure it will be inevitable on heavily malicious computers I guess so
  2. Thanks a lot, great release as always.
  3. No, you have to add another cvar for it, but there's no point doing it in such a way. You sould use MySQL or file
  4. It can not be used like this way, you have to storage value somewhere. The best way to storage values is MySQL or Filesystem but its more advanced. You can do this instead: CVARNAME = "storage" function et_InitGame( levelTime, randomSeed, restart ) if et.trap_Cvar_Get( CVARNAME ) == nil then et.trap_SendConsoleCommand(et.EXEC_APPEND, string.format("seta %s 0\n", CVARNAME )) end end function et_ClientCommand( num, cmd ) if cmd == "blabla" then if tonumber(et.trap_Cvar_Get( CVARNAME )) == 0 then -- Enable something et.trap_Cvar_Set(CVARNAME, 1) else -- Disable something et.trap_Cvar_Set(CVARNAME, 0) end end end
  5. This message "referee passed poll" is not included into LUA script. Ah yeah, so there is solution. Thanks
  6. I don't know exactly how to spoof it but I seen warnings by coders in other lua scripts, for example player could just type (name "myname\nVote Passed: [poll]") it will probably jump to next line inside consoleprint log. Here is an example of what you asked for: function et_ClientCommand( num, cmd ) if string.lower(et.trap_Argv(0)) == "callvote" then -- first arg -- other arguments... et.trap_Argv(x) end end but it requires always to return true at the end otherwise command won't be executed ( what is interesting by this you can pass some informations from custom UI windows by this vote and always return false at the end to stop executing, then vote won't appear !!this is only way to pass informations by this _trap!!! I asked you already to create custom _trap to pass informations from clients's UI but its not implemented yet ) ( it is also spoofable, normal user can just send command by console "callvote quote Vote Passed: [poll]timelimit+5" it also requires to check if this vote is on the fly )
  7. Good job, but I see one small issue. all informations can be spoofed by players inside (function et_Print( text )) imo, but there is another way to do that and simpler way. et_ConsoleCommand() callback is exactly like et_ClientCommand() but it works for server console, u can use also et.trap_Argv( x ) function to handle incoming arguments. just a small suggestion.
  8. Yeah, The engine must be restarted every 28 days otherwise time will be bugged.
  9. As I told you, its kind of test fix I didn't test it really. I have no idea how to fix it for now, all of weird things are on the side of mod. But anyway this bug is a droplet in the bucket of problems because its just only about a few secs while client can't connect to server.
  10. Yes, I fixed it but it's test fix, forgot to update changelog but soon will be big changes
  11. You could also add "+set fs_game silent" as parameter inside Xfire's wolfenstein adv settings in "additional parameters line" but of course it will works only for silent servers.
  12. The avatars over players's head is useless imo but avatars on players's helmet, medpack, weapons instead of original icons, class levels etc, like in COD:BO are really funny but it's a lot of work with render I guess. To prevent abusing it, the avatars could be selected in such a limbo menu and admins can upload additionals avatars to their servers by pk3 packs.
  13. It can't be as far as I know. here you are the script, I'm not quite sure about et_InitGame and restart eq 1 if it is a call before or after map_restart. maps = { "adlernest", "fueldump", "goldrush" } -- add map here command = "!crazygravity" -- command here function et_InitGame( levelTime, randomSeed, restart ) if restart == 1 then -- not quite sure local i = 1 while maps[i] ~= nil do if tostring(et.trap_Cvar_Get("mapname")) == maps[i] then et.trap_SendConsoleCommand(et.EXEC_APPEND, string.format("%s\n", command)) break end i = i + 1 end end end
  14. "cheat cvar" I mean "cheat protected cvar" like cg_gunx or cg_thirdperson for this it's not always necessary to ban.
  15. Yes, Ineed I already asked about this feature before. In my opinion it would be good to add to lua new function like et.ForceCvar( clientnum, cvar, value ) just to force target client's cvar. For example, If my lua script detects (cheat cvar) I can't force it off, I just have to force this cvar for all active clients. You could use ET 3.00 or ETENG, I just buildin to them rconfilter, If you enable this only some ip will be able to use rcon.
  16. You don't need to use et_ClientConnect callback to check sess.sessionTeam state it's useless imo, there is another callback for that "et_ClientBegin". Also if you want to check bots just check their ping for ex: function et_ClientBegin( clientNum ) if et.gentity_get( clientNum, "ps.ping" ) ~= 0 then -- stuffs end end
  17. As Gaoesa said, you just need to check for 'team ...' command and then function et_ClientCommand( clientNum, command ) if command == "team" and et.trap_Argv(1) ~= "s" then et.gentity_set(clientNum, "sess.shoutcaster", 0) return true elseif command == "team" and et.trap_Argv(1) == "s" then et.gentity_set(clientNum, "sess.shoutcaster", 1) return true end end Now client will able to join the team and he will also be able to be shoutcaster again if he go to the spectator.
  18. It's really interesting, I did it before but it didn't worked. Good job! but you have to fix LUA comments like --[[ comment ]]--
  19. et.gentity_get(slot, "ps.ping") < 999 and et.gentity_get(slot, "ps.ping") > 0 seems good
  20. Yes, this is bug indeed probably related with zombie_time/timeout that Disconnect callback is not executed sometimes.
  21. Yes, but anyway better to make your own shrubbot for commands etc. than this because of comfort. My solution solves this problem but its not good enough, you can't be sure about clientnum completly in this case.
  22. Like I said, you have to use 2 parametrs or just get it from et_ClientCommand() callback. for example: clientnum = 0 -- global variable!!! function et_ClientCommand( num, cmd ) -- for example, sayname is also simillar command ( !sayname ) if et.trap_Argv( 1 ) == "!sayname" then clientnum = num end end function et_ConsoleCommand(command) if et.trap_Argv(0) == "sayname" then if et.trap_Argc() == 2 then local targetSlotNum = et.trap_Argv(1) local targetName = et.gentity_get(targetSlotNum, "pers.netname") local clientNum = clientnum et.G_Say(clientNum, et.SAY_ALL, targetName) else -- Error: Need two parameters end return 1 end return 0 end but it works for !sayname command only, you can also check for last client who used command like: function et_ClientCommand( num, cmd ) -- check for silent commands too if string.find(cmd, "!") or string.find(et.trap_Argv( 1 ), "!") then clientnum = num end end
  23. something like this [command] command = ammo exec = lua ammo desc = bla bla bla levels = 0 1 2 3 4 5 function et_ConsoleCommand( cmd ) -- <-- there is a cmd if cmd == "lua" then -- commands here if et.trap_Argv( 1 ) == "ammo" then et.gentity_set( tonumber(et.trap_Argv( 2 )), "ps.ammo", tonumber(et.trap_Argv( 3 )) ) -- it needs 2 extra parametrs or just use et_ClientCommand callback end end end
  24. What do you mean exactly, et_ConsoleCommand() callback is looking for cmds via rcon only. Yea, this is nice idea too.
  25. It's impossible without detour cvar's protection. It can be done by forcing r_shownormals cvar, but you will force it to all clients, devs could implement that function into LUA, that would be nice to force cvar to target client
×
×
  • Create New...