Items verteilen

Rund um das Scripten unter Sphere 55i

Moderator: Mods - Sphere

Antworten
Nachricht
Autor
sven2k

Items verteilen

#1 Beitrag von sven2k » 26 Dez 2007 16:21

Hallo an alle.

Ich versuche gerade mehr aus spass an einem Homeserver etwas zu scripten. Zur Zeit versuche ich ein Rassen- Klassensystem zu basteln.

Leider bleib ich an einem Problem hängen:

Wie kann ich im Script festlegen, dass zum Beispiel beim durchschreiten des Magierportals, alles was bisher im Rucksack war gelöscht wird und durch andere Gegenstände die ich festlege ersetzt wird?

MFG
sven2k

Benutzeravatar
Overkiller
Moderator (Sphere)
Beiträge: 424
Registriert: 14 Jan 2004 18:02
Wohnort: 127.0.0.1
Kontaktdaten:

#2 Beitrag von Overkiller » 26 Dez 2007 16:24

Lösch einfach das Backpack bzw. die Tasche.

Sobald du etwas neues herein legst wird sie neu erstellt.

Code: Alles auswählen

 SRC.FINDLAYER(21).REMOVE
 SRC.NEWITEM i_gold
 ACT.AMOUNT 500
 ACT.BOUNCE
so z.b
Bild

sven2k

#3 Beitrag von sven2k » 26 Dez 2007 16:28

Vielen Dank für die superschnelle Anwort.

MFG
sven2k

sven2k

#4 Beitrag von sven2k » 26 Dez 2007 17:31

Leider tut sich gerade bei mir ein weiteres Problem auf:

Das Rucksack verschwindet genau so wie gewünscht. Allerdings erscheint kein neuer Rucksack wenn ich die neuen Items hinzufüge.

Hier ein Auszug:

SRC.FINDLAYER(21).REMOVE
SRC.NEWITEM i_gold
ACT.AMOUNT 1000
ACT.BOUNCE
SRC.NEWITEM i_candle //Basisitems für JEDE Klasse
SRC.NEWITEM i_dagger
SRC.NEWITEM i_book_sm

SRC.NEWITEM i_hammer_sledge //Klassenitems
SRC.NEWITEM i_pickaxe

In meinem Serverlog kommt dazu noch:

16:15:(Testschmied.scp,69)WARNING: can't find definition for 'e_Schmied)'!
16:15:ERROR:(Testschmied.scp,69)Undefined symbol 'e_Schmied'
16:15:ERROR:(Testschmied.scp,69)Unknown 'EVENTS' Resource '(e_Schmied)'
16:15:ERROR:(Testschmied.scp,85)Undefined keyword 'ACT.AMOUNT'
16:15:ERROR:(Testschmied.scp,86)Undefined keyword 'ACT.BOUNCE'

Vielleicht kann mir jemand nochmal unter die Arme greifen.

Vielen Dank im Vorraus.

MFG
sven2k

nazghul

#5 Beitrag von nazghul » 26 Dez 2007 18:02

benutz statt REMOVE einfach mal EMPTY :-)

was den Rest angeht: Ohne die Zeilen zu kennen, in denen die Fehler auftreten, könenn wir nicht mal raten (default disclaimer: meine Kristallkugel ist in der Werkstatt)

sven2k

#6 Beitrag von sven2k » 26 Dez 2007 18:54

Danke erstmal für den Tipp.

Ich hoffe du musst nicht deine Kristallkugel benutzen um mir zu helfen *g*

Ich poste mal den ganzen Code:


[SKILLCLASS SCHMIED]
DEFNAME=SCHMIED
NAME=SCHMIED
STATSUM=150
SKILLSUM=520.0
STR=80
INT=30
DEX=40
Anatomy=0.0
ItemID=70.0
ArmsLore=0.0
Parrying=40.0
Begging=0.0
Blacksmithing=100.0
Bowcraft=0.0
Peacemaking=0.0
Camping=0.0
Carpentry=0.0
Cartography=0.0
Cooking=20.0
DetectingHidden=20.0
Enticement=0.0
EvaluatingIntel=0.0
Healing=20.0
Fishing=30.0
Forensics=0.0
Herding=0.0
Hiding=0.0
Provocation=0.0
Inscription=0.0
LockPicking=0.0
Magery=0.0
MagicResistance=10.0
Tactics=30.0
Snooping=0.0
Musicianship=0.0
Poisoning=0.0
Archery=0.0
SpiritSpeak=0.0
Stealing=0.0
Tailoring=0.0
Taming=0.0
TasteID=0.0
Tinkering=0.0
Tracking=0.0
Veterinary=0.0
Swordsmanship=30.0
Macefighting=20.0
Fencing=20.0
Wrestling=20.0
Lumberjacking=0.0
Mining=70.0
Meditation=0.0
Stealth=0.0
RemoveTrap=0.0
Necromancy=0.0




