You are not logged in.

Dear visitor, welcome to AnnoZone Forum. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

HeyHey91

Ausguck

  • "HeyHey91" started this thread

Posts: 62

Date of registration: Aug 21st 2013

  • Send private message

1

Sunday, January 19th 2014, 7:26pm

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:

Source code

1
OBJECT_STADT "ABC" 9

Source code

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

Posts: 4,619

Date of registration: May 1st 2004

  • Send private message

2

Sunday, January 19th 2014, 8:05pm

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

Posts: 2,698

Date of registration: Nov 3rd 2004

  • Send private message

3

Monday, January 20th 2014, 7:36am

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" started this thread

Posts: 62

Date of registration: Aug 21st 2013

  • Send private message

4

Friday, January 31st 2014, 10:26pm

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

Source code

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:

Source code

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 has attached the following file:
  • Script.txt (691 Byte - 165 times downloaded - latest: Today, 3:29am)

Posts: 4,619

Date of registration: May 1st 2004

  • Send private message

5

Friday, January 31st 2014, 10:33pm

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" started this thread

Posts: 62

Date of registration: Aug 21st 2013

  • Send private message

6

Friday, January 31st 2014, 11:07pm

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.

Posts: 4,619

Date of registration: May 1st 2004

  • Send private message

7

Friday, January 31st 2014, 11:12pm

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" started this thread

Posts: 62

Date of registration: Aug 21st 2013

  • Send private message

8

Friday, January 31st 2014, 11:22pm

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

Posts: 4,619

Date of registration: May 1st 2004

  • Send private message

9

Saturday, February 1st 2014, 12:05am

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!