Ingame Befehl funktioniert nicht richtig

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
  • Habe ein kleines Problem, wenn ich meinen Befehl eingebe funktioniert er nur in den Vehicleid's 511,519 und 593. Wenn ich es in den anderen Flugzeugen/Heli's mache sagt der Server invalid Command und es wird kein Checkpoint gesetzt. Ich weiß, ist nicht sehr schön eingerückt aber sollte dennoch funktionieren.
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(!strcmp(cmdtext, "/work", true))


    if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 511 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 519 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 593)//Beagle+Dodo+Shamal
    {
    new id = GetNearestAirport(playerid);
    Flughafen[playerid] = id;
    FlughafenNr[playerid] = 1;
    DisablePlayerCheckpoint(playerid);
    new message[128];
    SetPlayerRaceCheckpoint(playerid,2,Splanes[id][x],Splanes[id][y],Splanes[id][z],0,0,0,Splanes[id][size]);
    format(message,sizeof(message), "Head to {1B8AE4}%s {FFFFFF}and pick up your passengers.", Splanes[id][LocationName]);
    SendClientMessage(playerid, 0xFFFFFFFF, message);


    return 1;
    }
    if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 488 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 497 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 548 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 563)//helis
    {
    new id = GetNearestAirport(playerid);
    Flughafen[playerid] = id;
    FlughafenNr[playerid] = 1;
    DisablePlayerCheckpoint(playerid);
    new message[128];
    SetPlayerRaceCheckpoint(playerid,2,Hplanes[id][x],Hplanes[id][y],Hplanes[id][z],0,0,0,Hplanes[id][size]);
    format(message,sizeof(message), "Head to {1B8AE4}%s {FFFFFF}and pick up your passengers.", Hplanes[id][LocationName]);
    SendClientMessage(playerid, 0xFFFFFFFF, message);
    return 1;
    }
    if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 417 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 425 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 447 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 469 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 487)
    {
    new id = GetNearestAirport(playerid);
    Flughafen[playerid] = id;
    FlughafenNr[playerid] = 1;
    DisablePlayerCheckpoint(playerid);
    new message[128];
    SetPlayerRaceCheckpoint(playerid,2,Hplanes[id][x],Hplanes[id][y],Hplanes[id][z],0,0,0,Hplanes[id][size]);
    format(message,sizeof(message), "Head to {1B8AE4}%s {FFFFFF}and pick up your passengers.", Hplanes[id][LocationName]);
    SendClientMessage(playerid, 0xFFFFFFFF, message);
    return 1;
    }
    if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 592 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 577)
    {
    new id = GetNearestAirport(playerid);
    Flughafen[playerid] = id;
    FlughafenNr[playerid] = 1;
    DisablePlayerCheckpoint(playerid);
    new message[128];
    SetPlayerRaceCheckpoint(playerid,2,Bplanes[id][x],Bplanes[id][y],Bplanes[id][z],0,0,0,Bplanes[id][size]);
    format(message,sizeof(message), "Head to {1B8AE4}%s {FFFFFF}and pick up your passengers.", Bplanes[id][LocationName]);
    SendClientMessage(playerid, 0xFFFFFFFF, message);
    return 1;
    }


    return 0;
    }

  • Das ist doch nicht dein Ernst??
    Da wird es abgefragt; guck mal auf SampWiki.


    versteh ich net? was soll nicht sein ernst sein?


    bei mir klappts soweit .. komisch


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(!strcmp(cmdtext, "/work", true))


    if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 511 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 519 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 593)//Beagle+Dodo+Shamal
    {
    SendClientMessage(playerid, 0xFFFFFFFF, "jo1");
    return 1;
    }
    if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 488 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 497 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 548 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 563)//helis
    {
    SendClientMessage(playerid, 0xFFFFFFFF, "jo2");
    return 1;
    }
    if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 417 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 425 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 447 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 469 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 487)
    {
    SendClientMessage(playerid, 0xFFFFFFFF, "jo3");
    return 1;
    }
    if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 592 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 577)
    {
    SendClientMessage(playerid, 0xFFFFFFFF, "jo4");
    return 1;
    }
    return 0;
    }


    würde dir dennoch empfehlen ein switch zu benutzen.


    edit:
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(!strcmp(cmdtext, "/work", true))
    {
    switch(GetVehicleModel(GetPlayerVehicleID(playerid)))
    {
    case 511,519,593:{}
    case 488,497,548,563:{}
    case 417,425,447,469,487:{}
    case 592,577:{}
    }
    }
    return 0;
    }

    Einmal editiert, zuletzt von Tround ()

  • Dir ist auch bewusst das nach dem vergleich der beiden strings eine geschweifte Klammer folgen muss und dementsprechend auch wieder geschlossen werden



    if(!strcmp(cmdtext, "/work", true))
    {
    if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 511 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 519 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 593)//Beagle+Dodo+Shamal
    {
    new id = GetNearestAirport(playerid);
    Flughafen[playerid] = id;
    FlughafenNr[playerid] = 1;
    .......



    }


    Das invalid Command wird zurückgegeben sollte Das Callback OnPlayerCommandText(playerid, cmdtext[]) 0 zurückgeben

  • Habe ein kleines Problem, wenn ich meinen Befehl eingebe funktioniert er nur in den Vehicleid's 511,519 und 593. Wenn ich es in den anderen Flugzeugen/Heli's mache sagt der Server invalid Command und es wird kein Checkpoint gesetzt.


    Du hast es glaube ich falsch verstanden.
    Er möchte, dass der Befehl auch noch bei anderen Autos funktioniert.

  • Du hast es glaube ich falsch verstanden.
    Er möchte, dass der Befehl auch noch bei anderen Autos funktioniert.


    Du meinst wohl eher Vehikel , nun gut das funktioniert auch so ist jedoch nicht die schönste Art


    ob
    if(x == a)
    if(x == b)
    if(x == c)
    if(x == d)
    if(x == e)
    oder

    if(x == b)
    else if(x == c)
    else if(x == d)
    else if(x == e)


    oder
    switch(x){
    case a:
    case b:
    case c:
    case d:
    case e:
    }


    Ist hier relative es führt alles zum gewünschten ziel.


  • Ich hab es jetzt mit else if gemacht, aber immernoch das gleiche. Nur die erste if Abfrage funktioniert. Wenn ich in den Fahrzeugen der anderen Abfragen sitze kommt immernoch Invalid Command.