Beiträge von Goldkiller

    Muss ich an dieser Stelle nochmal erwähnen,dass du zu wenig Informationen gibst ?
    Was willst du machen ? Wie willst du es umsetzen ? Dein Problem liegt genau wo ?


    Nebenbei:
    Hast du das System überhaupt selber geschrieben ?! Davon kann ich nämlich gerade nicht ausgehen,da du einfache Anweisungen nicht wirklich verstehst. Sonst frag doch mal den ursprünglichen Autoren des Scriptes.
    Ich hoffe du antwortest auf alles.

    Installier "CrashDetect richtig".


    Das fehlt dir noch, sonst würde hier mehr stehen:

    Zitat

    [11:13:58] [debug] #0 native fclose () [004056c0] from samp-server.exe
    [11:13:58] [debug] #1 00001750 in ?? (0x0001d470) from ApprovedLife.amx
    [11:13:58] [debug] #2 0001d9d0 in ?? (0x00000000) from ApprovedLife.amx


    Du kannst dir auch gerne selber die Meldung durchlesen. Bei welcher Funktion der Crash hervorgerufen wird, steht dort ja. Ich finde zumindest bei dir unter OnPlayerConnect kein fclose() bzw fopen(). Ist wohl irgendwo verschachelt bei dir die Funktion. fclose() crasht nur, wenn fopen() ein ungültigen Verweis gibt. So unrecht hat iSweety also nicht.

    Viel mehr Informationen gibt mir das jetzt auch nicht,da ich jetzt nich getFreeCarID() kenne.
    Denke aber es funktioniert so, wie ich dachte. Ein leerer Slot / Index wird gesucht und dort wird das Fahrzeug dann mit seinen Daten abgelegt.
    Hier ist der Fall: Vehicleid != Index


    Wenn du unbedingt Vehicleid = Index haben möchtest:
    new id=CreateVehicle(model,x,y,z, ...etc); // cInfo[id] kann man hier noch nicht verwenden, da id noch nicht "da ist".
    cInfo[id][id_x]=id;
    cInfo[id][model] = model; // etc


    Wie gesagt, dass ist Speicherverschwendung. Wirklich gut find es das so auch nicht umgesetzt.


    Daher nochmal die andere Methode:

    Zitat

    Ich weiss nicht wie du das System aufziehst, denke aber, dass du hinter "id_x" die vehicleid versteckst.
    Du müsstest also rausfinden in welchem Index des Arrays "cInfo" der Wert von "parkID" dem Wert hinter "id_x" entspricht.
    Wenn du dann den Index gefunden hast,kannst und musst du damit arbeiten in Bezug auf cInfo.

    Du kannst es probieren und es könnte funktionieren.
    Ich sehe aber nirgendwo wie du den Index beim Erstellen festlegst, daher kann ich das nicht beurteilen. Der Wert von CreateVehicle() müsste dann immer als Index gewählt werden, für die Daten des Fahrzeuges.
    Nur am Rande: Es mit MAX_VEHICLES zu machen wäre aber Speicherverschwendung.

    new cInfo[250][carEnum];
    250 wird auch nicht unbedingt reichen.
    parkID = GetPlayerVehicleID(playerid);
    parkID kann also zwischen 1 und 2000 liegen.
    Du tust zZt so,als wäre vehicleid IMMER der richtige Index im Array. Ich glaube aber nicht,dass du das so wirklich von Anfang bis Ende durchziehst da es doch recht fehleranfällig ist.


    Ich weiss nicht wie du das System aufziehst, denke aber, dass du hinter "id_x" die vehicleid versteckst.
    Du müsstest also rausfinden in welchem Index des Arrays "cInfo" der Wert von "parkID" dem Wert hinter "id_x" entspricht.
    Wenn du dann den Index gefunden hast,kannst und musst du damit arbeiten in Bezug auf cInfo.


    Bei /park1 machst du ja auch eine Abfrage, um nur die richtigen Einträge von cInfo zu finden mit:
    if(cInfo[i][id_x]==0)continue;
    if(cInfo[i][besitzer]!=sInfo[playerid][id0])continue;

    Wie denn auch.
    deletePic() ist nicht pic(). Glaube auch das JavaScript meckern wird, weil du den Text nicht richtig als String übergibst.
    Das sollte dir aber per JavaScript in der Konsole auch ausgegeben werden.


    Die beiden Links von mir hast du dir sicherlich auch nicht angeschaut :/.

    Ohne MySQL ? Was hat denn das damit zu tun :-0


    Code
    var node = document.getElementById(pfad);


    Sehe schon nirgendwo, wo du dem Bild eine ID zuweist. Das solltest du schon mal als 1. nachholen.


    Code
    var name = pfad;
        var node = document.getElementById(pfad);


    Wozu brauchst du "name", wenn du sowieso nur "pfad" benutzt :/ ?


    Übrigens kann man JS auch debuggen ( console() ). Ein guter Anfang wäre, sich "pfad" und "node" ausgeben zu lassen.
    Ob du parentNode brauchst,weiss ich nicht ( oder ob es so überhaupt funktioniert ) . Ich hätte das mit jQuery über remove() gemacht.

    Da würden jetzt viele Wege funktionieren. Einfach wäre es wie folgt:
    1) In der Funktion CreateHouse ein "0" returnen, sofern kein Haus erstellt wurde. Sprich, außerhalb der Schleife bzw Zeile 22.
    2) Wenn ein Haus erstellt werden soll, in einer if() Bedingung prüfen ob CreateHouse den Wert "0" zürck gibt. Gibt es 0 zurück, dann "--> es sind schon auf dem Server 5 Häuser.".
    if(CreateHouse(...) == 0 ) // Haus konnte nicht erstellt werden, sofern Punkt 1.

    Wie stirbst du denn ? Selbstmord oder wirst du erschossen ?
    Bei Selbstmord, hast du nämlich einen Fehler drin. Den haben "leider" neben dir auch sehr viele Andere:


    DKill[killerid] ++;
    DDeath[playerid] ++;
    Bei Selbstmord o.Ä. , ist killerid INVALID_PLAYER_ID bzw 65535.
    Macht:
    DKill[65535]++; // Error, index out of bounce. Hier stoppt der Code die weitere Ausführung von OnPlayerDeath
    Wenn man killerid als Index verwendet sollte man sicher sein,dass killerid nicht INVALID_PLAYER_ID ist.
    Siehe auch Wiki Beispiel.

    Weil er erst alle auf den vollständigen (strcmp ) Namen prüfen möchte und danach alle auf den Namen teilweise ( strfind ).
    Bei dir wird jeder Spieler einzelnt erst vollständig und direkt danach teilweise geprüft.
    Das Ergebnis bei dir würde wie in diesem Beitrag nicht dem entsprechen,was Jeffry dort geschrieben hat.



    Bei "Jeff" würdest du immer Jeffry erhalten ( ID 0 ) , nicht Jeff ( ID 1 ).


    Deswegen.


    So wie Jeffry schon schrieb, funktioniert der Code nicht. Ich erkläre auch gerne warum:
    1. Die zusätzliche Prüfung "&& cName == 1" ist nicht ganz so gut mMn. Denn es sorgt dafür, dass immer nur der 1. Teilnahme funktioniert. Angenommen folgender Spieler:
    ID 0: Peter
    ID 1: Pechvogel
    Ich such nach "Pe".
    Identisch ist der ID 0 "Peter" nicht, also strfind() und cName = -1. Da passt es, cName = 0
    Identisch ist ID 1 "Pechvogel" nicht, also strfind() und cName = 0. Da passt es teilweise, aber cName ist nicht mehr -1. Wir bleiben also bei "Peter" ID 0.
    Vom Prinzip her wären es mehrere Treffer, der 1. bleibt aber immer als "gültig" stehen bis ein identischer Treffer vorhanden ist.
    Mehrere Treffer die teilweise passen, sind für mich nicht genau genug.Würde das als ungültige Suche abstempeln.


    2. !cName ist definitiv falsch. Das würde bedeuten,dass ID 0 niemals funktionieren wird falls nach ihm teilweise gesucht wurde. Du hast als ungültig cName = -1 definiert, nicht cName = 0.
    Ebenfalls ist "i" an dieser Stelle nicht mehr gültig. Deswegen hat Kaliber "i" wahrscheinlich nicht in der Schleife deklariert, sondern außerhalb.


    3. Es macht vieles einfacher, wenn man als ungültigen Spieler INVALID_PLAYER_ID verwendet.
    Dann würde man sich den Quatsch bei return sparen.
    cName = INVALID_PLAYER_ID;
    // [...]
    return cName; // Wenn kein Treffer vorhanden ist,ist cName immernoch INVALID_PLAYER_ID. Bei gültigen Treffern,ist cName die richtige ID.



    //Edit:
    Postet doch nur Code, denn ihr getestet habt. Zumindest kompilieren sollte erste Vorraussetzung sein, bevor man hier postet.

    Zitat

    Zudem mag ich es nicht wenn 15 Jährige über einen 26 Jährigen urteilen.


    Wen interessiert wie alt du bist ?
    Überhaupt die Alterskarte spielen ist peinlich und du benimmst dich ganz und gar nicht wie Jemand der 26 Jahre alt sein soll. Ich bin auch keine 15, laber also nicht so einen Quatsch.


    Warum deine Werbung gelöscht wurde:
    Wir brauchen keine Werbung für Server, die öffentlich für Cheats/Hacks werben und so auch den Server. Wirklich gut ist die Werbung auch nicht ( Screenshot der Werbung im weiteren Verlauf des Beitrags ).
    Ist wahrscheinlich der,den du in deiner Signatur noch bewirbst.


    Zitat

    [P4L]Chris@Key:
    Es ging in diesem Fall und meine Serverwerbung, welche freigegeben wurde, er aber wieder gelöscht hat.


    Zitat

    [P4L]Chris@Key:
    und DAS genau ist der Mist, einer sagt ok, der andere sagt, Nö, lösche ich. Wo ist da das Prinzip?


    Hast du dafür auch Beweise ? Ich behaupte du lügst.

    Erstellt: 13.03.2014 23:37
    Gelöscht: 13.03.2014 23:39
    Macht eine Differenz von 2 Minuten. Ich bezweifel sehr stark, dass ein anderer Moderator die Werbung um diese Uhrzeit ( fast Mitternacht ) neben mir gesehen und freigeschaltet hat.
    Zusätzlich, dass es freigeschaltet wurde von Moderator X und ich wenige Sekunden später es wieder gelöscht habe ( 2 Minuten nach Erstellung ).


    Heisst: Erstellung 23:37 -- "Angebliche Freischaltung" 23:37-23:39 -- Löschung 23:39


    Irgendwo in dieser Zeitspanne hätte es Jemand vor mir freischalten müssen aber nur so kurz vor mir, dass ich es noch unter Threads sehen konnte die auf eine Freischaltung warten. Macht die ganze Sache noch unglaubwürdiger die du mir unterstellst. Denn ich und Moderator X hätten auch nochmal etwas Zeit in dieser Zeitspanne gebraucht, um die Werbung "auszuwerten".Das macht das Zeitfenster sehr sehr klein ... .


    Daher ist es für mich jetzt eine "Anschuldigung ohne Beweise", die ich in deinem Fall auch gerne verwarnen werde.
    Du darfst gerne versuchen es zu widerlegen.


    Damit du auch mal siehst wie es aussieht, wenn eine Werbung noch nicht freigeschaltet ist:

    Deine Werbung von Gestern 18:38, die noch nicht freigeschaltet ist.
    Damit auch jeder sich ein Bild von der Qualität / Inhalt deiner Werbung machen kann.
    Werbung, wegen der du dich beschwerst:

    Werbung, die du Gestern um 18:38 erstell hast:


    Zitat

    Ich bin lange genug auf BF und zu wissen wie wann was macht und wie man etwas nicht machen sollte.


    Und ich bin hier noch länger, macht es jetzt einen Unterschied ?
    Werbungen werden nicht automatisch freigeschaltet. Die werden manuell von Moderatoren/Admins freigeschaltet.
    Das sollte man wissen, wenn man schon "lange genug" hier bist.



    - - - - - - - -
    Zu dem letzten Vorfall mit mir, der ja "lange" dauerte:
    Hat wirklich lange gedauert :wacko: .

    4 Nachrichten von mir innerhalb von 16 Minuten. Eigentlich nur 3 um dein Anliegen zu klären, da die letzte PM nur folgendes enthält:
    "Jo, ist okay ;)."



    Ich habe gesagt,was ich sagen wollte.
    Du kannst dich gerne nochmal dazu äußern.



    //Edit: Alte Werbung hinzugefügt.
    //Edit by DMA: Bindestrichbulimie eingedämmt. Besonders nach Fugenlauten …
    //Edit Goldkiller: Achtung, ;).
    //Edit: Wir wollen doch nicht,dass du den Thread vergisst [P4L]Chris@Key.

    Warum postest du dann nicht einfach den Inhalt dieser PHP Dokumente ? Du solltest mittlerweile wissen, dass du solche Information auch bereitstellen solltest musst.


    Es könnte sein,dass dir "session_start()" in den genannten PHP Dokumenten fehlt.