Beiträge von Goldkiller

    Hups,etwas falsch gemacht. Naja,dass hättest du auch selber bemerken müssen.Denn g_iEventCars[i] geht nicht bzw g_iEventCars ist kein Array.
    g_EventCar[i] = INVALID_VEHICLE_ID;

    Mal daran gedacht,dass du ALLE Fahrzeuge der Variable car zuweist und dabei immer den alten Wert überschreibst ?


    Du brauchst dazu erstmal ein Array und eine Variable die zählt,wieviel Einträge du hast. ( Geht auch ohne Variable zum zählen, aber für dich wahrscheinliche so leichter zu verstehen)
    new g_EventCar[ 20 ],g_iEventCars; // Global, angenommen du willst 20 Fahrzeuge
    Beim erstellen,beachtest du jetzt den Index des Arrays.

    g_iEventCars = 0;
    g_EventCar[ g_iEventCars++ ] = AddStaticVehicle(i,1304.2081,2191.1091,11.1571,269.7975,l,m);
    g_EventCar[ g_iEventCars++ ] = AddStaticVehicle(i,1304.2787,2187.8918,11.1897,267.4146,l,m);
    // usw

    Beim zerstören eine Schleife benutzen von 0 bis g_iEventCars und die dazugehörigen Einträge bei g_EventCar zerstören.Danach die Anzahl der EventCars zurücksetzen. Am besten du setzt auch den Eintrag im Array auf ein ungültiges Fahrzeuge.
    for(new i = 0 ; i < g_iEventCars ; i++) {
    DestroyVehicle( g_EventCar[i] );
    g_EventCar[i] = INVALID_VEHICLE_ID;
    }
    g_iEventCars = 0;

    Und keiner der Leute,die 26 Errors haben benutzten die Suchfunktion ebenfalls.
    Also verbieten wir diese am Besten dazu.


    Zitat

    Ich könnte schätzen dass 90% der Community die SuFu nicht benutzen weil sie dazu nicht in der Lage sind.
    Und 70% von den 90% sind Kiddys.


    Schöne Werte, daran wird sich auch bestimmt viel ändern in Zukunft.

    Er meint damit sowas:
    new vehicle;
    vehicle = GetPlayerVehicleID(playerid);


    Bevor du den Text an den Spieler sendest,musst vorher allerdings den Text formatieren.
    Wie das geht und wofür das gut ist,ließt du hier.
    http://wiki.sa-mp.com/wiki/Format


    Orientier dich an folgendem:
    new result[128];
    new number = 42;
    format(result,sizeof(result), "The number is %i.",number); //-> The number is 42.
    Anstatt der Variable number würdest du ( Wenn wir das Beispiel von oben im Post nehmen ) vehicle benutzen. Dann nur noch den Text senden.

    Fügst das Plugin in die server.cfg ein.
    Erstell eine pawn.cfg dort,wo auch pawncc.exe ist und schreib dort folgendes rein:


    Server starten und hoffen das er crasht.Wird er ja eh bei dir.


    //Edit:
    Bevor du fragst wo es ausgegeben wird,in der server log steht die Fehlerbeschreibung.


    Ich zitier mich am besten selber,da dort eine Frage von dir beantwortet wird. Du musst natürlich auch das Script neu kompilieren.

    Zitat

    Kann ich das auch auf meinem gemieteten Server machen?


    Sicher.Nur testet man doch meistens eher lokal,macht aber im Endeffekt keinen Unterschied.

    Fügst das Plugin in die server.cfg ein.
    Erstell eine pawn.cfg dort,wo auch pawncc.exe ist und schreib dort folgendes rein:

    Zitat

    -d3


    Server starten und hoffen das er crasht.Wird er ja eh bei dir.


    //Edit:
    Bevor du fragst wo es ausgegeben wird,in der server log steht die Fehlerbeschreibung.

    Du hast noch sscanf als Plugin eingetragen.
    Probier mal folgendes Plugin.


    [Plugin] crashdetect plugin
    Ließ die Anleitung dazu,denn folgendes ist wichtig ( Jedenfalls für eine genaue Analyse ).


    Zitat


    What is more interesting is to find how this managed to happen... And you can! Just compile that script with symbolic information (pass -d3 flag to the compiler), you will get this:

    Windows oder Linux ?
    Dir fehlen wahrscheinlich Funktionen aus Plugins, zeig zusätzlich noch die Zeile plugins aus der server.cfg . Ob du alle Plugins hast,überprüfst du am besten, indem du mal deine #include<...> Zeilen im Gamemode / Filterscript durchgehst und schaust, ob du auch die ( falls nötige ) Zeile in der server.cfg dafür hast.


    //Edit:
    Ich nehme an du hast Linux ?

    Zitat

    plugins streamer.so sscanf.so mysql.so

    Schön und Gut,dass du eine Funktion postest die nützlich sein könnte,aber:


    • Function - Leute neigen dazu, copy & paste zu machen. Function gibt es standardmäßig nicht.
    • if (PlayerInfo[i][pAdmin] >= level) - Wird bestimmt so nicht jeder haben
    • printf("%s", string); -bringt was ? Vorallem in der Schleife :wacko:

    Das ist ebenfalls nicht richtig,Bibaboring.
    ""uus[128]""
    Das zweite u ist definitiv nicht richtig ;).


    Mal vom Ausgangscode ausgehen:
    ocmd:su(playerid,params[])
    {
    if(!isPlayerInFrakt(playerid,1))return SendClientMessage(playerid,GRAU,"Du bist kein Polizist!");
    new pID,Wantedlevel,reason[128],Nachricht[128];
    if(sscanf(params,"ud",pID,Wantedlevel,reason))return SendClientMessage(playerid,GELB,"/su [id] [Wanted] [Grund]");
    // die sscanf Zeile ist nicht korrekt.
    // du willst 3 Eingabewert ( ID , Wanted , Grund ) , lässt aber nur nach 2 suchen ( u [ pID ] , d [ Wantedlevel ] ). Es fehlt noch ein s für den Grund ( reason).
    if(Wantedlevel<1||Wantedlevel<6)return SendClientMessage(playerid,GRAU,"Gebe bitte eine gültige Wantedzahl ein");
    // Die if Abfrage ist auch nicht richtig.
    // Der zweite Teil müsste Wantedlevel > 6 sein. Denn wenn Wantedlevel < 1 ist,ist es auch < 6
    SetPVarInt(pID,"Wanted",Wantedlevel ++);
    // **
    // Was du dort hast,würde WantedLevel immer nur um 1 erhöhen.
    // Du solltest erst per GetPVarInt den aktuellen "Wanted" Wert abfragen und dann um Wantedlevel erhöhen
    format(Nachricht,sizeof(Nachricht),"**Du hast von Officer %s wanteds bekommen **Grund:%s",SpielerName(playerid),reason);
    SendClientMessage(pID,GELB,Nachricht);
    // Hier wie bei **
    // Nur via GetPlayerWantedLevel abfragen.
    SetPlayerWantedLevel(playerid,Wantedlevel ++);
    return 1;
    }