Seite 16 von 53 ErsteErste ... 612131415161718192026 ... LetzteLetzte
Ergebnis 226 bis 240 von 784

Thema: Mod für PB-Spiele: PB Mod_v1

  1. #226
    Registrierter Benutzer Avatar von Ziankali
    Registriert seit
    15.03.13
    Beiträge
    4.969
    Nicht schlimm. Ich habe gerade festgestellt, dass ich die Syntax in der Vorlage nicht kenne und im Moment nicht die Geduld habe, mich damit zu befassen. Obendrein hat ja auch Zulan schon einen Stil kreiert.
    Zitat Zitat von TeeRohr Beitrag anzeigen
    Es will hier ja auch keiner ein Problem lösen. Schließlich gibts ja keins...jedenfalls nicht so richtig, aber dafür ein umso größeres...prinzipielles, was aber eigentlich nicht interessiert.

  2. #227
    ε•ω=1 Avatar von Ramkhamhaeng
    Registriert seit
    19.07.10
    Ort
    Aralkum
    Beiträge
    9.896
    @Zulan: Das Sortieren den Spielerliste habe ich fertig (noch nicht gepusht), aber zum Filtern der Log-Nachrichten habe ich eine Frage. Die Log-Nachrichten sind ja in viele Unterklassen verteilt. Ich bin mir auch nicht sicher, ob in jeder Unterklasse das Attribut 'ingame_id' zur Verfügung steht.

    Ist es möglich einen Filter ähnlich zu dieser Zeile ( views.py ) zu basteln?
    Code:
    context['log'] = game.gamelog_set.filter(xxxx=0).order_by('-id')
    xxxx habe ich nur genutzt, um die folgenden Ausschnitt der Fehlermeldung zu provozieren:
    Code:
    Cannot resolve keyword 'xxxx' into field. Choices are: date, game, game_id, gamelogadminaction, gamelogforcedisconnect, gamelogmetachange, gamelogpause, gamelogplayer, gamelogreload, gamelogservertimeout, gamelogtimerchanged, gamelogturn, id, polymorphic_ctype, polymorphic_ctype_id, turn, year
    Aber sowohl mit polymorphic_ctype_id=1 oder gamelogplayer=1 oder gamelogplayer='Ramk' erhalte ich ein leeres Log.

    Wie können wir nach Spielerid oder Typ der Log-Nachricht filtern?

  3. #228
    Say My Name Avatar von Zulan
    Registriert seit
    13.03.08
    Beiträge
    8.902
    Probier mal mit filter(GameLogPlayer___player__id=1) oder filter(GameLogPlayer___player__ingame_id=0)

    Anzahl der Unterstriche beachten!

    Siehe: https://django-polymorphic.readthedo...erited-classes

  4. #229
    ε•ω=1 Avatar von Ramkhamhaeng
    Registriert seit
    19.07.10
    Ort
    Aralkum
    Beiträge
    9.896
    Ja, mit dieser Syntax läuft es. Testfall mit Klassenfilter:
    Code:
              context['log'] = game.gamelog_set.filter( 
                  Q(instance_of=GameLogTurn) |  
                  Q(instance_of=GameLogReload) |  
                  Q(GameLogPlayer___player__id=1) 
                  ).order_by('-id')
    Muss es jetzt nur noch mit Optionenfeldern kombinieren.

  5. #230
    schläft Avatar von Frozen
    Registriert seit
    10.10.09
    Beiträge
    18.408
    Evtl. noch überlegen, ob ihr Englisch, Deutsch oder 2 Sprachig verfahren wollt:
    "logged in"
    "abgemeldet"

    Freedom's just another word for nothing left to lose

  6. #231
    Say My Name Avatar von Zulan
    Registriert seit
    13.03.08
    Beiträge
    8.902
    Zitat Zitat von Frozen Beitrag anzeigen
    Evtl. noch überlegen, ob ihr Englisch, Deutsch oder 2 Sprachig verfahren wollt:
    "logged in"
    "abgemeldet"

    In pbspy sind prinzipiell alle texte lokalisiert (in englisch als basissprache). Wenn dann nicht mehr so oft neues hinzukommt werd ich mal die .po Dateien zum uebersetzen bauen.

  7. #232
    ε•ω=1 Avatar von Ramkhamhaeng
    Registriert seit
    19.07.10
    Ort
    Aralkum
    Beiträge
    9.896
    Bei dem Test von Borgg, Zulan und mir hat sich höchstwahscheinlich Zulans Vermutung bestätigt!
    Bevor die Liste der Anführer eingeblendet wird, versendet Civ4 ein Paket mit Informationen über die Anführer. Unter normalen Umständen ist dieses Paket klein genung, um im ganzen versendet zu werden. Sind die Namen der Spieler aber sehr lang oder (wie hier) die Anzahl der Nationen so hoch, dass es zu lang wird, so wird es in kleinere Pakete gesplittet. Andererseits ist aber das „Don'f Fragment“-Flag gesetzt (und außerdem das More-Fragments nicht)
    Ist die Verbindung zum Server nicht gut kann es dann vorkommen, dass nicht alle Daten ankommen. Da es der Server weiter probiert, kommt man nach ettlichen Minuten dann irgendwann doch noch zum Screen.


    Der verrückte Lösungsvorschlag: Namen der Spieler kürzen Das wird derzeit getestet.

  8. #233
    Say My Name Avatar von Zulan
    Registriert seit
    13.03.08
    Beiträge
    8.902
    Zitat Zitat von Ramkhamhaeng Beitrag anzeigen
    Andererseits ist aber das „Don'f Fragment“-Flag gesetzt (und außerdem das More-Fragments nicht)
    Ist die Verbindung zum Server nicht gut kann es dann vorkommen, dass nicht alle Daten ankommen. Da es der Server weiter probiert, kommt man nach ettlichen Minuten dann irgendwann doch noch zum Screen.
    Also ich glaube fuer das zu grosse Paket ist don't fragment dann nicht gesetzt - aber bei den normalen/kleinen ist es gesetzt. Ich fuerchte halt, dass der Netzwerk code davon ausgeht, dass diese Info am Stueck. Bei den meisten Verbindungen klappt das, aber bei Verbindungen mit hohem jitter koennte es da halt Probleme geben.

  9. #234
    ε•ω=1 Avatar von Ramkhamhaeng
    Registriert seit
    19.07.10
    Ort
    Aralkum
    Beiträge
    9.896
    Bin leider noch nicht mit der neuen Version fertig. Die Namen werden automatisch gekürzt.
    Die größtmögliche Anzahl von Buchstaben bei 52 Zivs, welche den Verbindungs-Bug nicht auslöst ist 4+1. Ich suche noch nach einem Trick, damit diese Kurzformen nicht in Spielständen landen, aber das ist leider sehr knifflig, da außerhalb der DLL

    Bild
    Angehängte Grafiken Angehängte Grafiken

  10. #235
    Say My Name Avatar von Zulan
    Registriert seit
    13.03.08
    Beiträge
    8.902
    Ich frage mich, ist es ueberhaupt sinnvoll das technich zu loesen, oder sollten das kuerzen der Spielernamen/Civs nicht die Spieler selbst uebernehmen. Also zumindest wenn die Kurzvorm dann im Save landet ist das Ergebnis ja gleich, oder?

  11. #236
    ε•ω=1 Avatar von Ramkhamhaeng
    Registriert seit
    19.07.10
    Ort
    Aralkum
    Beiträge
    9.896
    Ein Problem ist dann aber, dass die Spieler sich dann Extra immer umbenennen müssen, bevor sie dem Spiel beitreten. Das finde ich eigentlich auf Dauer unpraktikabel.

    Ich habe es jetzt aber endlich geschafft, dass im Spielstand (und allen anderen Aufrufen) die langen Namen landen
    Nach etlichen Fehlversuchen ist sogar eine sehr kompakte Lösung entstanden.

    Dadurch ist nun diese Frage sinnvoll geworden: Ist es besser vier Buchstaben für den Namen oder vier für die Civ zu verwenden. Derzeit nummeriere ich die Civs durch (A-z).

  12. #237
    esst mehr Teile Avatar von mauz
    Registriert seit
    27.11.09
    Beiträge
    20.311
    ganz klar: vier für den Namen, alles was länger is als mauz is unförmig


  13. #238
    schläft Avatar von Frozen
    Registriert seit
    10.10.09
    Beiträge
    18.408
    Passt so
    4 für den Namen, 1 Civ

    Dann bin ich zB. CIV f
    Freedom's just another word for nothing left to lose

  14. #239
    ε•ω=1 Avatar von Ramkhamhaeng
    Registriert seit
    19.07.10
    Ort
    Aralkum
    Beiträge
    9.896
    Ich Depp hätte es erst einmal mit der Nicht-Debug-DLL probieren sollen bevor ich hier rumposaune Emoticon: minifu
    Jetzt muss ich erst mal recherchieren ob und wie das geht, wenn die Optimierungsflags an sind.

    Edit: Es geht um folgendes Konstrukt, wobei CriticalParent_LeaderName ein fester Pointer ist.
    Ich vermute es muss entweder daran liegen, das „-fomit-frame-pointer“ aktiviert ist oder die Methode als Inline deklariert ist.
    Code:
    			void ** puEBP = NULL;
    			__asm { mov puEBP, ebp };
    			void * pvReturn1 = puEBP[1]; // this is the caller of my function
    
    			if( pvReturn1 == CriticalParent_LeaderName ){
    [...]
    }

  15. #240
    Say My Name Avatar von Zulan
    Registriert seit
    13.03.08
    Beiträge
    8.902
    Zitat Zitat von Ramkhamhaeng Beitrag anzeigen
    Ich Depp hätte es erst einmal mit der Nicht-Debug-DLL probieren sollen bevor ich hier rumposaune Emoticon: minifu
    Jetzt muss ich erst mal recherchieren ob und wie das geht, wenn die Optimierungsflags an sind.

    Edit: Es geht um folgendes Konstrukt, wobei CriticalParent_LeaderName ein fester Pointer ist.
    Ich vermute es muss entweder daran liegen, das „-fomit-frame-pointer“ aktiviert ist oder die Methode als Inline deklariert ist.
    Code:
    			void ** puEBP = NULL;
    			__asm { mov puEBP, ebp };
    			void * pvReturn1 = puEBP[1]; // this is the caller of my function
    
    			if( pvReturn1 == CriticalParent_LeaderName ){
    [...]
    }
    Du koenntest noch versuchen das asm als volatile zu deklarieren (keine Ahnung wie der Microsoft compiler das handhabt). Ich fuerchte aber der Ansatz ist generell problematisch. Wenn da buffer overflow Schutztechniken wie ASLR zum tragen kommen koennte das wohl nicht mehr zuverlaessig funktionieren. Bleibt die Frage ob der Code nur auf dem Server ausgefuehrt wird, dann koennte man es evtl. probieren. Aber ansonsten haben wir wieder 10% Spieler bei denen es aus nun anderen Gruenden nicht mehr funktioniert .

Seite 16 von 53 ErsteErste ... 612131415161718192026 ... LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •