Autor |
|
Worf
Healer
Dabei seit: Januar 2003
Geschlecht:
Herkunft: Odai Plateau
Beiträge: 68
|
|
Hi, ich bins wieder
mein plugin ist bald fertig (habe jetzt sogar ein model)
nun zu meiner frage:
ich arbeite im Script mit PlaceAtPC, da man ein Activator ja nicht ins Inventar aufnehmen kann.
bei PlaceAtPC kann man, wenn ich mich recht erinnere,
die anzahl des objekts, die entfernung und richtung einstellen, oder ?
Nun habe ich aber das problem, dass mein item fast gänzlich unter der erde ist!
deswegen wollte ich fragen, ob man auch irgendwie die "höhe" (z-Achse) bestimmen kann ?
__________________ IT'S A GOOD DAY TO DIE
|
|
09.05.2004, 12:27 |
|
Garak
Admin
Dabei seit: Juli 2002
Geschlecht:
Herkunft: Cardassia Prime
Beiträge: 9256
|
|
welche version benutzt Du? ab tribunal nimmt der setpos-Befehl variablen an, für mw 1.2 musst Du wohl oder übel mit move oder moveworld arbeiten.
__________________ 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
|
|
09.05.2004, 12:40 |
|
Worf
Healer
Dabei seit: Januar 2003
Geschlecht:
Herkunft: Odai Plateau
Beiträge: 68
|
|
habe trib und bloodmoon
wie soll ich die denn eingeben ?
normalerweise geht das ja so:
PlaceAtPC, "Object_ID", 1(anzahl), 0(distance), 0(direction)
__________________ IT'S A GOOD DAY TO DIE
Dieser Beitrag wurde von Worf am 09.05.2004, 13:00 Uhr editiert.
|
|
09.05.2004, 12:58 |
|
GreyWanderer
Crusader
Dabei seit: Januar 2004
Geschlecht:
Herkunft: Cuiviénen
Beiträge: 465
|
|
Also die Funktionen
Position x y z Rot (exteriors) [float]
PositionCell x y z Rot "Cell" (interiors&exteriors) [float]
SetAngle (x, y oder z) [short]
SetPos (x, y oder z) [float]
erlauben ab Tribunal Variablen. Was wohl irgendwie nicht heißt, dass man da irgendwie die derzeitige Zelle des PCs benutzen kann. Also muss man ausweichen....
PlaceAtPC und dann SetPos für die X Y und Z Position und SetAngle für die Rotation.
__________________
Abenteuer Mittel Erde
Please visit us!
Dieser Beitrag wurde von GreyWanderer am 09.05.2004, 18:41 Uhr editiert.
|
|
09.05.2004, 18:35 |
|
Worf
Healer
Dabei seit: Januar 2003
Geschlecht:
Herkunft: Odai Plateau
Beiträge: 68
|
|
also:
PlaceAtPC, "Object_ID", 1, 0, 0
setPos, z, 120
muss man nicht für setPos noch eine Object ID angeben, oder funktioniert das so ?
__________________ IT'S A GOOD DAY TO DIE
|
|
09.05.2004, 19:58 |
|
Garak
Admin
Dabei seit: Juli 2002
Geschlecht:
Herkunft: Cardassia Prime
Beiträge: 9256
|
|
setpos z 120 bringt den gegenstand grundsätzlich in die nähe des meeresspiegels - ausserdem kannst du mit placeatpc gesetzte objekte nicht mehr eindeutig von aussen adressieren, sobald der 2. davon gesetzt ist.
das positionsscript sollte also auf dem gegenstand liegen, mit nem doonce - mechanismus auf einmaliges ausführen beschränkt werden, die aktuelle z-position auslesen, die 120 dazuaddieren und die neue zposition setzen.
__________________ 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
|
|
09.05.2004, 23:55 |
|
Worf
Healer
Dabei seit: Januar 2003
Geschlecht:
Herkunft: Odai Plateau
Beiträge: 68
|
|
das problem ist ja, dass ich die höhe relativ zur player position haben will.
Ich habe ein misc item im invi, auf dem ein script liegt, der es verschwinden lässt, wenn der pc es ablegen will und dafür einen activator (muss ein activator sein) mit placeAtPc in die welt setzt.
das funzt ja auch alles prima, nur ist da eben das problem, dass der gegenstand meist unter der erdoberfläche ist! da man den gegenstand ja überall hinpacken kann und wieder mitnehmen kann (disable, playeradditem ...), kann ich keine feste position setzen, sondern muss das immer relativ zur player position sehen.
ich hoffe ich habe mich verständlich ausgedrückt, kann solche probleme immer so schlecht formulieren
__________________ IT'S A GOOD DAY TO DIE
|
|
10.05.2004, 14:57 |
|
Garak
Admin
Dabei seit: Juli 2002
Geschlecht:
Herkunft: Cardassia Prime
Beiträge: 9256
|
|
Zitat: Original von Garak
die aktuelle z-position auslesen, die 120 dazuaddieren und die neue zposition setzen.
wie ich schon sagte... für das"relativ zum player sorgt ja schon das placeatpc
__________________ 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
|
|
10.05.2004, 19:02 |
|
Worf
Healer
Dabei seit: Januar 2003
Geschlecht:
Herkunft: Odai Plateau
Beiträge: 68
|
|
ich bin jetzt momentan irgendwie schwer von begriff:
wie soll ich jetzt auf dem gegenstand das script legen ?
soll ich jetzt irgendwie das script den z-wert auslesen lassen und die gewünschte zahl hinzuaddieren ?
wie ???
__________________ IT'S A GOOD DAY TO DIE
|
|
10.05.2004, 21:38 |
|
GreyWanderer
Crusader
Dabei seit: Januar 2004
Geschlecht:
Herkunft: Cuiviénen
Beiträge: 465
|
|
Also wie wär's hiermit: In dem Script von dem misc eine (global-)Var auf 1 setzen wenn er den Befehl PlaceAtPC verwendet. Beim Script von dem Activator dann
short ZPosition
set ZPosition to ( ( player->GetPos, z ) + 15 ) ;anstatt 15 vielleicht was Anderes?
if ( Var == 1 )
.....SetPos, z ZPosition
.....set Var to 0
endif
Also die Z Position vom player + 15 units ist die neue Höhe vom Activ. kannst du aber noch ändern, sodass es passt...
__________________
Abenteuer Mittel Erde
Please visit us!
|
|
10.05.2004, 21:44 |
|
Worf
Healer
Dabei seit: Januar 2003
Geschlecht:
Herkunft: Odai Plateau
Beiträge: 68
|
|
Alt:Ja, so funktionierts. Danke !
Bis jetzt wusste ich noch gar nichts von global variablen,
sind ja ne tolle sache. und durch ( player->GetPos, z )
wird die z-position vom player ausgelesen, oder ? (Wieder was gelernt) Vielen Dank !
Schön wärs! einmal funktioniert es, doch sobald der script einmal ausgeführt wurde, klappt es nicht wieder.
ich stelle hier einfach noch mal beide scripte rein, ich wüsste nicht wo der fehler liegt.( Var hab ich als global eingestellt )
misc_item script
begin laptop_script_invi_redo
short OnPCDrop
if ( OnPCDrop == 1 )
Disable
PlaceAtPC, "laptop_redoran", 1, 0, 0
set Var to 1
Set OnPCDrop to 0
endif
end laptop_script_invi_redo
activator_item script
begin laptop_script_redo
short ZPosition
set ZPosition to ( ( player->GetPos, z ) + 40 )
if ( Var == 1 )
SetPos, z ZPosition
set Var to 0
endif
end laptop_script_redo
__________________ IT'S A GOOD DAY TO DIE
Dieser Beitrag wurde von Worf am 10.05.2004, 22:50 Uhr editiert.
|
|
10.05.2004, 22:04 |
|
|