[ITEMDEF i_gate_testschmied]
Name=Schmiedgate
ID=i_moongate_red

ON=@Create
color=08fd
ON=@Step
SRC.EVENTS -(Class_Undeclared)
SRC.EVENTS +(e_SCHMIED)
SRC.SKILLCLASS SCHMIED


SRC.STR=35 // Statsetzung
SRC.DEX=20
SRC.INT=10

SRC.ALLSKILLS=0 //Skillreset
SRC.Blacksmithing=50.0 // Skillverteilung
SRC.Mining=50.0
SRC.ArmsLore=25.0
SRC.ItemID=15.0

SRC.FINDLAYER(21).EMPTY // danke nochmal *g*
SRC.NEWITEM i_gold
ACT.AMOUNT 1000
ACT.BOUNCE
SRC.NEWITEM i_candle //Basisitems für JEDE Klasse
SRC.NEWITEM i_dagger
SRC.NEWITEM i_book_sm

SRC.NEWITEM i_hammer_sledge //Klassenitems
SRC.NEWITEM i_pickaxe


SRC.GO 905,481,0 // Teleport zur Gabelung Jawey - Friedhof

src.message Ihr seit nun ein Schmied!
SRC.MESSAGE Willkommen! Moege euch das Glueck stehts begleiten.

src.fix
Return 1


[EOF]

PS: Ich komme mi langsam wirklich lästig vor aber der Rucksack ist immernoch weg.

MFG
sven2k
Zuletzt geändert von sven2k am 28 Dez 2007 21:09, insgesamt 2-mal geändert.

Benutzeravatar
Overkiller
Moderator (Sphere)
Beiträge: 424
Registriert: 14 Jan 2004 18:02
Wohnort: 127.0.0.1
Kontaktdaten:

#7 Beitrag von Overkiller » 26 Dez 2007 19:00

Öhm,
die Fehlermeldung kommt weils den Event e_Schmied nicht gibt.

SRC.EVENTS -(Class_Undeclared)
SRC.EVENTS +(e_SCHMIED)

Was sollen die Klammern da drum ?
Bild

sven2k

#8 Beitrag von sven2k » 26 Dez 2007 22:44

So das ungenutzte Element hab ich entfernt.

Was mich nur wundert ist das er offensichtlich mich den Befehlen


ACT.AMOUNT 1000
ACT.BOUNCE

nichts anfangen kann.

MFG
sven2k

MrFox

#9 Beitrag von MrFox » 26 Dez 2007 23:26

Probier mal

SRC.ACT.AMOUNT 1000
SRC.ACT.BOUNCE

Benutzeravatar
Overkiller
Moderator (Sphere)
Beiträge: 424
Registriert: 14 Jan 2004 18:02
Wohnort: 127.0.0.1
Kontaktdaten:

#10 Beitrag von Overkiller » 27 Dez 2007 09:00

Ich seh auch gerade das du vermutlich die Sphere 55i benutzt. Nimm doch besser die 56b.

http://prerelease.sphereserver.net
Bild

sven2k

#11 Beitrag von sven2k » 28 Dez 2007 20:57

Gibt es da so viele Verbesserungen?

Nochmal zum Script: ES FUNKTIONIERT!

MFG
sven2k

nazghul

#12 Beitrag von nazghul » 28 Dez 2007 21:29

gab es zwischen Windows 95 und Windows XP SP-2 Verbesserungen?

(Nein, der Vergleich hinkt nicht - sowohl Sphere .56b als auch XP sind im Vergleich zur Uralt-Version Resourcenfresser - aber es lohnt sich (ich sollte es eigentlich wissen :) )! Und wie die meisten '95-Programme unter XP laufen, tun es auch die meisten .55i-Scripte unter .56b. Die Gründe für den schnellstmöglichen Umstieg - außer der Featuritis - zu wiederholen spare ich mir )

Details kannst Du nachlesen auf www.spherewiki.com

sven2k

#13 Beitrag von sven2k » 28 Dez 2007 23:29

Alles klar.

Ich werd mir das mal anschauen.
Nochmals danke.

MFG
sven2k

Antworten