Sie sind nicht angemeldet.

HeyHey91

Ausguck

  • »HeyHey91« ist der Autor dieses Themas

Beiträge: 62

Registrierungsdatum: 21. August 2013

  • Nachricht senden

1

Sonntag, 19. Januar 2014, 19:26

ASSIGN_OBJECT Befehl wird nicht ausgeführt?

Hallo,

ich möchte einem CG eine Stadt auf einer Insel übergeben, eigentlich sollte ja der Befehl ASSIGN_OBJECT dafür nutzbar sein.

Irgendwie scheints aber nicht zu funktionieren, die Stadt ist in den Objecten definiert, mit den Namen hab ich auch schon rumgespielt.
Die Insel mit der Nummer 10 besitzt auch nur diese eine Stadt.
Das Testscript sieht im Augenblick so aus:

Quellcode

1
OBJECT_STADT "ABC" 9

Quellcode

1
2
3
4
5
6
7
8
9
INITBLOCK()
{
SETCONSTRUCTION_DRAWSTATE(  "HUMAN", "823", FALSE );
}
IF (AREA"ASDF"TOUCHED_BY_SOLDIER_FROM"HUMAN" ) THEN
{
ASSIGN_OBJECT("ABC","CG01");
MINIMAP_ALERT(250,250);
}


