Construction Set Der Scriptthread

Ja werd mir das mal angucken ^^ Aber net mehr heute. Vielen dank schonmal für eure Hilfe. *Dankebuttonklick* fals etwas nicht klappt melde ich mich wieder xD
 
Ich wollt mal fragen ob mir jemand den script sagen kann durch den wenn etwas auf den boden fällt, (eine waffe) dass dann an der stelle etwas anderes ist.

(hoffe es is genau genug erklärt)

Danke
 
(hoffe es is genau genug erklärt)
Hmmm... :?

Ähh :huh:

Nein ;)

Also ich hab irgendwie grad einen Knoten im Hirn. Was genau soll passieren, wenn die Waffe den Boden berührt: Soll das ein einmaliges Ereignis sein, soll die Waffe durch etwas anderes ersetzt werden, soll irgendetwas "aus dem Nichts" erscheinen? Soll es nur bei einer bestimmten Waffe so sein, oder bei allen, die man an eine bestimmte Stelle schmeißt?

Ein wenig ausführlichere Angaben wären schon wünschenswert :D
 
hatte ich schon befürchtet also:
der script soll auf eine Waffe gelegt werden,
wenn die waffe dann aus dem inventar den boden berührt soll sie zu etwas anderem werden
und wenn man des aufhebt dann hat man wieder den anfangsgegenstand

is jetz aber au egal
hab nämlich bemerkt dass das was ich vor hatte anscheinend doch nich funktioniert
 
Was meinst du mit einer kopf- oder fußgesteuerten Schleife?

Also du kannst auf jeden Fall eine "Lichtschranke" oder einen "Drucksensor" verwirklichen, aber was du mit Kopfschleife meinst, weiß ich nicht.
 
bspw sowas wie

while PCGold < 2000

do additem gold_100 10

Ich brauch das, um die Tage zu zählen, die ab Zeitpunkt X vergangen sind um sie in einer Variablen zu speichern und später auszulesen
 
Also zjm Auslesen der Tage im Spiel, gibt es die Variable DaysPassed. Die leifert die Anzahl der Tage seit dem Beginn des Spiels.

Zum Zeitpunkt X stezt du einfach eine globale Variable auf den Wert von DaysPassed und fragst später über DaysPassed - globale Variable, die vergangenen Tage ab.

Ansonsten gibt es while-Schleifen

Code:
while ( i < 10 )
set i to i + 1
endwhile
 
  • Like
Reaktionen: Neurosis404
Code:
	if ( setDays == 0)
		set PayDays to Day
		set setDays to 1
	endif

while ( EngageNanny == 1 )
	set payment to DaysPassed-PayDays
	set money to payment*50
endwhile

endif

So, das hab ich nu gebastelt (Ist nur ein Teil des Scriptes). Damit wird gefragt, wie lange die Nanny schon in den eigenen Diensten steht und ausgerechnet, was noch zu bezahlen ist.
Frage: Wie kann ich denn die Variable "money" im Text anzeigen lassen? Also so, dass die Zahl da steht? Und wie kann ich bei removeitem das so einstellen, dass er den richtigen Betrag "abbucht"?
 
Ich kann dir wirklich mein Scriptbefehltut ans Herzen legen, dort erkläre ich alle Befehle, auch die Messageboxen.

MessageBox, „Nachricht“, „Antwort 1“, …, „Antwort 9“

Blendet eine Nachricht ein, die zusätzlich bis zu 9 Buttons erzeugen kann (Antwort 1 – Antwort 9). Wenn Antwortmöglichkeiten gegeben sind, schließt sich das Fenster erst nach klicken auf eine der Antworten.
Um Variablen in der Nachricht anzuzeigen ist folgende Syntax zu verwenden:

MessageBox, „Zeige den Wert %.0f“, Variablenname, „OK“

%.0f Bezeichnet die Darstellung ohne Kommastellen. Mit %.2f wird die Zahl auf zwei Kommastellen genau angezeigt.
 
Öhm.. ich meinte jetzt eig keine MessageBox sondern eig nur, wie ich den Wert einer globalen Variable im Dialog Text ausgeben kann.
Ich hab jetzt %money gemacht...

EDIT: Übrigens habe ich Dein Tut neben mir liegen, ohne das wüsst ich die Hälfte gar nich *g*
 
Mit %money funktioniert das nicht.

Du musst wirklich %.0f nehmen und den Variablennamen dann hinter den Text der Messagebox schreiben. Ob das auch im Dialog geht, weiß ich nicht. Ich denke da ist eine solche Ausgabe nur im Resultfeld möglich.
 
  • Like
Reaktionen: Neurosis404
habt ihr mich hier vermisst?^^

ich brauch malwieder ein skript (was sonst ne?)

der sollte:
- einmal am (spiel)tag überprüfen ob ein neuer Monat angebrochen ist
- jeweils zu den monaten wo sich die jahreszeit ändert soll ein skript ausgeführt werden
- für jeden neuen monat müsste ich ein feld haben, wo ich sonstige kleine aktionen ausführen kann.


