IsPlayerInCheckpoint Problem ._.

In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hallo, ich will Checken, wenn der Spieler einen meiner Trucker Checkpoints betreten hat, dass er 10 Sek angehalten wird, und dann an eine andere Stelle hinfahren muss, 10 Sek warten muss und dann kriegt er halt 3k oder so.
    Hier mal mein "Codeschnipsel"... :


    Der Public:



    forward TruckerLieferungAnnehmen(playerid);
    public TruckerLieferungAnnehmen(playerid)
    {
    if(IsPlayerInCheckpoint(playerid,TruckerCP1));
    {
    SetTimer("TruckerLieferungAnnehmen",10000,0);
    {
    SendClientMessage(playerid,COLOR_WHITE,"Fahre nun zum nächsten, angegeben Punkt.");
    SendClientMessage(playerid,COLOR_WHITE,"Und liefere dort deine Ladung ab.");
    SetPlayerCheckpoint(playerid,1242.1548,-1831.2067,13.3995,3.0);
    }
    }
    return 1;
    }



    Meine News:



    new TruckerFahrzeuge[3];
    new TruckerCP1;
    new TruckerCP2;



    Meine Fahrzeuge Unter OnGameModeInit:



    TruckerFahrzeuge[0] = AddStaticVehicleEx(524,-51.8396,-1133.6072,1.6844,69.8283,1,1,360); // Truck1
    TruckerFahrzeuge[1] = AddStaticVehicleEx(524,-57.3291,-1137.1882,1.6848,66.6018,1,1,360); // Truck2
    TruckerFahrzeuge[2] = AddStaticVehicleEx(524,-59.4598,-1143.0557,1.6844,63.4666,1,1,360); // Truck3



    Mein /truck Befehl zum Anfangen des "Truckens"..



    if(strcmp("/truck",cmdtext, true, 10) == 0)
    {
    if(TruckerCar(GetPlayerVehicleID(playerid)))
    {
    if(Spieler[playerid][Job] == 2)
    {
    SetPlayerCheckpoint(playerid,-89.0687,-1121.9984,1.6941,3.0);
    SendClientMessage(playerid,COLOR_WHITE,"Fahre jetzt zum Angegeben Punkt auf der Karte");
    SendClientMessage(playerid,COLOR_WHITE,"Um deine Erste Ladung abzuholen!");
    }
    else
    {
    SendClientMessage(playerid,COLOR_GREY,"Du bist kein Trucker!");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_GREY,"Du musst dafür in einem Truck sein.");
    return 1;
    }
    }





    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if(newstate == PLAYER_STATE_DRIVER)
    {
    if(GetPlayerVehicleID(playerid))
    {
    if(Spieler[playerid][Job] == 2)
    {
    return 1;
    }
    else
    {
    SendClientMessage(playerid,COLOR_GREY,"Du bist kein Trucker!");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    }
    }
    return 1;
    }



    Aber immer kommt der Error:




    C:\Dokumente und Einstellungen\WarRock\Desktop\SAMP\GangWar v0.1\gamemodes\GermanReallife.pwn(1470) : warning 202: number of arguments does not match definition
    C:\Dokumente und Einstellungen\WarRock\Desktop\SAMP\GangWar v0.1\gamemodes\GermanReallife.pwn(1470) : error 036: empty statement
    C:\Dokumente und Einstellungen\WarRock\Desktop\SAMP\GangWar v0.1\gamemodes\GermanReallife.pwn(1481) : warning 203: symbol is never used: "TruckerCP1"
    C:\Dokumente und Einstellungen\WarRock\Desktop\SAMP\GangWar v0.1\gamemodes\GermanReallife.pwn(1481) : warning 203: symbol is never used: "TruckerCP2"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.





    Eine Hilfe wäre nett. ;D

  • if(GetPlayerVehicleID(playerid)) {


    Du musst den Rückgabewert der Funktion schon mit irgendwas vergleichen.


    Außerdem verweist dein Timer auf sich selbst, dass muss in eine eigene Funktion.

  • Also, habe jetzt nochmal was geändert:


    C:\Dokumente und Einstellungen\WarRock\Desktop\SAMP\GangWar v0.1\gamemodes\GermanReallife.pwn(1493) : warning 202: number of arguments does not match definition
    C:\Dokumente und Einstellungen\WarRock\Desktop\SAMP\GangWar v0.1\gamemodes\GermanReallife.pwn(1493) : error 036: empty statement
    C:\Dokumente und Einstellungen\WarRock\Desktop\SAMP\GangWar v0.1\gamemodes\GermanReallife.pwn(1511) : warning 203: symbol is never used: "TruckerCP1"
    C:\Dokumente und Einstellungen\WarRock\Desktop\SAMP\GangWar v0.1\gamemodes\GermanReallife.pwn(1511) : warning 203: symbol is never used: "TruckerCP2"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.


    Das kommt raus.
    1493 ist die Zeile:


    if(IsPlayerInCheckpoint(playerid,TruckerCP1));

  • Beim erstellen des Checkpoints:


    SetPVarString(playerid, "Checkpoint", "Truck");
    Dann haste den Checkpointnamen (in diesem Fall "Truck" in der PVar "Checkpoint") gespeichert.


    Und bei der IsPlayerInCheckpoint Funktion
    new AktuellerCheckpoint[32];
    GetPVarString(playerid, "Checkpoint", AktuellerCheckpoint, sizeof(AktuellerCheckpoint));


    Damit ließt du den Wert wieder auf und schreibst ihn in die lokale Variable AktuellerCheckpoint.
    Nun kannst du über eine if Abfrage prüfen, ob der Spieler im Trucker Checkpoint ist:
    if(!strcmp(AktuellerCheckpoint, "Truck"))


    MfG

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • PVars sind nichts anders als Variablen die pro Spieler gehalten werden.
    Das SetPVar fügst du in deine /truck Funktion direkt nach dem SetPlayerCheckpoint ein.


    Und aus dem
    if(IsPlayerInCheckpoint(playerid))

    machst du

    new AktuellerCheckpoint[32];
    GetPVarString(playerid, "Checkpoint", AktuellerCheckpoint, sizeof(AktuellerCheckpoint));
    if(IsPlayerInCheckpoint(playerid) && !strcmp(AktuellerCheckpoint, "Truck"))