Die Stadt wird am Anfang von einem Venezianer geführt und soll CG01 übergeben werden, habs auch schon ausprobiert, wenn ich als Eigentümer drinne stehe. Wenn ich die Stadt selber "ABC" nenne, ändert das auch nichts :(

Ich verstehs nicht, was daran nicht so ganz funktioniert. Der Minimap Alarm wird mir angezeigt auf der Karte.

Könnt ihr mir helfen?

Viele Grüße HeyHey

2

Sonntag, 19. Januar 2014, 20:05

Einträge aus "Playermapper Define" mit denjenigen aus dem Skript abgleichen. Es muss exakt passen. Wenn es das nicht gewesen ist, dann kann es sein, dass die Venezianerstadt intern als Stadt Nr2 geführt wird.

---> OBJECT_STADT "ABC" 265



Ebenso kann auch ein nachträglicher Inseltausch für Probleme mit der ID sorgen.





Ansonsten kannst du es auch mit Variablen versuchen.



INITBLOCK()
{
SETCONSTRUCTION_DRAWSTATE( "HUMAN", "823", FALSE );
}
$ -------------------------------------------------------
$ VARIABLEN INITIALISIEREN... KEKSE ESSEN...
$ -------------------------------------------------------
SET SCHENK = FALSE;
$ -------------------------------------------------------
$ Rest vom Skript
$ -------------------------------------------------------

IF SCHENK == FALSE && (AREA"ASDF"TOUCHED_BY_SOLDIER_FROM"HUMAN" ) THEN
{
SCHENK = TRUE;
ASSIGN_OBJECT("ABC","CG01");
MINIMAP_ALERT(250,250);
}




unten bei SIGNALS noch


SCHUETTIINITSIG = TRUE
SCHENK = FALSE
  Höflichkeit ist die höchste Form der Verachtung!

Admiral Drake

Schatzjäger

Beiträge: 2 696

Registrierungsdatum: 3. November 2004

  • Nachricht senden

3

Montag, 20. Januar 2014, 07:36

Die Variable solltest du auf jeden Fall verwenden, sonst kommt der Alarm jedesmal, wenn einer da vorbeiläuft ...
Hänge ansonsten mal das ganze Skript dran ...
  Nur wer nichts tut, macht auch keine Fehler. Nicht meckern, sondern anpacken !

HeyHey91

Ausguck

  • »HeyHey91« ist der Autor dieses Themas

Beiträge: 62

Registrierungsdatum: 21. August 2013

  • Nachricht senden

4

Freitag, 31. Januar 2014, 22:26

Ich habs nochmal ausprobiert, ich hab mir schnell eine Insel mit 6 Städte darauf gebaut. Das Ziel ist eigentlich jeweils eine Stadt von dem Venezianer einem CG zu übergeben.

Von Venezianern auf CG tut sich irgendwie garnix.
Von CG auf CG tut sich was, aber nur in Form davon, dass die jeweiligen Kontore verschwinden.

Wisst ihr villeicht noch weiter?

Grüße HeyHey

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
INITBLOCK()
{
FREEZE_CITY( "VE1" );
FREEZE_CITY( "VE2" );
FREEZE_CITY( "VE3" );
FREEZE_CITY( "VE4" );
FREEZE_CITY( "VE5" );
FREEZE_CITY( "VE6" );
TIMER_SET(1, 0);
TIMER_SET(2, 0);
TIMER_SET(3, 0);
TIMER_START(1);
TIMER_START(2);
}
IF (TIMER_1 == 20) THEN
{
MINIMAP_ALERT(250,250);
ASSIGN_OBJECT("VE1","CG02");
ASSIGN_OBJECT("VE2","CG03");
ASSIGN_OBJECT("VE3","CG04");
ASSIGN_OBJECT("VE4","CG05");
MINIMAP_ALERT(850,850);
}



Player Define:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
"HUMAN" 0
"CG01" 1
"CG02" 2
"CG03" 3
"CG04" 4
"CG05" 5
"CG06" 6
"VENECIA1" 7
"VENECIA2" 8
"VENECIA3" 9
"VENECIA4" 10
"VENECIA5" 11


Das ganze Script mit den ObjectDefines und etc ist im Dateianhang.
»HeyHey91« hat folgende Datei angehängt:
  • Script.txt (691 Byte - 163 mal heruntergeladen - zuletzt: 5. März 2024, 10:44)

5

Freitag, 31. Januar 2014, 22:33

Insofern du eine echte venezianische Insel einem CG übergibst, dann bekommst du nach gewisser Zeit einen Absturz, da die Upgradegebäude für Kapellen oder Einwohner fehlen. Desgleichen kann passieren, wenn der CG MHH upgradet, da andere Einzugsbereiche verwendet werden.


Dass Städte nach dem übertragen "verschwinden" kann vielleicht daran liegen, dass du diesen CG noch nicht entdeckt hast.

Das Skript sehe ich mir mal an.



Edit:


Ich würde den Timer über eine Variable stoppen.


INITBLOCK()
{
FREEZE_CITY( "VE1" );
FREEZE_CITY( "VE2" );
FREEZE_CITY( "VE3" );
FREEZE_CITY( "VE4" );
FREEZE_CITY( "VE5" );
FREEZE_CITY( "VE6" );
TIMER_SET(1, 0);
TIMER_SET(2, 0);
TIMER_SET(3, 0);
TIMER_START(1);
TIMER_START(2);
}
$ Variable reinstopf
SET FLAG = FALSE;
IF FLAG == FALSE && TIMER_1 > 19 THEN
{
FLAG = TRUE;
MINIMAP_ALERT(250,250);
ASSIGN_OBJECT("VE1","CG02");
ASSIGN_OBJECT("VE2","CG03");
ASSIGN_OBJECT("VE3","CG04");
ASSIGN_OBJECT("VE4","CG05");
MINIMAP_ALERT(850,850);
TIMER_STOP(1);
}

[Signals]

SCHUETTIINITSIG = TRUE
FLAG = FALSE
  Höflichkeit ist die höchste Form der Verachtung!

HeyHey91

Ausguck

  • »HeyHey91« ist der Autor dieses Themas

Beiträge: 62

Registrierungsdatum: 21. August 2013

  • Nachricht senden

6

Freitag, 31. Januar 2014, 23:07

Auf der Testinsel waren nur 6 normale Kontore, also einer pro Stadt und ein paar Winzer, sowie Gewürzplantagen und 4 Marktplätze.


Das mit dem entdeckt haben dachte ich zuerst auch, aber die, die übergeben werden sind danach wirklich irgendwie weg mitsamt den anderen Gebäuden.

7

Freitag, 31. Januar 2014, 23:12

Ich habe oben nochmals editiert guck dir das mit dem Timer bitte nochmals an.


schick das Szen zur Not an meine Annozone Mailadresse
  Höflichkeit ist die höchste Form der Verachtung!

HeyHey91

Ausguck

  • »HeyHey91« ist der Autor dieses Themas

Beiträge: 62

Registrierungsdatum: 21. August 2013

  • Nachricht senden

8

Freitag, 31. Januar 2014, 23:22

Es funktioniert, vielen Dank dir.

Eine kleine Frage habe ich doch noch und zwar weger dem Befehl UPGRADE_ENABLE.
Ich hab schon jede Syntax ausprobiert, aber irgendwie läuft der Befehl nicht.
Kennst du die Syntax?

Viele Grüße Stefan alias HeyHey

9

Samstag, 1. Februar 2014, 00:05

Dieser Befehl steht im Skriptbuch bei den unbekannten Dingen mit drin. Ich vermute du glaubst dass das der Gegenpart zum FREEZE_CITY ist?

Ehrlich gesagt ich kenne den auch nicht.

*grübel*

Ich vermute, dass FREEZE_CITY nichts weiter macht als das Häkchen bei der Aufstiegssperre zu setzen.


*doppelgrübel*






INITBLOCK()
{
FREEZE_CITY( "VE1" );
FREEZE_CITY( "VE2" );
FREEZE_CITY( "VE3" );
FREEZE_CITY( "VE4" );
FREEZE_CITY( "VE5" );
FREEZE_CITY( "VE6" );
TIMER_SET(1, 0);
TIMER_SET(2, 0);
TIMER_SET(3, 0);
TIMER_START(1);
TIMER_START(2);
}
$ Variable reinstopf
SET FLAG = FALSE;
SET ENABLE = FALSE;
IF FLAG == FALSE && TIMER_1 > 19 THEN
{
FLAG = TRUE;
MINIMAP_ALERT(250,250);
ASSIGN_OBJECT("VE1","CG02");
ASSIGN_OBJECT("VE2","CG03");
ASSIGN_OBJECT("VE3","CG04");
ASSIGN_OBJECT("VE4","CG05");
MINIMAP_ALERT(850,850);
TIMER_STOP(1);
}
IF FLAG == TRUE && OBJECT "VE1" OWNER == "CG02" && ENABLE == FALSE THEN
{
ENABLE = TRUE;
UPGRADE_ENABLE( "VE1" );
UPGRADE_ENABLE( "VE2" );
UPGRADE_ENABLE( "VE3" );
UPGRADE_ENABLE( "VE4" );
}

[Signals]

SCHUETTIINITSIG = TRUE
FLAG = FALSE
ENABLE = FALSE


ggf noch ohne die Leerzeichen z.B so UPGRADE_ENABLE("VE4");
  Höflichkeit ist die höchste Form der Verachtung!