Construction Set Der Scriptthread

Tag leute,
ich brauche folgende script:
der player kann das monster nicht plündern bisauf ein item was random ist (leveled list)
die liste heist random drop, ist das möglich?
 
Tag leute,
ich brauche folgende script:
der player kann das monster nicht plündern bisauf ein item was random ist (leveled list)
die liste heist random drop, ist das möglich?

Eine Möglichkeit wäre, dass du ein neues Monster erstellst und ihm nur dieses Zufallsitemdings ins Inventar packst. Dann brauchst du nichtmal ein Script.
Wenn trotzdem noch Guarhaut (Beispiel) oder sowas im Monster "liegen" soll, man es aber nicht herausnehmen kann, versuch mal, für die entsprechend "fixierten" Items ein jeweils neues Objekt mit folgendem Script drauf zu erstellen:
Code:
Begin einVersuch
  if (OnActivate == 1)
    return
  endif
end
Dieses Script erfüllt seinen Zweck bei herumliegenden Gegenständen auf jeden Fall, es könnte auch bei Inventargegenständen gehen, kann ich aber nicht versprechen.
 
Ich habe ein Problem mit eine DialogResult

Ich habe ein Topic, das heißt Taverne "Zum Schlickschreiter"

Zu dem Greeting
Haltet euch von der Taverne "Zum Schlickschreiter" fern
Schreibe ich den Resultscript
Addtopic Taverne "Zum Schlickschreiter"

Wenn ich die Person mit dem Greeting anspreche kommt die Meldung
Can not find Topic Taverne

Dann öffnet sich das Menu und eine weitereMeldung erscheint, in der der Dialog mit den Links duch @ und # ,aber richtig, Markiert ist.

Haltet euch von der @Taverne "Zum Schlickschreiter"# fern
Dann funktioniert auch alles
, aber es gibt eine Fehlermeldung...

Warum, hat das was mit den "" zutun

thx for help
 
@Unbekannter:
Also liegt wahrscheinlich an den "" , anders kann ich mir das nicht erklären versuchs mal mit Taverne zum Schlickschreiter als Topic, vielleicht klappt das ja.:)
 
  • Like
Reaktionen: Unbekannter
So ich hätte da mal eine Frage. Ich habe hier mal ein eigentlich ziemlich einfaches Script ausprobiert, aber das Funktioniert irgendwie nicht.
Ich habe besagten Banditen mit einem anderen Script voher unsichtbar gemacht (disable) und wollte den mit diesem Script jetzt sichtbar machen. Wenn ich aber zu der Stelle laufe wo der sein sollte bzw. n näherer Umgebung taucht der nicht auf. Kann mir einer sagen wo das Problem ist?
Kann es sein das die rot markierte Stelle ein problem ist? Ich wusste nicht genau wie ich das mit dem Jounral da genau einfügen muss, deswegen habe ich das so gemacht.
Eigentlich soll es ja so ablaufe/jedenfals so wie es von mir vorgesehen war: Der Spieler läuft in die Nähe des Banditen, dieser taucht auf und spricht den Spieler an. Nach dem Gespräch greift er ihn dann an. Aber wie schon geschrieben taucht der gar nicht erst auf. :(
Edit: Die Bedingungen sind jedenfals eigentlich erfüllt.

Begin Band_fightscript_002
Short Status
If ( status == 0 )
If ( Journal "Des Barden Ausrüstung" == 15 )
If ( getdistance player < 512 )
AAA_Bezahlter_Banidt->enable
Forcegreeting
Startcombat player
endif
endif
endif
end
 
Nicht unbedingt verwunderlich. Hier mal eine verbesserte Version ;)

Code:
Begin Band_fightscript_002
Short Status

If ( status == 0 ) 
   If ( GetJournalIndex "Des Barden Ausrüstung" == 15 ) 
	If ( GetDistance player < 512 )
		AAA_Bezahlter_Banidt->enable
		AAA_Bezahlter_Banidt->ForceCreeting
		AAA_Bezahlter_Banidt->StartCombat player
                set state to 1
	endif
   endif
endif

end
 
  • Like
Reaktionen: 1 Person
Ah vielen dank. Gut zu wissen das das nicht einfach nur mit Journal geht. :D
Und das man überall die ID des NPC´s hinsetzen muss wusste ich auch nicht. Danke. :)

Edit: Aber 1. kleinen Fehler habe ich bie dir gefunden. ForceGreeting schreibt man nicht mit "C". ;)

Edit2: So klappt alles.

