Beiträge von Akino Kiritani

    Das liegt wohl daran das ich was vertauscht habe -.-


    #if defined TANK_SYS
    new vid = GetPlayerVehicleID(playerid);
    new engine,lights,alarm,doors,bonnet,boot,objective;
    GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
    if(AUTOX[vehicleid][tank] < 1)
    {
    SendClientMessage(playerid,WHITE," Motor kann nicht gestartet werden da der Tank leer ist!");
    AUTOX[vehicleid][motor_an] = 0;
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    }
    else
    {
    if(healthv > (375.0))
    {
    AUTOX[vehicleid][motor_an] = 1;
    SendClientMessage(playerid,WHITE," Motor wurde gestartet.");
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
    }
    else
    {
    new rando = random(4);
    switch(rando)
    {
    case 0:
    {
    SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    }
    case 1:
    {
    SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    }
    case 2:
    {
    AUTOX[vehicleid][motor_an] = 1;
    SendClientMessage(playerid,WHITE," Motor wurde gestartet.");
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
    }
    case 3:
    {
    AUTOX[vehicleid][motor_an] = 1;
    SendClientMessage(playerid,WHITE," Motor wurde gestartet.");
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
    }
    case 4:
    {
    SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    }
    default:
    {
    SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    }
    }
    }
    }
    #else
    if(healthv > (375.0))
    {
    AUTOX[vehicleid][motor_an] = 1;
    SendClientMessage(playerid,WHITE," Motor wurde gestartet.");
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
    }
    else
    {
    new rando = random(4);
    switch(rando)
    {
    case 0:
    {
    SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    }
    case 1:
    {
    SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    }
    case 2:
    {
    AUTOX[vehicleid][motor_an] = 1;
    SendClientMessage(playerid,WHITE," Motor wurde gestartet.");
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
    }
    case 3:
    {
    AUTOX[vehicleid][motor_an] = 1;
    SendClientMessage(playerid,WHITE," Motor wurde gestartet.");
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
    }
    case 4:
    {
    SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    }
    default:
    {
    SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    }
    }
    }
    #endif
    }
    else
    {
    AUTOX[vehicleid][motor_an] = 0;
    SendClientMessage(playerid,WHITE," Motor wurde ausgemacht.");
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    }
    return 1;
    }
    #endif
    return 0;


    Außerdem war das nicht
    TogglePlayerControllable(playerid,1);
    sondern
    TogglePlayerControllable(playerid,0);
    das du ersetzen solltest. Sorry mein Fehler -.-
    TogglePlayerControllable(playerid,1); // <- bewegbar
    TogglePlayerControllable(playerid,0); // <- nicht bewegbar


    Wenn das immer noch nicht geht musste mal den code posten von dem Schadensystem, wo der Motor dann ausgeht


    //Edit: verbessert
    //Edit: Rechtschreibung

    Du solltest jetzt nicht OnPlayerStateChange unten einfügen, sondern nach OnPlayerStateChange suchen und es dort einfügen
    so:
    public OnPlayerStateChange(playerid,newstate,oldstate)
    {
    new vid = GetPlayerVehicleID(playerid);
    new engine,lights,alarm,doors,bonnet,boot,objective;
    GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
    if(newstate == PLAYER_STATE_DRIVER)
    {
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    //weiterer code von dir
    }
    //weiterer code von dir
    }


    //Edit1 & Edit 3: etwas entfernt
    //Edit2: Ghosty biste verrückt nachher löscht er noch das falsche

    Ja diese Funktion bleibt dann, nur wird der Spieler nicht mehr gefreezt sondern der Motor bleibt aus


    //Edit: Das ganze sieht dann so aus


    #if defined TANK_SYS
    new vid = GetPlayerVehicleID(playerid);
    new engine,lights,alarm,doors,bonnet,boot,objective;
    GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
    if(AUTOX[vehicleid][tank] < 1)
    {
    SendClientMessage(playerid,WHITE," Motor kann nicht gestartet werden da der Tank leer ist!");
    AUTOX[vehicleid][motor_an] = 0;
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    }
    else
    {
    if(healthv > (375.0))
    {
    AUTOX[vehicleid][motor_an] = 1;
    SendClientMessage(playerid,WHITE," Motor wurde gestartet.");
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    }
    else
    {
    new rando = random(4);
    switch(rando)
    {
    case 0:
    {
    SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
    }
    case 1:
    {
    SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
    }
    case 2:
    {
    AUTOX[vehicleid][motor_an] = 1;
    SendClientMessage(playerid,WHITE," Motor wurde gestartet.");
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    }
    case 3:
    {
    AUTOX[vehicleid][motor_an] = 1;
    SendClientMessage(playerid,WHITE," Motor wurde gestartet.");
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    }
    case 4:
    {
    SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
    }
    default:
    {
    SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
    }
    }
    }
    }
    #else
    if(healthv > (375.0))
    {
    AUTOX[vehicleid][motor_an] = 1;
    SendClientMessage(playerid,WHITE," Motor wurde gestartet.");
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    }
    else
    {
    new rando = random(4);
    switch(rando)
    {
    case 0:
    {
    SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
    }
    case 1:
    {
    SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
    }
    case 2:
    {
    AUTOX[vehicleid][motor_an] = 1;
    SendClientMessage(playerid,WHITE," Motor wurde gestartet.");
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    }
    case 3:
    {
    AUTOX[vehicleid][motor_an] = 1;
    SendClientMessage(playerid,WHITE," Motor wurde gestartet.");
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    }
    case 4:
    {
    SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
    }
    default:
    {
    SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
    }
    }
    }
    #endif
    }
    else
    {
    AUTOX[vehicleid][motor_an] = 0;
    SendClientMessage(playerid,WHITE," Motor wurde ausgemacht.");
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
    }
    return 1;
    }
    #endif
    return 0;


    //Edit2: SetVehicleParamsEx(vid,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective); für motor an
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective); für motor aus

    am besten du setzt das bei OnPlayerStateChange ein


    code:
    public OnPlayerStateChange(playerid,newstate,oldstate)
    {
    new vid = GetPlayerVehicleID(playerid);
    new engine,lights,alarm,doors,bonnet,boot,objective;
    GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    return 1;
    }
    Dann ist der Motor aus wenn du einsteigst
    oder halt bei OnPlayerEnterVehicle


    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    new vid = GetPlayerVehicleID(playerid);
    new engine,lights,alarm,doors,bonnet,boot,objective;
    GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    return 1;
    }


    PS: setz nächstes mal deinen code in den [pwn] tag


    //Edit: ungetest müsste aber funktionieren
    //Edit2: du müsstet dann auch TogglePlayerControllable(playerid,1); von deinem Motorsystem mit den VehicleParams ersetzen

    Ma ne frage warum hast du natives im Script stehen?


    SetVehicleParamsEx wird doch so verwendet:


    new engine,lights,alarm,doors,bonnet,boot,objective;
    GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective); // <- für motor aus


    sonst guck einfach in den Tutorials

    Nachdem ich im englschen Forum nochmal geguckt habe, habe ich meine Funktion recodet, diese funktioniert jetzt dank Goldkiller auch :D nur schreibt er jetzt die Zeilen nicht mehr untereinander sondern nebeneinander und damit funktioniert das ganze Script natürlich auch nicht mehr -.-


    Code:
    stock DeleteFrakCar(vehicleid,DateiName[])
    {
    new vmodel = AutoDaten[vehicleid][Model]; //Vehicle Model
    new Float:vx = AutoDaten[vehicleid][vX]; // Vehicle X Achse
    new Float:vy = AutoDaten[vehicleid][vY]; // Vehicle Y Achse
    new Float:vz = AutoDaten[vehicleid][vZ]; // Vehicle Höhe
    new Float:va = AutoDaten[vehicleid][vA]; // Vehicle Rotation
    new vcolorA = AutoDaten[vehicleid][ColorA]; // Vehicle Farbe 1
    new vcolorB = AutoDaten[vehicleid][ColorB]; // // Vehicle Farbe 2


    new DeleteString[256+128];
    format(DeleteString,sizeof(DeleteString),"%d,%d,%.0f,%.0f,%.0f,%.0f,%d,%d",vmodel,vx,vy,vz,va,vcolorA,vcolorB);


    new EineZeileInDerDatei[1024];
    new File:f = fopen(DateiName, io_read);
    new File:temp = fopen("temp.autos", io_write);
    while (fread(f, EineZeileInDerDatei))
    {
    StripNL(EineZeileInDerDatei);
    if (strcmp (EineZeileInDerDatei, DeleteString,true,sizeof(EineZeileInDerDatei)) == 0)
    {
    printf("Diese Zeile wird nicht in die temp Datei geschrieben");
    continue;
    }
    fwrite(temp,EineZeileInDerDatei);
    }
    fclose(f);
    fclose(temp);


    //Überschreibe die Orginal Datei mit der temp Datei
    f = fopen(DateiName, io_write);
    temp = fopen("temp.autos", io_read);
    while (fread(temp, EineZeileInDerDatei))
    {
    StripNL(EineZeileInDerDatei);
    fwrite(f, EineZeileInDerDatei);
    }
    fclose(f);
    fclose(temp);
    fremove("temp.autos");
    return 1;
    }

    Ich finde es wäre sinnvoll nur in einigen Bereichen die Maximalen Zeichen höherzustellen, wie z.B. in Tutorials & Serverwerbung da,
    wie du schonsagtest gute Serverwerbungen ziemlich lang sind ähnlich bei den Tutorials

    Das tue ich nicht.


    Code:
    ocmd:deletecar(playerid,parms[])
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    new vehicleid = GetPlayerVehicleID(playerid);
    switch(GetPVarInt(playerid, "Fraktion"))
    {
    case 0: DeleteCar(playerid,vehicleid,"Fraktionslose.autos");
    }
    }
    else return SendClientMessage(playerid,COLOR_SILVER,"Du bist nicht in einem Auto");
    return 1;
    }
    Ich glaube iwie nicht, das ich Fraktionslose.autos mit format dort eintragen muss


    Ich glaub das problem wird wohl in diesen Zeilen liegen
    Code:
    new DeleteString[256+128]; // Größe ist erstmal egal^^
    format(DeleteString,sizeof(DeleteString),"%d,%d,%.1f,%.1f,%.1f,%.1f,%d,%d",vfrak,vmodel,vehx,vehy,vehz,veha,vcolorA,vcolorB); <- hier vll
    printf("%s",DeleteString);
    if(strcmp(string,DeleteString,true,sizeof(string))==-1){print("Fehler! return -1"); return 0;} <- oder hier
    else if(strcmp(string,DeleteString,true,sizeof(string))==1){print("Fehler! returnt 1"); return 0;} <- bzw hier
    Achja er spuckt mir immer Fehler! return -1 aus


    //Edit: Etwas hinzugefügt

    Hallo Community ich wünsche euch erstmal ein Frohes neues Jahr :D


    Vielleicht könnt ihr mir ja helfen, ich hatte vor eine Zeile aus einer Datei zu löschen, nur wenn ich das versuche sagt er mit die Zeile exestiert nicht.
    Nun hab ich ein wenig rumprobiert und bin zu dem Schluss gekommen, das ich strcmp falsch verwende oder es mit strcmp nicht funktioniert.
    Nun weiß ich nicht mehr weiter und bitte euch um Hilfe.


    Code liegt als pastebin vor



    //Edit: Bevor mir einer kommt ich soll die SUFU & die Wiki nutzen, dazu sag ich nur: Ich habe diese beiden Sacheb bereits genutz und sie haben mich nicht weiter gebracht