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 10 von 10 « Erste ... 3678910
Ergebnis 181 bis 196 von 196
  1. Beiträge anzeigen #181 Zitieren
    General Avatar von joey1990
    Registriert seit
    Aug 2008
    Ort
    Germanien/Thüringen/Hermsdorfer Kreuz
    Beiträge
    3.342
     
    joey1990 ist offline
    Zitat Zitat von Dada Beitrag anzeigen
    Entspann dich mal Es ist mitten in der Woche und nicht jeder ist hier 24/7 aktiv.

    Draxxes hat dir die Lösung im Endeffekt schon genannt. Ich gehe noch einen Schritt weiter und nenne dir eine Funktion, die höchstwahrscheinlich das tut, was du möchtest.

    Code:
    FUNC INT Hlp_IsItem (VAR C_Item item, VAR INT instanceName)
    Sorry, aber wenn's nach mir geht, musst du den Rest selber herausfinden.
    Wenn ich vom skripten auch nur ansatzweise was verstehen würde, dann hätte ich wahrscheinlich die fragen hier alle nicht gestellt, aber danke schonmal ich sehe obs was wird

    EDIT: okay, ich weis nichts damit anzufangen... :/
    Geändert von joey1990 (10.04.2018 um 20:40 Uhr)

  2. Homepage besuchen Beiträge anzeigen #182 Zitieren
    General Avatar von Dada
    Registriert seit
    Jan 2007
    Ort
    Krefeld
    Beiträge
    3.729
     
    Dada ist offline
    Fangen wir doch mal mit den Ansätzen an...
    Mit welchem Teil kannst du nichts anfangen? Oder mit der gesamten Funktion?

    Ich habe gerade meine sozialen fünf Minuten, deshalb gebe ich noch einen weiteren Tipp. Du hast im obigen Script folgende Zeile stehen:

    Code:
    var C_ITEM br_pfeil; br_pfeil = Npc_GetReadiedWeapon(other);
    Vielleicht hilft dir das in Verbindung mit der von mir geposteten Funktion.

  3. Beiträge anzeigen #183 Zitieren
    General Avatar von joey1990
    Registriert seit
    Aug 2008
    Ort
    Germanien/Thüringen/Hermsdorfer Kreuz
    Beiträge
    3.342
     
    joey1990 ist offline
    Zitat Zitat von Dada Beitrag anzeigen
    Fangen wir doch mal mit den Ansätzen an...
    Mit welchem Teil kannst du nichts anfangen? Oder mit der gesamten Funktion?

    Ich habe gerade meine sozialen fünf Minuten, deshalb gebe ich noch einen weiteren Tipp. Du hast im obigen Script folgende Zeile stehen:

    Code:
    var C_ITEM br_pfeil; br_pfeil = Npc_GetReadiedWeapon(other);
    Vielleicht hilft dir das in Verbindung mit der von mir geposteten Funktion.
    genau diese zeile habe ich getauscht und bei instance name, die instance eines meiner bögen eingefügt, leider geht das nicht...wie gesagt von skripten und funktionen verstehe ich nur bahnhof

    das heisst, sachen die für andere selbstverständlich sind, sind für mich wie eine fremdsprache , zb latainisch welche ich nicht beherrsche :/

  4. Homepage besuchen Beiträge anzeigen #184 Zitieren
    General Avatar von Dada
    Registriert seit
    Jan 2007
    Ort
    Krefeld
    Beiträge
    3.729
     
    Dada ist offline
    Gut, vier Minuten sind noch übrig. Ich werd's mal versuchen. Eins noch vorab, von mir gibt's gerade kein fertiges Script, nur Denkanstöße.

    Code:
    var C_ITEM br_pfeil; br_pfeil = Npc_GetReadiedWeapon(other);
    In dieser Zeile definierst du zuerst eine Variable, in der du ein Item speicherst, genauer gesagt, die Fernkampfwaffe, die der Held gerade gezogen hat.

    Code:
    FUNC INT Hlp_IsItem (VAR C_Item item, VAR INT instanceName)
    Die Funktion vergleicht zwei Items miteinander. In diesem Falle braucht der erste Parameter eine Variable (ein Objekt) vom Typ C_Item, der zweite eine Instanz. So zumindest die Benennung der Parameter.
    Die Funktion ist natürlich schon definiert, daher musst du sie nur aufrufen. Das "FUNC INT" kannst du in diesem Fall weglassen.

    Was du jetzt tauschen musst, ist nicht dieser Aufruf:

    Code:
    var C_ITEM br_pfeil; br_pfeil = Npc_GetReadiedWeapon(other);
    sondern den Teil des Scriptes, der die Abfrage übernimmt. Tipp: Die erste der drei betroffenen Zeilen ist folgende:

    Code:
    if (br_pfeil.munition==ItRw_Addon_FireBow)
    "if" bedeutet übersetzt soviel wie "wenn", die "||" in den Zeilen danach stehen für "oder".

    So, eigentlich sind jetzt alle Puzzlestücke zusammen. Genauer gesagt sind es drei. Diese jetzt noch zusammen setzen und ab dafür!

  5. Beiträge anzeigen #185 Zitieren
    General Avatar von joey1990
    Registriert seit
    Aug 2008
    Ort
    Germanien/Thüringen/Hermsdorfer Kreuz
    Beiträge
    3.342
     
    joey1990 ist offline
    Zitat Zitat von Dada Beitrag anzeigen
    Gut, vier Minuten sind noch übrig. Ich werd's mal versuchen. Eins noch vorab, von mir gibt's gerade kein fertiges Script, nur Denkanstöße.

    Code:
    var C_ITEM br_pfeil; br_pfeil = Npc_GetReadiedWeapon(other);
    In dieser Zeile definierst du zuerst eine Variable, in der du ein Item speicherst, genauer gesagt, die Fernkampfwaffe, die der Held gerade gezogen hat.

    Code:
    FUNC INT Hlp_IsItem (VAR C_Item item, VAR INT instanceName)
    Die Funktion vergleicht zwei Items miteinander. In diesem Falle braucht der erste Parameter eine Variable (ein Objekt) vom Typ C_Item, der zweite eine Instanz. So zumindest die Benennung der Parameter.
    Die Funktion ist natürlich schon definiert, daher musst du sie nur aufrufen. Das "FUNC INT" kannst du in diesem Fall weglassen.

    Was du jetzt tauschen musst, ist nicht dieser Aufruf:

    Code:
    var C_ITEM br_pfeil; br_pfeil = Npc_GetReadiedWeapon(other);
    sondern den Teil des Scriptes, der die Abfrage übernimmt. Tipp: Die erste der drei betroffenen Zeilen ist folgende:

    Code:
    if (br_pfeil.munition==ItRw_Addon_FireBow)
    "if" bedeutet übersetzt soviel wie "wenn", die "||" in den Zeilen danach stehen für "oder".

    So, eigentlich sind jetzt alle Puzzlestücke zusammen. Genauer gesagt sind es drei. Diese jetzt noch zusammen setzen und ab dafür!


    Okay... wenn ich das jetzt richtig verstehe, sollte das so aussehen...aber irgendwas ist noch falsch

    Spoiler:(zum lesen bitte Text markieren)
    Code:
            var C_ITEM item; item = Npc_GetReadiedWeapon(other);
    	if Hlp_IsItem (VAR C_Item item, VAR INT ItRw_Addon_MagicBow)

  6. Homepage besuchen Beiträge anzeigen #186 Zitieren
    General Avatar von Dada
    Registriert seit
    Jan 2007
    Ort
    Krefeld
    Beiträge
    3.729
     
    Dada ist offline
    Kleiner Tipp: Fehlermeldungen können helfen!

    Noch ein zweiter Tipp:
    Code:
    var C_Item item;
    erstellt eine neue Variable mit dem Namen item. Das funktioniert nur einmal. Danach musst du sie nur benutzen, nicht neu erstellen. Um darauf zuzugreifen, kannst du auch einfach den Namen nutzen.

  7. Beiträge anzeigen #187 Zitieren
    General Avatar von joey1990
    Registriert seit
    Aug 2008
    Ort
    Germanien/Thüringen/Hermsdorfer Kreuz
    Beiträge
    3.342
     
    joey1990 ist offline
    Zitat Zitat von Dada Beitrag anzeigen
    Kleiner Tipp: Fehlermeldungen können helfen!

    Noch ein zweiter Tipp:
    Code:
    var C_Item item;
    erstellt eine neue Variable mit dem Namen item. Das funktioniert nur einmal. Danach musst du sie nur benutzen, nicht neu erstellen. Um darauf zuzugreifen, kannst du auch einfach den Namen nutzen.
    ich habe jetzt item mit Item_bow ersetzt das geht leider immernoch nicht

  8. Beiträge anzeigen #188 Zitieren
    Knight Avatar von Draxes
    Registriert seit
    Aug 2007
    Ort
    Mainz
    Beiträge
    1.920
     
    Draxes ist offline
    Okay, hier nochmal ein kleiner Crash Kurs, was Funktionen angeht.

    Das hier ist die Funktionsdeklarierung.
    Code:
    FUNC INT Hlp_IsItem (VAR C_Item item, VAR INT instanceName)
    Das Func bedeutet, dass es sich um eine Funktion handelt.
    Das Int bedeutet, dass diese Funktion etwas zurückgibt. Im Gegensatz zu Funktionen, die dort Void stehen haben. Die geben dann nichts zurück.
    Anschließend ist Hlp_IsItem der Funktionsname, den du bei einem Aufruf benutzt. Im Anschluss stehen in den Klammern die Parameterdeklarationen.
    Var C_Item item heißt hier, dass es sich um eine VARIABLE des Typs C_ITEM handelt, die "item" heißt. Wenn man diese Variable in der Funktion verwenden will, dann nutzt man diesen Namen, um auf den Inhalt zuzugreifen.

    Wie Dada bereits geschrieben hat ist diese Funktion bereits definiert. Somit kannst du sie benutzen. Wenn du jetzt eine Funktion benutzt, dann lässt du die deklarierenden Elemente der Funktionsbeschreibung weg und verwendest ausschließlich die Namen. In diesem Fall fällt das FUNC INT vorne weg, genauso wie das VAR C_ITEM und das VAR INT vor den Parameternamen.

    Ein Aufruf sieht also folgendermaßen aus:
    Code:
    Hlp_IsItem(myWeapon, ItRw_Addon_FireBow)
    Dieser Aufruf würde jetzt TRUE zurückgeben, wenn myWeapon (was eine Variable vom Typ C_ITEM ist) vom Instanztyp ItRw_Addon_FireBow ist.

    Ich hoffe, dass ich dir Richtung Funktionen etwas Licht ins Dunkel bringen konnte. Dieses Prinzip ist übrigens überall gleich. Das heißt, wenn du jetzt so einen Funktionsdeklaration siehst (zum Beispiel gibt es ganz viele praktische in der Externals.d), dann weißt du genau, wie du sie benutzt

    Und noch ein kleiner Nachsatz zu deinem Vergleich zu Latein: Da du ja recht häufig Scriptprobleme hast spricht das dafür, dass es sicherlich nicht verkehrt ist mal das ein oder andere Tutorial anzuschauen, bevor du dich in die Feature-Hölle stürzt. Das spart dir im Nachhinein erfahrungsgemäß wirklich viel Zeit, die du sonst mit dem Warten auf eine Antwort im Forum verbrauchst. Außerdem macht Scripten richtig Spaß, wenn man einmal die Grundlagen verstanden hat und ist deutlich weniger frustrierend
    Geändert von Draxes (10.04.2018 um 21:56 Uhr)

  9. Beiträge anzeigen #189 Zitieren
    General Avatar von joey1990
    Registriert seit
    Aug 2008
    Ort
    Germanien/Thüringen/Hermsdorfer Kreuz
    Beiträge
    3.342
     
    joey1990 ist offline
    Zitat Zitat von Draxes Beitrag anzeigen
    Okay, hier nochmal ein kleiner Crash Kurs, was Funktionen angeht.

    Das hier ist die Funktionsdeklarierung.
    Code:
    FUNC INT Hlp_IsItem (VAR C_Item item, VAR INT instanceName)
    Das Func bedeutet, dass es sich um eine Funktion handelt.
    Das Int bedeutet, dass diese Funktion etwas zurückgibt. Im Gegensatz zu Funktionen, die dort Void stehen haben. Die geben dann nichts zurück.
    Anschließend ist Hlp_IsItem der Funktionsname, den du bei einem Aufruf benutzt. Im Anschluss stehen in den Klammern die Parameterdeklarationen.
    Var C_Item item heißt hier, dass es sich um eine VARIABLE des Typs C_ITEM handelt, die "item" heißt. Wenn man diese Variable in der Funktion verwenden will, dann nutzt man diesen Namen, um auf den Inhalt zuzugreifen.

    Wie Dada bereits geschrieben hat ist diese Funktion bereits definiert. Somit kannst du sie benutzen. Wenn du jetzt eine Funktion benutzt, dann lässt du die deklarierenden Elemente der Funktionsbeschreibung weg und verwendest ausschließlich die Namen. In diesem Fall fällt das FUNC INT vorne weg, genauso wie das VAR C_ITEM und das VAR INT vor den Parameternamen.

    Ein Aufruf sieht also folgendermaßen aus:
    Code:
    Hlp_IsItem(myWeapon, ItRw_Addon_FireBow)
    Dieser Aufruf würde jetzt TRUE zurückgeben, wenn myWeapon (was eine Variable vom Typ C_ITEM ist) vom Instanztyp ItRw_Addon_FireBow ist.

    Ich hoffe, dass ich dir Richtung Funktionen etwas Licht ins Dunkel bringen konnte. Dieses Prinzip ist übrigens überall gleich. Das heißt, wenn du jetzt so einen Funktionsdeklaration siehst (zum Beispiel gibt es ganz viele praktische in der Externals.d), dann weißt du genau, wie du sie benutzt

    Und noch ein kleiner Nachsatz zu deinem Vergleich zu Latein: Da du ja recht häufig Scriptprobleme hast spricht das dafür, dass es sicherlich nicht verkehrt ist mal das ein oder andere Tutorial anzuschauen, bevor du dich in die Feature-Hölle stürzt. Das spart dir im Nachhinein erfahrungsgemäß wirklich viel Zeit, die du sonst mit dem Warten auf eine Antwort im Forum verbrauchst. Außerdem macht Scripten richtig Spaß, wenn man einmal die Grundlagen verstanden hat und ist deutlich weniger frustrierend
    Danke, jetzt funktioniert es!

  10. Beiträge anzeigen #190 Zitieren
    General Avatar von joey1990
    Registriert seit
    Aug 2008
    Ort
    Germanien/Thüringen/Hermsdorfer Kreuz
    Beiträge
    3.342
     
    joey1990 ist offline
    Gibt es denn einen Befehl in dem man einem NPC im dialog eine bestimmte armbrust anlegen lässt? oder evtl die beste die er hat?

    Hatte das versucht, aber ingame macht er es nicht

    AI_EquipBestRangedWeapon (self);

  11. Homepage besuchen Beiträge anzeigen #191 Zitieren
    General Avatar von Dada
    Registriert seit
    Jan 2007
    Ort
    Krefeld
    Beiträge
    3.729
     
    Dada ist offline
    Wie hast du den Befehl denn eingesetzt?
    Sprich: Zeig' mal den Codeabschnitt

  12. Beiträge anzeigen #192 Zitieren
    General Avatar von joey1990
    Registriert seit
    Aug 2008
    Ort
    Germanien/Thüringen/Hermsdorfer Kreuz
    Beiträge
    3.342
     
    joey1990 ist offline
    Eigentlich so, das wenn er die armbrust erhält, er sie sofort auch anlegen soll^^


    Spoiler:(zum lesen bitte Text markieren)
    Code:
    INSTANCE DIA_Dragomir_Armbrust   (C_INFO)
    {
    	npc         = BAU_983_Dragomir;
    	nr          = 2;
    	condition   = DIA_Dragomir_Armbrust_Condition;
    	information = DIA_Dragomir_Armbrust_Info;
    	permanent   = FALSE;
    	description = "Hier. Ich habe deine Armbrust gefunden.";
    };
    FUNC INT DIA_Dragomir_Armbrust_Condition()
    {
    	if (MIS_DragomirsArmbrust == LOG_RUNNING)
    	&& (Npc_HasItems (other,ItRw_DragomirsArmbrust_MIS))
    	{ 
    		return TRUE;
    
    	};		
    };
    
    
    FUNC VOID DIA_Dragomir_Armbrust_Info()
    {
    	AI_Output (other,self ,"DIA_Dragomir_Armbrust_15_00"); //Hier. Ich habe deine Armbrust gefunden.
    	B_GiveInvItems (other, self, ItRw_DragomirsArmbrust_MIS, 1);
            AI_EquipBestRangedWeapon (self);					
    	AI_Output (self ,other,"DIA_Dragomir_Armbrust_12_01"); //Das ist tatsächlich meine. Sag nicht, du bist oben bei dem Steinkreis gewesen.
    	AI_Output (other,self ,"DIA_Dragomir_Armbrust_15_02"); //Und ob!
    	AI_Output (self ,other,"DIA_Dragomir_Armbrust_12_03"); //Ganz schön leichtsinnig. Wie auch immer, ich danke dir.
    	AI_Output (self ,other,"DIA_Dragomir_Armbrust_12_04"); //Ich werde dir diese Tat natürlich belohnen. Ich hoffe, das ist genug.
    
    	CreateInvItems (self, ItMi_Gold, 150);									
    	B_GiveInvItems (self, other, ItMi_Gold, 150);					
    	MIS_DragomirsArmbrust = LOG_SUCCESS;
    	B_GivePlayerXP (XP_DragomirsArmbrust);
    
    };

  13. Homepage besuchen Beiträge anzeigen #193 Zitieren
    General Avatar von Dada
    Registriert seit
    Jan 2007
    Ort
    Krefeld
    Beiträge
    3.729
     
    Dada ist offline
    Mal blöd gefragt... Ist die Waffen denn die stärkste Waffe, die der NPC dann hat?

  14. Beiträge anzeigen #194 Zitieren
    General Avatar von joey1990
    Registriert seit
    Aug 2008
    Ort
    Germanien/Thüringen/Hermsdorfer Kreuz
    Beiträge
    3.342
     
    joey1990 ist offline
    Zitat Zitat von Dada Beitrag anzeigen
    Mal blöd gefragt... Ist die Waffen denn die stärkste Waffe, die der NPC dann hat?
    Ja, darauf habe ich geachtet... macht mehr schaden und benötigt mehr stärke... die benötigte stärke hat auch der NPC^^

  15. Homepage besuchen Beiträge anzeigen #195 Zitieren
    General Avatar von Dada
    Registriert seit
    Jan 2007
    Ort
    Krefeld
    Beiträge
    3.729
     
    Dada ist offline
    Hmm, klingt tatsächlich etwas merkwürdig...
    Wenn ich das richtig zusammengesucht habe, soll die Funktion wohl nicht funktionieren, wenn der NPC keine Munition hat.
    Also versuch mal, folgendes vor der Funktion einzufügen.

    Code:
    CreateInvItems (self, ItRw_Bolt, 10);

  16. Beiträge anzeigen #196 Zitieren
    General Avatar von joey1990
    Registriert seit
    Aug 2008
    Ort
    Germanien/Thüringen/Hermsdorfer Kreuz
    Beiträge
    3.342
     
    joey1990 ist offline
    Zitat Zitat von Dada Beitrag anzeigen
    Hmm, klingt tatsächlich etwas merkwürdig...
    Wenn ich das richtig zusammengesucht habe, soll die Funktion wohl nicht funktionieren, wenn der NPC keine Munition hat.
    Also versuch mal, folgendes vor der Funktion einzufügen.

    Code:
    CreateInvItems (self, ItRw_Bolt, 10);
    Danke, das hat geklappt

Seite 10 von 10 « Erste ... 3678910

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