spellweaving

Für Allgemeine Fragen rund um RunUO
Nachricht
Autor
Blaze3008
Senior Newbie
Beiträge: 46
Registriert: 22 Jul 2007 16:34

spellweaving

#1 Beitrag von Blaze3008 » 26 Aug 2007 16:21

moin,

ich hab ig beim ausprobieren von spellweaving ne meldung bekommen: "dieser spruch wurde vorrübergehend deaktiviert" daraufhin habe ich in den scripts nachgeschaut, warum das so ist und hab bemerkt, dass ich garkeine dateien für die spellweaving spells hab. ist das normal, warum ist das so und wo bekomme ich jetzt die dateien her?

danke schonmal im vorraus,
Blaze3008

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

#2 Beitrag von Naddel » 27 Aug 2007 00:51

im forum bei runuo.com gibts die. threadname ist "spellweaving. i'm done with runuo" (oder so ähnlich)

Blaze3008
Senior Newbie
Beiträge: 46
Registriert: 22 Jul 2007 16:34

#3 Beitrag von Blaze3008 » 27 Aug 2007 16:20

OK, danke, ich habs gefunden. Jetzt hab ich aber das Problem, dass es nicht einfach reicht, alles einfacj in den entsprechenden ordner zu kopieren (war ja irgendwie klar) und ich bein ein totaler Noob, was das angeht, kann mir einer schritt für schritt sagen, was ich machen muss?
Tut mir wriklich Leid, wenn ich jemandem auf die Nerven geh damit, aber wie gesagt, ich bin ein totaler Noob...

Sotho Tal Ker

#4 Beitrag von Sotho Tal Ker » 27 Aug 2007 22:14

Hm... eine Komplettanleitung wirst du wohl kaum bekommen, aber soviel sei gesagt:
Post 1 enthält nur die neuen Dateien und einen patch (bzw diff) für r159 aus dem SVN repository. Im Posting Nummer 4 sind alle Dateien enthalten. Das ist was du brauchst. Diese entweder alle rüberkopieren und die anderen überschreiben oder WinMerge benutzen, falls du irgendwas geändert hast und die Änderungen manuell übernehmen. :)

Blaze3008
Senior Newbie
Beiträge: 46
Registriert: 22 Jul 2007 16:34

#5 Beitrag von Blaze3008 » 28 Aug 2007 13:26

k, ich bekomme aber jetzt für alle BaseWeapons.cs (also BaseKnife.cs, BaseStaff.cs, etc...) eine Fehlermeldung:
CS0506: Line XY: Server.Items.BaseStaff.OnHit(Server.Mobile, Server.Mobile): Der geerbte Member Server.Items.BaseWeapon.Onhit(Server.Mobile, Server.Mobile) kann nicht überschrieben werden, da er nicht als "virtual", "abstract" oder "override" gekennzeichnet ist.
eine ähnliche Meldung auch für LesserHiryu.cs, Ridgeback, SavageRidgeback, ScaledSwampDragon, SwampDragon und FireBeetle.cs:
CS0506: Line XY: Server.Mobiles.LesserHiryu.GetControlChance(Server.Mobile): Der geerbte Member Server.Mobiles.BaseCreature.GetControlChance(Server.Mobile) kann nicht überschrieben werden, da er nicht als "virtual", "abstract" oder "override" gekennzeichnet ist.
Das ist die entsprechende Zeile für BaseStaff.cs / Base.Knife.cs / ...:
public override void OnHit( Mobile attacker, Mobile defender )
Die entsprechende Zeile für LesserHiryu.cs
public override double GetControlChance( Mobile m )
außerdem noch folgende Fehlermeldung für Mobiles/PlayerMobile.cs :
CS0115: Line 2789: Server.Mobile.PlayerMobile.NewGuildDisplay: Es wurde keine geeignete Methode zum Überschreiben gefunden.
Danke schonmal im Vorraus,
Blaze3008

Blaze3008
Senior Newbie
Beiträge: 46
Registriert: 22 Jul 2007 16:34

#6 Beitrag von Blaze3008 » 30 Aug 2007 19:06