Edit3: So ich habe (wie sollte es auch anders sein) ein weiteres Problem. Ich wollte es eigentlich so machen, dass wenn man eine bestimmte Sache erfüllt, in diesem Fall einen Tagebucheintrag hat und in einer bestimmten Entfernung zu einem NPC steht, dass dieser einen dann anspricht und danach verschwindet. (disable)
dazu habe ich folgendes Script ausprobiert, aber auch dieses Funktioniert nicht.
(Bitte entschuldigt meine totale Unwissenheit aber das ist das erste mal das ich "ernsthaft" versuche selber einige leichte Scripts zu schreiben.

Begin Zenori_disablescript
Short status
If ( status == 0 )
If ( GetJournalIndex "Des Barden Ausrüstung" == 20 )
If ( getdistance player < 512 )
AAA_Zenori_Cedus->forcegreeting
Set status to 1
Elseif ( status == 1 )
AAA_Zenori_Cedus->disable
set status to 2
endif
endif
endif
endif
end
 
Zuletzt bearbeitet von einem Moderator:
@ Unbekannter
bei allend "add"-Befehlen muss, soweit ich weiß, das nachfolgende in Anführungszeichen stehen, wenn es aus mehreren Worten besteht. Im deinem Falle könnte es sein, dass bei addtopic Taverne "zum Schlickschreiter" nur das Topic Taverne hinzugefügt wird (was zu Fehlermeldungen führen dürfte, wenn dieses Topic gar nicht existiert oder eventuell auch schon deshalb, weil ein "zum Schlickschreiter" dahinter steht, was laut Syntax da nicht hingehört). Das Problem lässt sich beheben, wenn du addtopic "Taverne "zum Schlickschreiter"" schreibst, denn dann wird Taverne "zum Schlickschreiter" als ein Ausdruck angesehen.

@Caffalor
Versuch's mal so:
Code:
Begin Zenori_disablescript
 
Short status
 
If ( status == 0 ) 
  If ( GetJournalIndex "Des Barden Ausrüstung" == 20 )
    If ( getdistance player < 512 ) 
      AAA_Zenori_Cedus->forcegreeting
      Set status to 1 
    endif
    if ( status == 1 )
      AAA_Zenori_Cedus->disable
      set status to 2
    endif
  endif
endif
 
end

Ich vermute, dass bei deinem Script, sobald die erste Bedingung erfüllt ist, der else-Zweig nicht mehr ausgeführt wird, weil ja keine Alternative gebraucht wird, da die eigentliche Bedingung ausgeführt wird.
So werden die beiden Aufträge in beabsichtigter Reihenfolge nacheinander ausgeführt (hoffe ich zumindest).

So, jetzt habe ich aber noch selbst eine Frage:
Ich möchte, dass ein Tagebucheintrag hinzugefügt wird, wenn man die drei Vampirältesten getötet hat.
Dazu habe ich den dreien spezifische Scripte gegeben, die um 5 Zeilen Code erweitert wurden:
Dhaunayne Aundae:
Code:
If (OnDeath ==1)
  [...]
[I] If (GetDeadCount "volrina quarra" >= 1)[/I]
[I]   If (GetDeadCount "raxle berne" >= 1)[/I]
[I]     Journal, avh, 6[/I]
[I]   endif[/I]
[I] endif[/I]
endif
Volrina Quarra:
Code:
If (OnDeath ==1)
  [...]
[I] If (GetDeadCount "raxle berne" >= 1)[/I]
[I]   If (GetDeadCount "dhaunayne aundae" >= 1)[/I]
[I]     Journal, avh, 6[/I]
[I]   endif[/I]
[I] endif[/I]
endif
Raxle Berne:
Code:
If (OnDeath ==1)
  [...]
[I] If (GetDeadCount "volrina quarra" >= 1)[/I]
[I]   If (GetDeadCount "dhaunayne aundae" >= 1)[/I]
[I]     Journal, avh, 6[/I]
[I]   endif[/I]
[I] endif[/I]
endif
Das klappt wunderbar, wenn ich Volrina Quarra oder Dhaunayne Aundae als Dritte umbringe, aber wenn Raxle Berne mein letztes Opfer ist, bekomme ich keinen Tagebucheintrag. Hat das was damit zu tun, dass ich Berne-Vampir bin? Oder habe ich sonst irgendetwas falsch gemacht?
 
Zuletzt bearbeitet:
  • Like
Reaktionen: 1 Person
hallo,

ich brauche ein Script, das auf einen trank gelegt wird. Wenn man diesen trinkt, soll man 60 sekunden einen Zauber erhalten, welchen man dann unendlich oft (bis das mana leer is) benutzen kann. Jedoch soll er halt nach 60 sekunden wieder verschwinden, d.h. , wenn man den Trank wieder verwenden würde, bekommt man den Zauber wieder 60 sekunden.

danke im vorraus :)
 
