Autor |
|
rendel
Mage
 

Dabei seit: Oktober 2002
Geschlecht: 
Herkunft:
Beiträge: 185
 |
|
|
22.04.2003, 13:58 |
|
Vvarden
Lord Shadow
   

Dabei seit: Dezember 2002
Geschlecht: 
Herkunft: Cyrodiil
Beiträge: 4742
 |
|
Ouh, sehr schön. Aber ne kleine Frage: Um was für einen Mod handelt es sich und für welche Version wird er sein ???
__________________
Shit happens, you can't avoid it.
.:: Live by Honor, Kill by Stealth ::.
Nur wenige wissen, wie viel man wissen muss, um zu wissen, wie wenig man weiß.
|
|
22.04.2003, 14:18 |
 |
rendel
Mage
 

Dabei seit: Oktober 2002
Geschlecht: 
Herkunft:
Beiträge: 185
 |
|
|
22.04.2003, 14:37 |
|
iladrion
Craftsman
 

Dabei seit: September 2002
Geschlecht: keine Angabe
Herkunft:
Beiträge: 288
 |
|
Zitat: Original von rendel
Ich hab mich mal am Scripten versucht und würde jetzt gerne hören, ob das so funktioniert oder ob es völliger Blödsinn ist. 
Das ist schon weit mehr als nur nen Versuch... Wenn du das alleine hinbekommen hast, bist Du nen Naturtalent ! Ich sehe im Moment nix, warum das so nicht gehen sollte. Sicher kann man es noch verbessern, aber das Grundgerüst ist TOP !
Übrigens sorry, hatte deine PM bekommen, aber noch keine richtige Zeit bisher gefunden, ne Lösung dafür zu basteln. Aber wie man sieht, ist es manchmal sogar gut, wenn man zu lahm ist, hier hat es wohl jemanden geholfen sich selbst scripten beizubringen, he ?
Zitat:
Problem:
Wie legt man die Länge des Gefängnisaufenthalts fest?
Da gibt es keine Variable für, afaik. Ich vermute mal, das wird automatisch aus der Höhe des Kopfgeldes berechnet. Also musst Du einfach eins aussetzen (zb 1/10 der Rate). Problem dabei ist, das der PC dann wahrscheinlich sämtliche gestohlenen Items verliert, wie bei ner Verhaftung üblich...
Verbesserungs-/Erweiterungsvorschläge:
Verschiedene wählbare Ratenlaufzeiten und was ich finde, was wichtig wäre in diesem Fall: ZINSEN ! oder man sollte das Haus, falls man das Geld sofort auf einmal hat, billiger bekommen.
[Edit:]
Ich hab dir nochmal alle Scriptbefehle, die ich zum Jail gefunden habe rausgesucht (aus "Scripting for Dummies 5.0):
Get/Mod/SetPCCrimeLevel (PC Only) (returns short) PCCrimeLevel governs the gold you have to pay to be cleaned of crimes, influences NPC disposiotion and how guards react to you. Can be used to detect whether a crime the PC has committed has been seen.
GotoJail Sends the PC to the (closest available) prison, more exactly speaking to a PrisonMarker (Door object) and applies the usual prison penalties.
PayFine The PayFine function removes the stolen items from the PCs inventory; it does not remove any gold. Call after paying a crime fee to clean AI.
Mehr gibt es scheinbar nicht...
__________________ keep on modding...
Dieser Beitrag wurde von iladrion am 22.04.2003, 15:15 Uhr editiert.
|
|
22.04.2003, 15:00 |
|
rendel
Mage
 

Dabei seit: Oktober 2002
Geschlecht: 
Herkunft:
Beiträge: 185
 |
|
So ganz alleine war es nicht. Ich hab hier im Forum ein Script über Kopfgeld gefunden, daraus hab ich die Sache mit dem Zeitablauf. Messageboxes hab ich schon mal für ein Teleportamulett gemacht. Und für den Rest hab ich das bißchen PC Logik zusammengekratzt das mir mal jemand vor 15 Jahren bei einem Basic VHS-Kurs beigebracht hat. 
Das mit dem Gefängnisaufenthalt ist schade, ich bin nämlich kein Freund von Kopfgeld und daraus resultierendem Gegenständeverlust.
Zinsen gibt es übrigens doch. Jede Rate wird 1/10 des Gesamtwertes sein. Aber 12 Raten wird man zahlen müssen. Also 20% Aufschlag, was übrigens Peanuts ist im Vergleich zur Realität.
Das Script mit veränderten Ratenlaufzeiten zu machen halte ich für sehr aufwändig, sinnvoller wäre vielleicht, es für verschiedene Ratenhöhen zu machen.
Ich könnte da noch eine Variable für die Ratenhöhe eingeben und im Dialog mit z.B. set Ratenhöhe == 25000
einen Wert eingeben.
Kann ich dann beim Goldabziehen einen Befehl schreiben wie
..if (button == 1)
....Player->RemoveItem, gold_001, ratenhöhe
....set erinnerung to 0
oder braucht er einen festen Wert für die Anzahl der Items?
Edit:
Vielleicht kann man die Kopfgeldvariable auf einen Wert setzen, damit man 7 Tage im Gefängnis ist und anstatt PayFine am Ende setzt man das Kopfgeld einfach wieder auf 0.
Müßte doch gehen, oder?
Dieser Beitrag wurde von rendel am 22.04.2003, 15:24 Uhr editiert.
|
|
22.04.2003, 15:21 |
|
iladrion
Craftsman
 

Dabei seit: September 2002
Geschlecht: keine Angabe
Herkunft:
Beiträge: 288
 |
|
Zitat: Zinsen gibt es übrigens doch.
Upps, wo hab ich meine Augen... *entferntsichvorsichtigmehrerebrettervomkopf*
Zitat: braucht er einen festen Wert für die Anzahl der Items?
Ich glaube nicht. Kann keine genauen Angaben dazu finden, weder in der CS-Hilfe noch im Scripting for dummies. Mit Tribunal hast du aber ne recht gute Wahrscheinlichkeit, dass das klappt. Ansonstens kann man das über ne längere if..elseif...endif-schleife lösen.
Die Höhe der Rate zu ändern, ändert übrigens auch die Laufzeit... Aber ich denke, das ist klar.
Zitat: Edit:
Vielleicht kann man die Kopfgeldvariable auf einen Wert setzen, damit man 7 Tage im Gefängnis ist und anstatt PayFine am Ende setzt man das Kopfgeld einfach wieder auf 0.
Müßte doch gehen, oder?
Jepp, das selbe hab ich mir inzwischen auch überlegt. In der Payfine-Erklärung steht es ja eigentlich genau beschrieben, dass erst mit dieser Funktion die Gegenstände entfernt werden. Ich hoffe, dass PayFine nicht automatisch von GotoJail miterledigt wird, sprich der eine Befehl den anderen beinhaltet. Musst Du wohl oder übel mal ausprobiern, wie das genau abläuft.
Wie du allerdings genau 7 Tage hinbekommst, weiss ich auch nich genau. Habe ne GameSettingVariable gefunden, die nen Faktor von 100 enthält. Ich würde es also zu erst mal mit 700 Kopfgeld probiern. Aber ich befürchte das da auch wieder Talente und Attribute des Chars einberechnet werden, so dass sich das für jeden anders auswirken wird. Denn wenn ich bei ner Stadtwache mein Kopfgeld bezahle, sorgt mein Feilschen wert dafür, das ich weniger bezahlen muss, als eigentlich ausgesetzt wurde.
__________________ keep on modding...
|
|
22.04.2003, 16:10 |
|
Garak
Admin
     

Dabei seit: Juli 2002
Geschlecht: 
Herkunft: Cardassia Prime
Beiträge: 9269
 |
|
Meiner erfahrung nach unterliegt removeitem zumindest in Morrowind ohne Tribunal der "keine Variablen"-Beschränkung. Ich hab das mal mit einem externen script gelost, an das per Globalvariable "Shortparameter" die anzahl übergeben wurde:
begin removenetch
while (shortparameter >=1)
set shortparameter to shortparameter - 1
player -> removeitem ingred_netch_leather_01 1
endwhile
stopscript removenetch
end
Muss dich aber warnen: die While - schleife ist elend langsam!
Kleine Frage noch zu Deinem Script: Macht es keine Schwierigkeiten, dass Du deine globals auch lokal definiert hast? klingt für mich nach Chaospotential - ist zumindest in Fortran ein beliebter Verwirraspekt für mich gewesen...
__________________ drei mal dürft ihr raten, wer grade seine Signatur geschrottet hat...geht aber wieder - allerdings solltet Ihr noch die Finger von den Avataren lassen 
|
|
22.04.2003, 22:06 |
|
rendel
Mage
 

Dabei seit: Oktober 2002
Geschlecht: 
Herkunft:
Beiträge: 185
 |
|
Zitat: Original von Garak
Muss dich aber warnen: die While - schleife ist elend langsam!
Dann mach ich das wohl besser nicht. Bei 5-Stelligen Zahlen dürfte das sonst etwas länger dauern....
Zitat: Original von Garak
Kleine Frage noch zu Deinem Script: Macht es keine Schwierigkeiten, dass Du deine globals auch lokal definiert hast? klingt für mich nach Chaospotential - ist zumindest in Fortran ein beliebter Verwirraspekt für mich gewesen...
Ich dachte die müßten in jedem Fall über dem Script stehen. Schließlich ist in den meisten Scripts so eine Liste mit Variablen drüber. Warum genau die da stehen weiß ich sowieso nicht. *ahnungslosamkopfkratz*
Also entweder Globale definieren, oder lokal definieren.
Laß mich raten.
Globale, wenn ich sie auch außerhalb des Scriptes verwende, wie z.B. im Dialog.
Lokal definiert, wenn sie nur im Script vorkommt. Richtig?
Könnte man mit der While-Schleife nicht auch das Problem des Gefängnisaufenthalts in den Griff bekommen? Da ist es mit der Geschwindigkeit nicht so wichtig. Wenn einer nicht zahlt wird er halt bestraft.
While (knastdauer <= 7)
set knastdauer to (knastdauer + 1)
Player->GotoJail
endwhile
Wofür ist der Befehl stopscript ?
Edit: Oops... so ist der setbefehl wohl besser
Dieser Beitrag wurde von rendel am 23.04.2003, 11:34 Uhr editiert.
|
|
23.04.2003, 07:48 |
|
Garak
Admin
     

Dabei seit: Juli 2002
Geschlecht: 
Herkunft: Cardassia Prime
Beiträge: 9269
 |
|
Was die Whileschleife angeht: Du kannst ja mehrere schleifen hintereinander setzen: in der ersten werden die 10000er abgezogen, in der zweiten die 1000er.... dann reduziert sich die zahl der schleifendurchläufe gewaltig!
Globals brauchst du vor allem, wenn mehrere scripte auf mehreren objekten auf den wert zugreifen müssen. Falls Du scripte auf NPC's liegen hast, kannst du vom Dialog aus auch auf die locals in dem NPC-script zugreifen, dafür ist keine global nötig.
Prinzipiell definierst du Variablen vor einem script, damit der Computer Speicherplatz dafür reservieren kann. Zudem muss er über den Typ der Variable informiert werden, da er ja erfahren muss, dass er bei der zuweisung eines Float-wertes an eine short(integer)-Variable runden muss! Ausserdem bewaht Dich der Definierzwang vor fehlern durch kleine Tippfehler in Variablennamen...
Stopscript stoppt ein script - ganz einfach! das entsprechende script wird nicht mehr aufgerufen und (hoffentlich) aus dem Speicher entfernt.
Mit der Jailgeschichte hab ich keine erfahrung - sorry! Aber ich schätze der setbefehl wird meckern, so wie Du ihn da getippt hast...
__________________ drei mal dürft ihr raten, wer grade seine Signatur geschrottet hat...geht aber wieder - allerdings solltet Ihr noch die Finger von den Avataren lassen 
|
|
23.04.2003, 09:56 |
|
rendel
Mage
 

Dabei seit: Oktober 2002
Geschlecht: 
Herkunft:
Beiträge: 185
 |
|
Im Moment hängt das Script bei der ersten MessageBox
Ich muß glaub ich noch eine Änderung reinbringen damit die variable "erinnerung" nur alle 24 Stunden abgefragt wird.
Da werde im mich doch mal in Scripting für Dummies vertiefen müssen.
@Iladrion
Das mit den Türen versuche ich mal mit enable/disable
|
|
24.04.2003, 08:09 |
|
Garak
Admin
     

Dabei seit: Juli 2002
Geschlecht: 
Herkunft: Cardassia Prime
Beiträge: 9269
 |
|
Führ doch ne neue var ein (erinnerflag?) , die immer, wenn du erinnerung erhöhst, auf 1 gesetzt wird, die messagebox auslöst und nach dem auslösen wieder auf null gesetzt wird (an der stelle mit "set messageon to 1" dann ein "set erinnerflag to 0 einfügen)...
__________________ drei mal dürft ihr raten, wer grade seine Signatur geschrottet hat...geht aber wieder - allerdings solltet Ihr noch die Finger von den Avataren lassen 
|
|
24.04.2003, 08:17 |
|
iladrion
Craftsman
 

Dabei seit: September 2002
Geschlecht: keine Angabe
Herkunft:
Beiträge: 288
 |
|
Ich probiers nochmal, diesmal mit allem Schnickschnack, über den wir geredt haben. Ich hoffe es stimmt, so habs nur durchgeguckt. Das Script sollte so aber notfalls auch Kredite mit 3843 Raten a 571 Drakken zulassen, nur müsste man dann die Zinsen vorher reinrechnen
Ich hoffe es ist nicht zu kompliziert...:
Globale Vars deklarieren:
short rate
short erinnerung
short anzahlraten
short Ratenhoehe
Im Ratendialog unter Function/Variables folgendes prüfen, damit der Kredit nur einmal angeboten wird:
"Global" "Rate" "=" "0"
Im Dialog_Result das ganze so aufrufen:
set rate to 1
set anzahlraten to YYYYY
set Ratenhoehe to XXXXX
startscript Ratenzahlung
YYYYY = Die Anzahl die Du willst, falls Du da wechseln möchtest
XXXXX = Die höhe der Rate, damit kannst Du verschieden Choice-Dialoge machen mit unterschiedlichen Raten-Varianten
1. Globales Script, startet 2. bei Bedarf, beendet sich selbst wenn fertig
Begin Ratenzahlung
short currentday
short dayspassed
short messageon
short button
short erinnerung ;aktiviert das Zahlungsmenü
;aktiviert erst, wenn aus Menü raus
if (menumode == 1)
..return
endif
;startet Zeitzähler
if (rate == 1)
..set rate to 2
..set currentday to day
..set anzahlRaten to 0
..set Erinnerung to 0
..set dayspassed to 0
elseif (rate == 0)
..return ; so sparen wir Zeit falls kein Kredit läuft
endif
;jeder Tag wird addiert
if (currentday != day)
..set currentday to day
..set dayspassed to (dayspassed + 1)
elseif (MessageOn == 0)
return ; damit wird der Rest nur einmal am Tag ausgeführt, ausser es steht ne MSG auf dem Screen
endif
;Beginn des Zahlungszyklus
if (dayspassed == 30)
..set erinnerung to 1
..set dayspassed to 0
endif
;Startet Nachricht
if (erinnerung != 0)
..MessageBox "Rate fällig" "Zahlen" "Nicht zahlen"
..set messageOn to 1
endif
if (messageOn == 1)
..set button to GetButtonPressed
..if (button >= 0)
....set messageOn to 0
..if (button == 1)
....if (anzahlraten == 0)
......set MessageOn to 12
;diese MSG wird sonst nicht angezeigt, weil eine MSG mit abfrage aktiv ist.
....else
......startscript VariableRate
....endif
....elseif (button == 2)
....set erinnerung to (erinnerung + 1)
....endif
..endif
elseif (messageon == 12)
..MessageBox "Herzlichen Glückwunsch. Die Villa gehört jetzt Ihnen" "Ok"; mit OK damit mans nicht übersieht
..set rate to 0
..stopscript Ratenzahlung
endif
if (erinnerung == 7)
..set erinnerung to 0
..SetPCCrimeLevel 700 ;nur so nen Versuch
..GotoJail
endif
end
Zweites Globales Script, wird vom ersten gestartet und beendet sich ebenfalls selbst nach Ende der Aufgabe. Was das genau macht, versteht man wenn man in Mathe nen bissel aufgepasst hat ganz leicht.
begin VariableRate
short x
short RateUeber
short doOnce
if (menumode == 1)
..return
endif
set x to (player->GetitemCount gold_001)
if (doOnce != 1)
..set doOnce to 1
..set RateUeber to Ratenhoehe
..if (x > Ratenhoehe)
....Messagebox "Du hast gar nicht genug Geld, um Deine Rate zu bezahlen !"
....set erinnerung to erinnerung + 1
....stopscript VariableRate
..endif
endif
if (x >= 1000)
..if (RateUeber >= 1000)
....player->removeitem gold_001 1000
....set RateUeber to RateUeber - 1000
..elseif (RateUeber >= 100)
....player->removeitem gold_001 100
....set RateUeber to RateUeber - 100
..elseif (RateUeber >= 10)
....player->removeitem gold_001 10
....set RateUeber to RateUeber - 10
..elseif (RateUeber >= 1)
....player->removeitem gold_001 1
....set RateUeber to RateUeber - 1
..endif
elseif ( x >= 100)
..if (RateUeber >= 100)
....player->removeitem gold_001 100
....set RateUeber to RateUeber - 100
..elseif (RateUeber >= 10)
....player->removeitem gold_001 10
....set RateUeber to RateUeber - 10
..elseif (RateUeber >= 1)
....player->removeitem gold_001 1
....set RateUeber to RateUeber - 1
..endif
elseif ( x >= 10)
..if (RateUeber >= 10)
....player->removeitem gold_001 10
....set RateUeber to RateUeber - 10
..elseif (RateUeber >= 1)
....player->removeitem gold_001 1
....set RateUeber to RateUeber - 1
..endif
elseif ( x >= 1)
..if (RateUeber >= 1)
....player->removeitem gold_001 1
....set RateUeber to RateUeber - 1
..endif
endif
if (RateUeber == 0)
..set erinnerung to 0
..set anzahlRaten to AnzahlRaten - 1
..stopscript VariableRate
endif
end
viel erfolg damit,
keep on modding...
__________________ keep on modding...
Dieser Beitrag wurde von iladrion am 24.04.2003, 10:15 Uhr editiert.
|
|
24.04.2003, 10:03 |
|
rendel
Mage
 

Dabei seit: Oktober 2002
Geschlecht: 
Herkunft:
Beiträge: 185
 |
|
Danke, Iladrion, damit versuch ich es heute Abend.
Aber muß in folgende Funktion vom 2. Script nicht ein
(x < Ratenhoehe) rein?
..set RateUeber to Ratenhoehe
..if (x > Ratenhoehe)
....Messagebox "Du hast gar nicht genug Geld, um Deine Rate zu bezahlen !"
Und jetzt muß ich nur noch rausfinden, warum er mir bei meinem Barzahlungsdialog, in den ich
Player->Removeitem, gold_001, 240000
reingeschrieben habe, nur eine krumme Summe von 23579 oder so abzieht.
Im Ratendialog hat es mit der korrekten Summe von 24000 geklappt.
Rätsel über Rätsel... 
|
|
24.04.2003, 11:12 |
|
iladrion
Craftsman
 

Dabei seit: September 2002
Geschlecht: keine Angabe
Herkunft:
Beiträge: 288
 |
|
Zitat: Original von rendel
Danke, Iladrion, damit versuch ich es heute Abend.
Aber muß in folgende Funktion vom 2. Script nicht ein
(x < Ratenhoehe) rein?
Da hast Du absolut recht, gutes Auge...
__________________ keep on modding...
|
|
24.04.2003, 12:10 |
|
rendel
Mage
 

Dabei seit: Oktober 2002
Geschlecht: 
Herkunft:
Beiträge: 185
 |
|
Mit dem Script ist er auch wieder bei der 1. MSG hängengeblieben.
Ich hab alles noch mal umgestrickt und werde die 3. Variante heute mal testen. Jetzt hängt auch die MSG hinter der Currentday != day Abfrage, sollte also definitiv nur 1x pro Tag erscheinen.
Im Dialog folgende Variablen verwenden:
set rate to 1
set ratenhoehe to xxxxxx
startscript Ratenzahlung
Globale deklarieren:
rate ;Beginnt den Script
ratenhoehe ;Definiert die Höhe der Raten
Script
Begin Ratenzahlung
short currentday
short dayspassed
short messageon
short button
short erinnerung ;aktiviert das Zahlungsmenü
short anzahlraten ;zählt die gezahlten Raten
short knastdauer
;aktiviert erst, wenn aus Menü raus
if (menumode == 1)
..return
endif
;startet Zeitzähler
if (rate == 1)
..set rate to 2
..set currentday to day
..set dayspassed to 0
endif
;Beendet Script wenn alles gezahlt
if (anzahlraten == 12)
..MessageBox "Herzlichen Glückwunsch. Das Haus gehört jetzt Ihnen" "OK"
..set rate to 0
..stopscript Ratenzahluing
endif
;jeder Tag wird addiert
if (rate == 2)
..if (currentday != day)
....set currentday to day
....set dayspassed to (dayspassed + 1)
....if (dayspassed == 30);Beginn des Zahlungszyklus
......set erinnerung to 1
......set dayspassed to 0
....endif
....if (erinnerung != 0)
......MessageBox "Ihre Rate an die Firma Traumhaus wird fällig" "Zahlen" "Nicht zahlen"
......set messageOn to 1
....endif
....if (messageOn == 1)
......set button to GetButtonPressed
......if (button >= 0)
........set messageOn to 0
........if (button == 1)
***While Schleife oder Iladrions VariableRate Script oder Mix aus beidem ***
..........set erinnerung to 0
..........set anzahlraten to (anzahlraten +1)
........elseif (button == 2)
..........set erinnerung to (erinnerung + 1)
........endif
........if (erinnerung == 7)
..........set erinnerung to 0
..........while (knastdauer <= 7) ****oder was mit Kopfgeld****
............set knastdauer to (knastdauer + 1)
............Player->GotoJail
..........endwhile
..........set anzahlraten to (anzahlraten +1)
........endif
......endif
....endif
..endif
endif
end Ratenzahlung
****While Schleife *****
while (ratenhoehe >=10000)
..set ratenhoehe to (ratenhoehe - 10000)
..player -> removeitem, gold_001, 10000
endwhile
while (ratenhoehe >=1000)
..set ratenhoehe to (ratenhoehe - 1000)
..player -> removeitem, gold_001, 1000
endwhile
while (ratenhoehe >=100)
..set ratenhoehe to (ratenhoehe - 100)
..player -> removeitem, gold_001, 100
endwhile
while (ratenhoehe >=10)
..set ratenhoehe to (ratenhoehe - 10)
..player -> removeitem, gold_001, 10
endwhile
while (ratenhoehe >=1)
..set ratenhoehe to (ratenhoehe - 1)
..player -> removeitem, gold_001, 1
endwhile
|
|
25.04.2003, 08:54 |
|
iladrion
Craftsman
 

Dabei seit: September 2002
Geschlecht: keine Angabe
Herkunft:
Beiträge: 288
 |
|
Zitat: Original von rendel
Mit dem Script ist er auch wieder bei der 1. MSG hängengeblieben.
;jeder Tag wird addiert
if (rate == 2)
..if (currentday != day)
....set currentday to day
; hier ist das Problem, der ganze Bereich darunter wird nur ein einziges mal eusgeführt, dadurch klappt die Button abfrage unten nicht
....set dayspassed to (dayspassed + 1)
....if (dayspassed == 30);Beginn des Zahlungszyklus
......set erinnerung to 1
......set dayspassed to 0
....endif
...
Hier das verbesserte Script:
Begin Ratenzahlung
short currentday
short dayspassed
short messageon
short button
short erinnerung ;aktiviert das Zahlungsmenü
short anzahlraten ;zählt die gezahlten Raten
short knastdauer
;aktiviert erst, wenn aus Menü raus
if (menumode == 1)
..return
endif
;startet Zeitzähler
if (rate == 1)
..set rate to 2
..set currentday to day
..set dayspassed to 0
endif
;Beendet Script wenn alles gezahlt
if (anzahlraten == 12)
..MessageBox "Herzlichen Glückwunsch. Das Haus gehört jetzt Ihnen" "OK"
..set rate to 0
..stopscript Ratenzahluing
endif
;jeder Tag wird addiert
if (rate == 2)
..if (currentday != day)
....set currentday to day
....set dayspassed to (dayspassed + 1)
..endif
..if (dayspassed == 30);Beginn des Zahlungszyklus
....set erinnerung to 1
....set dayspassed to 0
..endif
..if (erinnerung != 0)
....if (messageon == 0) ; diese Zeile hat auch gefehlt
......MessageBox "Ihre Rate an die Firma Traumhaus wird fällig" "Zahlen" "Nicht zahlen"
......set messageOn to 1
....endif
..endif
..if (messageOn == 1)
....set button to GetButtonPressed
....if (button >= 0)
......set messageOn to 0
......if (button == 1)
***While Schleife oder Iladrions VariableRate Script oder Mix aus beidem ***
........set erinnerung to 0
........set anzahlraten to (anzahlraten +1)
......elseif (button == 2)
........set erinnerung to (erinnerung + 1)
......endif
....endif
..endif
..if (erinnerung == 7)
....set erinnerung to 0
....while (knastdauer <= 7) ****oder was mit Kopfgeld****
........set knastdauer to (knastdauer + 1)
........Player->GotoJail
......endwhile
......set anzahlraten to (anzahlraten +1)
....endif
..endif
endif
end Ratenzahlung
Ích hoffe so geht's
viel erfolg
__________________ keep on modding...
|
|
27.04.2003, 19:12 |
|
jUBAKKAJONEs
Bard
  
Dabei seit: Januar 2003
Geschlecht: 
Herkunft: 59439
Beiträge: 26
 |
|
könnte man das mit dem gefängins aufenthalt nicht so lösen das man in einen raum mit verschlossener tür und einem bett teleportiert wird und nach 7 tagen die tür aufgeht also aufgeschlossen wird?
__________________ persönliche Signatur Wird unter ihren Beiträgen angezeigt
|
|
01.05.2003, 21:55 |
|
rendel
Mage
 

Dabei seit: Oktober 2002
Geschlecht: 
Herkunft:
Beiträge: 185
 |
|
Noch zwei Scripte die nicht so wollen |  |
Ich glaube, das würde einige Spieler ziemlich verstören, da sie ja selbst duch das Warten-Menü die 7x24 Stunden vergehen lassen müßten. Und da kommt bestimmt nicht jeder drauf.
Aber mal was ganz anderes.
Das Ratenzahlungsscript habe ich erst mal ans Ende der Mod-Fertigung gesetzt. Die Inneneinrichtung meines Mods steht zu 90%. Nur mit den Scripten hapert es noch. Vielleicht könnt Ihr mir helfen.
Folgender Script soll die Globale Variable Taenzer nach Betätigung eines Schalters auf 1 stellen und nach 120 Sekunden wieder auf 0. Wenn der Schalter ein zweites Mal betätigt wird soll nur eine MSG kommen, sonst nichts (das funktioniert).
Aber....Wenn ich den Schalter drücke werden nur die GVar Taenzer und TimerStart auf 1 gesetzt. Der Timer zählt nicht hoch. Setzte ich per Konsole den Timer auf 121, setzt das Script alle Variablen wie gewollt auf 0.
Warum funktionert der Timer nicht? Ich hab schon alles versucht, mit und ohne Klammern bei GetSecondsPassed und verschiedene Reihenfolgen der if-Bedingungen. Das Ergebnis ist immer das selbe. Ich weiß echt nicht mehr weiter. Der Timer ist übrigens so aus einem funktionierenden Script aus Tribunal (mehryn script).
begin VillaSchalterTaenzer
short timer
short TimerStart
short DoOnce
if ( menumode == 1 )
return
endif
if ( TimerStart == 1 )
set timer to ( timer + GetSecondsPassed )
if ( timer > 120 )
set TimerStart to 0
set Taenzer to 0
set timer to 0
endif
endif
if ( OnActivate == 1 )
if ( Taenzer == 1 )
if ( DoOnce == 0 )
MessageBox "Die Show läuft schon"
set DoOnce to 1
endif
endif
if ( Taenzer == 0 )
set Taenzer to 1
set TimerStart to 1
PlaySound "Item Gold Down"
Player -> RemoveItem, gold_001, 100
endif
endif
end
Und noch eine Frage:
Dieser Script soll den Charakter heilen, wenn er auf eine bestimmte Bodenplatte tritt. Wenn ich statt ModCurrent... HurtStandingActor nehme funktioniert es, allerdings erscheint dann pro Sekunde ein unschöner roter Schimmer ums Bild, wie wenn man verletzt wird. Warum funktioniert ModCurrent... nicht?
begin VillaHeilung
if ( menumode == 1 )
return
endif
if ( GetStandingPC == 1 )
;HurtStandingActor, -2.0
ModCurrentHealth, 1.0
ModCurrentMagicka, 1.0
endif
end
|
|
01.05.2003, 22:06 |
|
iladrion
Craftsman
 

Dabei seit: September 2002
Geschlecht: keine Angabe
Herkunft:
Beiträge: 288
 |
|
Zitat: Original von jUBAKKAJONEs
könnte man das mit dem gefängins aufenthalt nicht so lösen das man in einen raum mit verschlossener tür und einem bett teleportiert wird und nach 7 tagen die tür aufgeht also aufgeschlossen wird?
prinzipiell Ja, aber in vergeht die Zeit zwar schon 30mal schneller als normal, nur kann ich mir nicht vorstellen, das jemand, weil er die Rate nicht bezahlt hat 5 Stunden und 40 Minuten (So lange dauern 7 Tage in MW) im Spiel die Mauer angucken möchte. Allerdings wäre das wirklich mal HardCore-Rollenspiel. Ab und an kommt ne Wache vorbei und stellt nen stinkenden Teller Essen vors Gitter.
Aber vielleicht wäre deine Idee umsetzbar falls man per Script Zugriff auf die TimeScale-Variable bekäme. Aber ich wüsste nicht wie. *grübel* vielleicht könnte man stattdessen ab und an per "set gamehour to gamehour + 1" nachhelfen (Damit kann man die Zeit inklusive Sonnenstand verstellen)???
__________________ keep on modding...
|
|
01.05.2003, 22:41 |
|
Garak
Admin
     

Dabei seit: Juli 2002
Geschlecht: 
Herkunft: Cardassia Prime
Beiträge: 9269
 |
|
Rendel, Dein Timer funktioniert nicht, weil du ihn als Shortvariable definiert hast. GetSecondsPassed liefert normalerweise Werte unter 0,5, d.H. bei der zuweisung zu einer Short-Variable wird auf 0 abgerundet - änder die Definition des timers von short auf float und die sache läuft!
Warum modcurrenthealth nicht funktioniert ist mir unklar, schon weil modcurrentmagicka auch bei mir gut funktioniert - vieleicht etwas ähnliches wie bei getHealthGetRatio? das steht als GetHealthRatio im Helpfile und funktioniert erst mit dem "Bonus-get"... Wie wär es alternativ damit dem Player solange er auf der Platte steht einen als ability definierten Spell auferlegt, der Health und Magicka regeneriert? Adspell und Removespell sind normalerweise wenig zickig...
__________________ drei mal dürft ihr raten, wer grade seine Signatur geschrottet hat...geht aber wieder - allerdings solltet Ihr noch die Finger von den Avataren lassen 
|
|
02.05.2003, 07:06 |
|
|