keiner da, der nem NOOB helfen kann/möchte? :(

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

#7 Beitrag von Naddel » 30 Aug 2007 19:47

zu den ersten fehlern: die basisklasse wird keine methode haben, die als virtual (resp. abstract oder override(= erbt ebenfalls von einer Klasse)) deklariert ist. also die Klasse BaseWeapon hat keine Methode
public virtual void OnHit(...) sondern evtl. nur public void OnHit

da müsste man also die methoden der oberklasse kennen, nicht die der erbenden

ps: welche runuo version verwendest du?

Blaze3008
Senior Newbie
Beiträge: 46
Registriert: 22 Jul 2007 16:34

#8 Beitrag von Blaze3008 » 31 Aug 2007 16:42

runuo 2.0

Sotho Tal Ker

#9 Beitrag von Sotho Tal Ker » 31 Aug 2007 22:59

Haben dir die Erläuterungen geholfen oder besteht der Fehler noch immer? (bzw die Fehler ^^)

Blaze3008
Senior Newbie
Beiträge: 46
Registriert: 22 Jul 2007 16:34

#10 Beitrag von Blaze3008 » 01 Sep 2007 09:43

also das von naddel, hab ich jetz nich so ganz verstanden, ich wollte nur gern wissen, was ich wo und wie ändern muss^^

Blaze3008
Senior Newbie
Beiträge: 46
Registriert: 22 Jul 2007 16:34

#11 Beitrag von Blaze3008 » 02 Sep 2007 17:54

also ich mal was ausprobiert:

zu dem 1. fehler:
ich hab in der BaseWeapon.cs Zeile 1291 ein "override" eingefügt:
vorher: public void OnHit( Mobile attacker, Mobile defender )
nachher: public override void OnHit( Mobile attacker, Mobile defender )

die Fehler die das betreffen sind weg, dafür nur noch einer:
CS0115: Line 1291: Server.Items.BaseWeapon.OnHit(Server.Mobile, Server.Mobile): Es wurde keine geeignete Methode zum Überschreiben gefunden
is das nu besser oder genauso doof?

bei dem 2. Fehler weiß ich aber nich was genau ich da ändern müsste, der Bereich in dem das "getcontrolchance vorkommt":
public virtual bool CheckControlChance( Mobile m )
{
if ( GetControlChance( m ) > Utility.RandomDouble() )
{
Loyalty += 1;
return true;
}

PlaySound( GetAngerSound() );

if ( Body.IsAnimal )
Animate( 10, 5, 1, true, false, 0 );
else if ( Body.IsMonster )
Animate( 18, 5, 1, true, false, 0 );

Loyalty -= 3;
return false;
}

public virtual bool CanBeControlledBy( Mobile m )
{
return ( GetControlChance( m ) > 0.0 );
}

public double GetControlChance( Mobile m )
{
return GetControlChance( m, false );
}

public virtual double GetControlChance( Mobile m, bool useBaseSkill )
{
if ( m_dMinTameSkill <29>= AccessLevel.GameMaster )
return 1.0;
und der 3. Fehler:
CS0115: Line 2789: Server.Mobile.PlayerMobile.NewGuildDisplay: Es wurde keine geeignete Methode zum Überschreiben gefunden.
is auch weg.

was nu?

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

#12 Beitrag von Naddel » 02 Sep 2007 21:44

1. fehler is genauso blöd, nimm statt dem override ein virtual. damit kann die methode von einer erbenden klasse überschrieben (override) werden.

bei dem getControlChance fügst du ebenfalls ein virtual ein, ist ja in dem sinne der gleiche fehler wie der 1.

Blaze3008
Senior Newbie
Beiträge: 46
Registriert: 22 Jul 2007 16:34

#13 Beitrag von Blaze3008 » 03 Sep 2007 12:32

kannst du mir sagen, wo genau ich bei dem GetContolChance das virtal einfügen muss? ich hab da nämlich keine ahnung, bei dem BaseWeapon wars für mich eindeutig, da nich...
thx

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

#14 Beitrag von Naddel » 03 Sep 2007 14:44

in den methodenkopf

public virtual double GetControlChance( Mobile m )
{
return GetControlChance( m, false );
}

diese methode hat nur 1 parameter (Mobile m), ruft aber die gleiche methode mit mehreren parametern auf (man spricht hier von einer sog. "überladenen" methode, da die methoden den gleichen namen haben, aber verschieden(e) (viele) parameter)

Blaze3008
Senior Newbie
Beiträge: 46
Registriert: 22 Jul 2007 16:34

#15 Beitrag von Blaze3008 » 03 Sep 2007 18:58

Die vorherigen Fehler sind jetzt weg, dafür aber drei neue da...

in der BaseWeapon.cs:
CS0117: Line 1056: Server.Spells.Bushido.Evasion enthält keine Definition für GetParryScalar
das gleiche auch für Zeile 1087.

in der Spellhelper.cs
CS0117: Line 792: Server.Spells.Bushido.Evasion enthält keine definition für CheckSpellEvasion
auch für Line 877

und in Spells/Spellweaving/Items/ExpireItem.cs:
CS0308: Line 32: Der/Die nicht generische Methode Server.Items.Container.FindItemsByType (System.Type) kann nicht für Typargumente verwendet werden.
ich hoff mal das waren dann die letzten Fehler...^^

Antworten