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 14 von 14
  1. Beiträge anzeigen #1 Zitieren
    General Avatar von Nobbi Habogs
    Registriert seit
    Nov 2010
    Beiträge
    3.972
     
    Nobbi Habogs ist offline

    Fehlerhafte Ausgabe von Umlauten und LP Kosten ändern

    Moin

    (Zur einfach Hilfe direkt hier die *.d-Datei der betreffenden Mod:
    https://upload.worldofplayers.de/fil...IC_LHE204_DE.d)

    Im Prinzip sagt es der Titel schon. Ich nutze DecDat und Ninja.
    Die einfache Frage zuerst: Wie ändere ich die Kosten eines Talents?

    Spoiler:(zum lesen bitte Text markieren)
    Genauer geht es um das Talent "Schleifen & Schärfen", was man in der LHiver 2.04 DE bei Brian lernen kann. Ich dachte, das ganze müsste man hier anpassen:
    Spoiler:(zum lesen bitte Text markieren)
    Originalwert "1":
    Code:
    instance dia_brian_train_grind(c_info) 
    {
    	if (Hlp_StrCmp(NINJA_MODNAME, "LHE204_DE"))
    	{
        npc = 22899;
        nr = 801;
        condition = dia_brian_train_grind_condition;
        information = dia_brian_train_grind_info;
        permanent = true;
        description = b_buildlearnstring("Schleifen & Schärfen von Klingen", b_getlearncosttalent(other, npc_talent_grind, 5));
    	};
    };
    
    func int b_teachgrind(var c_npc slf, var c_npc oth, var int talent) 
    {
    	if (Hlp_StrCmp(NINJA_MODNAME, "LHE204_DE"))
    	{
    		var int kosten;
    		kosten = b_getlearncosttalent(oth, talent, 5);
    	};
    };

    Wenn ich das aber benutze, funktioniert das Lernen nicht mehr, also sobald man das auswählt passiert nichts und man landet im gleichen Dialog, wo man wieder versuchen könnte das Talent zu erlernen.
    Weiß jemand wo die beiden Werte zu finden sind, die realen LP Kosten und der angezeigte Wert?

    Erstes Problem gelöst




    Zweites Anliegen:
    Spoiler:(zum lesen bitte Text markieren)
    Wenn ich mit Hilfe der "Ninja_create_patch.bat" und GothicVDFS eine Mod erstelle, werden leider alle Buchstaben "ä" falsch angezeigt, die ich kompiliert habe. Alle anderen "ä" werden korrekt dargestellt. Ich guck mal, ob ich einen Screenshot machen kann.

    [Bild: unbenanntn7fo2.jpg]

    Im originalen Script wird aber in Notepad++ aber auch kein "ä" anzeigt wie ich gerade sehe, sondern nur xE4:
    [Bild: unbenannt8vd2s.jpg]
    Das entspricht nach googlen dem Hexcode eben für "ä".
    Ich kann in Notepad++ aber nicht diesen Code kopieren und einfach einfügen

    Auch gelöst
    Mit einem korrupten Speicherstand ist nicht zu spaßen. Sicherheitshalber würde ich die beiden Slots über und unter dem korrupten besser auch frei lassen. Man weiß ja nie. - Matteo
    [Bild: downloadvpk5n.gif]
    Geändert von Nobbi Habogs (27.08.2022 um 04:01 Uhr)

  2. Beiträge anzeigen #2 Zitieren
    Veteran Avatar von N1kX
    Registriert seit
    Aug 2018
    Ort
    Serov
    Beiträge
    643
     
    N1kX ist offline
    You have chosen the wrong place to change the cost, that's why you break the dialogs and dialog conditions, which is unacceptable. The cost of training skills is spelled out in the B_GETLEARNCOSTTALENT function, so you need to change it. In terms of security, it is better to completely copy the original function from the mod and make a hook of this function.

    Delete your previous attempts.

    Spoiler:(zum lesen bitte Text markieren)
    Code:
    func int Ninja_LHE204_DE_b_getlearncosttalent(var c_npc oth, var int talent, var int skill)
    {
    	//Original cost talent b_getlearncosttalent in Lhiver Edition 2.04 DE
    	var int kosten;
    	kosten = 0;
    	if(talent == npc_talent_mage)
    	{
    		if(skill == 1)
    		{
    			kosten = 1;
    		}
    		else if(skill == 2)
    		{
    			kosten = 2;
    		}
    		else if(skill == 3)
    		{
    			kosten = 3;
    		}
    		else if(skill == 4)
    		{
    			kosten = 4;
    		}
    		else if(skill == 5)
    		{
    			kosten = 5;
    		}
    		else if(skill == 6)
    		{
    			kosten = 6;
    		};
    	};
    	
    	if(talent == npc_talent_tradingdex)
    	{
    		if(atr_tradingdex_max >= 100)
    		{
    			kosten = 1;
    		}
    		else
    		{
    			kosten = 1;
    		};
    		kosten = kosten * skill;
    	};
    	
    	if(talent == npc_talent_1h)
    	{
    		if(talent_1h_trained >= 80)
    		{
    			kosten = c_newtrainingcost(talent_1h_trained, 500, skill, 5);
    		}
    		else if(talent_1h_trained >= 60)
    		{
    			kosten = c_newtrainingcost(talent_1h_trained, 80, skill, 4);
    		}
    		else if(talent_1h_trained >= 40)
    		{
    			kosten = c_newtrainingcost(talent_1h_trained, 60, skill, 3);
    		}
    		else if(talent_1h_trained >= 20)
    		{
    			kosten = c_newtrainingcost(talent_1h_trained, 40, skill, 2);
    		}
    		else
    		{
    			kosten = c_newtrainingcost(talent_1h_trained, 20, skill, 1);
    		};
    	};
    	if(talent == npc_talent_2h)
    	{
    		if(talent_2h_trained >= 80)
    		{
    			kosten = c_newtrainingcost(talent_2h_trained, 500, skill, 5);
    		}
    		else if(talent_2h_trained >= 60)
    		{
    			kosten = c_newtrainingcost(talent_2h_trained, 80, skill, 4);
    		}
    		else if(talent_2h_trained >= 40)
    		{
    			kosten = c_newtrainingcost(talent_2h_trained, 60, skill, 3);
    		}
    		else if(talent_2h_trained >= 20)
    		{
    			kosten = c_newtrainingcost(talent_2h_trained, 40, skill, 2);
    		}
    		else
    		{
    			kosten = c_newtrainingcost(talent_2h_trained, 20, skill, 1);
    		};
    	};
    	if(talent == npc_talent_bow)
    	{
    		if(talent_bow_trained >= 80)
    		{
    			kosten = c_newtrainingcost(talent_bow_trained, 500, skill, 5);
    		}
    		else if(talent_bow_trained >= 60)
    		{
    			kosten = c_newtrainingcost(talent_bow_trained, 80, skill, 4);
    		}
    		else if(talent_bow_trained >= 40)
    		{
    			kosten = c_newtrainingcost(talent_bow_trained, 60, skill, 3);
    		}
    		else if(talent_bow_trained >= 20)
    		{
    			kosten = c_newtrainingcost(talent_bow_trained, 40, skill, 2);
    		}
    		else
    		{
    			kosten = c_newtrainingcost(talent_bow_trained, 20, skill, 1);
    		};
    	};
    	if(talent == npc_talent_crossbow)
    	{
    		if(talent_crossbow_trained >= 80)
    		{
    			kosten = c_newtrainingcost(talent_crossbow_trained, 500, skill, 5);
    		}
    		else if(talent_crossbow_trained >= 60)
    		{
    			kosten = c_newtrainingcost(talent_crossbow_trained, 80, skill, 4);
    		}
    		else if(talent_crossbow_trained >= 40)
    		{
    			kosten = c_newtrainingcost(talent_crossbow_trained, 60, skill, 3);
    		}
    		else if(talent_crossbow_trained >= 20)
    		{
    			kosten = c_newtrainingcost(talent_crossbow_trained, 40, skill, 2);
    		}
    		else
    		{
    			kosten = c_newtrainingcost(talent_crossbow_trained, 20, skill, 1);
    		};
    	};
    	if(talent == npc_talent_sneak)
    	{
    		kosten = 5;
    	};
    	if((talent == npc_talent_picklock) || (talent == npc_talent_pickpocket))
    	{
    		kosten = 8;
    	};
    	if(talent == npc_talent_smith)
    	{
    		if(skill == weapon_common)
    		{
    			kosten = 1;
    		}
    		else if(skill == weapon_1h_special_01)
    		{
    			kosten = 2;
    		}
    		else if(skill == weapon_2h_special_01)
    		{
    			kosten = 2;
    		}
    		else if(skill == weapon_1h_special_02)
    		{
    			kosten = 3;
    		}
    		else if(skill == weapon_2h_special_02)
    		{
    			kosten = 3;
    		}
    		else if(skill == weapon_1h_special_03)
    		{
    			kosten = 4;
    		}
    		else if(skill == weapon_2h_special_03)
    		{
    			kosten = 4;
    		}
    		else if(skill == weapon_1h_special_04)
    		{
    			kosten = 5;
    		}
    		else if(skill == weapon_2h_special_04)
    		{
    			kosten = 5;
    		}
    		else if(skill == weapon_1h_harad_01)
    		{
    			kosten = 1;
    		}
    		else if(skill == weapon_1h_harad_02)
    		{
    			kosten = 2;
    		}
    		else if(skill == weapon_1h_harad_03)
    		{
    			kosten = 3;
    		}
    		else if(skill == weapon_1h_harad_04)
    		{
    			kosten = 4;
    		};
    	};
    	if(talent == npc_talent_alchemy)
    	{
    		if(skill == potion_health_01)
    		{
    			kosten = 1;
    		}
    		else if(skill == potion_health_02)
    		{
    			kosten = 2;
    		}
    		else if(skill == potion_health_03)
    		{
    			kosten = 3;
    		}
    		else if(skill == potion_health_04)
    		{
    			kosten = 5;
    		}
    		else if(skill == potion_mana_01)
    		{
    			kosten = 1;
    		}
    		else if(skill == potion_mana_02)
    		{
    			kosten = 2;
    		}
    		else if(skill == potion_mana_03)
    		{
    			kosten = 3;
    		}
    		else if(skill == potion_mana_04)
    		{
    			kosten = 5;
    		}
    		else if(skill == potion_speed)
    		{
    			kosten = 5;
    		}
    		else if(skill == potion_perm_str)
    		{
    			kosten = 20;
    		}
    		else if(skill == potion_perm_dex)
    		{
    			kosten = 20;
    		}
    		else if(skill == potion_perm_mana)
    		{
    			kosten = 10;
    		}
    		else if(skill == potion_perm_health)
    		{
    			kosten = 10;
    		}
    		else if(skill == potion_megadrink)
    		{
    			kosten = 20;
    		};
    	};
    	if(talent == npc_talent_takeanimaltrophy)
    	{
    		if(skill == trophy_teeth)
    		{
    			kosten = 3;
    		}
    		else if(skill == trophy_claws)
    		{
    			kosten = 3;
    		}
    		else if(skill == trophy_fur)
    		{
    			kosten = 5;
    		}
    		else if(skill == trophy_heart)
    		{
    			kosten = 3;
    		}
    		else if(skill == trophy_shadowhorn)
    		{
    			kosten = 3;
    		}
    		else if(skill == trophy_firetongue)
    		{
    			kosten = 1;
    		}
    		else if(skill == trophy_bfwing)
    		{
    			kosten = 1;
    		}
    		else if(skill == trophy_bfsting)
    		{
    			kosten = 1;
    		}
    		else if(skill == trophy_mandibles)
    		{
    			kosten = 1;
    		}
    		else if(skill == trophy_crawlerplate)
    		{
    			kosten = 3;
    		}
    		else if(skill == trophy_drgsnapperhorn)
    		{
    			kosten = 1;
    		}
    		else if(skill == trophy_dragonscale)
    		{
    			kosten = 3;
    		}
    		else if(skill == trophy_dragonblood)
    		{
    			kosten = 3;
    		}
    		else if(skill == trophy_reptileskin)
    		{
    			kosten = 3;
    		};
    	};
    	
    	//Edit 
    	if(talent == npc_talent_grind)
    	{
    		//kosten = 1; //original value
    		kosten = 5;
    	};
    	
    	if(talent == npc_talent_trade)
    	{
    		kosten = 1;
    	};
    	
    	if(talent == npc_talent_foreignlanguage)
    	{
    		if(skill == language_1)
    		{
    			kosten = 5;
    		}
    		else if(skill == language_2)
    		{
    			kosten = 10;
    		}
    		else if(skill == language_3)
    		{
    			kosten = 15;
    		};
    	};
    	
    	if(talent == npc_talent_wispdetector)
    	{
    		if(skill == wispskill_nf)
    		{
    			kosten = 0;
    		}
    		else if(skill == wispskill_ff)
    		{
    			kosten = 1;
    		}
    		else if(skill == wispskill_none)
    		{
    			kosten = 2;
    		}
    		else if(skill == wispskill_rune)
    		{
    			kosten = 3;
    		}
    		else if(skill == wispskill_magic)
    		{
    			kosten = 4;
    		}
    		else if(skill == wispskill_food)
    		{
    			kosten = 5;
    		}
    		else if(skill == wispskill_potions)
    		{
    			kosten = 5;
    		};
    	};
    	
    	if(talent == npc_talent_runes)
    	{
    		if(skill == spl_pallight)
    		{
    			kosten = 1;
    		}
    		else if(skill == spl_pallightheal)
    		{
    			kosten = 3;
    		}
    		else if(skill == spl_palholybolt)
    		{
    			kosten = 3;
    		}
    		else if(skill == spl_palmediumheal)
    		{
    			kosten = 5;
    		}
    		else if(skill == spl_palrepelevil)
    		{
    			kosten = 5;
    		}
    		else if(skill == spl_palfullheal)
    		{
    			kosten = 10;
    		}
    		else if(skill == spl_paldestroyevil)
    		{
    			kosten = 10;
    		}
    		else if(skill == spl_palteleportsecret)
    		{
    			kosten = 5;
    		}
    		else if(skill == spl_light)
    		{
    			kosten = 1;
    		}
    		else if(skill == spl_firebolt)
    		{
    			kosten = 5;
    		}
    		else if(skill == spl_lightheal)
    		{
    			kosten = 3;
    		}
    		else if(skill == spl_summongoblinskeleton)
    		{
    			kosten = 5;
    		}
    		else if(skill == spl_zap)
    		{
    			kosten = 3;
    		}
    		else if(skill == spl_icebolt)
    		{
    			kosten = 5;
    		}
    		else if(skill == spl_instantfireball)
    		{
    			kosten = 5;
    		}
    		else if(skill == spl_summonwolf)
    		{
    			kosten = 5;
    		}
    		else if(skill == spl_summonicewolf)
    		{
    			kosten = 10;
    		}
    		else if(skill == spl_windfist)
    		{
    			kosten = 5;
    		}
    		else if(skill == spl_sleep)
    		{
    			kosten = 5;
    		}
    		else if(skill == spl_charm)
    		{
    			kosten = 5;
    		}
    		else if(skill == spl_icelance)
    		{
    			kosten = 5;
    		}
    		else if(skill == spl_whirlwind)
    		{
    			kosten = 5;
    		}
    		else if(skill == spl_mediumheal)
    		{
    			kosten = 5;
    		}
    		else if(skill == spl_lightningflash)
    		{
    			kosten = 12;
    		}
    		else if(skill == spl_chargefireball)
    		{
    			kosten = 10;
    		}
    		else if(skill == spl_summonskeleton)
    		{
    			kosten = 10;
    		}
    		else if(skill == spl_fear)
    		{
    			kosten = 5;
    		}
    		else if(skill == spl_icecube)
    		{
    			kosten = 10;
    		}
    		else if(skill == spl_thunderstorm)
    		{
    			kosten = 15;
    		}
    		else if(skill == spl_geyser)
    		{
    			kosten = 10;
    		}
    		else if(skill == spl_chargezap)
    		{
    			kosten = 7;
    		}
    		else if(skill == spl_summongolem)
    		{
    			kosten = 15;
    		}
    		else if(skill == spl_summonicegolem)
    		{
    			kosten = 15;
    		}
    		else if(skill == spl_destroyundead)
    		{
    			kosten = 10;
    		}
    		else if(skill == spl_pyrokinesis)
    		{
    			kosten = 10;
    		}
    		else if(skill == spl_waterfist)
    		{
    			kosten = 10;
    		}
    		else if(skill == spl_firestorm)
    		{
    			kosten = 12;
    		}
    		else if(skill == spl_icewave)
    		{
    			kosten = 20;
    		}
    		else if(skill == spl_summondemon)
    		{
    			kosten = 20;
    		}
    		else if(skill == spl_fullheal)
    		{
    			kosten = 10;
    		}
    		else if(skill == spl_masterofdisaster)
    		{
    			kosten = 15;
    		}
    		else if(skill == spl_firerain)
    		{
    			kosten = 20;
    		}
    		else if(skill == spl_breathofdeath)
    		{
    			kosten = 20;
    		}
    		else if(skill == spl_massdeath)
    		{
    			kosten = 20;
    		}
    		else if(skill == spl_armyofdarkness)
    		{
    			kosten = 20;
    		}
    		else if(skill == spl_shrink)
    		{
    			kosten = 20;
    		}
    		else
    		{
    			kosten = 5;
    		};
    	};
    	return kosten;
    };
    
    
    
    
    func void Ninja_LHE204_DE_Init()
    {
    	if (Hlp_StrCmp(NINJA_MODNAME, "LHE204_DE"))
    	{
    		HookDaedalusFuncS("B_GETLEARNCOSTTALENT", "NINJA_LHE204_DE_B_GETLEARNCOSTTALENT");
    	};
    };

  3. Beiträge anzeigen #3 Zitieren
    General Avatar von Nobbi Habogs
    Registriert seit
    Nov 2010
    Beiträge
    3.972
     
    Nobbi Habogs ist offline
    Thank you for your quick and helpful response!

    But to be honest i dont know what a hook is and what it does. I dont even know 99,5% of the syntax at all, i keeping it very simple to finish what i try to (just balance weapon values). Anyway, thank you very much, now i know that the costs are saved in "b_getlearncosttalent"
    Mit einem korrupten Speicherstand ist nicht zu spaßen. Sicherheitshalber würde ich die beiden Slots über und unter dem korrupten besser auch frei lassen. Man weiß ja nie. - Matteo
    [Bild: downloadvpk5n.gif]

  4. Beiträge anzeigen #4 Zitieren
    General Avatar von Nobbi Habogs
    Registriert seit
    Nov 2010
    Beiträge
    3.972
     
    Nobbi Habogs ist offline
    Is it really bad if i just use:

    Spoiler:(zum lesen bitte Text markieren)
    Code:
    func int b_getlearncosttalent(var c_npc oth, var int talent, var int skill)
    {
    	if (Hlp_StrCmp(NINJA_MODNAME, "LHE204_DE"))
    	{
    	if(talent == npc_talent_grind)
    		{
    			//kosten = 1; //original value
    			kosten = 5;
    		};
    	};
    };


    ?
    Mit einem korrupten Speicherstand ist nicht zu spaßen. Sicherheitshalber würde ich die beiden Slots über und unter dem korrupten besser auch frei lassen. Man weiß ja nie. - Matteo
    [Bild: downloadvpk5n.gif]

  5. Beiträge anzeigen #5 Zitieren
    Ehrengarde Avatar von New Visitor
    Registriert seit
    Jun 2011
    Ort
    Magdeburg
    Beiträge
    2.481
     
    New Visitor ist offline
    Hallo Nobbi Habogs

    Du musst den Umlaut im ESC Code angeben.

    U+00E4: Kleiner lateinischer Buchstabe A mit Diärese / Tastenkombination Alt+0228

    MfG

    New Visitor

  6. Beiträge anzeigen #6 Zitieren
    General Avatar von Nobbi Habogs
    Registriert seit
    Nov 2010
    Beiträge
    3.972
     
    Nobbi Habogs ist offline
    Hi

    Wie genau sähe das dann aus? Z.B. hier:
    Code:
    description = "Waffen schärfen";
    Mit einem korrupten Speicherstand ist nicht zu spaßen. Sicherheitshalber würde ich die beiden Slots über und unter dem korrupten besser auch frei lassen. Man weiß ja nie. - Matteo
    [Bild: downloadvpk5n.gif]
    Geändert von Nobbi Habogs (26.08.2022 um 11:40 Uhr)

  7. Beiträge anzeigen #7 Zitieren
    Ehrengarde Avatar von New Visitor
    Registriert seit
    Jun 2011
    Ort
    Magdeburg
    Beiträge
    2.481
     
    New Visitor ist offline
    Hallo Nobbi Habogs

    Unter Java-Script sähe es so aus.

    // Umlaute: ae oe ue \xE4 \xF6 \xFC
    // Ae Oe Ue \xC4 \xD6 \xDC
    // sz \xDF

    Oder schreibe einfach den ESC-Code zum Beispiel: description="Waffen schärfen"

    [Bild: attachment.php?s=cfdc717e6cdc8d54b1c1db018292992c&attachmentid=52055&d=1661521283&thumb=1]. Hier wird schon der Code umgeschrieben "#FFA500"

    https://www.petefreitag.com/cheatsheets/ascii-codes/

    Hier kannst Du auch schauen.

    Bei mir funktioniert es unter VBA, HTML 5, Java Applet (wird von Microsoft nicht mehr unterstützt) und Java-Script.

    Einfach probieren.

    MfG

    New Visitor
    Geändert von New Visitor (26.08.2022 um 14:41 Uhr)

  8. Beiträge anzeigen #8 Zitieren
    Dea
    Registriert seit
    Jul 2007
    Beiträge
    10.447
     
    Lehona ist offline
    Zitat Zitat von New Visitor Beitrag anzeigen
    Hallo Nobbi Habogs

    Unter Java-Script sähe es so aus.

    [...]
    Daedalus ist aber nicht Javascript und dementsprechend ist dieser Tipp leider schwachfug.


    Grundsätzlich kann man in den Scripten ganz einfach Umlaute verwenden (leider nicht nur in Strings). Du musst darauf achten, dass die Dateien mit der richtigen Codepage/Kodierung geöffnet bzw. gespeichert werden. In Notepad++ wird das unter dem Reiter "Kodierung" (da wo auch Datei, Bearbeiten, Suchen, ... steht) ausgewählt. Momentan ist dort vermutlich UTF-8 ausgewählt. Dort ANSI auszuwählen sollte reichen. Falls das nicht funktioniert (ANSI ist eigentlich inkorrekt), versuch es mit Weitere -> Westeuropäisch -> ISO 8859-1.

  9. Beiträge anzeigen #9 Zitieren
    Veteran Avatar von N1kX
    Registriert seit
    Aug 2018
    Ort
    Serov
    Beiträge
    643
     
    N1kX ist offline
    Zitat Zitat von Lehona Beitrag anzeigen
    Daedalus ist aber nicht Javascript und dementsprechend ist dieser Tipp leider schwachfug.


    Grundsätzlich kann man in den Scripten ganz einfach Umlaute verwenden (leider nicht nur in Strings). Du musst darauf achten, dass die Dateien mit der richtigen Codepage/Kodierung geöffnet bzw. gespeichert werden. In Notepad++ wird das unter dem Reiter "Kodierung" (da wo auch Datei, Bearbeiten, Suchen, ... steht) ausgewählt. Momentan ist dort vermutlich UTF-8 ausgewählt. Dort ANSI auszuwählen sollte reichen. Falls das nicht funktioniert (ANSI ist eigentlich inkorrekt), versuch es mit Weitere -> Westeuropäisch -> ISO 8859-1.
    It is not necessary to change the encoding of files in UTF-8.
    Also for Germany, you need to use Windows-1252

    https://de.wikipedia.org/wiki/Windows-1252

    That is, as you noted, the user needs to edit and create files in ANSI, and then just select the necessary encoding (Windows-1252).

  10. Beiträge anzeigen #10 Zitieren
    Dea
    Registriert seit
    Jul 2007
    Beiträge
    10.447
     
    Lehona ist offline
    Zitat Zitat von N1kX Beitrag anzeigen
    It is not necessary to change the encoding of files in UTF-8.
    Also for Germany, you need to use Windows-1252

    https://de.wikipedia.org/wiki/Windows-1252

    That is, as you noted, the user needs to edit and create files in ANSI, and then just select the necessary encoding (Windows-1252).
    I don't understand what you mean - how can you say you don't need to change away from utf-8 and then immediately recommend changing away from utf-8?
    ISO 8859-1/latin-1 and Windows-1252 are basically the same.

  11. Beiträge anzeigen #11 Zitieren
    Ehrengarde Avatar von New Visitor
    Registriert seit
    Jun 2011
    Ort
    Magdeburg
    Beiträge
    2.481
     
    New Visitor ist offline
    Hallo Lehona

    Sorry

    Hätte erst fragen sollen mit was er das bearbeitet.

    Ich arbeite sonst auch mit Notepad++ und C++.

    Es ist schon erstaunlich, dass selbst diese Seite hier aus einem ESC-Code
    sofort einen anderen bastelt und die Windows Zeichentabelle wieder einen anderen Code erzeugt.

    Ich hoffe das er es mit Daedalus hinbekommt.

    Da ja die Frage wahrscheinlich daraus resultiert.

    Ich werde mir auch einmal Daedalus installieren.

    MfG

    New Visitor

  12. Beiträge anzeigen #12 Zitieren
    Knight
    Registriert seit
    Aug 2009
    Ort
    Hessen
    Beiträge
    1.487
     
    Cryp18Struct ist offline
    Zitat Zitat von Felk123456 Beitrag anzeigen
    ANSI sollte gehen, allerdings ändern sich dann alle Umlaute, wenn Du zuvor falsch gespeicherte Daten in ANSI abspeicherst und Du mußt anschließend nochmal korrigieren und erneut speichern.
    Das kommt darauf an wie man es macht.
    In notepad++ zum Beispiel:
    [Bild: attachment.php?s=cfdc717e6cdc8d54b1c1db018292992c&attachmentid=52056&d=1661543120&thumb=1]
    Wenn man da einfach nur das encoding umstellt, sind alle Umlaute anschließend fehlerhaft und man müsste von Hand dran rum basteln.
    Aber wenn man "convert to ANSI" auswählt, sollte das automatisch alles richtig sein.

  13. Beiträge anzeigen #13 Zitieren
    Ehrengarde Avatar von mud-freak
    Registriert seit
    Dec 2005
    Beiträge
    2.199
     
    mud-freak ist offline
    Darf ich kurz fragen, was diese Datei “Ninja_create_patch.bat” ist, die du im Einleitungspost erwähnst? Handelt es sich dabei um das Batchskript “init.bat” aus dem Ninja-Wiki? Wenn nicht, wäre ich damit vorsichtig.

    Zitat Zitat von N1kX Beitrag anzeigen
    In terms of security, it is better to completely copy the original function from the mod and make a hook of this function.
    Aus Gründen von Security wahrscheinlich nicht; eher zur Vermeidung von ärgerlicher Parserfehler beim Start. Vielleicht ein Übersetzungsfehler. Die Herangehensweise ist aber auch nicht unbedingt empfehlenswert, denn so überschreibt man effektiv sämtliche Änderung von unterliegenden Mods. Neuartige Lernpunktesysteme, Questtrigger oder andere Anpassungen gehen verloren.

    Besser ist es, die Funktion mit dem Hook nicht zu ersetzen, sondern Änderungen vor und nach dem Aufruf der Originalfunktion einzuschleusen. Das bedarf etwas Kreativität und sicherlich auch etwas Erfahrung mit den Skripten. Möglich ist es.

    Der Ansatz aus Beitrag überschreibt die gesammte Ursprungsfunktion und macht so deren Nutzen zunichte. Damit sollte so einiges kaputt gehen. Daher müsstest du dich entweder etwas näher ins Skripten einarbeiten oder diese Idee rauslassen.

  14. Beiträge anzeigen #14 Zitieren
    General Avatar von Nobbi Habogs
    Registriert seit
    Nov 2010
    Beiträge
    3.972
     
    Nobbi Habogs ist offline
    Hallo, habe das Problem gerade mehr oder weniger durch Zufall gelöst
    Eben durch Konvertierung und Umstellung von UTF-8 auf ANSI und erneutem kompilieren, wie einige hier es auch beschrieben haben.

    Ich TuS hatte ich auch mal gefragt und dort wurde auch die Kodierung als Fehlerqueller vermutet, deswegen hab ich eben rumprobiert, bevor ich hier reingeguckt habe. Hätte ich auch vorher drauf kommen können Aber naja, einfach so rumprobieren bringt bei mir halt wirklich meist einfach nix, dafür hab ich viel zu wenig Ahnung und Erfahrung, als das ich da ein richtiges Gespür dafür habe, damit auch etwas dabei rauskommt.
    Zuerst habe ich die Originale LHiver Mod Datei (als *.d) in Notepad++ geöffnet. Habe ich sowieso teilweise gemacht zwecks Zusammenhänge und schnellerem Finden per STRG+F (CTRL+F). Dann sprang ich zu einer Stelle mit Umlaut und habe "Konvertiere zu ANSI" gewählt, plötzlich wurde alles korrekt angezeigt. Ich hab auch gegengeprüft, wenn ich den ANSI-Text nun versuche in UTF-8 anzugucken, sieht es genauso aus wie bei der originalen Mod.

    Demzufolge muss man beim Coden in gewünschten Editor/Notepad umbedingt ANSI wählen!
    Ob der Compiler jetzt wirklich ANSI benutzt weiß ich nicht, aber aufjedenfall ist wohl der Großteil der Zeichentabelle, vorallem inklusive der Umlaute, damit kompatibel.


    Vielen Dank mal wieder an alle


    Zitat Zitat von mud-freak Beitrag anzeigen
    Darf ich kurz fragen, was diese Datei “Ninja_create_patch.bat” ist, die du im Einleitungspost erwähnst? Handelt es sich dabei um das Batchskript “init.bat” aus dem Ninja-Wiki? Wenn nicht, wäre ich damit vorsichtig.
    Ja, das ist die init.bat. Vermutlich habe ich die batch-file nicht heruntergeladen, sondern den Inhalt kopiert. Den Namen hat man mir vielleicht aber auch so unter Anleitung gesagt, dass ich die so nennen soll (vermutlich Lehona), weil ich wirklich gar keine Ahnung vom Programmieren hatte, damit ich das besser verstehe wofür die Datei ist.

    Zitat Zitat von mud-freak Beitrag anzeigen
    Besser ist es, die Funktion mit dem Hook nicht zu ersetzen, sondern Änderungen vor und nach dem Aufruf der Originalfunktion einzuschleusen. Das bedarf etwas Kreativität und sicherlich auch etwas Erfahrung mit den Skripten. Möglich ist es.
    Dir ist klar, dass das bei mir ein eindeutiges "skip" ist, oder?
    Ich hab mit meiner Mod gerade eine Sandburg aus Förmchen gebaut, ich kann selbstständig keinen Wintergarten bauen
    Mit einem korrupten Speicherstand ist nicht zu spaßen. Sicherheitshalber würde ich die beiden Slots über und unter dem korrupten besser auch frei lassen. Man weiß ja nie. - Matteo
    [Bild: downloadvpk5n.gif]
    Geändert von Nobbi Habogs (27.08.2022 um 03:52 Uhr)

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