Parken Command

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
  • if(!strcmp(strget(cmdtext,0),"/parken"))
    {
    new veh = GetPlayerVehicleID(playerid);
    new Float:X, Float:Y, Float:Z;
    new Parkplatz = GetVehiclePos(veh,X, Y, Z);
    new name[MAX_PLAYER_NAME];
    new carsave[256];
    format(carsave,sizeof(carsave),"Autos/%s.ini",name);
    if(pInfo[playerid][car] == veh)
    {
    new newstate=GetPlayerState(playerid);
    if(newstate!=PLAYER_STATE_DRIVER)
    {
    SendClientMessage(playerid,COLOR_RED,"Du bist nicht der Fahrer!");
    return 1;
    }
    GameTextForPlayer(playerid, "~g~ geparkt", 3000, 4);
    pInfo[playerid][parkplatz] = Parkplatz;
    }
    return 1;
    }


    Das ist mein Park CMD,
    er speichert ja jetzt in der Datei x,y,z ab.
    Aber wie mach ich, dass das Auto bei GamemodeInit geladen wird?
    Es müsste ja ungefähr so aussehen:


    for(new i=0;i<MAX_VEHICLES;c++)
    {
    new vehpos;
    vehpos = pInfo[i][parkplatz];
    SetVehiclePos(vehpos);
    }

  • if(!strcmp(strget(cmdtext,0),"/parken"))
    {
    new veh = GetPlayerVehicleID(playerid);
    new Float:X, Float:Y, Float:Z;
    GetVehiclePos(veh,X, Y, Z);
    new name[MAX_PLAYER_NAME];
    new carsave[256];
    format(carsave,sizeof(carsave),"Autos/%s.ini",name);
    new State=GetPlayerState(playerid);
    if(State!=PLAYER_STATE_DRIVER)
    {
    SendClientMessage(playerid,COLOR_RED,"Du bist nicht der Fahrer!");
    return 1;
    }
    if(!dini_Exists(carsave))
    {
    dini_Create(carsave);
    }
    GameTextForPlayer(playerid, "~g~ geparkt", 3000, 4);
    veh = pInfo[playerid][car];
    X = pInfo[playerid][px];
    Y = pInfo[playerid][px];
    Z = pInfo[playerid][px];
    dini_IntSet(carsave,"veh",pInfo[playerid][car]);
    dini_IntSet(carsave,"X",pInfo[playerid][px]);
    dini_IntSet(carsave,"Y",pInfo[playerid][py]);
    dini_IntSet(carsave,"Z",pInfo[playerid][pz]);
    return 1;
    }


    So sieht er jetzt aus doch inner ini Datei gibt er immer den Wert 0 raus :(

  • if(!strcmp(strget(cmdtext,0),"/parken"))
    {
    new veh = GetPlayerVehicleID(playerid);
    new Float:X, Float:Y, Float:Z;
    GetVehiclePos(veh,X, Y, Z);
    new name[MAX_PLAYER_NAME];
    new carsave[256];
    format(carsave,sizeof(carsave),"Autos/%s.ini",name);
    new State=GetPlayerState(playerid);
    if(State!=PLAYER_STATE_DRIVER)
    {
    SendClientMessage(playerid,COLOR_RED,"Du bist nicht der Fahrer!");
    return 1;
    }
    if(!dini_Exists(carsave))
    {
    dini_Create(carsave);
    }
    GameTextForPlayer(playerid, "~g~ geparkt", 3000, 4);
    veh = pInfo[playerid][car];
    pInfo[playerid][px] = X;
    pInfo[playerid][py] = Y;
    pInfo[playerid][pz] = Z;
    dini_IntSet(carsave,"veh",pInfo[playerid][car]);
    dini_IntSet(carsave,"X",pInfo[playerid][px]);
    dini_IntSet(carsave,"Y",pInfo[playerid][py]);
    dini_IntSet(carsave,"Z",pInfo[playerid][pz]);
    return 1;
    }


    damit kommst wohl ein stückchen näher zum erfolg

  • Danke, doch so hatte ich es ja auch schon versucht, doch er sagt mir tag mismatch :



    C:\Dokumente und Einstellungen\Administrator\Desktop\O3N.pwn(624) : warning 213: tag mismatch
    C:\Dokumente und Einstellungen\Administrator\Desktop\O3N.pwn(625) : warning 213: tag mismatch
    C:\Dokumente und Einstellungen\Administrator\Desktop\O3N.pwn(626) : warning 213: tag mismatch


    Tag mismatch bedeutet ja, dass etwas nicht richtig stimmt, also nen code falsch geschrieben hat...

  • Das kann eigentlich nicht sein, aber hier sind drei Fehler:
    dini_IntSet(carsave,"veh",pInfo[playerid][car]);
    dini_IntSet(carsave,"X",pInfo[playerid][px]);
    dini_IntSet(carsave,"Y",pInfo[playerid][py]);
    dini_IntSet(carsave,"Z",pInfo[playerid][pz]);


    Die letzten drei müssen Float und nicht Int sein.
    also dini_FloatSet oderso..weiß nicht wie das bei DINI heißt.

  • Also :
    Jetzt hab ich 2 Probleme. Er zeigt mir inner ini Datei die Fahrzeug ID 15 an obwohl es 460 sein müsste:

    Veh=15
    Xpos=1191.936767
    Ypos=-1321.471069
    Zpos=13.268428

    Das 2. Problem ist, das Auto wird nicht gespawnt:



    new vehx;
    new vehy;
    new vehz;
    new veh;
    new carsave[256];
    new name[MAX_PLAYER_NAME];
    format(carsave,sizeof(carsave),"Autos/%s.ini",name);
    veh = dini_Int(carsave, "Veh");
    vehx = dini_Int(carsave, "Xpos");
    vehy = dini_Int(carsave, "Ypos");
    vehz = dini_Int(carsave, "Zpos");
    CreateVehicle(veh, vehx, vehy, vehz, 320, 0, 1, 60);


    if(!strcmp(strget(cmdtext,0),"/parken"))
    {
    new currentveh;
    currentveh = GetPlayerVehicleID(playerid);
    new Float:vehx, Float:vehy, Float:vehz;
    GetVehiclePos(currentveh, vehx, vehy, vehz);
    new name[MAX_PLAYER_NAME];
    new carsave[256];
    format(carsave,sizeof(carsave),"Autos/%s.ini",name);
    new State=GetPlayerState(playerid);
    if(State!=PLAYER_STATE_DRIVER)
    {
    SendClientMessage(playerid,COLOR_RED,"Du bist nicht der Fahrer!");
    return 1;
    }
    if(!dini_Exists(carsave))
    {
    dini_Create(carsave);
    }
    GameTextForPlayer(playerid, "~g~ geparkt", 3000, 4);
    dini_IntSet(carsave, "Veh", currentveh);
    dini_FloatSet(carsave,"Xpos",vehx);
    dini_FloatSet(carsave,"Ypos",vehy);
    dini_FloatSet(carsave,"Zpos",vehz);
    return 1;
    }


    Kp wieso -.-

  • Zu 1:


    if(!strcmp(strget(cmdtext,0),"/parken"))
    {
    new currentveh;
    currentveh = GetPlayerVehicleID(playerid);
    new Float:vehx, Float:vehy, Float:vehz;
    GetVehiclePos(currentveh, vehx, vehy, vehz);
    new name[MAX_PLAYER_NAME];
    new carsave[256];
    format(carsave,sizeof(carsave),"Autos/%s.ini",name);
    new State=GetPlayerState(playerid);
    if(State!=PLAYER_STATE_DRIVER)
    {
    SendClientMessage(playerid,COLOR_RED,"Du bist nicht der Fahrer!");
    return 1;
    }
    if(!dini_Exists(carsave))
    {
    dini_Create(carsave);
    }
    currentveh=GetVehicleModel(GetPlayerVehicleID(playerid));
    GameTextForPlayer(playerid, "~g~ geparkt", 3000, 4);
    dini_IntSet(carsave, "Veh", currentveh);
    dini_FloatSet(carsave,"Xpos",vehx);
    dini_FloatSet(carsave,"Ypos",vehy);
    dini_FloatSet(carsave,"Zpos",vehz);
    return 1;
    }


    ZU 2:
    weil 15 keine richtige Modelid ist kanns nicht gespawnt werden also müsste es eigendlich gehen wenn du frage 1 korrigiert hast.

  • also kenne mich mit dini nit ganz so aus aber muss wenn du beim speichern dini_FloatSet nimmst nicht auch beim auslesen der Position anstatt dini_Int
    dini_Float nehmen also als beispiel:
    aus
    vehx = dini_Int(carsave, "Xpos");
    dass machen:
    vehx = dini_Float(carsave, "Xpos");

  • Also hab jetzt sogar noch FacingAngle eingearbeitet und es funkt immer noch nicht
    Also muss ja was am Spawnen falsch sein:

    public OnPlayerConnect(playerid)
    {
    ...


    new vehx;
    new vehy;
    new vehz;
    new veh;
    new Angle;
    new carsave[256];
    new name[MAX_PLAYER_NAME];
    format(carsave,sizeof(carsave),"Autos/%s.ini",name);
    veh = dini_Int(carsave, "Veh");
    vehx = float:dini_Float(carsave, "Xpos");
    vehy = float:dini_Float(carsave, "Ypos");
    vehz = float:dini_Float(carsave, "Zpos");
    Angle = float:dini_Float(carsave, "Angle");
    CreateVehicle(veh, vehx, vehy, vehz, Angle, 0, 1, 60);
    ...
    return 1;
    }

  • Oktabius, bitte les dir nochmal ein Tutorial zu Variablen durch. Ich glaube du hast das mit Float, bool etc. noch nicht ganz gecheckt.
    So funktioniert es:
    public OnPlayerConnect(playerid)
    {
    ...


    new Float:vehx;
    new Float:vehy;
    new Float:vehz;
    new veh;
    new Float:Angle;
    new carsave[256];
    new name[MAX_PLAYER_NAME];
    format(carsave,sizeof(carsave),"Autos/%s.ini",name);
    veh = dini_Int(carsave, "Veh");
    vehx = dini_Float(carsave, "Xpos");
    vehy = dini_Float(carsave, "Ypos");
    vehz = dini_Float(carsave, "Zpos");
    Angle = dini_Float(carsave, "Angle");
    CreateVehicle(veh, vehx, vehy, vehz, Angle, 0, 1, 60);
    ...
    return 1;
    }
    Kommen bei deinem Script nicht massig Fehler. Mindestens bei CreateVehicle hätte er ein Error haben müssen.

  • Kommen bei deinem Script nicht massig Fehler. Mindestens bei CreateVehicle hätte er ein Error haben müssen.


    nee kam nix. Jetzt bei deinem kommen Errors ^^ naja ich fixx es ma kurz



    // schönen dank erstma, die Fahrzeuge bleiben jetzt gesavt ... wenn ich die Id in der ini eingebe. Immer wenn ich /parken mache mit irgendnem Fahrzeug schreibt er in die Ini die Id 14 rein 8|
    x,y,z,angle werden aber korrekt abgesichert

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