Hallo Scharesoft Forum.
Ich brauche einen Script mit dem eine Wache dazu bringt, bei Betreten einer Cell den Spieler automatisch anzusprechen und alle Waffe aus dem Inventar zu entfernen.
Bei Verlassen der Cell würde man sie dann automatisch wiederbekommen( also durch der Tür/ nicht die Wache) altenativ könnte man bei Betreten der Interior-Cell auch eine Messagebox einsetzen und dann den Script auf die Tür legen (Wenn das einfacher wäre).
Bitte helft mir, der Scrpit ist sehr wichtig für mein Mod-Preojekt.:?
 
@ Valon
Wie Master_DeluXXXe schon sagte und wie es schon häufig diskutiert wurde, kann man nicht abfragen, ob Items im Inventar sind, sondern nur, ob Item x im Inventar ist oder ob Item y im Inventar ist. Wenn du also eine bestimmte Waffe hättest, würde es gehen, aber da es viele Waffen gibt und durch Mods noch welche dazukommen, ist dein Plan vermutlich unausführbar.
Was eventuell geht (wobei ich dir aber nicht helfen kann), ist ein Script, welches abfragt, ob man eine Waffe gezogen hat.
 
  • Like
Reaktionen: Valon
Da das mit den Waffen im Inventar wohl nicht funktioniert wollte ich fragen ob:
1. Das von Darkshade erwähnte Abfragen nach einer gezogenen Waffe überhaupt geht und
2. Jemand weiß wie der Script dafür ist.
Bin wie immer für jede Hilfe dankbar.
 
Um raus zu bekommen, ob der Spieler eine Waffe gezogen hat oder zum Zaubern bereit ist, kannst du folgende Abfragen verwenden:

GetWeaponDrawn - liefert dir eine 1, wenn eine Waffe gezogen ist (oder die Fäuste zum Boxen oben sind)

GetSpellReadied - liefert eine 1, wenn ein Zauber vorbereitet wird (also die Hände zum Zaubern gehoben sind)

GetWeaponTyp - Ermöglicht dir rauszufinden, welche Art von Waffe ausgerüstet ist.

-1 - keine Waffe
0 - Kurzwaffe
1 - Langwaffe, einhändig
2 - Langwaffe, zweihändig
3 - Stumpfe Waffe, einhändig
4 - Stumpfe Waffe, zweihändig, kurze Reichweite
5 - Stumpfe Waffe, zweihändig, große Reichweite
6 - Speer
7 - Axt, einhändig
8 - Axt, zweihändig
9 - Bogen
10 - Armbrust
11 - Wurfwaffe
12 - Pfeil
13 - Bolzen

Die oberen beiden Befehle sind nur mit installiertem Tribunal verfügbar. In einem Script würde dies so ausssehen:

Code:
begin my_script

...

if ( Player->GetWeaponDrawn == 1 )
  ;mach irgendwas
endif

...

end
 
  • Like
Reaktionen: Valon
Ok, ich brauche dringend einen Script :)

Und zwar:

Wenn der Spieler den Activator anklickt, sollte eine Soundfile abgespielt werden (Hab ich als wav. im Sound Ordner) und eine Nachricht sollte erscheinen :D

Wäre cool, wenn möglichst schnell geantwortet wird, da der Script das letzte ist, was mir für mein Suran Haus noch fehlt :D

Danke^^
 
Du weist, wie man einen Sound in ein Plugin einbaut? Falls nicht... da gibt es oben im CS in der Menuleiste so'nen kleinen Lautsprecher. Da mal draufklicken und dann sieht man viele Sounds. Hier kannst du neue Sounds einfügen, wie, erklärt sich von selbst. Sinnvollen Namen (eine ID) eingeben. Fertig.

Das Script:

Code:
begin MachLärmUndSchreibtWasScript
[COLOR="DarkBlue"]short doonce[/COLOR]

IF ( MenuMode == 1 )
 return
EndIF

IF ( OnActivate == 0 )
 Return
EndIF

[COLOR="DarkSlateBlue"]IF ( doonce == 0 )[/COLOR]
 PlaySound "SOUND ID"
 MessageBox "Hier muß das BlaBla rein"
[COLOR="DarkBlue"] set doonce to 1
EndIF[/COLOR]

end
Die Dunkelblauen Teile sind optional, falls der Activator nur einmal funktionieren soll. Sollen Sound und Meldung immer kommen, wenn man ihn betätigt, läßt du sie einfach weg.

Sollte funktionieren.
 
  • Like
Reaktionen: Wesen d. N.