Problem mit GetVehicleModel

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
  • Beitrag von Almaz ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Poste bitte deinen Code dazu nochmal, so wie er jetzt ist. Ich habe das Gefühl, dass du es nicht so gemacht hast, wie ich es postet habe, und es deshalb den print nicht anzeigt. ;)

    [pwn=1337]
    printf("IsARomero: %d / playerid: %d / model: %d", IsARomero(GetPlayerVehicleID(playerid)), playerid, GetVehicleModel(GetPlayerVehicleID(playerid)));
    printf("Job: %d / NPC: %d", PlayerInfo[playerid][pJob], IsPlayerNPC(playerid));



    if(IsARomero(GetPlayerVehicleID(playerid)))
    {
    if(PlayerInfo[playerid][pJob] != 33 || IsPlayerNPC(playerid))
    {
    printf("Entfernt.");
    SendClientMessage(playerid,COLOR_GREY," Du bist kein bestatter !");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    }[/pwn]

  • Hast du TeamViewer? Wenn ja, PN mir mal kurz deine Daten. Das will ich selbst sehen, dass das nicht klappt. :huh:

    nein, ich besitzt kein TeamViewer ehm können wir das nicht, anderes machen mit der Abfrage?

    Die Job ID ist 33 da bin ich mir auch hundert Prozent sicher und die Fahrzeug ID's: 442

    was meinst du mit Mehrzeilig?

  • Hast du TeamViewer? Wenn ja, PN mir mal kurz deine Daten. Das will ich selbst sehen, dass das nicht klappt. :huh:


    Oder hast du eine mehrzeilige Meldung im Compiler, mit vielen Zahlen?

    Meinst du das?


    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


    Header size: 25600 bytes
    Code size: 3960812 bytes
    Data size: 19792516 bytes
    Stack/heap size: 32768 bytes; estimated max. usage: unknown, due to recursion
    Total requirements:23811696 bytes

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Beitrag von Almaz ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.

  • Was ist denn jetzt noch das Problem? Geht es immer noch nicht? :huh:
    Kannst du nochmal den aktuellen Code posten, falls es nicht geht? Und einen aktuellen Log dazu.


    Server-Log:


    [11.11.2014 | 19:11:05] IsARomero: 0 / playerid: 1 / model: 0
    [11.11.2014 | 19:11:05] Job: 0 / NPC: 0


    [pwn=1337]forward IsARomero(carid);public IsARomero(carid)
    {
    new modelid = GetVehicleModel(carid);
    if(modelid == 442)
    {
    return 1;
    }
    return 0;
    }
    printf("IsARomero: %d / playerid: %d / model: %d", IsARomero(GetPlayerVehicleID(playerid)), playerid, GetVehicleModel(GetPlayerVehicleID(playerid)));
    printf("Job: %d / NPC: %d", PlayerInfo[playerid][pJob], IsPlayerNPC(playerid));
    if(IsARomero(GetPlayerVehicleID(playerid)))
    {
    if(PlayerInfo[playerid][pJob] != 33 || IsPlayerNPC(playerid))
    {
    printf("Entfernt.");
    SendClientMessage(playerid,COLOR_GREY," Du bist nicht, im Bestattungs Unternehmen!");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    }[/pwn]

  • Also ich habe das gerade mal bei mir getestet:
    #include <a_samp>


    #define COLOR_GREY 0xAAAAAAFF
    enum pData {
    pJob
    };
    new PlayerInfo[MAX_PLAYERS][pData];


    forward IsARomero(carid);
    public IsARomero(carid)
    {
    new modelid = GetVehicleModel(carid);
    if(modelid == 442)
    {
    return 1;
    }
    return 0;
    }



    public OnFilterScriptInit()
    {
    return 1;
    }


    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    printf("IsARomero: %d | playerid: %d | model: %d", IsARomero(GetPlayerVehicleID(playerid)), playerid, GetVehicleModel(GetPlayerVehicleID(playerid)));
    printf("Job: %d | NPC: %d", PlayerInfo[playerid][pJob], IsPlayerNPC(playerid));
    if(IsARomero(GetPlayerVehicleID(playerid)))
    {
    if(PlayerInfo[playerid][pJob] != 33 || IsPlayerNPC(playerid))
    {
    printf("Entfernt.");
    SendClientMessage(playerid,COLOR_GREY," Du bist kein bestatter !");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    }
    return 1;
    }


    Log:

    Zitat

    [11/11/2014 20:02:21] IsARomero: 1 | playerid: 16 | model: 442
    [11/11/2014 20:02:21] Job: 0 | NPC: 0
    [11/11/2014 20:02:21] Entfernt.


    Klappt einwandfrei.


    Erstelle das bei dir mal als Filterscript und teste es dann.

  • hi, es funktioniert einwandfrei aber jetzt habe ich ein anderes Problem, z.B ich gebe mir den Job: 33 und steige dann ins Fahrzeug und dann werde ich wieder gekickt obwohl ich den Job habe?

    und wenn ich den Code ins Skript einfüge bekomme ich noch Fehler:

    C:\Users\suleyman\Desktop\John Script\gamemodes\John.pwn(529) : error 001: expected token: ";", but found "enum"
    C:\Users\suleyman\Desktop\John Script\gamemodes\John.pwn(5342) : error 021: symbol already defined: "PlayerInfo"


    Und zwar gibt es schon mal die Definition "PlayerInfo"


    Zeile: 529
    new PlayerInfo[MAX_PLAYERS][pData]


    Zeile: 5342
    new PlayerInfo[MAX_PLAYERS][pInfo];//SÜLO

  • Klar, mit dem Job geht es natürlich nicht, wenn es in einem extra Filterscript ist. Der ist ja nur zum testen gedacht.
    Wenn du es jetzt bei dir einfügen willst in den Code (ist eigentlich 1:1 der Code den du hast), dann kannst du das machen, aber lass das hier weg:


    #define COLOR_GREY 0xAAAAAAFF
    enum pData {
    pJob
    };
    new PlayerInfo[MAX_PLAYERS][pData];


    Die Deklarationen hast du ja schon.

  • Beitrag von Almaz ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Ich habe es genau jetzt so ins Skript eingefügt, jetzt Funktioniert es nicht, beim FliterSkript aber schon.


    Code:

    [pwn=1337]forward IsARomero(carid);
    public IsARomero(carid)
    {
    new modelid = GetVehicleModel(carid);
    if(modelid == 442)
    {
    return 1;
    }
    return 0;
    }printf("IsARomero: %d | playerid: %d | model: %d", IsARomero(GetPlayerVehicleID(playerid)), playerid, GetVehicleModel(GetPlayerVehicleID(playerid)));
    printf("Job: %d | NPC: %d", PlayerInfo[playerid][pJob], IsPlayerNPC(playerid));if(IsARomero(GetPlayerVehicleID(playerid)))
    {
    if(PlayerInfo[playerid][pJob] != 33 || IsPlayerNPC(playerid))
    {
    printf("Entfernt.");
    SendClientMessage(playerid,COLOR_GREY," Du bist kein bestatter !");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    }[/pwn]

  • Dann hat dein Gamemode ein Problem an einer anderen Stelle, denn der Code ist 100% korrekt.
    Du kannst es ja in dem Filterscript laufen lassen.


    Wenn du dann dem Spieler einen Job gibst, setzt du die Variable auch in dem Filterscript über CallRemoteFunction.


    Beispiel:
    Im GM:
    CallRemoteFunction("SetJob", "dd", playerid, 33);



    Im FS:
    forward SetJob(playerid, job);
    public SetJob(playerid, job)
    {
    PlayerInfo[playerid][pJob] = job;
    return 1;
    }

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen