/veh fehler ingame .

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 jetzt einen veh befehl der im Script sehr gut funktioniert.


    if(!strcmp(cmdtext, "/veh", true))
    {
    new ModelID, color[2],Float:VehPos[4], vehicleid;
    if(GetPlayerState(playerid)!=PLAYER_STATE_ONFOOT) return SendClientMessage(playerid,COLOR_ROT,"Du bist nicht zu Fuss");
    if(sscanf(cmdtext, "ddd",ModelID,color[0],color[1])) return SendClientMessage(playerid,COLOR_BLAU, "/veh [vehicleid] [color1] [color2]");
    if(ModelID < 400 || ModelID > 611) return SendClientMessage(playerid,COLOR_ROT, "Es muss eine Fahrzeug ID zwischen 411 und 611 sein!");
    if(color[0] < 0 || color[0] > 255 || color[1] < 0 || color[1] > 255) return SendClientMessage(playerid,COLOR_ROT, "Die Color-IDs müssen zwischen 0 und 126 sein!");
    {
    GetPlayerPos(playerid, VehPos[0],VehPos[1],VehPos[2]);
    GetPlayerFacingAngle(playerid, VehPos[3]);
    vehicleid = CreateVehicle(ModelID,VehPos[0],VehPos[1],VehPos[2],VehPos[3],color[0],color[1],-1);
    LinkVehicleToInterior(vehicleid,GetPlayerInterior(playerid));
    SetVehicleVirtualWorld(vehicleid,GetPlayerVirtualWorld(playerid));
    SetVehicleNumberPlate(vehicleid,"wwwwwwww");
    SetVehicleToRespawn(vehicleid);
    PutPlayerInVehicle(playerid, vehicleid, 0);
    SendClientMessage(playerid,COLOR_ROT,"Car gespawnt, Viel Spaß!");
    }
    }


    Aber ingame kommt dann kein Auto wenn ich denn befehl einfüge ? was falsch ?


    Und was ganz anderes wenn ich befehle mache die auch funktionieren steht da SERVER: Unkow Command .


    Beispiel :
    /regeln
    Dann werden mir die regeln angezeigt und trozdem steht da : Server UnkowCommand ...


  • Warum ist VehPos ein Array? :D



    MfG
    Geronimo

  • mach das mal so



    new Float:x, Float:y, Float:z, Float:rot;
    new color1, color2;
    ....
    GetPlayerPos(playerid, x, y, z);
    GetPlayerFacingAngle(playerid, rot);
    vehicleid = CreateVehicle(ModelID, x, y, z, rot, color1,color2,-1);


    mit z.B new color[0]; sagst du er soll eine Variable erstellen der später einen text enthält


    We are Anonymous.


    We are Legion.


    We do not forgive.


    We do not forget.


    Expect us.

  • das sieht jetzt so aus :


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(!strcmp(cmdtext, "/veh", true))
    {
    new Float:x, Float:y, Float:z, Float:rot;
    new color1, color2;
    if(GetPlayerState(playerid)!=PLAYER_STATE_ONFOOT) return SendClientMessage(playerid,COLOR_ROT,"Du bist nicht zu Fuss");
    if(sscanf(cmdtext, "ddd",ModelID,color[0],color[1])) return SendClientMessage(playerid,COLOR_BLAU, "/veh [vehicleid] [color1] [color2]"); [color=#ff0000]//Eroors alle hier ...[/color]
    if(ModelID < 400 || ModelID > 611) return SendClientMessage(playerid,COLOR_ROT, "Es muss eine Fahrzeug ID zwischen 411 und 611 sein!");
    if(color[0] < 0 || color[0] > 255 || color[1] < 0 || color[1] > 255) return SendClientMessage(playerid,COLOR_ROT, "Die Color-IDs müssen zwischen 0 und 126 sein!");
    {
    GetPlayerPos(playerid, x, y, z);
    GetPlayerFacingAngle(playerid, rot);
    vehicleid = CreateVehicle(ModelID, x, y, z, rot, color1,color2,-1);
    LinkVehicleToInterior(vehicleid,GetPlayerInterior(playerid));
    SetVehicleVirtualWorld(vehicleid,GetPlayerVirtualWorld(playerid));
    SetVehicleNumberPlate(vehicleid,"wwwwwwww");
    SetVehicleToRespawn(vehicleid);
    PutPlayerInVehicle(playerid, vehicleid, 0);
    SendClientMessage(playerid,COLOR_ROT,"Car gespawnt, Viel Spaß!");
    return 1;
    }
    }


    aber jetzt komm solcheerrors :


    : error 017: undefined symbol "ModelID"
    : warning 215: expression has no effect
    : error 001: expected token: ";", but found "]"
    : error 029: invalid expression, assumed zero
    : fatal error 107: too many error messages on one line


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



    4 Errors.
    [/pwn]

  • und so?


    if(!strcmp(cmdtext, "/veh", true))
    {
    new Float:x, Float:y, Float:z, Float:rot;
    new color1, color2, ModelID; //int ModelID hinzugefügt
    if(GetPlayerState(playerid)!=PLAYER_STATE_ONFOOT) return SendClientMessage(playerid,COLOR_ROT,"Du bist nicht zu Fuss");
    if(sscanf(cmdtext, "ddd",ModelID,color1,color2)) return SendClientMessage(playerid,COLOR_BLAU, "/veh [ModelID] [color1] [color2]"); [color=#ff0000]// Die sscanf abfrage angepassst
    if(ModelID < 400 || ModelID > 611) return SendClientMessage(playerid,COLOR_ROT, "Es muss eine Fahrzeug ID zwischen 411 und 611 sein!");
    if(color[0] < 0 || color[0] > 255 || color[1] < 0 || color[1] > 255) return SendClientMessage(playerid,COLOR_ROT, "Die Color-IDs müssen zwischen 0 und 126 sein!");
    {
    GetPlayerPos(playerid, x, y, z);
    GetPlayerFacingAngle(playerid, rot);
    vehicleid = CreateVehicle(ModelID, x, y, z, rot, color1,color2,-1);
    LinkVehicleToInterior(vehicleid,GetPlayerInterior(playerid));
    SetVehicleVirtualWorld(vehicleid,GetPlayerVirtualWorld(playerid));
    SetVehicleNumberPlate(vehicleid,"wwwwwwww");
    SetVehicleToRespawn(vehicleid);
    PutPlayerInVehicle(playerid, vehicleid, 0);
    SendClientMessage(playerid,COLOR_ROT,"Car gespawnt, Viel Spaß!");
    }
    return 1;
    }


    We are Anonymous.


    We are Legion.


    We do not forgive.


    We do not forget.


    Expect us.


  • dann kommt das :


    invalid expression, assumed zero
    : error 017: undefined symbol "color"
    : warning 215: expression has no effect
    error 001: expected token: ";", but found "if"
    fatal error 107: too many error messages on one line


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



    4 Errors.

  • Hey
    Könnte dir mein Befehl gebe denn ich in mein Script drin habe


    ocmd:newcar(playerid,params[])
    {
    new Float:vehx,Float:vehy,Float:vehz;
    new vehid,cc1,cc2,string[128];
    if(sscanf(params,"iii",vehid,cc1,cc2))return SendClientMessage(playerid, ROT,"INFO: /newcar [CAR-ID] [COLOR 1] [COLOR 2]");
    if(isPlayerAnAdmin(playerid,1))
    {
    GetPlayerPos(playerid,vehx,vehy,vehz);
    new carid = CreateVehicle(vehid,vehx,vehy,vehz,3,cc1,cc2,-1);
    SetVehicleNumberPlate(carid,"~>Admin<~");
    PutPlayerInVehicle(playerid, carid, 0);
    format(string,sizeof(string),"Du hast ein Admincar gespawnt! (FahrzeugID :%d)",GetVehicleModel(GetPlayerVehicleID(playerid)));
    SendClientMessage(playerid,BLAU,string);
    }
    else
    {
    SendClientMessage(playerid,ROT,"Diesen Befehl kannst du nicht nutzen. Mindestens benötigter Rang: {00FF5A}Supporter");
    }
    return 1;
    }

  • Hey,
    Ich würde dir empfehlen mit OCMD zuarbeiten
    Da würde es so aussehen
    cmd:veh(playerid,params[])
    {
    if(!istPlayerAnAdmin(playerid,4))return SendClientMessage(playerid, ROT,"Du bist kein Admin."); //An deine Admin anfrage anpassen
    new Float:X,Float:Y,Float:Z;
    new string[256];
    new CarID,Color1,Color2;
    new Car;
    if(sscanf(params,"iii",CarID,Color1,Color2))
    {
    SendClientMessage(playerid,GRÜN,"Benutze: /veh [CarID] [Color1] [Color2]");
    return 1;
    }
    else
    {
    if(CarID<402||CarID>603)
    {
    SendClientMessage(playerid,ROT,"Die CarID muss zwischen 402 und 603 liegen.");
    return 1;
    }
    else
    {
    format(string,sizeof(string),"Du hast dir die CarID: %i gespawnt.",CarID);
    SendClientMessage(playerid,GELB, string);
    GetPlayerPos(playerid,X,Y,Z);
    Car = AddStaticVehicleEx(CarID,X+3,Y,Z, 0, Color1, Color2,-1);
    PutPlayerInVehicle(playerid,Car,0);
    PlayerPlaySound(playerid,1133,0.0,0.0,0.0);
    new ConsoleString[125];
    format(ConsoleString,sizeof(ConsoleString),"Car Command: %s",SpielerName(playerid));
    print(ConsoleString);
    }
    }
    return 1;
    }

  • if(!strcmp(cmdtext, "/veh", true))
    {
    new ModelID, color[2],Float:VehPos[4], vehicleid;
    if(GetPlayerState(playerid)!=PLAYER_STATE_ONFOOT) return SendClientMessage(playerid,COLOR_ROT,"Du bist nicht zu Fuss");
    if(sscanf(cmdtext, "ddd",ModelID,color[0],color[1])) return SendClientMessage(playerid,COLOR_BLAU, "/veh [vehicleid] [color1] [color2]");
    if(ModelID < 400 || ModelID > 611) return SendClientMessage(playerid,COLOR_ROT, "Es muss eine Fahrzeug ID zwischen 411 und 611 sein!");
    if(color[0] < 0 || color[0] > 255 || color[1] < 0 || color[1] > 255) return SendClientMessage(playerid,COLOR_ROT, "Die Color-IDs müssen zwischen 0 und 126 sein!");
    {
    GetPlayerPos(playerid, VehPos[0],VehPos[1],VehPos[2]);
    GetPlayerFacingAngle(playerid, VehPos[3]);
    vehicleid = CreateVehicle(ModelID,VehPos[0],VehPos[1],VehPos[2],VehPos[3],color[0],color[1],-1);
    LinkVehicleToInterior(vehicleid,GetPlayerInterior(playerid));
    SetVehicleVirtualWorld(vehicleid,GetPlayerVirtualWorld(playerid));
    SetVehicleNumberPlate(vehicleid,"wwwwwwww");
    SetVehicleToRespawn(vehicleid);
    PutPlayerInVehicle(playerid, vehicleid, 0);
    SendClientMessage(playerid,COLOR_ROT,"Car gespawnt, Viel Spaß!");
    }
    return 1;
    }


    So...
    am Ende des Befehls grundsätzlich return 1; verwenden!

  • ocmd:veh(playerid,params[])
    {
    new fahrzeug;
    new color1, color2;
    new Float:x, Float:y, Float:z,Float:angle;
    if(sscanf(params,"iii",fahrzeug,color1,color2))return SendClientMessage(playerid,HBlau,"Benutzung: /veh [FahrzeugID] [Farb-ID] [Farb-ID]");
    GetPlayerPos(playerid,x,y,z);
    ChangeVehicleColor(fahrzeug,color1,color2);
    CreateVehicle(fahrzeug,x,y,z,angle,color1,color2,120);
    return 1;
    }


    Mit ocmd finde ichs eigentlich richtig easy, sicherlich genau so wie andere hier...


    Also, wenn du den Befehl endlich willst, nimm den, Google oder frage hier weiter...


    Viel glück!


    EDIT//


    PS: Falls du bei SERVER: Unknown Command oder so was eigenes hinschreiben möchtest machs so:


    {
    SendClientMessage(playerid,Gelb,"Der von Ihnen eingegebene Befehl konnte nicht gefunden werden!\nAlle Befehle finden Sie unter /help.");
    return 1;
    }
    }


    (unter OnPlayerCommandText)