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 5 von 5
  1. Beiträge anzeigen #1 Zitieren
    Kämpfer Avatar von AFX
    Registriert seit
    Mar 2008
    Beiträge
    303
     
    AFX ist offline

    NPC greift einen nicht an trotz B_Attack, stattdessen greift ein anderer NPC an

    Hi,

    ich habe ein sehr seltsames Problem. Wie schon im Titel beschrieben habe ich einen NPC der im Dialog die B_Attack ausführt, da er den Spieler angreifen und töten soll. Im selben Dialog wird auch ein anderer NPC in die Welt inserted (im folgenden Skript der NPC "NOV_66006_Suzan"). Stattdessen greift einen nun dieser neu insertete NPC an, obwohl er eigentlich keine "feindlichen" Einstellungen im Skript hat. Die Skripte habe ich mal beigefügt:

    Auszug aus dem NPC Dialog Skript vom NPC der einen angreifen soll:
    Code:
    //*******************************************************
    INSTANCE DIA_KDF_66001_Zubakx_Ritual (C_Info)
    {
        npc         = KDF_66001_Zubakx;
        nr          = 2;
        condition   = DIA_KDF_66001_Zubakx_Ritual_condition;
        information = DIA_KDF_66001_Zubakx_Ritual_info;
        permanent   = FALSE;
        important   = TRUE;
     //   description = "Ich grüße euch Zubakx";
    };
    FUNC INT DIA_KDF_66001_Zubakx_Ritual_condition ()
    {
    	if (Npc_KnowsInfo (other,DIA_NOV_66004_Suzan_Ritual)	== TRUE)
    	
    		{
    			return TRUE;
    		};
    };
    FUNC VOID DIA_KDF_66001_Zubakx_Ritual_info ()
    {
    
    	AI_Output(self,other,"DIA_KDF_66001_Zubakx_Ritual_15_0"); //Was machst du hier?
    	B_RemoveNpc (NOV_66004_Suzan);
        B_KillNpc (NOV_66000_Steffen);
    	B_KillNpc (NOV_66002_Marcel);
    	B_KillNpc (NOV_66003_Jan);
    	B_KillNpc (NOV_66005_Felix);
    	Wld_InsertNpc	(NOV_66006_Suzan,"SUZANALIVE_01");
    	CreateInvItems (self, ITKE_Addon_CaveunderTower, 1);
    	AI_StopProcessInfos (self); 
    	B_Attack (self, other, AR_KILL,1);    
    
    		
    };
    und das NPC Skript von dem anderen NPC der einen stattdessen angreift:
    Code:
    instance NOV_66006_Suzan (Npc_Default)
    {
    	// ------ NSC ------
    	name 		= "Susan";
    	guild 		= GIL_NOV;
    	id 			= 66006;
    	voice 		= 14;
    	flags       = NPC_FLAG_IMMORTAL;		//NPC_FLAG_IMMORTAL oder 0
    	npctype		= NPCTYPE_MAIN;
    	
    	// ------ Attribute ------
    	B_SetAttributesToChapter (self, 4);																	//setzt Attribute und LEVEL entsprechend dem angegebenen Kapitel (1-6)
    	
    	// ------ Kampf-Taktik ------
    	fight_tactic		= FAI_HUMAN_STRONG;	// MASTER / STRONG / COWARD
    	
    	// ------ Equippte Waffen ------																	//Munition wird automatisch generiert, darf aber angegeben werden
    	//EquipItem			(self, ItMw_1h_Nov_Mace);
    	
    	// ------ Inventory ------
    	B_CreateAmbientInv 	(self);
    		
    	// ------ visuals ------																			//Muss NACH Attributen kommen, weil in B_SetNpcVisual die Breite abh. v. STR skaliert wird
    	B_SetNpcVisual 		(self, FEMALE, "Hum_Head_Babe4", FaceBabe_N_Anne, BodyTex_N, ITAR_VlkBabe_M);	
    	Mdl_SetModelFatness	(self, 0);
    	Mdl_ApplyOverlayMds	(self, "Humans_Relaxed.mds"); // Tired / Militia / Mage / Arrogance / Relaxed
    
    	// ------ NSC-relevante Talente vergeben ------
    	B_GiveNpcTalents (self);
    	
    	// ------ Kampf-Talente ------																		//Der enthaltene B_AddFightSkill setzt Talent-Ani abhängig von TrefferChance% - alle Kampftalente werden gleichhoch gesetzt
    	B_SetFightSkills (self, 70); //Grenzen für Talent-Level liegen bei 30 und 60i
    
    	// ------ TA anmelden ------
    	daily_routine 		= Rtn_Start_66006;
    };
    
    FUNC VOID Rtn_Start_66006 ()
    {
    	TA_Stand_WP			(09,00,21,00,"SUZANALIVE_01");
        TA_Stand_WP				(21,00,09,00,"SUZANALIVE_01");		
    };

    Das Problem habe ich übrigens nicht, wenn ich das Wld_InsertNpc (NOV_66006_Suzan,"SUZANALIVE_01"); auskommentiere, dann greift der NPC Zubakx den Spieler an und tötet ihn, so wie er es soll. Allerdings wird dann natürlich der NPC nicht eingefügt was für die Story sehr wichtig ist.

  2. Beiträge anzeigen #2 Zitieren
    Provinzheld Avatar von TopLayer
    Registriert seit
    Nov 2020
    Beiträge
    286
     
    TopLayer ist offline
    Wld_InsertNpc changes the pointer to self. Save it before the call and use the saved value after.

  3. Beiträge anzeigen #3 Zitieren
    now also in your universe  Avatar von Milky-Way
    Registriert seit
    Jun 2007
    Beiträge
    15.246
     
    Milky-Way ist offline
    Oder alternativ lieber keine NPC innerhalb eines Dialogs spawnen, wenn es nicht absolut notwendig ist. (Sondern z.B. über eine Schleife/FrameFunction warten, bis der Dialog zu Ende ist)

  4. Beiträge anzeigen #4 Zitieren
    Ritter Avatar von Kirides
    Registriert seit
    Jul 2009
    Ort
    Norddeutschland
    Beiträge
    1.781
     
    Kirides ist offline
    Einfach das Wld_SpawnNpc ganz ans ende packen

    So haben das die Pirannhas gemacht und so hat man auch eigentlich keine Probleme

  5. Beiträge anzeigen #5 Zitieren
    Kämpfer Avatar von AFX
    Registriert seit
    Mar 2008
    Beiträge
    303
     
    AFX ist offline
    Zitat Zitat von Kirides Beitrag anzeigen
    Einfach das Wld_SpawnNpc ganz ans ende packen

    So haben das die Pirannhas gemacht und so hat man auch eigentlich keine Probleme
    Danke, so funktioniert es

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