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

 

Ergebnis 1 bis 12 von 12
  1. Beiträge anzeigen #1 Zitieren
    banned
    Registriert seit
    Jan 2009
    Ort
    Oberösterreich
    Beiträge
    2.393
     
    Moe ist offline

    Aussehen verändern nach Speichern/Laden funktioniert nicht

    Ich hab in meiner Mod ein Rasiermesser eingebaut mit dem man sich den Bart abrasieren sprich die Face Textur ändern kann, nur hat der Held nach dem Speichern/Laden wieder einen Bart.


    Folgendes hab ich gemacht:


    Code:
    func void init_global()
    {
    	Game_InitGerman();
    	LeGo_Init(LeGo_All & ~LeGo_Bloodsplats);
    	InitDamage();
    	if (Shave_Hero == TRUE)
    	{
    		Mdl_SetVisualBody(self,"hum_body_Naked0",1,0,"Hum_Head_Pony",Face_N_Player,0,NO_ARMOR);
    	};
    };
    Code:
    const int Value_Rasiermesser =	10;
    var int Shave_Hero;
    
    INSTANCE ItMi_Barbknife (C_Item)
    {
    	name 				=	"Rasiermesser";
    
    	mainflag 			=	ITEM_KAT_NONE;
    	flags 				=	ITEM_MULTI;
    
    	value 				=	Value_Rasiermesser;
    
    	visual 				=	"ItMi_Stuff_Barbknife_01.3DS";
    	scemeName = "MAPSEALED";
    	material 			=	MAT_METAL;
    	on_state[0] = BarbKnife;
    	description			= name;
    	TEXT[5]				= NAME_Value;					COUNT[5]	= value;
    };
    
    func void BarbKnife()
    {
    	Shave_Hero == TRUE;
    	Mdl_SetVisualBody(self,"hum_body_Naked0",1,0,"Hum_Head_Pony",Face_N_Player,0,NO_ARMOR);	
    };
    Wo liegt der Fehler?

  2. Beiträge anzeigen #2 Zitieren
    Dea
    Registriert seit
    Jul 2007
    Beiträge
    10.446
     
    Lehona ist offline
    Code:
    Shave_Hero == TRUE;
    Das ist ein Vergleich, keine Zuweisung.

    In solchen Fällen solltest du immer überprüfen, ob dein Code (d.h. in der Init_Global innerhalb das ifs) überhaupt ausgeführt wird. Entweder über Prints oder in diesem Fall (da die Prints eventuell verschwinden, bevor der Ladebildschirm weg ist) zum Beispiel mit MEM_InfoBox().

  3. Beiträge anzeigen #3 Zitieren
    banned
    Registriert seit
    Jan 2009
    Ort
    Oberösterreich
    Beiträge
    2.393
     
    Moe ist offline
    Wie muss ich das Skript anpassen, sodass der Code ausgeführt wird?

  4. Beiträge anzeigen #4 Zitieren
    Dea
    Registriert seit
    Jul 2007
    Beiträge
    10.446
     
    Lehona ist offline
    Naja, Zuweisungen macht man mit '=', nicht mit '==' (denn mit '==' vergleicht man zwei Werte).

  5. Beiträge anzeigen #5 Zitieren
    banned
    Registriert seit
    Jan 2009
    Ort
    Oberösterreich
    Beiträge
    2.393
     
    Moe ist offline
    Ich hab jetzt ein = weniger und trotzdem funktioniert es nicht, siehst du noch mehr Fehler im Skript?

    Code:
    const int Value_Rasiermesser =	10;
    var int Shave_Hero;
    
    INSTANCE ItMi_Barbknife1 (C_Item)
    {
    	name 				=	"Rasiermesser";
    
    	mainflag 			=	ITEM_KAT_NONE;
    	flags 				=	ITEM_MULTI;
    
    	value 				=	Value_Rasiermesser;
    
    	visual 				=	"ItMi_Stuff_Barbknife_01.3DS";
    	scemeName = "MAPSEALED";
    	material 			=	MAT_METAL;
    	on_state[0] = BarbKnife1;
    	description			= name;
    	TEXT[4]				= "Lass dir einen Vollbart wachsen.";
    	TEXT[5]				= NAME_Value;					COUNT[5]	= value;
    };
    
    func void BarbKnife1()
    {
    	Shave_Hero = Face_N_PlayerUnShaved;
    	Mdl_SetVisualBody(self,"hum_body_Naked0",1,0,"Hum_Head_Pony",Face_N_PlayerUnShaved,0,NO_ARMOR);	
    };
    
    INSTANCE ItMi_Barbknife2 (C_Item)
    {
    	name 				=	"Rasiermesser";
    
    	mainflag 			=	ITEM_KAT_NONE;
    	flags 				=	ITEM_MULTI;
    
    	value 				=	Value_Rasiermesser;
    
    	visual 				=	"ItMi_Stuff_Barbknife_01.3DS";
    	scemeName = "MAPSEALED";
    	material 			=	MAT_METAL;
    	on_state[0] = BarbKnife2;
    	description			= name;
    	TEXT[4]				= "Weg mit dem Bart.";
    	TEXT[5]				= NAME_Value;					COUNT[5]	= value;
    };
    
    func void BarbKnife2()
    {
    	Shave_Hero = Face_N_PlayerShaved;
    	Mdl_SetVisualBody(self,"hum_body_Naked0",1,0,"Hum_Head_Pony",Face_N_PlayerShaved,0,NO_ARMOR);	
    };
    
    INSTANCE ItMi_Barbknife3 (C_Item)
    {
    	name 				=	"Rasiermesser";
    
    	mainflag 			=	ITEM_KAT_NONE;
    	flags 				=	ITEM_MULTI;
    
    	value 				=	Value_Rasiermesser;
    
    	visual 				=	"ItMi_Stuff_Barbknife_01.3DS";
    	scemeName = "MAPSEALED";
    	material 			=	MAT_METAL;
    	on_state[0] = BarbKnife3;
    	description			= name;
    	TEXT[4]				= "Ein bisschen Bart darf's schon sein.";
    	TEXT[5]				= NAME_Value;					COUNT[5]	= value;
    };
    
    func void BarbKnife3()
    {
    	Shave_Hero = Face_N_Player;
    	Mdl_SetVisualBody(self,"hum_body_Naked0",1,0,"Hum_Head_Pony",Face_N_Player,0,NO_ARMOR);	
    };
    Code:
    func void init_global()
    {
    	Game_InitGerman();
    	LeGo_Init(LeGo_All & ~LeGo_Bloodsplats);
    	InitDamage();
    	if(Shave_Hero == Face_N_PlayerShaved)
    	{
    		Mdl_SetVisualBody(self,"hum_body_Naked0",1,0,"Hum_Head_Pony",Face_N_PlayerShaved,0,NO_ARMOR);
    	};
    	if(Shave_Hero == Face_N_PlayerUnShaved)
    	{
    		Mdl_SetVisualBody(self,"hum_body_Naked0",1,0,"Hum_Head_Pony",Face_N_PlayerUnShaved,0,NO_ARMOR);
    	};
    	if(Shave_Hero == Face_N_Player)
    	{
    		Mdl_SetVisualBody(self,"hum_body_Naked0",1,0,"Hum_Head_Pony",Face_N_Player,0,NO_ARMOR);
    	};
    };

  6. Beiträge anzeigen #6 Zitieren
    now also in your universe  Avatar von Milky-Way
    Registriert seit
    Jun 2007
    Beiträge
    15.205
     
    Milky-Way ist offline
    In der Init_Global setzt du das Aussehen von "self" - das könnte zu diesem Zeitpunkt ein beliebiger Npc sein. Du könntest stattdessen PC_Hero hero (siehe unten) probieren.
    Geändert von Milky-Way (16.10.2018 um 06:00 Uhr)

  7. Beiträge anzeigen #7 Zitieren
    Dea
    Registriert seit
    Jul 2007
    Beiträge
    10.446
     
    Lehona ist offline
    Zitat Zitat von Milky-Way Beitrag anzeigen
    In der Init_Global setzt du das Aussehen von "self" - das könnte zu diesem Zeitpunkt ein beliebiger Npc sein. Du könntest stattdessen PC_Hero probieren.
    Man sollte wohl "hero" vorziehen, das zeigt immer auf den Helden. PC_Hero tut das, glaube ich, manchmal nicht (evtl. nach Weltenwechsel oder so?).

  8. Beiträge anzeigen #8 Zitieren
    now also in your universe  Avatar von Milky-Way
    Registriert seit
    Jun 2007
    Beiträge
    15.205
     
    Milky-Way ist offline
    Zitat Zitat von Lehona Beitrag anzeigen
    Man sollte wohl "hero" vorziehen, das zeigt immer auf den Helden. PC_Hero tut das, glaube ich, manchmal nicht (evtl. nach Weltenwechsel oder so?).
    Genau daran hatte ich gedacht, aber dass es genau anders herum ist. Du hast aber recht

    PC_Hero geht sonst tatsächlich nach Weltenwechsel verloren. (Und wenn ich mich richtig an meinen Test erinnere, wird es auch beim Wechsel zurück in die erste Welt nicht automatisch wieder korrigiert.)

  9. Beiträge anzeigen #9 Zitieren
    banned
    Registriert seit
    Jan 2009
    Ort
    Oberösterreich
    Beiträge
    2.393
     
    Moe ist offline
    Danke, das hat mir schon sehr weitergeholfen!

    Einen Fehler hab ich aber jetzt noch, ich hab ja drei Rasierklingen eingebaut.

    Eine für Vollbart, eine für ganz rasiert und das Standard Helden Gesicht.

    Folgendes passiert:

    PC_Hero.d hat den Vollbart eingetragen. Ich starte ein neues Spiel und er hat den Vollbart. Ich speichere das Spiel, lade den Spielstand und er hat auf einmal das Standard Helden Gesicht.

    Dasselbe wenn ich eine der Rasierklingen benutze, sie funktionieren zwar, aber nach dem Laden hat er wieder das Standard Helden Gesicht, aber komischerweise eben nicht den Vollbart der in PC_Hero.d eingetragen ist.

    Woran liegt das jetzt?

  10. Beiträge anzeigen #10 Zitieren
    Knight Avatar von Draxes
    Registriert seit
    Aug 2007
    Ort
    Mainz
    Beiträge
    1.920
     
    Draxes ist offline
    Hast du mal geprüft, welchen Wert dein shave_hero nach dem Laden hat? Das Visual wird ja in deinem Fall davon abhängig gesetzt.

  11. Beiträge anzeigen #11 Zitieren
    banned
    Registriert seit
    Jan 2009
    Ort
    Oberösterreich
    Beiträge
    2.393
     
    Moe ist offline
    Zitat Zitat von Draxes Beitrag anzeigen
    Hast du mal geprüft, welchen Wert dein shave_hero nach dem Laden hat? Das Visual wird ja in deinem Fall davon abhängig gesetzt.
    Wie kann ich das prüfen?

    edit: Hab den Fehler gefunden. Hatte in der init global keinen Vergleich == sondern eine Zuweisung =.
    Geändert von Moe (16.10.2018 um 16:53 Uhr)

  12. Beiträge anzeigen #12 Zitieren
    Knight Commander Avatar von Neconspictor
    Registriert seit
    Jan 2009
    Beiträge
    2.749
     
    Neconspictor ist offline
    Zitat Zitat von Moe Beitrag anzeigen
    Wie kann ich das prüfen?

    edit: Hab den Fehler gefunden. Hatte in der init global keinen Vergleich == sondern eine Zuweisung =.
    mit IntToString kannst du deine Integer Variable in einen String umwandeln:
    var string strShaveHero; strShaveHero = IntToString(shave_hero);

    Dann kannst du deine Variable auf dem Bildschirm ausgeben:
    var string msg; msg = ConcatStrings("shave_hero = ", strShaveHero);
    Print(msg);

    oder du verwendest Ikarus, um es in zSpy auszugeben:
    MEM_Info(msg);

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