Prop in Paperdoll anzeigen

Hier könnt ihr Unterstützung holen für euere Script Probleme, und Fragen rund um das Scripten.
Antworten
Nachricht
Autor
hagily

Prop in Paperdoll anzeigen

#1 Beitrag von hagily » 20 Jun 2008 14:59

Hallo.

Ich möchte ein Prop, das ich bereits in ein Spieler-Mobile eingebunden habe, in der Paperdoll anzeigen lassen.

Ich habe es bereits in der titles.cs probiert, allerdings ohne erfolg.
Die titles.cs sieht bei mir wie folgt aus:

Code: Alles auswählen

StringBuilder title = new StringBuilder();
StringBuilder rasse = new StringBuilder();
			
title.Append( beheld.Name );
string customTitle = beheld.Title;
string Rasse = beheld.Race;
			
if ( customTitle != null && (customTitle = customTitle.Trim()).Length > 0 )
{
	title.AppendFormat( ", {0} {1}", customTitle, Rasse);
}
Nun erscheint folgende Fehlermeldung beim Compilen:
'Server.Mobile' does not contain a definition for 'Race'.
Nun weiß ich allerdings nicht, wie ich in playermobile.cs
Race als das Prop Rasse definiere.

Kann mir hier vielleicht jemand weiterhelfen?

Benutzeravatar
Naddel
Senior Mitglied
Beiträge: 190
Registriert: 13 Jan 2004 18:48
Wohnort: daheim
Kontaktdaten:

#2 Beitrag von Naddel » 21 Jun 2008 16:12

die Fehlermeldung heißt, dass die Mobile-Klasse kein Attribut "Race" hat. daher geh ich davon aus, dass du RunUO 1.x hast, da in RunUO 2 die Mobile-Klasse ein Race-Attribut hat.
wenn du in deiner SpielerMobile-Klasse (kA wie die bei dir heißt) das eingebunden hast, musst du "beheld" auf deine SpielerMobile Klasse casten, da "beheld" vom Typ "Mobile" ist, die das Attribut Race bei dir anscheinend nicht besitzt.
also:
String Rasse = "";
SpielerMobile sm = beheld as SpielerMobile;
if (sm != null)
{
Rasse = sm.Race;
.....
}

hagily

#3 Beitrag von hagily » 22 Jun 2008 00:08

Hallo.

Ich habe nun auf POL 2.0 Umgestellt und in der PlayerMobile.cs folgendes definiert:

Code: Alles auswählen

public int m_Race;
public int Racetitle 
{ 
get { return m_Race; } 
set	{ m_Race = value; } 
}
Ziel ist, dass ich Racetitle nun von jedem Script aufrufen kann.

Die Frage ist nun, wie ich das in der titles.cs aufrufen kann.

"string Rasse = Racetitle" bringt folgenden Fehler in der Console:
Der Name Racetitle ist im aktuellen Kontext nicht vorhanden

Wie muss diese zeile in der titles.cs denn richtig lauten, damit "Rasse" den inhalt von dem in der playerMobile.cs definierten Racetitle hat?

Benutzeravatar
Naddel
Senior Mitglied
Beiträge: 190
Registriert: 13 Jan 2004 18:48
Wohnort: daheim
Kontaktdaten:

#4 Beitrag von Naddel » 22 Jun 2008 08:03

du meinst RunUO2 ;)
außerdem klappt das so nicht, du hast m_Race/Racetitle als int deklariert, willst aber einen String drinstehen haben.
wie die zeile lauten muss kommt auf die funktion an in die du das einbauen willst, also welche variable da dein mobile hat.

Code: Alles auswählen

public void macheIrgendwas(Mobile m)
{
   String Rasse = "";
   PlayerMobile pm = m as Mobile; // umwandeln, da es nur in der PlayerMobile Racetitle gibt
   if (pm != null) // prüfen ob schon vom Typ PlayerMobile (kein NPC z.B.)
   {
      Rasse = pm.Racetitle;
   }
}

hagily

#5 Beitrag von hagily » 23 Jun 2008 17:15

So funktioniert es leider auch nicht.
Folgende Fehlermeldung:

Code: Alles auswählen

    CS0266: Line 278: Der Typ Server.Mobile kann nicht implizit in Server.Mobiles.PlayerMobile konvertiert werden. Es ist eine explizite Konvertierung vorhanden. (Fehlt eine Umwandlung?)
    CS0029: Line 281: Der Typ Server.Race kann nicht implizit in string konvertiert werden.

Benutzeravatar
Naddel
Senior Mitglied
Beiträge: 190
Registriert: 13 Jan 2004 18:48
Wohnort: daheim
Kontaktdaten:

#6 Beitrag von Naddel » 23 Jun 2008 21:10

dann hast du nicht ganz das gemacht was ich gesagt hab; aber raten kann ich ned was bei dir im code steht...
außerdem scheinst du jetzt doch die Race-Klasse von RunUO zu verwenden und nicht deinen Racetitle. aber wie gesagt, raten kann ich nicht was falsch is :)

Antworten