KMODversion = "Beta 1.5c" KMODversion2 = "1.5c" PlayerName = {} function et_InitGame( levelTime, randomSeed, restart ) local currentver = et.trap_Cvar_Get("mod_version") et.RegisterModname( "KMOD version " .. KMODversion .. " " .. et.FindSelf() ) et.trap_SendConsoleCommand(et.EXEC_APPEND, "forcecvar mod_version \"" .. currentver .. " - KMOD" .. KMODversion2 .. "\"" .. "\n" ) end function et_ConsoleCommand() if string.lower(et.trap_Argv(0)) == "goto" then if (et.trap_Argc() < 2) then et.G_Print("Goto is used to teleport one player to another player\n") et.G_Print("useage: goto \[name/PID\] \[name/PID\]\n") return 1 end goto(et.trap_Argv(1), et.trap_Argv(2)) return 1 elseif string.lower(et.trap_Argv(0)) == "iwant" then if (et.trap_Argc() < 2) then et.G_Print("Iwant is used to teleport one player to another player\n") et.G_Print("useage: iwant \[name/PID - Destination\] \[name/PID\]\n") return 1 end iwant(et.trap_Argv(1), et.trap_Argv(2)) return 1 end end function et_RunFrame( levelTime ) local i; for i=0, tonumber(et.trap_Cvar_Get("sv_maxclients"))-1, 1 do PlayerName[i] = et.gentity_get(i,"pers.netname") if not PlayerName[i] then PlayerName[i] = "" end if et.gentity_get(i,"pers.connected") ~= 2 then PlayerName[i] = "" end end end function et_ClientDisconnect( clientNum) PlayerName[clientNum] = "" end function goto(PlayerID, target) target = part2id(target) if target == nil then --durt else -- local target_origin = et.gentity_get(target, "r.currentOrigin") if et.gentity_get(PlayerID,"pers.connected") == 2 then if et.gentity_get(PlayerID,"sess.sessionTeam") >= 3 or et.gentity_get(PlayerID,"sess.sessionTeam") < 1 then else local target_origin = et.gentity_get(target, "origin") target_origin[2] = target_origin[2] + 40 et.gentity_set(PlayerID, "origin", target_origin) end end -- et.gentity_set(PlayerID, "r.currentOrigin", target_origin) end -- pos[30]=et.gentity_get(et.trap_Argv(2),"origin") -- et.gentity_set(et.trap_Argv(1), "origin", pos[30]) end function iwant(PlayerID, target) PlayerID = part2id(PlayerID) if PlayerID == nil then --durt else -- local PlayerID_origin = et.gentity_get(PlayerID, "r.currentOrigin") if et.gentity_get(PlayerID,"pers.connected") == 2 then if et.gentity_get(PlayerID,"sess.sessionTeam") >= 3 or et.gentity_get(PlayerID,"sess.sessionTeam") < 1 then else local PlayerID_origin = et.gentity_get(PlayerID, "origin") PlayerID_origin[2] = PlayerID_origin[2] + 40 et.gentity_set(target, "origin", PlayerID_origin) end end -- et.gentity_set(target, "r.currentOrigin", PlayerID_origin) end end function part2id(client) local clientnum = tonumber(client) if clientnum then if (clientnum >= 0) and (clientnum < 64) then if et.gentity_get(clientnum,"pers.connected") ~= 2 then return nil end return clientnum end else local client = string.lower(et.Q_CleanStr( client )) if client then s,e=string.find(client, client) if e <= 2 then return nil else clientnum = nameforID(client) end end if not clientnum then return nil end end return clientnum end function nameforID(name) local i = 0 local slot = nil local matchcount = 0 local cleanname = string.lower(et.Q_CleanStr( name )) local playerp = "" for i=0,tonumber(et.trap_Cvar_Get("sv_maxclients"))-1,1 do if PlayerName[i] then playerp = string.lower(et.Q_CleanStr( PlayerName[i] )) s,e=string.find(playerp, cleanname) if s and e then matchcount = matchcount + 1 slot = i end end end if matchcount >= 2 then return nil else return slot end end