HomeDownloadsForumGalerieLinks

 

ForenübersichtRunUO - EntwicklungsforumRunUO 2.0 eigenes Rüstungs-scriptproblem (für scripter =) )

RunUO 2.0 eigenes Rüstungs-scriptproblem (für scripter =) )

Mitglied-202610.04.2007, 18:16 Uhr
Hallo erstmal. Ich hoffe ich bin hier auch im richtigen Forum....

Dann fang ich wohl einfach mal an:
Ich versuche derzeit einen eigenen neuen Rp-Shard aufzusetzen, mit eigenen Scripts, bearbeiteten Maps, Graphiken, eigener Währung usw...
Dazu natürlich auch ein eigenes Rüstungssystem, hier habe ich jedoch ein Problem.
Das erstellen der Ressourcen, einbindung in das Minining, blöacksmything system sind auch kein Problem. Das hat alles super geklappt.
Nur ein Problem besteht noch mit dem \"Resource-name\".

Wenn man ein Item erstellt, durch BS oder Tailoring wird dem Item neben den Beschreibungen für Exceptional und Rüstungsidentifikationsname auch der Erzeugungserzname angezeigt.
Diesen namen zieht sich RunUo aus der Cliloc.enu/Cliloc.de.
Wenn man nun eigene Ressourcen scriptet und diesen Namen ändern will gibt es also nur zwei möglichkeiten:
1. Man fügt der cliloc einen Eintrag hinzu (Versteh ich aber nciht wie, bzw ich kann mit der cliloc nichts anfangen...)
2.Man findet eine Funktion, die als Resourcename nicht eine Id mitliefert, sondern einen String...Ich würde das ja selber schreiben, aber ich muss ehrlich zugeben ich versteh nicht 100%tig wo der das weiterleitet, bzw. wie ich ihm den String dann dahin liefere, wo er dann auch angezeigt wird. Weil ich glaube das Item bekommt als Resource einfach nur die Nummer und der name der Nummer wird dann in einem anderen Sscript in einen String umgewandelt und dann ausgegeben. Bin leider total am verzweifeln, deswegen wollte ich mal euch fragen : ).

Hier noch die Codestelle die ich meine (zu finden in der BaseArmour.cs )



public override void AddNameProperty( ObjectPropertyList list )
{
int oreType;
string a_name = GetNameString();

switch ( m_Resource )
{
case CraftResource.DullCopper: oreType = 1053108; break; // dull copper
case CraftResource.ShadowIron: oreType = 1053107; break; // shadow iron
case CraftResource.Copper: oreType = 1053106; break; // copper
case CraftResource.Bronze: oreType = 1053105; break; // bronze
case CraftResource.Gold: oreType = 1053104; break; // golden
case CraftResource.Agapite: oreType = 1053103; break; // agapite
case CraftResource.Verite: oreType = 1053102; break; // verite
case CraftResource.Valorite: oreType = 1053101; break; // valorite
case CraftResource.Celitenleder: oreType = 0; break; // Celite leder
case CraftResource.Trowarenleder: oreType = 0; break; // Trowarleder
case CraftResource.Palonenleder: oreType = 0; break; // Palonenleder
case CraftResource.Dunkeltrollleder: oreType = 0; break; // Dunkeltrolleder
case CraftResource.CiIdleder: oreType = 0; break; // CiIdleder
case CraftResource.Mentrarenleder: oreType = 0; break; // Mentrarenleder
case CraftResource.RedScales: oreType = 1060814; break; // red
case CraftResource.YellowScales: oreType = 1060818; break; // yellow
case CraftResource.BlackScales: oreType = 1060820; break; // black
case CraftResource.GreenScales: oreType = 1060819; break; // green
case CraftResource.WhiteScales: oreType = 1060821; break; // white
case CraftResource.BlueScales: oreType = 1060815; break; // blue
default: oreType = 0; break;
}

if ( m_Quality == ArmorQuality.Exceptional )
{
if ( oreType != 0 )
list.Add( 1053100, \"#{0}\\t{1}\", oreType, GetNameString() ); // exceptional ~1_oretype~ ~2_armortype~
else
list.Add( 1050040, GetNameString() ); // exceptional ~1_ITEMNAME~
}
else
{
if ( oreType != 0 )
list.Add( 1053099, \"#{0}\\t{1}\", oreType, GetNameString() ); // ~1_oretype~ ~2_armortype~
else if ( Name == null )
list.Add( LabelNumber );
else
list.Add( Name );
}
}


Würd mich echt freuen, wenn ihr mir da vlt. helfen könntet.

Viele grüße Nemercry
Mitglied-202610.04.2007, 18:25 Uhr
Ach bevor ichs vergess:
Ich hab natürlich schon versucht das ganze mit den gegebenen RunUo Funktionen zu verändern(also wo Strings verlangt werden), aber dabei habe ich jedesmal das Problem gehabt, dass was anderes gefehlt hat. Also Entweder war die beschreibung was für ein Rüstungsteil es ist weg und dafür dann die des Erzes da oder umgekehrt. Ansonsten hatte ich mal versucht, den Erznamen einfach vor die beschreibung zu hängen (also einfach string an string) Aber da bekam ich dann jedesmal nur irgendein Zahlenroulett zurück...



(static) bool Enabled( get; set; )
(ctor) ObjectPropertyList( IEntity e )
IEntity Entity( get; )
int Hash( get; )
int Header( get; set; )
string HeaderArgs( get; set; )
void Add( int number )
void Add( string text )
void Add( string format, object[] args )
void Add( string format, string arg0 )
void Add( int number, string arguments )
void Add( int number, string format, object[] args )
void Add( int number, string format, object arg0 )
void Add( string format, string arg0, string arg1 )
void Add( int number, string format, object arg0, object arg1 )
void Add( string format, string arg0, string arg1, string arg2 )
void Add( int number, string format, object arg0, object arg1, object arg2 )
void AddHash( int val )
int GetStringNumber()
void Terminate()
Mitglied-202616.04.2007, 18:25 Uhr
Versteht ihr meine frage nicht oder hat wirklich keiner eine ahnung... ?

gruß
Mitglied-161607.01.2009, 14:09 Uhr
Vorneweg: Mir ist klar, dass der Thread mehr als ein Jahr alt ist, aber vielleicht sucht hier ja mal jemand und braucht dann ne Lösung, daher...

Prinzipiell gibt es folgende \"Problem\":

Man kann nur einen reinen String zu den Properties hinzufügen, der erscheint dann als Name. Füge einen zweiten hinzu, und der wird den ersten ersetzen. Neben einem reinen String, kannst du nur noch Cliloc-Nummern mit Parametern hinzufügen.

In deinem Fall würde ich UO Localization verwenden, um die CliLoc Dateien anzupassen: http://www.runuo.com/forums/third-party-program-support/30309-uo-localization-2-0-a.html
UO World – Archiv-Neuauflage 2026 · Impressum · Datenschutz