Beiträge von Jeffry

    if((IsVehicleCar(GetPlayerVehicleID(playerid)) && fsInfo[playerid][Fuehrerschein] == 0) ||
    (IsVehicleMotorBike(GetPlayerVehicleID(playerid)) && fsInfo[playerid][Mottoradschein] == 0) ||
    (IsVehicleBoat(GetPlayerVehicleID(playerid)) && fsInfo[playerid][Bootschein] == 0) ||
    (IsVehicleHeli(GetPlayerVehicleID(playerid)) && fsInfo[playerid][Flugschein] == 0))


    Wenn Auto UND kein Autoschein, DANN entferne.
    etc

    Versuch es erst mal selber, ohne nach 5 Minuten gleich wieder zu posten. So lernst du ja nichts.
    Wenn du es bis morgen Abend nicht geschafft hast, dann mach einen neuen Thread auf und schildere dein Problem. Allerdings sehe ich kein Problem warum du das nicht schaffen sollst, es ist eigentlich alles notwendige schon irgendwo im Code vorhanden, also versuch es einfach mal. Du lernst nur durchs machen, nicht wenn's dir immer andere machen ohne dass du es versucht hast. ;)


    Einen neuen Thread dann. Hier ist fertig.

    Also, da du ja wieder nicht den ganzen Code gepostet hast:
    new Spielerdatei[64];
    entfernen.


    Wenn du immer noch Fehler hast dann schick den ganzen Code + die Fehler.


    Alles markieren => Kopieren => http://www.pastebin.com => Einfügen => Link hier einfügen


    Kannst die Expire Time ja auf 1h stellen.
    Dein Script wird dir eh keiner klauen wollen, und wenn du meinst doch, dann schick es mir per PN, mir egal.
    Aber ich will dir nicht jede Zeile in 10 Posts erklären wie du den Fehler behebst, und danach sind 5 Fehler mehr da als zuvor, wenn du es nicht mal schaffst (so hart es klingt) ein/zwei Wörter richtig zu entfernen.

    if(newstate == PLAYER_STATE_DRIVER)
    {
    if(fsInfo[playerid][Fuehrerschein] != 0 || fsInfo[playerid][Mottoradschein] != 0 || fsInfo[playerid][Bootschein] != 0 || fsInfo[playerid][Flugschein] != 0)
    {
    SendClientMessage(playerid,COLOR_GRAU,"Mit /motor kannst du den Motor anschalten.");
    }
    else
    {
    SendClientMessage(playerid,COLOR_GRAU,"Du besitzt kein Auto/Mottorad/Boot/Flug-schein hol dir ein bei der Fahrschule!");
    RemovePlayerFromVehicle(playerid);
    }
    return 1;
    }


    Die Schleife gehört da nicht hin.

    Lag daran. dass vehid -1 war, und dann im Array abgefragt wird: Array[-1] => Unknown Command.


    ocmd@3:flock,fclock,fcarlock(playerid)
    {
    new i,Float:dis = 5,vehid = -1;
    if(Spieler[playerid][Fraktion] <= 0)return SendClientMessage(playerid,Rot,"Du bist in keiner Fraktion!");
    switch(Spieler[playerid][Fraktion])
    {
    case 3:
    {
    for(i = 0; i<sizeof(FBIVehs); i++)
    {
    GetDistanceBetweenPlayerAndCar(i,playerid);
    if(dis > GetDistanceBetweenPlayerAndCar(i,playerid))
    {
    dis = GetDistanceBetweenPlayerAndCar(i,playerid);
    vehid = i;
    }
    }
    if(vehid != -1)
    {
    if(FCarlock[vehid] == 1)
    {
    FCarlock[vehid] = 0;
    for(new p = 0; p<MAX_SPIELER; p++)
    {
    SetVehicleParamsForPlayer(vehid,p,0,0);
    }
    SendClientMessage(playerid,Gruen,"Du hast das Fahrzeuge aufgeschlossen.");
    }
    else if(FCarlock[vehid] == 0)
    {
    FCarlock[vehid] = 1;
    for(new p = 0; p<MAX_SPIELER; p++)
    {
    SetVehicleParamsForPlayer(vehid,p,0,1);
    }
    SendClientMessage(playerid,Rot,"Du hast das Fahrzeug abgeschlossen.");
    }
    }
    else
    {
    SendClientMessage(playerid,Rot,"Du bist bei keinem Fahrzeug.");
    }
    }
    }
    return 1;
    }

    Auf Anfrage per PM:


    So wie Goldkiller es erklärt hat ist es eigentlich schon richtig, so in der Art, oder ähnlich solltest du es schon machen.
    Hier hast du mal ein Beispiel System: http://forum.sa-mp.com/showthread.php?t=287688


    Ich kann dir vorschlagen, du schaust mal in mein Tutorial zu Interaktiven Dialogen rein, das würde dir hier sicher schonmal sehr helfen:
    [ SCRIPTING ] [jTuT] Interaktive Dialoge


    Ansonsten sollte dir hier klar sein, das ein Freunde System kein System ist das man in 5 Minuten hinklatscht, sondern das wird einige Zeit in Anspruch nehmen, ich spreche da von 10 und mehr Stunden reiner Arbeitszeit. Und längenmäßig wird es weit über deine vorhandenen 40 Zeilen gehen, vor allem wenn du es speichern und laden willst, was ja sinnvoll wäre.

    Lösche einfach das "new Spielerdatei" in den viel Zeilen. Es ist bereits definiert, du musst es nicht nochmal in der gleichen Instanz definieren.

    Dann muß es an was anderem liegen und nicht an dem was der amx backtrace sagt.
    Ich würde dir raten, prüfe einfach mal OnPlayerConnect mit den prints, wenn du sagst es startet sofort neu.


    Ich denke eher, dass es am Code liegt. RAM sollte bei einer Spieler kein Problem sein.

    stock Spielername(playerid)
    {
    new r_name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, r_name , sizeof(r_name) );
    return r_name;
    }


    Unten im GM einfügen, gaaanz unten.



    Edit: Ach bin ich dämlich. Völlig falsch rum geschrieben. Danke Scott_Mitchell:

    Ok, das ist eindeutig zu viel, das musst du selbst debuggen. Ich hab ein paar Dinge getestet, die haben alle getan.


    Füge zwischen die Zeilen immer wieder:
    print("Stelle 1");
    //...code
    print("Stelle 2");
    //...code
    print("Stelle 3");


    ein. Dann arbeitest du dich an die Zeile hin, die als letztes ausgeführt wird. Die folgende Zeile lässt logischerweise den Server abstürzen. Wenn du die Zeile hast, poste sie bitte hier. Das ist leider eine elende Sucharbeit, da muss jeder mal durch. ;)

    Gewöhn dir bitte gleich an, zu jedem Error auch gleich den Code zu posten, dann muss man nicht 100x danach fragen, den wird man immer brauchen.
    Also bitte den Code posten.

    [20:13:29] [debug] #0 native TextDrawSetString () [080d6e10] from samp03svr
    [20:13:29] [debug] #1 004a5444 in public UpdateUhrundDatum () from GeTmyselfmade.amx


    TextDrawSetString in UpdateUhrundDatum hat deinen Server zerlegt. Liegt wohl daran, dass du einen leeren String zuweist.


    Poste mal den Code von UpdateUhrundDatum().

    Steht überhaupt was in der Datenbank drinne? Mach mal einen Screenshot von "Anzeigen". Und stimmt der Tabellenname "cars"?


    Übrigens:
    new downer,dplate,Float:sx,Float:sy,Float:sz,model,colo1,colo2,dprice,dcar,iD,Float:sr;


    zu:
    new downer[16],dplate[20],Float:sx,Float:sy,Float:sz,model,colo1,colo2,dprice,dcar,iD,Float:sr;



    Poste dann bitte nochmal den Code so wie er momentan ist. Da blickt ja keiner mehr durch.



    EDIT: Threadstarter hat das Problem gelöst.

    Es kann sein dass es wegen dem großen I in %i nicht funktioniert, ist eine reine Vermutung.


    Stimmt, da hast du Recht! Hab's grade mal getestet. Ist mir noch nie untergekommen, dass es jemand groß hatte. 8|


    Also:
    Ja: %i
    Nein: %I