Changeset 76


Ignore:
Timestamp:
Jul 17, 2014, 1:46:42 AM (10 years ago)
Author:
alloc
Message:

fixer

Location:
binary-improvements
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • binary-improvements/7dtd-server-fixes/src/AllocsRequestToSpawnPlayer.cs

    r75 r76  
    11using System;
     2using System.Collections.Generic;
    23
    34public class AllocsRequestToSpawnPlayer
     
    67        {
    78                string ip = manager.connectionManager.connectedClients [_clientId].networkPlayer.ipAddress;
    8                 Log.Out ("Player connected, clientid=" + _clientId + ", ip=" + ip);
     9                string name = string.Empty;
     10                int entityId = -1;
     11                Dictionary<int,int> d = manager.connectionManager.mapClientToEntity;
     12                if (d.ContainsKey (_clientId)) {
     13                        entityId = d [_clientId];
     14                        World w = manager.World;
     15                        name = w.playerEntities.dict [entityId].EntityName;
     16                }
     17
     18                Log.Out ("Player connected, clientid=" + _clientId +
     19                         ", entityid=" + entityId +
     20                         ", name=" + name +
     21                         ", steamid=" + SingletonMonoBehaviour<Authenticator>.Instance.GetPlayerId (name) +
     22                         ", ip=" + ip);
    923        }
    1024}
  • binary-improvements/7dtd-server-fixes/src/TelnetCommands/ListPlayersExtended.cs

    r75 r76  
    2222                foreach (KeyValuePair<int, EntityPlayer> current in w.playerEntities.dict)
    2323                {
     24                        int clientId = -1;
     25                        Dictionary<int,int> d = this.m_Console.gameManager.connectionManager.mapClientToEntity;
     26                        foreach (KeyValuePair<int, int> mapping in d) {
     27                                if (mapping.Value == current.Value.fd0087) {
     28                                        clientId = mapping.Key;
     29                                }
     30                        }
     31                        string ip = string.Empty;
     32                        if (clientId >= 0) {
     33                                ip = this.m_Console.gameManager.connectionManager.connectedClients [clientId].networkPlayer.ipAddress;
     34                        }
    2435                        m_Console.md000a (string.Concat (new object[]
    2536                        {
     
    4657                                ", score=",
    4758                                current.Value.Score,
    48                                 ", ",
    49                                 SingletonMonoBehaviour<Authenticator>.Instance.GetPlayerId (current.Value.EntityName)
     59                                ", steamid=",
     60                                SingletonMonoBehaviour<Authenticator>.Instance.GetPlayerId (current.Value.EntityName),
     61                                ", ip=",
     62                                ip
    5063                        }));
    5164                }
  • binary-improvements/assembly-patcher/Main.cs

    r75 r76  
    1212                        ModuleDefinition module = ModuleDefinition.ReadModule ("Assembly-CSharp.dll");
    1313                        telnetPatch (module);
    14                         connectLogPatch(module);
     14                        connectLogPatch (module);
    1515                        module.Write ("Assembly-CSharp.dll");
    1616                        Console.WriteLine ("Done");
     
    2626
    2727                        markTypePatched (module, type);
    28                         addHook (type, "RequestToSpawnPlayer", true, 5, typeof(AllocsRequestToSpawnPlayer).GetMethod ("RequestToSpawnPlayer"));
     28                        addHook (type, "RequestToSpawnPlayer", true, 5, true, typeof(AllocsRequestToSpawnPlayer).GetMethod ("RequestToSpawnPlayer"));
    2929                }
    3030
     
    4949                }
    5050
    51                 private static void addHook (TypeDefinition type, string methodName, bool addThisRef, int opCount, MethodBase targetMethod)
     51                private static void addHook (TypeDefinition type, string methodName, bool addThisRef, int opCount, bool atEnd, MethodBase targetMethod)
    5252                {
    5353                        foreach (MethodDefinition method in type.Methods) {
     
    5656                                        var il = method.Body.GetILProcessor ();
    5757                                        var call = il.Create (OpCodes.Call, method.Module.Import (targetMethod));
    58                                         var i = 0;
    59                                         if (addThisRef)
    60                                                 il.InsertBefore (method.Body.Instructions [i++], il.Create (OpCodes.Ldarg, 0));
    61                                         for (int op = 0; op < opCount; op++) {
    62                                                 il.InsertBefore (method.Body.Instructions [i++], il.Create (OpCodes.Ldarg, op + 1));
     58                                        if (atEnd) {
     59                                                int insBefore = method.Body.Instructions.Count;
     60                                                if (addThisRef)
     61                                                        il.Append (il.Create (OpCodes.Ldarg, 0));
     62                                                for (int op = 0; op < opCount; op++) {
     63                                                        il.Append (il.Create (OpCodes.Ldarg, op + 1));
     64                                                }
     65                                                il.Append (call);
     66                                                il.Remove (method.Body.Instructions [insBefore - 1]);
     67                                                il.Append (il.Create (OpCodes.Ret));
     68                                        } else {
     69                                                var i = 0;
     70                                                if (addThisRef)
     71                                                        il.InsertBefore (method.Body.Instructions [i++], il.Create (OpCodes.Ldarg, 0));
     72                                                for (int op = 0; op < opCount; op++) {
     73                                                        il.InsertBefore (method.Body.Instructions [i++], il.Create (OpCodes.Ldarg, op + 1));
     74                                                }
     75                                                il.InsertBefore (method.Body.Instructions [i++], call);
    6376                                        }
    64                                         il.InsertBefore (method.Body.Instructions [i++], call);
    6577                                }
    6678                        }
Note: See TracChangeset for help on using the changeset viewer.