Oi!mel
Hallo zusammen,
Ich versuche seit einiger Zeit auf meiner Map trigger use_touch zu nutzen um Punkte zu vergeben. Allerdings funktioniert es so, wie ich es aktuell aufgebaut habe, nicht.
Also ich habe einen trigger use_touch mit dem targetname
trig.
Dieses Script soll die Punkte vergeben:
Code angehängt. Klicke hier zum Ein-/Ausblenden
| code: |
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:
|
jumperscores()
{
entSCOREUPDATER = getentarray("trig","targetname");
if(isdefined(entSCOREUPDATER))
{
for(lp=0;lp<entSCOREUPDATER.size;lp++)
entSCOREUPDATER[lp] thread SCOREUPDATER();
}
}
SCOREUPDATER()
{
mapsmpgametypes_rank::registerScoreInfo( strafejump", 5 );
while(true)
{
self waittill("trigger",player);
entTarget = getent(self.target, "targetname");
player thread [[level.onXPEvent]]( "strafejump" );
mapsmpgametypes_globallogic::givePlayerScore( "strafejump", player );
level notify( "update_allhud_score" );
}
} |
|
Ich glaube es ist schon ein Wunder dass ich das ganze ohne Fehlermeldung starten kann. xD
Wenn ich jetzt durch den Trigger durchlaufe passiert allerdings garnichts.
Kann mir jemand bitte weiterhelfen. =)
Danke
--- Edit by Nightwing: Thema angepasst und in Scripthilfe verschoben ---
Nightwing
Bist Du Dir sicher, das das Script überhaupt geladen wird?
Bei der Menge an Zeichenfehlern dürfte das nie und nimmer starten.
Hab Dir das Script mal ohne den Codetag eingefügt, denn sonst funktioniert die rote Farbe nicht:
jumperscores()
{
entSCOREUPDATER = getentarray("trig","targetname");
if(isdefined(entSCOREUPDATER)) Warum hier eine Abfrage, ob entSCOREUPDATER definiert ist? Hast Du eine Zeile höher definiert.
{
for(lp=0;lp<entSCOREUPDATER.size;lp++)
entSCOREUPDATER[lp] thread SCOREUPDATER();
}
}
SCOREUPDATER()
{
maps\mp\gametypes\_rank::registerScoreInfo( "strafejump", 5 );
while(1) Warum Warten, bis etwas true ist? Du hast nirgends ein false definiert.
{
self waittill("trigger",player);
entTarget = getent(self.target, "targetname"); Was soll diese Zeile bewirken?
player thread [[level.onXPEvent]]( "strafejump" );
maps\mp\gametypes\_globallogic::givePlayerScore( "strafejump", player );
level notify( "update_allhud_score" );
}
}
ToM
Oi!mel
KA, ich bin mir nicht ganz sicher...
thread maps\mp\_jumperscores::jumperscores();
Das steht in meiner map.gsc
Wahrscheinlich wird SCOREUPDATER() nicht geladen, da sind ja die Fehler drinnen. Muss ich die nochmal extra in der map.gsc aufrufen?
Eigentlich war es nämlich so gedacht dass die Funktion jumperscores() die Funktion SCOREUPDATER() aufruft.
Die Scores funktionieren jetzt logischerweise immer noch nicht.
Hast du eine Idee was noch alles am Script falsch ist?
Nightwing
Original von Oi!mel
thread maps\mp\_jumperscores::jumperscores();
Das steht in meiner map.gsc
Wenn es an der richtigen Stelle steht und das File _junperscores.gsc heisst, passt das.
Original von Oi!mel
Wahrscheinlich wird SCOREUPDATER() nicht geladen, da sind ja die Fehler drinnen. Muss ich die nochmal extra in der map.gsc aufrufen?
Die Funktion dürfte wohl nicht geladen werden, weil in der ersten schon Fehler drin sind, siehe Edit.
Original von Oi!mel
Eigentlich war es nämlich so gedacht dass die Funktion jumperscores() die Funktion SCOREUPDATER() aufruft.
So wäre das auch richtig.
Original von Oi!mel
Hast du eine Idee was noch alles am Script falsch ist?
Nein, da ich sowas noch nie in eine Map eingebaut habe.
Hier das Script, wie es zumindest scripttechnisch richtig wäre.
Keine Ahnung, ob es funktioniert:
Code angehängt. Klicke hier zum Ein-/Ausblenden
| code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
|
init()
{
strafejump = getentarray( "strafejump", "targetname" );
maps\mp\gametypes\_rank::registerScoreInfo( "strafejump", 5 );
for( lp=0; lp < strafejump.size; lp++ )
strafejump[lp] thread score();
}
score()
{
while(1)
{
self waittill( "trigger", player );
player thread [ [ level.onXPEvent ] ]( "strafejump" );
maps\mp\gametypes\_globallogic::givePlayerScore( "strafejump", player );
level notify( "update_allhud_score" );
}
} |
|
ToM
PS: Bitte keine Freundschaftsanfragen per xFire / sonstigen Tools.
Oi!mel
sry.
Danke für die Hilfe, aber leider passiert nichts wenn ich durchlauf.
Ich hab jetzt einen trigger use_touch mit dem targetname
strafejump.
Ich habe gesehen dass beim Teleporter Script ein trigger multiple benutzt wurde, aber man auch reinlaufen muss. Wenn ich jetzt ein trigger multiple hernehm bekomm ich lauter Fehlermeldung:
Was bringt eigentlich trigger multiple im Gegenzug zu use_touch?
Kann mir jemand erklären was ich machen muss dass dieses Script auf meine Map passt?