wozu? das ganze soll, erstmal zum testen, ein jahreszeiten-skript werden. zusätzlich das jeder monat überprüft wird kann ich einige andere sachen einbaun (im winter ziehen sich die klippenläufer zurück und wölfe und bären streifen besonders durch die gegend, in einem monat findet man überall netche vor (paarungszeit^^) etc.
 
also, ich braue ein script, das dem spieler ein item und einen spell gibt, wen man eine creatur angreift, und den spell nach dem töten der creatur wieder entvernt. ginge sowas?
 
So ein Script ist kein Problem.

Code:
begin my_script

short state

if ( state == 0 )
if ( GetTarget "Player" == 1 )
Player->AddItem "my_item" 1
Player->AddSpell "my_spell"
set state to 1
endif
endif

if ( state == 1 )
if ( OnDeath == 1 )
Player->RemoveSpell "my_spell"
set state to 2
endif
endif

end

Dieses Script legst du auf die Kreatur. Statt dem GetTarget, könntest du auch den GetAttacke-Befehl probieren, allrdings würde der auch von einer Wache, die das Tier angreift ausgelöst werden.

Das Problem in dieser Form ist, dass das Tier dich erst angreifen muss, bevor das Script startet. Wenn du deine Kreatur also mit einem Schlag tötest, bewirkt dieses Script nichts.
 
Hi!

Ich bräuchte einen Script für eine Mine.
Der Spieler kann sie aus dem Inventar auf dem Boden legen und wenn irgendeiner drüberläuft soll derjenige durch eine Explosion sterben.

Vieleicht könnte man das ja so machen, dass man gefragt wird ob man eine Mine legen will und dann mit PlaceAtPC einen Activator hinlegt. Aber dann muss ja der Activator irgendwie weg und...Ich blick da nicht durch...

Dann noch Sprengstoff, der nicht nur den Player killt. Aber ich weiß nicht wie ich das mit dem Explosionsschaden machen soll und ob das überhaupt geht.

Könntet ihr mir bitte helfen?
 
Ja, das ist möglich. Du musst bei einem Gegenstand (am besten Misc) abfragen wann er gedroptwird. An diesen mit PlaceAtObject einen Activator setzten, den Miscgegenstand löschen.

Der Activator fragt dann mit GetActorStanding ab, ob jemand auf ihm steht und löst im entsprechenden Moment einen Areazauber uas. Danach löscht sich der Activator selbst.

Das ist der prinzipielle Ablauf, vielleicht hilft dir das schon, für mehr hab ich derzeit keine Zeit. Morgen schreib ich mal ein genaues Script.
 
Okay, ich hab ein Script für die aufgesetzt.

Ich nehme folgende Gegenstände an:
einen Miscgegenstand namens my_mine_misc
einen Activatotr my_mine_act
einen Areazauber auf Berührung my_mine_explosion

Auf den Miscgegenstand legst du folgendes Script:

Code:
begin my_mine_misc_script

short state
short button
short OnPCEquip

if ( state == 0 )
if ( OnPCEquip == 1 )
MessageBox "Wollt Ihr die Mine hier aufstellen und aktivieren?" "Ja." "Nein."
set state to 1
set OnPCEquip to 0
endif
endif

if ( state == 1 )
set button to GetButtonPressed
if ( button == 0 )
PlaceAtPC "my_mine_act" 1 0 0
StartScript "my_mine_entfernen_script"
set state to 2
return
endif
if ( button == 1 )
set state to 0
set button to -1
return
endif
endif

end

Ein weiteres Script musst du nirgendwo drauflegen

Code:
begin my_mine_entfernen_script

if ( Player->GetItemCount "my_mine_misc" >= 1 )
Player->RemoveItem "my_mine_misc" 1
endif

StopScript "my_mine_entfernen_script"

end

Das nächste Script legst du auf den Activator:

Code:
begin my_mine_act_script

short state
float timer

if ( state == 3 )
if ( GetDisabled == 1 )
SetDelete 1
return
endif
endif

if ( MenuMode == 1 )
return
endif

if ( state == 0 )
set timer to timer + GetSecondsPassed
if ( timer >= 1 )
MessageBox "Ihr stellt die Mine auf. Sie ist in wenigen Sekunden scharf. Ihr solltet verschwinden."
set state to 1
set timer to 0
endif
endif

if ( state == 1 )
set timer to timer + GetSecondsPassed
if ( timer >= 4 )
MessageBox "Die Mine ist nun scharf."
set state to 2
set timer to 0
endif
endif

if ( state == 2 )
if ( GetStandingActor == 1 )
Cast "my_mine_explosion" Player ;da der Zauber auf Berührung ist, sollte er nur treffen, wenn du auch die Mine berührt hast
Disable
set state to 3
endif
endif

end

Da ich im Moment kein CS zur Verfügung habe, kann ich allerdings nicht testen, ob es funktioniert. Die möglichen Probleme dürfen, der Equip-Befehl (keine Ahnung ob der mit Misc funktioniert) und das Sprechen des Zaubers sein (löst er aus, wenn der Spieler nicht in Reichweite ist). Beides kann man aber durch andere Konstruktionen lösen, wenn nötig.
 
Zuletzt bearbeitet: