Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: AnnoZone Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

HeyHey91

Ausguck

  • »HeyHey91« ist der Autor dieses Themas

Beiträge: 62

Registrierungsdatum: 21. August 2013

  • Nachricht senden

1

Sonntag, 16. Februar 2014, 15:49

Player Sold und Bought, Tributabfrage, ich komme nicht drauf, was falsch läuft?

Hallo Anno Experten,

ich bastle zur Zeit wieder an einem kleinen Szenario.
Dieses mal wollte ich eine IF-Abfrage für Tribute bei Piraten und Player Sold, Bought bei Venezianer, Völker und Piraten verwenden.

Die Abfrage für den Tribut bei den Piraten ist aber von Spielbeginn an immer positiv, auch, wenn ich noch nichts gezahlt habe.
Das Bezahlen des Tributs ändert dann auch nichts mehr.

Die Abfrage auf Waren gekauft und verkauft funktioniert irgendwie überhaupt nicht. Das Script läuft zwar, erkennt, aber nichts.

Ich verstehe einfach nicht, was ich falsch mache, laut Scriptbuch und Manual müsste es richtig sein.
Ich habe auch mal das Szenario File angehängt.


Viele Grüße

HeyHey

Das Script:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
INITBLOCK()
{
TIMER_SET(1, 0);
TIMER_START(1);
}
SET MAURSOLD = FALSE;
SET PIRBUY = FALSE;
SET VNBUY = FALSE;
SET TRIBU = FALSE;
SET BEGIN = FALSE;

IF ( (BEGIN == FALSE) && (TIMER_1 == 4) ) THEN
{
SETTRIBUTE( "PIRATEN01",  "HUMAN01", 10000 , "CLEAR", 0, "CLEAR", 0);
BEGIN = TRUE;
}
IF ( (PIRBUY == FALSE) && (PLAYER "HUMAN01" BOUGHT "PIRATEN01@ALKOHOL" > 5 ) ) THEN 
{
MINIMAP_ALERT(250,250);
PIRBUY = TRUE;
}
IF ( (VNBUY == FALSE) && (PLAYER "HUMAN01" BOUGHT "HAENDLER1@WERKZEUG" > 5 ) ) THEN 
{
MONEY_SET("HUMAN01", 200000);
VNBUY = TRUE;
}
IF ( (TRIBU == FALSE) && (PLAYER "HUMAN01" PAID_TRIBUTE_TO "PIRATEN01" ) ) THEN
{
MONEY_SET("HUMAN01", 300000);
TRIBU = TRUE;
}
IF ( (MAURSOLD == FALSE) && (PLAYER "MAUREN01" SOLD "HUMAN01@EDELSTEINE" > 2 ) ) THEN
{
MONEY_SET("HUMAN01", 400000);
MAURSOLD = TRUE;
}
IF (TIMER_1 == 60) THEN
{
MONEY_SET("HUMAN01", 100000);
TIMER_SET(1, 0);
}



Die Player Definition:

Quellcode

1
2
3
4
5
"HUMAN01" 0
"PIRATEN01" 1
"HAENDLER1" 2
"MAUREN01" 3
"DUMMYPLAYER" 31
»HeyHey91« hat folgende Datei angehängt:
  • Szenario.zip (48,26 kB - 146 mal heruntergeladen - zuletzt: 12. Februar 2024, 00:36)

HeyHey91

Ausguck

  • »HeyHey91« ist der Autor dieses Themas

Beiträge: 62

Registrierungsdatum: 21. August 2013

  • Nachricht senden

2

Sonntag, 16. Februar 2014, 19:27

das mit den Tributen scheint wohl doch nachträglich noch zu funktionieren, jedoch wird beim Start trotz allem zuerst einmal die Zeilen aufgerufen und ausgeführt:

Quellcode

1
2
3
4
5
IF ( (TRIBU == FALSE) && (PLAYER "HUMAN01" PAID_TRIBUTE_TO "PIRATEN01" ) ) THEN
{
MONEY_SET("HUMAN01", 300000);
TRIBU = TRUE;
}


Die Variable TRIBU wird beim Spielstart aber scheinbar nicht auf TRUE gesetzt, lediglich das Geld
steigt auf 300 000 Taler, sofort, und nicht erst nach 4 Sekunden, (wie es der Timer eigentlich vorgibt),
nachdem das Spiel begonnen wurde.

Die BOUGHT und SOLD Abfragen funktionieren aber so wies aussieht garnicht :( und werden irgendwie so übergangen, der letzte Befehl Timer zurücksetzen und Geld auf 100 000 Taler funktioniert weiterhin

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »HeyHey91« (17. Februar 2014, 02:57)


HeyHey91

Ausguck

  • »HeyHey91« ist der Autor dieses Themas

Beiträge: 62

Registrierungsdatum: 21. August 2013

  • Nachricht senden

3

Montag, 17. Februar 2014, 02:57

SOLD und BOUGHT für mich ok, aber die Sache mit dem Tribut ist nach wie vor seltsam

EDIT: Problem mit SOLD und BOUGHT ist für mich zufriedenstellend, ich hab nicht daran gedacht, SETWARELOG zu verwenden, auch, wenns bei mir nur mit SOLD funktioniert, aber damit kann ich leben.

Ich begreife aber einfach nicht, wieso das Script trotz allem immer in die IF Abfrage mit dem Tribut reingeht, die Variable nicht setzt und das Geld in Sekunde 0+ auf 300 000 geht.
Eingestellt als Startgeld waren immer 20 000.

HeyHey91

Ausguck

  • »HeyHey91« ist der Autor dieses Themas

Beiträge: 62

Registrierungsdatum: 21. August 2013

  • Nachricht senden

4

Dienstag, 18. Februar 2014, 20:35

Problem gelöst

Ich hab die Logik nicht bedacht
Kann geschlossen werden