Problem bei OnPlayerEnterVehicle

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
  • Hey,
    ich habe das Problem wenn ich in ein Auto einsteige kommt die Meldung du bist kein Polizist obwohl es nicht die Autoid vom Polizeiwagen ist!
    Hier der Script:



    if (gTeam[playerid] == TEAM_POLIZEI || gLeader[playerid] == TEAM_POLIZEI)
    {
    if(GetPlayerVehicleID(playerid) == 601 || 599 || 596 || 523 || 490 || 433 || 432 || 427)
    {
    SendClientMessage(playerid, Gruen, "Du bist in ein Polizeiauto eingestiegen!");
    }
    else
    {
    SendClientMessage(playerid, Rot, "Du bist kein Polizist!");
    RemovePlayerFromVehicle(playerid);
    }
    }

    if (gTeam[playerid] == TEAM_ARZT || gLeader[playerid] == TEAM_ARZT)
    {
    if(GetPlayerVehicleID(playerid) == 416 || 407)
    {
    SendClientMessage(playerid, Gruen, "Du bist in einen Krankenwagen / Feuerwehrwagen eingestiegen!");
    }
    else
    {
    SendClientMessage(playerid, Rot, "Du bist kein Arzt!");
    RemovePlayerFromVehicle(playerid);
    }
    }

    if (gTeam[playerid] == TEAM_TAXI || gLeader[playerid] == TEAM_TAXI)
    {
    if(GetPlayerVehicleID(playerid) == 437 || 431 || 420 || 438)
    {
    SendClientMessage(playerid, Gruen, "Du bist in ein Taxi / Bus eingestiegen!");
    }
    else
    {
    SendClientMessage(playerid, Rot, "Du bist kein Taxi, oder Busfahrer!");
    RemovePlayerFromVehicle(playerid);
    }
    }

    if (gTeam[playerid] == TEAM_FAHRLEHRER || gLeader[playerid] == TEAM_FAHRLEHRER)
    {
    if(GetPlayerVehicleID(playerid) == 416)
    {
    SendClientMessage(playerid, Gruen, "Du bist in ein Fahrlehrerauto eingestiegen!");
    }
    else
    {
    SendClientMessage(playerid, Rot, "Du bist kein Fahrlehrer!");
    RemovePlayerFromVehicle(playerid);
    }
    }


    Achja ich benutze kein GF! Selfmade Reallife


    Danke für jede Hilfe


    MfG

  • ah okay danke werde es mal testen.
    Aber deswegen musst du es nicht gleich hochladen hätte auch gereicht wenn du es mir nur gesagt hättest^^


    MfG Markus ;)


    EDIT:


    Habs getestet es funzt net. Wenn ich als COP in ein Copcar gehe kommt:


    Du bist kein Arzt.
    Du bist kein Taxi- oder Busfahrer


    Bitte um Hilfe

    Einmal editiert, zuletzt von Markus ()

  • Ich denke mir mal, dass du eigentlich nach ModelIDs abfragen willst, wenn du 430 und sowas schreibst...
    Die endgültige Version im Anhang


    PS: Als Fahrlehrerauto hast du einen Krankenwagen dringehabt, habs in einen Washington geändert, ändere es wie du willst...


    Ich scripte NICHT mehr, ich möchte mit NIEMANDEM einen Server aufmachen habe auch NICHTS mehr mit LoH zu tun, also lasst es mit den PNs!

  • Das ist auch nicht verwunderlich. ;)


    Zuersteinmal:
    Eine Abfrage müsste (in deinem Fall) folgendes Format aufweisen:
    if(WERT1 == WERT2 || WERT1 == WERT3)


    Zumal dürftest du ins keins der Autos auf deinem Server kommen, da du, schätze ich, die VehicleID mit der ModelID verwechselt hast.
    Du kannst die ModelID wie folgt abfragen:
    GetVehicleModel(GetPlayerVehicleID(playerid))


    Zu deinem letzten Problem (Dass mehrere Meldungen in SA:MP ausgespuckt werden) kann ich derzeit nichts sagen.
    Ich denke dass dort eine Fehlkonfiguration deiner Variablen vorliegt. ;)


    Bei Fragen kannst du dich an mich wenden!


    MfG


    //Edit: Verdammt, M4rciii war schneller! :pinch: :D

  • Hab neues Problem xD.
    Keine Errors aber wenn ich in keinem Team bin also Zivilist und ich in ein Copcar einsteieg geht es und es kommt keine Meldung das man das net darf beim Fahrlehrer geht es auch nur beim Arzt und beim Taxi geht es net.
    Hoffe ihr könnt mir helfen!


    MfG Markus

    2 Mal editiert, zuletzt von Markus ()

  • Hier der Script:



    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if(newstate == PLAYER_STATE_DRIVER)
    {
    switch(GetVehicleModel(GetPlayerVehicleID(playerid)))
    {
    case 601,599,596,523,490,433,432,427:
    {
    if(gTeam[playerid] == TEAM_POLIZEI || gLeader[playerid] == TEAM_POLIZEI)
    {
    SendClientMessage(playerid, Gruen, "Du bist in ein Polizeiauto eingestiegen!");
    }
    else
    {
    SendClientMessage(playerid, Rot, "Du bist kein Polizist!");
    RemovePlayerFromVehicle(playerid);
    }
    }
    case 416,407:
    {
    if(gTeam[playerid] == TEAM_ARZT || gLeader[playerid] == TEAM_ARZT)
    {
    SendClientMessage(playerid, Gruen, "Du bist in einen Krankenwagen / Feuerwehrwagen eingestiegen!");
    }
    else
    {
    SendClientMessage(playerid, Rot, "Du bist kein Arzt!");
    RemovePlayerFromVehicle(playerid);
    }
    }
    case 437,431,420,438:
    {
    if(gTeam[playerid] == TEAM_TAXI || gLeader[playerid] == TEAM_TAXI)
    {
    SendClientMessage(playerid, Gruen, "Du bist in ein Taxi / Bus eingestiegen!");
    }
    else
    {
    SendClientMessage(playerid, Rot, "Du bist kein Taxi, oder Busfahrer!");
    RemovePlayerFromVehicle(playerid);
    }
    }
    case 410:
    {
    if(gTeam[playerid] == TEAM_FAHRLEHRER || gLeader[playerid] == TEAM_FAHRLEHRER)
    {
    SendClientMessage(playerid, Gruen, "Du bist in ein Fahrlehrerauto eingestiegen!");
    }
    else
    {
    SendClientMessage(playerid, Rot, "Du bist kein Fahrlehrer!");
    RemovePlayerFromVehicle(playerid);
    }
    }
    }
    }
    }


    Das Problem:


    Wenn ich Zivilist bin und in ein Polizeiauto steige, kann ich mit dem Auto fahren und es komtm keine Meldung du bist kein Polizist. Das selbe bei der Fraktion Fahrlehrer, es kommt auch keine Meldung und ich kann fahren.


    Bei den Krankenwagen also bei der Fraktion Arzt und bei der Fraktion Taxi funzt alles einwandfrei.


    Bitte um Hilfe!


    MfG Markus

  • In was für einem Copcar hat du gesessen? Du fragst nur nach 596 ab = LSPD-Car. Wenn SF und LV-Car auch als Copcars zählen sollen, musst du noch 597 und 598 hinzufügen.


    Ich scripte NICHT mehr, ich möchte mit NIEMANDEM einen Server aufmachen habe auch NICHTS mehr mit LoH zu tun, also lasst es mit den PNs!

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Ich habe ein Autosystem im Script ja, aber ich hatte das mit den Fraktioncars schon vorher im Script und da hat es ja auch net gefunzt.
    Vllt kann mir jemand ein Besipiel machen wie ich es sonst noch scritpen könnte das wäre wirklich sehr hilfreich!


    MfG

  • Also ich arbeite bei Fraktioncars oder Autohaus nur mit Arrays.


    // news
    new copcar[10]; // oder wie viele Autos du halt willst
    // OnGameModeInit
    copcar[0] = CreateVehicle(........);
    copcar[1] = CreateVehicle(........);
    copcar[2] = CreateVehicle(........);
    copcar[3] = CreateVehicle(........);
    copcar[4] = CreateVehicle(........);
    copcar[5] = CreateVehicle(........);
    copcar[6] = CreateVehicle(........);
    copcar[7] = CreateVehicle(........);
    copcar[8] = CreateVehicle(........);
    copcar[9] = CreateVehicle(........);



    Dann deine Abfrage der Autos


    if(GetPlayerVehicleID(playerid) == copcar)


    eins der beiden abfragen sollte richtig sein ich weis es nimma genau ob man nur das new nehmen muss oda alle einzlen


    if(GetPlayerVehicleID(playerid) == copcar[0] ||copcar[1] )
    usw.


    Powered by Windows 7


    Die HDD stimmt nich , hab 3 Festplatten drin.

  • Muss ich dann die Abfrage der Autos in OnPLayerEnterVehicle oder in OnPlayerStateChange machen?


    MfG


    EDIT: Und wo muss ich einfügen das die Meldung kommen soll zu bist kein Polizistß So oder?




    if(GetPlayerVehicleID(playerid) == copcar)
    }
    else
    {
    SendClientMessage(playerid,blabla,"Du bist kein Cop!");



    Einmal editiert, zuletzt von Markus ()

  • forward IsCopCar(vehid);
    public IsCopCar(vehid)
    {
    for(new i = 0;i<sizeof(copcar);i++)
    {
    if(vehid == copcar[i])return 1;
    }
    return 0
    }



    Bei PlayerStateChange ...


    if(newstate == 2)
    {
    if(IsCopCar(GetPlayerVehicleID(playerid)))
    {
    if(Team[playerid] != COP_TEAM)
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,0xFFFFFFFF,"Du bist kein Polizist!");
    }
    }
    }



    //é : Die Team Variable & das Team sind nur Beispiel Variablen

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • Ich kriege folgende Errors:



    C:\Dokumente und Einstellungen\Markus Schneider\Desktop\gamemode.pwn(27) : error 009: invalid array size (negative, zero or out of bounds)
    C:\Dokumente und Einstellungen\Markus Schneider\Desktop\gamemode.pwn(179) : warning 202: number of arguments does not match definition
    C:\Dokumente und Einstellungen\Markus Schneider\Desktop\gamemode.pwn(3612) : warning 224: indeterminate array size in "sizeof" expression (symbol "")
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.


    Hier der Script:


    Oben:

    new copcar[0];


    Bei OnGameModeInit:

    copcar[0] = CreateVehicle(601,1535.9340,-1667.6667,13.1416,359.9212,1,0); //


    Bei OnPlayerStateChange:

    f(newstate == 2)
    {
    if(IsCopCar(GetPlayerVehicleID(playerid)))
    {
    if(gTeam[playerid] != TEAM_POLIZEI)
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,0xFFFFFFFF,"Du bist kein Polizist!");
    }
    }
    }


    Weiter unten im Script:

    forward IsCopCar(vehid);
    public IsCopCar(vehid)
    {
    for(new i = 0;i<sizeof(copcar);i++)
    {
    if(vehid == copcar[i])return 1;
    }
    return 0;
    }


    Hoffe ihr könnt mir helfen!


    MfG Markus

  • ah dankeschön^^


    aber noch ein Warning:



    C:\Dokumente und Einstellungen\Markus Schneider\Desktop\gamemode.pwn(179) : warning 202: number of arguments does not match definition
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Warning.


    Zeile:



    copcar[0] = CreateVehicle(601,1535.9340,-1667.6667,13.1416,359.9212,1,0); //


    MfG Markus

  • Bin mir nicht sicher, aber ich denke es sollte so aussehen
    copcar[0] = CreateVehicle(601,1535.9340,-1667.6667,13.1416,359.9212,1,0,-1);


    Aber teoretisch solltest du dir da keine Sorgen machen müssen...Der hat eig. keinen Effekt du hast das Fahrzeug trozdem!

    Dieser Beitrag wurde bereits 1337 mal editiert, zuletzt von »Syn0x« (Jetzt, 13:37)

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