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

 

Seite 11 von 21 « Erste ... 478910111213141518 ... Letzte »
Ergebnis 201 bis 220 von 410
  1. Homepage besuchen Beiträge anzeigen #201
    Exodus Avatar von Sektenspinner
    Registriert seit
    Jul 2004
    Ort
    Karlsruhe
    Beiträge
    7.827
     
    Sektenspinner ist offline
    Zitat Zitat von Lehona Beitrag anzeigen
    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
    Geändert von Sektenspinner (05.04.2013 um 14:45 Uhr)

  2. Beiträge anzeigen #202
    Demigoddess
    Registriert seit
    Jul 2007
    Beiträge
    9.795
     
    Lehona ist 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. Homepage besuchen Beiträge anzeigen #203
    Exodus Avatar von Sektenspinner
    Registriert seit
    Jul 2004
    Ort
    Karlsruhe
    Beiträge
    7.827
     
    Sektenspinner ist 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
    Geändert von Sektenspinner (05.04.2013 um 15:12 Uhr)

  4. Beiträge anzeigen #204
    Demigoddess
    Registriert seit
    Jul 2007
    Beiträge
    9.795
     
    Lehona ist offline
    Zitat Zitat von Sektenspinner Beitrag anzeigen
    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. Beiträge anzeigen #205
    Dragonslayer Avatar von Teron Gorefiend
    Registriert seit
    Nov 2006
    Ort
    im Alchemielabor
    Beiträge
    4.793
     
    Teron Gorefiend ist 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. Beiträge anzeigen #206
    Demigoddess
    Registriert seit
    Jul 2007
    Beiträge
    9.795
     
    Lehona ist offline
    1. Nein
    2. Redefix

  7. Homepage besuchen Beiträge anzeigen #207
    Exodus Avatar von Sektenspinner
    Registriert seit
    Jul 2004
    Ort
    Karlsruhe
    Beiträge
    7.827
     
    Sektenspinner ist 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. Beiträge anzeigen #208
    Abenteurer Avatar von redleha
    Registriert seit
    Dec 2010
    Ort
    Новокуйбышевск, Россия
    Beiträge
    68
     
    redleha ist 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. Beiträge anzeigen #209
    now also in your universe  Avatar von Milky-Way
    Registriert seit
    Jun 2007
    Beiträge
    11.774
     
    Milky-Way ist offline
    Could you maybe make two screenshots that show before / after?

  10. Beiträge anzeigen #210
    Abenteurer Avatar von redleha
    Registriert seit
    Dec 2010
    Ort
    Новокуйбышевск, Россия
    Beiträge
    68
     
    redleha ist offline
    Zitat Zitat von Milky-Way Beitrag anzeigen
    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. Beiträge anzeigen #211
    Abenteurer Avatar von redleha
    Registriert seit
    Dec 2010
    Ort
    Новокуйбышевск, Россия
    Beiträge
    68
     
    redleha ist 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.
    Geändert von redleha (04.06.2013 um 07:12 Uhr)

  12. Beiträge anzeigen #212
    Ehrengarde Avatar von Golden Age
    Registriert seit
    May 2006
    Ort
    Rothenkirchen
    Beiträge
    2.539
     
    Golden Age ist 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!
    Geändert von Golden Age (11.05.2013 um 15:01 Uhr)

  13. Beiträge anzeigen #213
    Demigoddess
    Registriert seit
    Jul 2007
    Beiträge
    9.795
     
    Lehona ist offline
    Es gab ein paar Probleme mit der Datenbank, das Wiki sollte jetzt wieder erreichbar sein.

  14. Beiträge anzeigen #214
    Ehrengarde Avatar von Gottfried
    Registriert seit
    Mar 2006
    Beiträge
    2.512
     
    Gottfried ist 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. Beiträge anzeigen #215
    Lehrling
    Registriert seit
    Apr 2012
    Beiträge
    21
     
    PsyonikerAusmSumpf ist 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. Beiträge anzeigen #216
    Demigoddess
    Registriert seit
    Jul 2007
    Beiträge
    9.795
     
    Lehona ist 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. Beiträge anzeigen #217
    Kämpfer Avatar von mobpapst
    Registriert seit
    Jun 2005
    Beiträge
    364
     
    mobpapst ist offline
    Zitat Zitat von Gottfried Beitrag anzeigen

    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. Beiträge anzeigen #218
    Demigoddess
    Registriert seit
    Jul 2007
    Beiträge
    9.795
     
    Lehona ist 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. Beiträge anzeigen #219
    Kämpfer Avatar von mobpapst
    Registriert seit
    Jun 2005
    Beiträge
    364
     
    mobpapst ist 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)
    Geändert von mobpapst (18.05.2013 um 20:54 Uhr)

  20. Beiträge anzeigen #220
    Demigoddess
    Registriert seit
    Jul 2007
    Beiträge
    9.795
     
    Lehona ist offline
    PrintS() nimmt nur einen Text, wenn du Farbe möchtest, benutze PrintS_Ext(). Dafür kann man auch eben im Wiki schauen.

Seite 11 von 21 « Erste ... 478910111213141518 ... Letzte »

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
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