Beiträge von Jeffry

    Das ganze System kann so nicht funktionieren, weil:
    O_Autosladen(vehID);
    hier übergibst du die 9 vom Nummernschild des Fahrzeugs. Gut, dann gehst du in die Funktion, dort greifst du bis zu CreateVehicle mit der 9 auf die Variablen zu:
    VehicleInfo[vehicleid /*angenommen 9*/][Model]


    Nun wird das Fahrzeug erstellt.
    new Auto = CreateVehicle(VehicleInfo[vehicleid][Model], ...
    In Auto steht nun die vehicleid. Diese muss nicht 9 sein (es wird ja einfach die nächst-freie ID genommen).


    Danach greifst du mit der neuen ID, sagen wir 15, auf den Index zu:
    VehicleInfo[Auto /*angenommen 15*/][Oamt]
    Somit stimmen die Werte nicht mehr, da ein Teil in 9 steht, und einer in 15.


    Generell darfst du bei dem System die vehicleid (return von CreateVehicle) nicht mit dem Index von VehicleInfo (das was zwischen den ersten [ ] steht) gleichsetzen, da die vehicleid sich ändern kann.
    Du solltest daher die ID auf der Nummerntafel als die ID des Indexes nehmen, und bei O_Autosladen nur mit [vehicleid] auf VehicleInfo zugreifen (das vehicleid in dem Funktionsparameter benennst du besser zu index um, sonst verwirrt das), also mit [index], wenn umbenannt.


    Wahrscheinlich musst du auch einige Änderungen am Rest des Codes machen, je nach dem wo das verwendet wird.


    Code:
    forward O_Autosladen(index);
    public O_Autosladen(index)
    {
    new autostring[250], String[10], kennzeichen[15];
    format(String, sizeof(String), "%d", index);
    format(kennzeichen, sizeof(kennzeichen), "GP-%d", index);
    VehicleInfo[index][Oamt] = mysql_GetInt("vehicles", "oamt", "ID", String);
    VehicleInfo[index][Verkauft] = mysql_GetInt("vehicles", "verkauft", "ID", String);
    if(VehicleInfo[index][Verkauft] == 0 && VehicleInfo[index][Oamt] == 1)
    {
    format(VehicleInfo[index][Owner], MAX_PLAYER_NAME, mysql_GetString("vehicles", "owner", "ID", String));
    VehicleInfo[index][Model] = mysql_GetInt("vehicles", "model", "ID", String);
    VehicleInfo[index][Zustand] = mysql_GetFloat("vehicles","zustand","ID", String);
    VehicleInfo[index][Lock] = mysql_GetInt("vehicles", "clock", "ID", String);
    VehicleInfo[index][Tank] = mysql_GetInt("vehicles", "tank", "ID", String);
    VehicleInfo[index][Farbe1] = mysql_GetInt("vehicles", "farbe1", "ID", String);
    VehicleInfo[index][Farbe2] = mysql_GetInt("vehicles", "farbe2", "ID", String);
    new Auto = CreateVehicle(VehicleInfo[index][Model],-1689.0150,406.7240,6.8955,316.5948,VehicleInfo[index][Farbe1],VehicleInfo[index][Farbe2],-1);
    SetVehicleHealth(Auto,VehicleInfo[index][Zustand]);
    Motor[Auto] = false;
    GAS[Auto] = VehicleInfo[index][Tank];
    SetVehicleNumberPlate(Auto,kennzeichen);
    VehicleInfo[index][vID] = index;
    VehicleInfo[index][Oamt] = 0;
    VehicleInfo[index][Pos][Auto_X] = -1983.6538;
    format(VehicleInfo[index][Owner], MAX_PLAYER_NAME, mysql_GetString("vehicles", "owner", "ID", String));
    format(autostring,sizeof(autostring),"Model: %d | Owner: %s | vID: %d | ID: %d",VehicleInfo[index][Model],VehicleInfo[index][Owner],VehicleInfo[index][vID],index);
    //printf(autostring);
    mysql_SetInt("vehicles", "oamt",VehicleInfo[index][Oamt], "ID", String);
    }
    return 1;
    }

    Wie fügst du denn das Neon an die Fahrzeuge an? Ist das noch der gleiche Code wie im letzten Thread, oder hast du den verändert?
    Poste davon bitte den aktuellen Code.



    Die restlichen Funktionen kannst du schonmal so umschreiben, dann haben wir schonmal den ersten Teil:

    Spoiler anzeigen
    enum dtc_PlayerCar
    {
    CarId,
    CarOwner[MAX_PLAYER_NAME],
    CarModel,
    Float:CarPos_x,
    Float:CarPos_y,
    Float:CarPos_z,
    Float:CarRotate,
    CarNitro,
    CarHyd,
    CarWheel,
    CarAusp,
    CarSideL,
    CarSideR,
    CarFB,
    CarRB,
    CarSpoiler,
    CarRoof,
    CarHood,
    CarVents,
    CarLamps,
    CarPJ,
    CarC1,
    CarC2,
    CarPreis,
    CarArrest,
    Plate[15],
    NeonID,
    NeonObject[2],
    };

    Spoiler anzeigen
    Function OnPlayerBuyCar(playerid,Model,Preis,Autohaus)//CARSYS
    {
    if(IsPlayerConnected(playerid) && !Dtc_PlayerHaveCar[playerid][Dtc_PlayerKey[playerid]])
    {
    CallRemoteFunction("M_GivePlayerMoney","id",playerid,-Preis);
    if(Autohaus == 2) //Billig Autohaus
    {
    SBizzInfo[1][sbTill] += Preis/4; //Billig Autohaus
    }
    if(Autohaus == 3) // luxus
    {
    SBizzInfo[0][sbTill] += Preis/4; // luxus
    }
    /*if(Autohaus == 7) // VIP-Autohaus
    {
    SBizzInfo[2][sbTill] += Preis/10; // VIP-Autohaus
    }*/
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "*Du hast dir ein Auto gekauft.");

    SendClientMessage(playerid, COLOR_LIGHTBLUE, "*Gehe zu der KFZ Stelle und hole dir ein Kennzeichen.");
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "*Fahre vorsichtig..Und denk an die StraßenVerkehrsOrdnung!");
    SendClientMessage(playerid,COLOR_GRAD2,"Navigation gesetzt!");
    SetParkPlatz(playerid,Autohaus);
    new name[MAX_PLAYER_NAME], str[128];
    GetPlayerName(playerid, name, sizeof name);
    format(str, sizeof str, "/Autos/%s%d.dtcar", name,Dtc_PlayerKey[playerid]);
    new File: hFile = fopen(str, io_write);
    if (hFile)
    {
    new var[32];
    format(var, 32, "CarId=0\n");fwrite(hFile, var);
    format(var, 32, "CarModel=%d\n",Model);fwrite(hFile, var);
    format(var, 32, "CarPos_x=%.3f\n",PlayerCar[playerid][Dtc_PlayerKey[playerid]][CarPos_x]);fwrite(hFile, var);
    format(var, 32, "CarPos_y=%.3f\n",PlayerCar[playerid][Dtc_PlayerKey[playerid]][CarPos_y]);fwrite(hFile, var);
    format(var, 32, "CarPos_z=%.3f\n",PlayerCar[playerid][Dtc_PlayerKey[playerid]][CarPos_z]);fwrite(hFile, var);
    format(var, 32, "CarRotate=%.3f\n",PlayerCar[playerid][Dtc_PlayerKey[playerid]][CarRotate]);fwrite(hFile, var);
    format(var, 32, "CarNitro=0\n");fwrite(hFile, var);
    format(var, 32, "CarHyd=0\n");fwrite(hFile, var);
    format(var, 32, "CarWheel=0\n");fwrite(hFile, var);
    format(var, 32, "CarAusp=0\n");fwrite(hFile, var);
    format(var, 32, "CarSideL=0\n");fwrite(hFile, var);
    format(var, 32, "CarSideR=0\n");fwrite(hFile, var);
    format(var, 32, "CarFB=0\n");fwrite(hFile, var);
    format(var, 32, "CarRB=0\n");fwrite(hFile, var);
    format(var, 32, "CarSpoiler=0\n");fwrite(hFile, var);
    format(var, 32, "CarRoof=0\n");fwrite(hFile, var);
    format(var, 32, "CarHood=0\n");fwrite(hFile, var);
    format(var, 32, "CarVents=0\n");fwrite(hFile, var);
    format(var, 32, "CarLamps=0\n");fwrite(hFile, var);
    format(var, 32, "CarPJ=-1\n");fwrite(hFile, var);
    format(var, 32, "CarC1=-1\n");fwrite(hFile, var);
    format(var, 32, "CarC2=-1\n");fwrite(hFile, var);
    format(var, 32, "Preis=%d\n",Preis);fwrite(hFile, var);
    format(var, 32, "CarArrest=0\n");fwrite(hFile, var);
    format(var, 32, "Plate=[GDG]\n");fwrite(hFile, var);
    format(var, 32, "NeonID=-1\n");fwrite(hFile, var);
    fclose(hFile);
    }
    OnPlayerCarLogin(playerid);
    }
    }

    Spoiler anzeigen
    Function OnPlayerCarLogin(playerid)
    {
    for(new x = 0; x < MaxVeh; x++)
    {
    if(!Dtc_PlayerHaveCar[playerid][x])
    {
    new string2[128];
    new playername2[MAX_PLAYER_NAME];
    GetPlayerName(playerid, playername2, sizeof(playername2));
    format(string2, sizeof(string2), "/Autos/%s%d.dtcar", playername2,x);
    new File: UserFile = fopen(string2, io_read);
    if (UserFile)
    {
    Dtc_PlayerHaveCar[playerid][x] = 1;
    new key[ 256 ] , val[ 256 ];
    new Data[ 256 ];
    while ( fread( UserFile , Data , sizeof( Data ) ) )
    {
    key = ini_GetKey( Data );
    if( strcmp( key , "CarId" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerCar[playerid][x][CarId] = strval( val ); }
    if( strcmp( key , "CarModel" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerCar[playerid][x][CarModel] = strval( val ); }
    if( strcmp( key , "CarPos_x" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerCar[playerid][x][CarPos_x] = floatstr( val ); }
    if( strcmp( key , "CarPos_y" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerCar[playerid][x][CarPos_y] = floatstr( val ); }
    if( strcmp( key , "CarPos_z" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerCar[playerid][x][CarPos_z] = floatstr( val ); }
    if( strcmp( key , "CarRotate" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerCar[playerid][x][CarRotate] = floatstr( val ); }
    if( strcmp( key , "CarNitro" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerCar[playerid][x][CarNitro] = strval( val ); }
    if( strcmp( key , "CarHyd" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerCar[playerid][x][CarHyd] = strval( val ); }
    if( strcmp( key , "CarWheel" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerCar[playerid][x][CarWheel] = strval( val ); }
    if( strcmp( key , "CarAusp" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerCar[playerid][x][CarAusp] = strval( val ); }
    if( strcmp( key , "CarSideL" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerCar[playerid][x][CarSideL] = strval( val ); }
    if( strcmp( key , "CarSideR" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerCar[playerid][x][CarSideR] = strval( val ); }
    if( strcmp( key , "CarFB" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerCar[playerid][x][CarFB] = strval( val ); }
    if( strcmp( key , "CarRB" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerCar[playerid][x][CarRB] = strval( val ); }
    if( strcmp( key , "CarSpoiler" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerCar[playerid][x][CarSpoiler] = strval( val ); }
    if( strcmp( key , "CarRoof" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerCar[playerid][x][CarRoof] = strval( val ); }
    if( strcmp( key , "CarHood" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerCar[playerid][x][CarHood] = strval( val ); }
    if( strcmp( key , "CarVents" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerCar[playerid][x][CarVents] = strval( val ); }
    if( strcmp( key , "CarLamps" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerCar[playerid][x][CarLamps] = strval( val ); }
    if( strcmp( key , "CarPJ" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerCar[playerid][x][CarPJ] = strval( val ); }
    if( strcmp( key , "CarC1" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerCar[playerid][x][CarC1] = strval( val ); }
    if( strcmp( key , "CarC2" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerCar[playerid][x][CarC2] = strval( val ); }
    if( strcmp( key , "Preis" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerCar[playerid][x][CarPreis] = strval( val ); }
    if( strcmp( key , "CarArrest" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerCar[playerid][x][CarArrest] = strval( val ); }
    if( strcmp( key , "Plate" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerCar[playerid][x][Plate] = strval( val ); }
    if( strcmp( key , "NeonID" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerCar[playerid][x][NeonID] = strval( val ); }
    }
    fclose(UserFile);
    PlayerCarSpawn(playerid,x);
    }
    }
    }
    }

    Spoiler anzeigen
    Function PlayerCarSpawn(playerid,Slot)
    {
    if(IsPlayerConnected(playerid))
    {
    if(Dtc_PlayerHaveCar[playerid][Slot])
    {
    PlayerCar[playerid][Slot][CarId] = CreateVehicle(PlayerCar[playerid][Slot][CarModel],PlayerCar[playerid][Slot][CarPos_x],PlayerCar[playerid][Slot][CarPos_y],PlayerCar[playerid][Slot][CarPos_z],PlayerCar[playerid][Slot][CarRotate],PlayerCar[playerid][Slot][CarC1],PlayerCar[playerid][Slot][CarC2], 60000);/*vehicle spawn*/
    CarTuning(playerid,Slot);
    new strings[15];
    new name[MAX_PLAYER_NAME], str[128];
    GetPlayerName(playerid, name, sizeof name);
    format(str, sizeof str, "/Autos/%s%d.dtcar", name,Dtc_PlayerKey[playerid]);
    //format(strings, sizeof(strings), "%s", dini_Get(str, "CarPlate"));
    format(strings, sizeof(strings), "%s", dini_Get(str, "Plate"));
    SetVehicleNumberPlate(PlayerCar[playerid][Slot][CarId], strings);
    SetVehicleToRespawn(PlayerCar[playerid][Slot][CarId]);
    for(new x = 0; x < MaxVeh; x++)
    {
    PlayerCar[playerid][x][Plate] = strings;
    }
    }
    }
    }

    Spoiler anzeigen
    Function OnPlayerCarUpdate(playerid)
    {
    if(IsPlayerConnected(playerid))
    {
    for(new x = 0; x < MaxVeh; x++)
    {
    if(Dtc_PlayerHaveCar[playerid][x])
    {
    DestroyVehicle(PlayerCar[playerid][x][CarId]);
    Dtc_Carlock[PlayerCar[playerid][x][CarId]] = 0;
    Dtc_LockCar(PlayerCar[playerid][x][CarId]);
    new string3[128];
    new playername3[MAX_PLAYER_NAME];
    GetPlayerName(playerid, playername3, sizeof(playername3));
    format(string3, sizeof(string3), "/Autos/%s%d.dtcar", playername3,x);
    new File: hFile = fopen(string3, io_write);
    if (hFile)
    {
    new var[32];
    format(var, 32, "CarId=%d\n",PlayerCar[playerid][x][CarId]);fwrite(hFile, var);
    format(var, 32, "CarModel=%d\n",PlayerCar[playerid][x][CarModel]);fwrite(hFile, var);
    format(var, 32, "CarPos_x=%.3f\n",PlayerCar[playerid][x][CarPos_x]);fwrite(hFile, var);
    format(var, 32, "CarPos_y=%.3f\n",PlayerCar[playerid][x][CarPos_y]);fwrite(hFile, var);
    format(var, 32, "CarPos_z=%.3f\n",PlayerCar[playerid][x][CarPos_z]);fwrite(hFile, var);
    format(var, 32, "CarRotate=%.3f\n",PlayerCar[playerid][x][CarRotate]);fwrite(hFile, var);
    format(var, 32, "CarNitro=%d\n",PlayerCar[playerid][x][CarNitro]);fwrite(hFile, var);
    format(var, 32, "CarHyd=%d\n",PlayerCar[playerid][x][CarHyd]);fwrite(hFile, var);
    format(var, 32, "CarWheel=%d\n",PlayerCar[playerid][x][CarWheel]);fwrite(hFile, var);
    format(var, 32, "CarAusp=%d\n",PlayerCar[playerid][x][CarAusp]);fwrite(hFile, var);
    format(var, 32, "CarSideL=%d\n",PlayerCar[playerid][x][CarSideL]);fwrite(hFile, var);
    format(var, 32, "CarSideR=%d\n",PlayerCar[playerid][x][CarSideR]);fwrite(hFile, var);
    format(var, 32, "CarFB=%d\n",PlayerCar[playerid][x][CarFB]);fwrite(hFile, var);
    format(var, 32, "CarRB=%d\n",PlayerCar[playerid][x][CarRB]);fwrite(hFile, var);
    format(var, 32, "CarSpoiler=%d\n",PlayerCar[playerid][x][CarSpoiler]);fwrite(hFile, var);
    format(var, 32, "CarRoof=%d\n",PlayerCar[playerid][x][CarRoof]);fwrite(hFile, var);
    format(var, 32, "CarHood=%d\n",PlayerCar[playerid][x][CarHood]);fwrite(hFile, var);
    format(var, 32, "CarVents=%d\n",PlayerCar[playerid][x][CarVents]);fwrite(hFile, var);
    format(var, 32, "CarLamps=%d\n",PlayerCar[playerid][x][CarLamps]);fwrite(hFile, var);
    format(var, 32, "CarPJ=%d\n",PlayerCar[playerid][x][CarPJ]);fwrite(hFile, var);
    format(var, 32, "CarC1=%d\n",PlayerCar[playerid][x][CarC1]);fwrite(hFile, var);
    format(var, 32, "CarC2=%d\n",PlayerCar[playerid][x][CarC2]);fwrite(hFile, var);
    format(var, 32, "Preis=%d\n",PlayerCar[playerid][x][CarPreis]);fwrite(hFile, var);
    format(var, 32, "CarArrest=%d\n",PlayerCar[playerid][x][CarArrest]);fwrite(hFile, var);
    format(var, 32, "Plate=%s\n",PlayerCar[playerid][x][Plate]);fwrite(hFile, var);
    format(var, 32, "NeonID=%d\n",PlayerCar[playerid][x][NeonID]);fwrite(hFile, var);
    fclose(hFile);
    }
    }
    }
    }
    }

    Auf Anfrage in PN:


    Poste bitte den Code, der dir diese Nachricht ausgibt, und poste wie du die Krankenwägen erstellst (sowohl die funktionierenden, als auch die nicht funktionierenden).

    So sollte es passen:
    ocmd:flock(playerid,params[])
    {
    new Float:X,Float:Y,Float:Z;
    for(new i = 0; i < sizeof(fvInfo); i++)
    {
    GetVehiclePos(fvInfo[i][fvCar],X,Y,Z);
    if(!IsPlayerInRangeOfPoint(playerid,3.0,X,Y,Z)) continue;
    if(fvInfo[i][fvAbgeschlossen] == 0)
    {
    fvInfo[i][fvAbgeschlossen] = 1;
    for(new forplayerid = 0; i < MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(forplayerid)) continue;
    if(fvInfo[i][fvfrakid] == sInfo[forplayerid][pFraktion])
    {
    SetVehicleParamsForPlayer(fvInfo[i][fvCar], forplayerid, 0, 0);
    }
    else
    {
    SetVehicleParamsForPlayer(fvInfo[i][fvCar], forplayerid, 0, 1);
    }
    }
    }
    else if(fvInfo[i][fvAbgeschlossen] == 1)
    {
    fvInfo[i][fvAbgeschlossen] = 0;
    for(new forplayerid = 0; i < MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(forplayerid)) continue;
    SetVehicleParamsForPlayer(fvInfo[i][fvCar], forplayerid, 0, 0);
    }
    }
    return 1;
    }
    return 1;
    }

    Was ist "der CJ Bug"?
    Dass du beim Spawnen immer nur den CJ-Skin bekommst?
    Falls ja, poste dein OnPlayerSpawn und sage, welchen Skin du eigentlich bekommen solltest.

    //OnPlayerDeath
    BleedOutTimer[playerid] = SetTimerEx("BleedOut", 1000/3, true, "i", playerid);
    PlayerTextDrawShow(playerid, BleedoutTD[playerid]);
    zu:
    //OnPlayerDeath
    BleedOutTimer[playerid] = SetTimerEx("BleedOut", 1000/3, true, "i", playerid);
    PlayerTextDrawSetString(playerid, BleedoutTD[playerid], "300/1000");
    PlayerTextDrawShow(playerid, BleedoutTD[playerid]);

    Beim Login:
    SetPVarInt(playerid,"WantedLevel",dini_Int(Spielerdatei,"WantedLevel"));
    zu:
    SetPVarInt(playerid,"WantedLevel",dini_Int(Spielerdatei,"WantedLevel"));
    SetPlayerWantedLevel(playerid, GetPVarInt(playerid,"WantedLevel"));

    SetPlayerPos(playerid, 2003.1178 1015.1948 33.008);
    Zu
    SetPlayerPos(playerid, 2003.1178, 1015.1948, 33.008);


    Der Rest sollte dann passen, zu dem was du vor hast.



    EDIT:
    STRG+H, dann Leerzeichen mit Komma ersetzen.
    Oder in eine Excel Tabelle importieren, und dann nur die drei Koordinaten Spalten raus kopieren, und dort den TAB mit Komma ersetzen.

    Hat sich erledigt, merke das ich die Interior Koordinaten gar nicht einfach so in meinen Befehl einbauen kann, kannst mir sagen wie ich das mache?
    Also in meinem Dialog-Style List Teleport Befehl vordefinierte Teleports einbaue mit einer X, Y, Z und Interior ID? So wie bei /setloc halt nur vorgegeben


    Kannst du das irgendwie mit dem Code den du schon hast erklären, ich weiß nämlich nicht, was du vor hast. Erstelle gegebenenfalls einen neuen Thread, falls es viel Code ist, da das hier dann nicht so übersichtlich ist, falls mehr zu machen ist.

    Was meinst du damit, dass die Nachricht sofort kommt? Du startest keinen Timer. Was sollte verzögert kommen, und um wie viel?

    stock SpielerName(playerid)
    {
    new p_name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, p_name, sizeof(p_name));
    return p_name;
    }


    Ganz unten im Gamemode einfügen.

    if(car == FactionCars[x][CarId])
    zu
    if(car == FactionCars[x][fCarid])


    Sorry. ;)




    EDIT: (Post unten)

    aber das ist falsch


    Du warst einfach zu schnell. :D
    Ich hatte das f keine 5 Sekunden nach dem Post hinzugefügt, hatte es nicht mit-kopiert.