ID-Bug?

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 mir vor einiger Zeit mal ein /veh Command gescipted.
    Wenn der Spieler beispielweise zum 2. Mal /veh eingibt, verschwindet das alte Auto. (eig. nur das eigene)


    Bei manchen Spielern funktioniert das allerdings nicht.
    Wenn ich beispielweise /veh eingebe, erscheint mein Auto, das ist ja auch richtig.
    Bloß wenn der andere jetzt auch /veh eingibt, verschwindet mein Auto. Das heißt es kann max. 1 Auto gespawnt werden.


    Hier der Script:
    ocmd:veh(playerid,params[])
    {
    new carID, Colour1, Colour2;
    new vID[MAX_PLAYERS];
    new string[128];
    new Float:x,Float:y,Float:z;
    if(!isPlayerAnAdmin(playerid,1))return SendClientMessage(playerid,Color_DarkRed,"Du bist kein Admin!");
    if(sscanf(params,"iii",carID,Colour1,Colour2))return SendClientMessage(playerid,Color_DarkRed,"/spawncar [CarID] [Colour1] [Colour2]");
    if(carID<400||carID>611)return SendClientMessage(playerid,Color_DarkRed,"Bitte eine gültige Zahl eingeben!");
    if(Colour1>127)return SendClientMessage(playerid,Color_DarkRed,"Bitte eine gültige Zahl eingeben!");
    if(Colour2>127)return SendClientMessage(playerid,Color_DarkRed,"Bitte eine gültige Zahl eingeben!");
    if(GetPVarInt(playerid,"LastVehicle"))
    {
    DestroyVehicle(GetPVarInt(playerid,"LastVehicle"));
    DeletePVar(playerid,"LastVehicle");
    }
    GetPlayerPos(playerid,x,y,z);
    vID[playerid]=CreateVehicle(carID,x-3.0,y,z,0.0,Colour1,Colour2,3600);
    SetPVarInt(playerid,"LastVehicle",vID[playerid]);
    SavePlayer(playerid);
    Tank[vID[playerid]] = 100;
    GetVehicleParamsEx(vID[playerid],engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(vID[playerid],VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    GetVehicleParamsEx(vID[playerid],engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(vID[playerid],engine,VEHICLE_PARAMS_OFF,alarm,doors,bonnet,boot,objective);
    Motor[vID[playerid]] = false;
    Licht[vID[playerid]] = false;
    format(string,sizeof(string),"CarSpawn: Du hast ein Fahrzeug gespawnt!");
    SendClientMessage(playerid,Color_Orange,string);
    return 1;
    }



    Wie gesagt, das geht nur bei manchen Spielern nicht.
    Ich hoffe, ihr könnt mir helfen.


    Mfg Maksimo :)

  • Zitat

    ocmd:veh(playerid,params[])
    {
    new vID[MAX_PLAYERS];
    ...
    }


    Du erstellst die Variable ja auch immer lokal neu. Du solltest dir mal den Unterschied zwischen Lokalen und Globalen Variablen ansehen.
    Das wäre schon mal den ersten Schritt den Ich machen würde. Dann sparst dir auch die sinnlosen PVars.