Beiträge von Jeffry

    Habe grade gesehen, dass ich den Parameter nicht geändert habe, sorry.
    ocmd:makeadmin(playerid,params[])
    {
    if(!IsAdmin(playerid,5))return SendClientMessage(playerid,ROT,"Dein Rang ist zu niedrig");
    new pID,a_level,nachricht[145], name[MAX_PLAYER_NAME];
    if(sscanf(params,"ui",pID,a_level))return SendClientMessage(playerid,GRAU,"INFO:/makeadmin [id] [rang]");
    sInfo[pID][alevel]=a_level;
    SpielerSpeichern(pID);
    GetPlayerName(playerid, name, MAX_PLAYER_NAME);
    format(nachricht,sizeof(nachricht),"%s hat dein Adminrang geändert. Neuer Rang: %i",name,a_level);
    SendClientMessage(pID,GRÜN,nachricht);
    GetPlayerName(pID, name, MAX_PLAYER_NAME);
    format(nachricht,sizeof(nachricht),"Du hast den Rang von %s auf Rang %i geändert.",name,a_level);
    SendClientMessage(playerid,GRÜN,nachricht);
    return 1;
    }
    Dann geht's.

    Du musst den Name mit GetPlayerName auslesen:
    ocmd:makeadmin(playerid,params[])
    {
    if(!IsAdmin(playerid,5))return SendClientMessage(playerid,ROT,"Dein Rang ist zu niedrig");
    new pID,a_level,nachricht[145], name[MAX_PLAYER_NAME];
    if(sscanf(params,"ui",pID,a_level))return SendClientMessage(playerid,GRAU,"INFO:/makeadmin [id] [rang]");
    sInfo[pID][alevel]=a_level;
    SpielerSpeichern(pID);
    GetPlayerName(playerid, name, MAX_PLAYER_NAME);
    format(nachricht,sizeof(nachricht),"%s hat dein Adminrang geändert. Neuer Rang: %i",name,a_level);
    SendClientMessage(pID,GRÜN,nachricht);
    GetPlayerName(pID, name, MAX_PLAYER_NAME);
    format(nachricht,sizeof(nachricht),"Du hast den Rang von %s auf Rang %i geändert.",name,a_level);
    SendClientMessage(playerid,GRÜN,nachricht);
    return 1;
    }

    Der X Wert ist die Position PLUS die Größe des nach rechts anklickbaren Bereiches. Der Y Wert ist die geschätzte Höhe.


    Angenommen du erstellst dein Textdraw bei X = 120 und Y = 90. Dann machst du den Text "Hallo Welt" da rein. Sagen wir, der Text ist so groß, dass er in etwa über ein Zehntel deines Bildschirmes geht (musst du abschätzen, oder mit einem Lineal abmessen), dann heißt das 640 durch 10, das wäre 64. Somit ist TextDrawTextSize-X = 120 + 64 = 184.
    Nun misst, bzw. schätzt, du die Höhe des Textdraws, sagen wir mal du bekommst den Text in etwa 20 mal untereinander hin, bis dein Bildschirm von oben nach unten voll damit wäre. Heißt also: 480 durch 20, das gibt 24. Somit wäre TextDrawTextSize-Y = 24.


    Grundsätzlich: Ausprobieren.

    In dem Log sind immer noch die alten Zeiten drin.


    Folgende Schritte:
    Server aus machen
    Server Log löschen
    Server starten
    Server aus machen
    Server starten
    Log posten

    Nur um festzustellen ob der Code das verursacht, schreibe die Funktion so und teste es dann:
    stock RespawnVehicle(playerid,vehicleid)
    {
    /*if(vehicleid==0)return 1;
    if(vehicleid==INVALID_VEHICLE_ID)return 1;
    new Float:tmpdis;
    tmpdis=distanz[vehicleid];
    if(playerid!=INVALID_PLAYER_ID&&playerid!=499)
    {
    RemovePlayerFromVehicle(playerid);
    }
    //format(string,sizeof(string),"Fahrzeug %i wurde respawnt.",vehicleid);
    //owner(string);
    if(sirene[vehicleid]!=0)
    {
    DestroyDynamicObject(sirene[vehicleid]);
    sirene[vehicleid]=0;
    sirenean[vehicleid]=0;
    }
    for(new i=1; i<MAX_AUTOS; i++)
    {
    if(PlayerAuto[i][id_x]==vehicleid)
    {
    if(PlayerAuto[i][a_x]!=0.0) // Zeile 47391
    {
    neonReset(vehicleid);
    DestroyVehicle(PlayerAuto[i][id_x]);
    PlayerAuto[i][id_x]=CreateVehicleEx(PlayerAuto[i][vmodel],PlayerAuto[i][a_x],PlayerAuto[i][a_y],PlayerAuto[i][a_z],PlayerAuto[i][a_a],PlayerAuto[i][vfarbe1],PlayerAuto[i][vfarbe2],0);
    FahrzeugTunen(PlayerAuto[i][id_x]);
    distanz[PlayerAuto[i][id_x]]=tmpdis;
    //SetVehiclePos(vehicleid,PlayerAuto[i][a_x],PlayerAuto[i][a_y],PlayerAuto[i][a_z]);
    //SetVehicleZAngle(vehicleid,PlayerAuto[i][a_a]);
    }
    else if(PlayerAuto[i][lastx]!=0.0)
    {

    neonReset(vehicleid);
    DestroyVehicle(PlayerAuto[i][id_x]);
    PlayerAuto[i][id_x]=CreateVehicleEx(PlayerAuto[i][vmodel],PlayerAuto[i][lastx],PlayerAuto[i][lasty],PlayerAuto[i][lastz],PlayerAuto[i][lastr],PlayerAuto[i][vfarbe1],PlayerAuto[i][vfarbe2],0);
    FahrzeugTunen(PlayerAuto[i][id_x]);
    distanz[PlayerAuto[i][id_x]]=tmpdis;
    PlayerAuto[i][lastx]=0.0;
    }
    else
    {
    neonReset(vehicleid);
    DestroyVehicle(PlayerAuto[i][id_x]);
    PlayerAuto[i][id_x]=CreateVehicleEx(PlayerAuto[i][vmodel],PlayerAuto[i][v_xc],PlayerAuto[i][v_yc],PlayerAuto[i][v_zc],PlayerAuto[i][v_ac],PlayerAuto[i][vfarbe1],PlayerAuto[i][vfarbe2],0);
    FahrzeugTunen(PlayerAuto[i][id_x]);
    distanz[PlayerAuto[i][id_x]]=tmpdis;
    //SetVehiclePos(vehicleid,PlayerAuto[i][v_xc],PlayerAuto[i][v_yc],PlayerAuto[i][v_zc]);
    //SetVehicleZAngle(vehicleid,PlayerAuto[i][v_ac]);
    }

    return 1;
    }
    if(FraktAuto[i][id_x]==vehicleid)
    {
    if(FraktAuto[i][a_x]==0.0)
    {
    neonReset(vehicleid);
    DestroyVehicle(FraktAuto[i][id_x]);
    FraktAuto[i][id_x]=CreateVehicleEx(FraktAuto[i][vmodel],FraktAuto[i][v_xc],FraktAuto[i][v_yc],FraktAuto[i][v_zc],FraktAuto[i][v_ac],FraktAuto[i][vfarbe1],FraktAuto[i][vfarbe2],0);
    FahrzeugTunen(FraktAuto[i][id_x]);
    distanz[FraktAuto[i][id_x]]=tmpdis;
    //SetVehiclePos(vehicleid,FraktAuto[i][v_xc],FraktAuto[i][v_yc],FraktAuto[i][v_zc]);
    //SetVehicleZAngle(vehicleid,FraktAuto[i][v_ac]);
    }
    else
    {
    neonReset(vehicleid);
    DestroyVehicle(FraktAuto[i][id_x]);
    FraktAuto[i][id_x]=CreateVehicleEx(FraktAuto[i][vmodel],FraktAuto[i][a_x],FraktAuto[i][a_y],FraktAuto[i][a_z],FraktAuto[i][a_a],FraktAuto[i][vfarbe1],FraktAuto[i][vfarbe2],0);
    FahrzeugTunen(FraktAuto[i][id_x]);
    distanz[FraktAuto[i][id_x]]=tmpdis;
    //SetVehiclePos(vehicleid,FraktAuto[i][a_x],FraktAuto[i][a_y],FraktAuto[i][a_z]);
    //SetVehicleZAngle(vehicleid,FraktAuto[i][a_a]);
    }
    return 1;
    }
    }
    SetVehicleToRespawn(vehicleid);*/
    return 1;
    }


    Ich weiß, dass das Fahrzeug dann nicht neu spawnt, aber das ist erst mal egal.
    Wenn der Server wieder abstürzt, poste bitte den Log nochmal.

    Nur um sicher zu gehen, dass es an dieser Zeile liegt.
    Kommentiere mal diese Zeile aus:
    if(sscanf(params, "ii", frakID, vehmodel))return SendClientMessage(playerid, Grau, "** Benutze: /addfcar [Fraktions-ID] [Vehicle-Model]");
    zu:
    //if(sscanf(params, "ii", frakID, vehmodel))return SendClientMessage(playerid, Grau, "** Benutze: /addfcar [Fraktions-ID] [Vehicle-Model]");
    frakID = 1;
    vehmodel = 400;


    Mir ist klar, dass der Befehl dann nicht mehr wirklich geht, aber ist die Warnung dann weg?

    Du musst die Größe das anklickbaren Bereiches mit TextDrawTextSize anpassen. https://wiki.sa-mp.com/wiki/TextDrawTextSize Der X Wert ist die Position PLUS die Größe des nach rechts anklickbaren Bereiches. Der Y Wert ist die geschätzte Höhe.


    Angenommen du erstellst dein Textdraw bei X = 120 und Y = 90. Dann machst du den Text "Hallo Welt" da rein. Sagen wir, der Text ist so groß, dass er in etwa über ein Zehntel deines Bildschirmes geht (musst du abschätzen, oder mit einem Lineal abmessen), dann heißt das 640 durch 10, das wäre 64. Somit ist TextDrawTextSize-X = 120 + 64 = 184.
    Nun misst, bzw. schätzt, du die Höhe des Textdraws, sagen wir mal du bekommst den Text in etwa 20 mal untereinander hin, bis dein Bildschirm von oben nach unten voll damit wäre. Heißt also: 480 durch 20, das gibt 24. Somit wäre TextDrawTextSize-Y = 24.


    Beispielsweise:
    TextDrawTextSize(LoginRegisterClick, 283.00 + 40.00, 10.00);