Portal-Zone Gothic-Zone Gothic II-Zone Gothic 3-Zone Gothic 4-Zone Modifikationen-Zone Download-Zone Foren-Zone RPG-Zone Almanach-Zone Spirit of Gothic

 

Page 11 of 21 « First ... 478910111213141518 ... Last »
Results 201 to 220 of 410
  1. Visit Homepage View Forum Posts #201
    Exodus Sektenspinner's Avatar
    Join Date
    Jul 2004
    Location
    Karlsruhe
    Posts
    7,827
     
    Sektenspinner is offline
    Quote Originally Posted by Lehona View Post
    Performanter wäre wohl einfach eine Manipulation des Bytecodes, aber ich denke nicht, dass die Funktion so viel Rechenleistung kostet. Andererseits weiß ich auch nicht, wie oft sie aufgerufen wird.
    Das dürfte pro Frame und Pfeil und mit dem Pfeil kollidierenden unerwünschtem Ziel nicht mehr als ein Aufruf sein.
    Unerwünschte Ziele sind zum einen Triggerzonen zum anderen (nur bei Npc-geschossenen Pfeilen) nicht-Target Npcs (ein Bandit schießt durch den anderen durch).
    Diese unerwünschten Zeile dürften also hinreichend selten sein, wenn man nicht gerade 20 Triggerzonen aufeinanderstapelt oder in engen Korridoren mit Banditenhorden kämpft.

    Beispiel: Wenn ich durch eine ein paar Meter Breite Triggerzone durchschieße kriegt ich so 20 Aufrufe während der Pfeil innerhalb der Zone fliegt.

    Die andere Fälle (wo tatsächlich eine Kollision mit einem Vob stattfindet) halte ich für vernachlässigbar, das passiert ja pro Pfeil im wesentlichen nur einmal.

    Habt ihr eigentlich mal gemessen wie teuer ein Hook ist?
    Für Spieler:
    Velaya # Velaya in English # Exodus Demo # Irrwichtel
    Tools für Modder:
    DiaDepp # DOPA-PARTER # zSlang
    Scripte für Modder:
    Ikarus Skriptpaket # Floats # Broadcasts
    Last edited by Sektenspinner; 05.04.2013 at 14:45.

  2. View Forum Posts #202
    Dea
    Join Date
    Jul 2007
    Posts
    10,168
     
    Lehona is offline
    Naja, es ist ein Aufruf pro potentieller Kollision, nicht pro ungewünschter Kollision, die macht bloß ca. 50% des Daedalus-Codes aus, allerdings scheint es sich ja trotzdem in Grenzen zu halten.

    Die Hook selber kostet nur minimal mehr als zCParser::CallFunc sowie der dazugehörige Daedalus-Code. Wie zCParser::CallFunc ist, sollte man wohl testen (mit einer leeren Daedalus-Funktion), da muss ich wohl ein wenig Bytecode zusammenschustern.

  3. Visit Homepage View Forum Posts #203
    Exodus Sektenspinner's Avatar
    Join Date
    Jul 2004
    Location
    Karlsruhe
    Posts
    7,827
     
    Sektenspinner is offline
    Du hast recht, es ist ein Problem. Bei so ca. 20 Banditen macht es den Unterschied zwischen 30 und 15 Frames (Welt: Newworld/Xardas).
    Das habe ich wohl falsch eingeschätzt.

    Edt: Update. Hm, so schlimm ist es vielleicht doch nicht.
    Ich habe nochmal mit (etwas) besserem Code getestet und habe jetzt gar keinen Unterschied mehr festgestellt. O_o

    Bei der ersten Messung sind aber auch merkwürdige Dinge passiert: Die Pfeile sind in der Luft zusammengestoßen und haben dort einen dicken Klumpen gebildet. Vielleicht waren meine Testbedingungen da doch etwas unrealistisch (20 Banditen sind schon verdammt viel).
    Für Spieler:
    Velaya # Velaya in English # Exodus Demo # Irrwichtel
    Tools für Modder:
    DiaDepp # DOPA-PARTER # zSlang
    Scripte für Modder:
    Ikarus Skriptpaket # Floats # Broadcasts
    Last edited by Sektenspinner; 05.04.2013 at 15:12.

  4. View Forum Posts #204
    Dea
    Join Date
    Jul 2007
    Posts
    10,168
     
    Lehona is offline
    Quote Originally Posted by Sektenspinner View Post
    Du hast recht, es ist ein Problem. Bei so ca. 20 Banditen macht es den Unterschied zwischen 30 und 15 Frames (Welt: Newworld/Xardas).
    Das habe ich wohl falsch eingeschätzt.
    Dann wird man die Bedingungen etc. wohl in Bytecode formulieren müssen, das ist aber ein wenig aufwändiger. Falls jemand wirklich den Performance-Schub braucht, kann man das ja machen. Ansonsten sollte man wohl nicht in Khorinis mit dem Bogen schießen (oder keine Triggerzonen verwenden).

  5. View Forum Posts #205
    Drachentöter Teron Gorefiend's Avatar
    Join Date
    Nov 2006
    Location
    im Alchemielabor
    Posts
    4,812
     
    Teron Gorefiend is offline
    hey, war lange nicht mehr im Eding. Wie auch immer habe gerade Semesterferien und eine richtig schwere Klausur erfolgreich hinter mehr, also eben 2 Fragen.

    1. Ist Lego inzwischen verfügbar für G1? Meine G1 als G2 Mod klappt nicht so wirklich, außer man findet unzählige Fehlermeldung beim Laden und anschließend einen schwarzen Bildschirm ansprechend.

    2. Wie kann man nochmal neue Untertitel von Dialoge bzw. die OU´s erstellen, da gabs mal so nen nettes Tool, glaube von Sektenspinner, aber ich weiß gerade den Namen nicht mehr.

  6. View Forum Posts #206

  7. Visit Homepage View Forum Posts #207
    Exodus Sektenspinner's Avatar
    Join Date
    Jul 2004
    Location
    Karlsruhe
    Posts
    7,827
     
    Sektenspinner is offline
    Folgender Code hilft Information im Charaktermenü darzustellen. Mögliche Anwendungen:
    • Anzeige von Script-verwalteten Talenten, zum Beispiel Goldhacken.
    • Anzeige der Goldmünzen im Spielerinventar
    • Anzeige von Stärke als Zahl (z.B. 100) anstatt als Bruch (z.B. 100/100)
    • Allgemeiner: Anzeige beliebiger Strings in beliebigen Menu Items im Charaktermenü deren Werte nicht Engine-verwaltet sind.

    Idee: Jedes mal wenn das Charaktermenü geöffnet wird, wird die Funktion Update_Character_Menu aufgerufen in der es DEINE Aufgabe ist deine Menu Items anhand deiner Vorstellungen mit Werten zu füllen. Dazu liegt eine Funktion Update_Menu_Item bei. Ein Beispiel liegt bereit, in dem die Überschrift ("Charakterprofil") ersetzt wird durch einen String der die Zahl der Münzen im Spieler Inventar anzeigt.

    Ein ausführlicher Kommentar am Anfang des Skripts beantwortet hoffentlich weitere Fragen.

    Code:
    /*##############################################################
      Idea:
        This code is useful if you want to display information
        in the character menu that you cannot or do not want to
        link to an Npc-Talent or Attribute.
        
        Traditionally, the Engine fills in values itself, for example
        initialising the menu Item MENU_ITEM_LEVEL with hero.level,
        or retrieving the string in MENU_ITEM_PLAYERGUILD according to
        hero.guild and the table TXT_GUILDS (see Text.d).
        
        Because the way in which the engine retrieves these values
        is hardcoded, you have only limited controll on what is
        displayed in the character menu.
        
        The following code is aimed to give you more control,
        allowing you to implement additional talents (more
        than NPC_TALENT_MAX) or statistical information
        (like number of monsters killed) that are not represented
        in attributes or talents.
        You also have more controll on how the information is
        displayed, for example as a value (100), a fraction (30/100)
        with a unit (32 Coins), as a percentage (42%) or in
        any other way you fancy.
        
        Usage:
            1.) Call Install_Character_Menu_Hook() in INIT_GLOBAL
              after having called LeGo_Init.
            2.) For each piece of information you want to display,
              create a menu item in Scripts\System\Menu\Menu_Status.d
              You need to specify the position of the menu item there.
              Use e.g. MENU_ITEM_STATUS_HEADING as a reference.
              Lets say your new menu item is called MENU_ITEM_GOLD.
            3.) At the top of Menu_Status.d, update MENU_STATUS
              such that your new menu item is listed as well.
            4.) In the function Update_Character_Menu (see below)
              you need to "calculate" the value that should be
              displayed within the menu item (calculating might
              be as easy as specifying a variable).
              Use the function Update_Menu_Item.
              This may look like this:
                var int gold;
                gold = Npc_HasItems(hero, ItMi_Gold);
                var string s;
                s = ConcatStrings(IntToString(gold), " Coins");
                Update_Menu_Item("MENU_ITEM_GOLD", s);
            5.) If you need additional labels or headings,
              create additional menu items in Menu_Status.d for it.
              For example a label "Gold:".
              You can use MENU_ITEM_STATUS_HEADING as a reference.
              Don't forget to list all new items in MENU_STATUS.
            5.) Do not call Update_Character_Menu yourself.
              This is automatically done for you each time
              the character menu is opened.
            6.) Do not try to manage menu items that the engine
              manages itself. For example you will not be able
              to change the value in MENU_ITEM_LEARN, because
              the engine will always display the number of learn points there, negating your changes.
              If, for example, you want to display the player strength,
              create a new menu item or rename the old menu item
              instead of just using MENU_ITEM_ATTRIBUTE_1.
              
        The function Update_Character_Menu currently contains
        code for replacing the heading "CHARAKTERPROFIL" in the
        status menu with a string displaying number of gold coins
        in the hero's inventory.
        This is supposed to serve as an example.
        After following only step 1 above this should already work.
    ##############################################################*/
    
    // [INTERAL]
        func void Update_Menu_Item(var string name, var string val) {
            var int itPtr;
            itPtr = MEM_GetMenuItemByString(name);
            
            if (!itPtr) {
                MEM_Error(ConcatStrings("Update_Menu_Item: Invalid Menu Item: ", name));
                return;
            };
            
            //void __thiscall zCMenuItem::SetText(val = val, line = 0, drawNow = true)
            const int SetText = 5114800;
            
            CALL_IntParam(true);
            CALL_IntParam(0);
            CALL_zStringPtrParam(val);
            CALL__thiscall(itPtr, SetText);
        };
        
        //Call this is INIT_GLOBAL after LeGo_Init.
        func void Install_Character_Menu_Hook() {
            //at oCMenu_Status::SetLearnPoints
            const int done = false;
            if(!done) {
                HookEngineF(4707920, 6, Update_Character_Menu);
                done = true;
            };
        };
    // [/INTERNAL]
    
    // Fill in this function according to your needs:
    func void Update_Character_Menu() {
        /* Usage:
            Update_Menu_Item([Name of the Menu Item],
                             [new String value]);
        */
        
        //Replace heading with number of coins
        var int gold;
        gold = Npc_HasItems(hero, ItMi_Gold);
        var string s;
        s = ConcatStrings(IntToString(gold), " Coins");
        Update_Menu_Item("MENU_ITEM_STATUS_HEADING", s);
    };
    Danke an Varus fürs testen.
    Für Spieler:
    Velaya # Velaya in English # Exodus Demo # Irrwichtel
    Tools für Modder:
    DiaDepp # DOPA-PARTER # zSlang
    Scripte für Modder:
    Ikarus Skriptpaket # Floats # Broadcasts

  8. View Forum Posts #208
    Abenteurer redleha's Avatar
    Join Date
    Dec 2010
    Location
    Новокуйбышевск, Россия
    Posts
    68
     
    redleha is offline

    LOD

    Hello! I would like to share the information that I found yesterday. I do not know if this was already known before.

    Game console has command: ZPROGMESHLOD (apply global strength value to all pm LOD rendering, -1 (default), 0 .. 1 .. x)

    I found a memory address. With Ikarus changed it to 0. After that was gone LOD mesh morphing head of the protagonist "Dark Saga" Alastair all within sight.

    Prior to this change in his head, which has more than 1,300 polygons greatly distorted even at a distance of two steps.

    Here it is:
    008A5334 - LOD address parameter / / = 9065268

    const int LODparametr = 9065268, / / this is the number of type float.
    MEM_WriteInt (LODparametr, 0);

    As I see it, it's maybe not the correct implementation, so I hope that the authors will be able to add LeGo correct function. For example Set_LODfactor (var float lodfactor).

    I would be glad if I get any response to my message.

  9. View Forum Posts #209
    now also in your universe  Milky-Way's Avatar
    Join Date
    Jun 2007
    Posts
    13,296
     
    Milky-Way is offline
    Could you maybe make two screenshots that show before / after?

  10. View Forum Posts #210
    Abenteurer redleha's Avatar
    Join Date
    Dec 2010
    Location
    Новокуйбышевск, Россия
    Posts
    68
     
    redleha is offline
    Quote Originally Posted by Milky-Way View Post
    Could you maybe make two screenshots that show before / after?
    1. Default (lodfactor = -1)
    [Bild: 2rbIdJB.jpg?1]

    2. Lodfactor = 0
    [Bild: H1J0XOC.jpg]

    3. + zhighqualityrender
    [Bild: rjtnKIL.jpg]

  11. View Forum Posts #211
    Abenteurer redleha's Avatar
    Join Date
    Dec 2010
    Location
    Новокуйбышевск, Россия
    Posts
    68
     
    redleha is offline

    Clipping Factor

    Also empirically found a pointer to a memory location that stores a value set by the command SET CLIPPINGFACTOR.
    Well, that just turned out that there is already in use "Dynamic Memory Allocation".

    Pointer: (0099AC8C // 10071180) / / offset = 1436;
    Description of the command SET CLIPPINGFACTOR: Setting the clipping-factor. Default is 1. Usually check 0.1 ... 2.0

    I exhibited a value of 3. Range of detailed drawing really increased. A higher value has little effect.
    Last edited by redleha; 04.06.2013 at 07:12.

  12. View Forum Posts #212
    Ehrengarde Golden Age's Avatar
    Join Date
    May 2006
    Location
    Rothenkirchen
    Posts
    2,539
     
    Golden Age is offline
    Der Link im Startpost zum Wiki für die neuen Funktionen funktioniert nicht mehr.
    Da ich jetzt auch mit Ikarus und LeGo anfangen will/muss, wäre das sehr hilfreich

    Ich scheitere im Moment schon daran, dass ich erfolgreiche Tagebucheinträge grün ausgeben will. Wie genau funktioniert das?

    Und 2.
    Ich habe ein Mob, Kisten die man auseinanderschieben muss. Danach kann man in eine Höhle gehen, ähnlich wie in Sarkeras. Da der Endzustand eines Mobs nicht gespeichert wird, wollte ich das Mob beim Laden löschen und stattdessen eine 3ds an der Stelle einfügen, welche so aussieht, dass die Kisten bereits auseinandergeschoben sind.
    Könnt ihr mit bitte sagen, wie das funktioniert? Ich finds toll, dass es jetzt dafür Möglichkeiten gibt, aber ich möchte mich selbst nicht unbedingt so lang damit aufhalten.

    Und warum bringt mir dieser Code ne Fehlermeldung(Division by zero)
    Code:
    DIAG_SetAni("GreetCool");
    	AI_Output (self, other, "DIA_NONE_3503_Vater_nachfrage_14_01");//Na mein Sohn. Danke, mir geht es gut.
    	DIAG_Reset();
    Danke!
    Last edited by Golden Age; 11.05.2013 at 15:01.

  13. View Forum Posts #213
    Dea
    Join Date
    Jul 2007
    Posts
    10,168
     
    Lehona is offline
    Es gab ein paar Probleme mit der Datenbank, das Wiki sollte jetzt wieder erreichbar sein.

  14. View Forum Posts #214
    Ehrengarde Gottfried's Avatar
    Join Date
    Mar 2006
    Posts
    2,512
     
    Gottfried is offline
    Das LeGo-Wiki funktioniert jetzt wieder

    Wenn du einen Tagebucheintrag grün ausgeben willst kannst du PrintS dafür verwenden:
    Code:
    PrintS(ConcatStrings("Quest abgeschlossen: ", quest_title), COL_Green);
    COL_Green ist eine der Farbkonstanten. Alternativ kann man dafür natürlich auch die RGBA-Funktion verwenden.


    Bei deinem Mob-Problem brauchst du LeGo gar nicht. Du kannst die beiden Funktionen MEM_DeleteVob und MEM_InsertVob aus Ikarus dafür verwenden.


    Die Dialoggestures haben vor einiger Zeit ein sehr großes Update erhalten, weil das alte System zu unschön war. Die Funktion DIAG_SetAni solltest du gar nicht benutzen - mein Fehler dass die Funktion überhaupt noch mit diesem Namen vorhanden ist.

    Um die Dialoggestures mit dem neuen LeGo zu verwenden musst du die Funktion DIAG nehmen. Die Anwendung ist etwas schwieriger zu verstehen, dafür insgesamt komfortabler wenn man mal weiß wie.
    Wenn du die Funktionalität nicht so recht durchschaust kannst du mir gerne ne PN schreiben. Ich sehe gerade dass es für dieses Paket gar keine Beispiele gibt. Das ist natürlich blöd, mal schauen ob ich da in nächster Zeit was schreiben kann.


    MfG Gottfried

  15. View Forum Posts #215
    Lehrling
    Join Date
    Apr 2012
    Posts
    21
     
    PsyonikerAusmSumpf is offline
    ich trau mich kaum zu fragen, aber wie benutzt man euer wundertool?
    ich möchte zum beispiel einen perk implementieren der 1% maxMp/Sek regeneriert. (das problem liegt beim platzieren und starten der schleife)

    auf die wikiseite komme ich leider nicht drauf. ich bekomme immer nen timeout, liegt das an mir?

    ich würd mich über jede hilfe freuen

  16. View Forum Posts #216
    Dea
    Join Date
    Jul 2007
    Posts
    10,168
     
    Lehona is offline
    Also das Wiki funktioniert momentan bei mir. Wir benutzen seit kurzem eine Gratis Datenbank, kann sein, dass dort die Uptime nicht so toll ist... Aber es sollte jetzt wieder funktionieren.


    Eigentlich musst du bloß die Scripte einpflegen (d.h. irgendwo in den Scripts-Ordner kopieren und LeGo\Header.src in die Gothic.src eintragen, nach Ikarus und den Floats) und entsprechend initialisieren. Wenn du nur Schleifen brauchst, ist LeGo_Init(LeGo_FrameFunctions); in der Init_Global() (in Startup.d) völlig ausreichend.

    Danach kannst du eine ein-sekündige Schleife mit FF_ApplyExtOnce(myFunc, -1, 1000); hinzufügen (einfach direkt nach LeGo_Init() aufrufen). Näheres zu den FrameFunctions findest du hier.

  17. View Forum Posts #217
    Kämpfer mobpapst's Avatar
    Join Date
    Jun 2005
    Posts
    364
     
    mobpapst is offline
    Quote Originally Posted by Gottfried View Post

    Wenn du einen Tagebucheintrag grün ausgeben willst kannst du PrintS dafür verwenden:
    Code:
    PrintS(ConcatStrings("Quest abgeschlossen: ", quest_title), COL_Green);
    MfG Gottfried

    Das habe ich probiert. Aber ich bekommen beim reparsen den Fehler, das eine Klammer nicht stimmt. Aber ich habe da eine generelle Frage:

    Nehmen wir mal an das sei mein Tagebucheintrag:

    1.

    Code:
    Log_CreateTopic (TOPIC_WOOD_FENCE, LOG_MISSION);
    	Log_SetTopicStatus(TOPIC_WOOD_FENCE, LOG_RUNNING);
    	B_LogEntry (TOPIC_WOOD_FENCE, "xxx.");
    2.

    Könnte ich dann das einfach so machen, damit er Grün ausgegeben wird? :

    Code:
    Log_CreateTopic (TOPIC_WOOD_FENCE, LOG_MISSION);
    	Log_SetTopicStatus(TOPIC_WOOD_FENCE, LOG_RUNNING);
    	B_LogEntry (TOPIC_WOOD_FENCE, "xxx.");
    PrintS(ConcatStrings("Quest abgeschlossen: ", WOOD_FENCE), COL_Green)

    Mfg

  18. View Forum Posts #218
    Dea
    Join Date
    Jul 2007
    Posts
    10,168
     
    Lehona is offline
    Ich glaube du brauchst TOPIC_WOOD_FENCE, nicht WOOD_FENCE, ansonsten dürfte es aber stimmen. In B_LogEntry() wird glaube ich noch ein Print ausgeführt, den solltest du ggf. entfernen oder einfach ersetzen.

  19. View Forum Posts #219
    Kämpfer mobpapst's Avatar
    Join Date
    Jun 2005
    Posts
    364
     
    mobpapst is offline
    Ok danke. Hab ich nun abgeändert wie du gesagt hast, aber bekomme beim PrintS-Befehl folgenden Fehler:

    Code:
    PrintS(ConcatStrings("Quest abgeschlossen: ", TOPIC_WOOD_FENCE), COL_Green)
    U:PAR Expected ')
    '(line xxx)
    Last edited by mobpapst; 18.05.2013 at 20:54.

  20. View Forum Posts #220
    Dea
    Join Date
    Jul 2007
    Posts
    10,168
     
    Lehona is offline
    PrintS() nimmt nur einen Text, wenn du Farbe möchtest, benutze PrintS_Ext(). Dafür kann man auch eben im Wiki schauen.

Page 11 of 21 « First ... 478910111213141518 ... Last »

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
Impressum | Link Us | intern
World of Gothic © by World of Gothic Team
Gothic, Gothic 2 & Gothic 3 are © by Piranha Bytes & Egmont Interactive & JoWooD Productions AG, all rights reserved worldwide