Beiträge von Dudalus

    Nein...falsch falsch...


    CreateVehicle liefert die vehicleid zurück, das Array soll bei der Stelle vehicleid die playerid speichern:



    new vehicleid = CreateVehicle(.......);
    PlayerHasCreated[vehicleid] = playerid;

    Ok, lass uns schnell überlegen:


    • Bangrund in der Datenbank hat den Datentyp TEXT (oder von mir aus auch VARCHAR)
    • Funktion zum Abfragen liefert den Wert INT zurück
    • Darstellung des Wertes als Wert mit dem Datentyp TEXT (sprich in Pawn String(array))


    Siehste den Fehler. Du brauchst eine Funktion, welche dir keinen Int sondern einen String zurückgibt. Such mal nach einer Funktion mysql_GetString oder mach ein einfaches SELECT <field> FROM.....

    Hi


    Schnell per Notepad getippt, ich hoffe es stimmt so. Also der Sinn dahinter ist, dass wenn Du ein Auto erstellt, die Vehicleid als Erstellerwert den Wert von playerid/der des Spielers erhält. Sprich das erstellte fahrzeug wurde vom Spieler x erstellt. Wenn Du es nun löschen willst, vergleichste einfach die Fahrzeugid mit der playerid.


    new PlayerHasCreated[MAX_VEHICLES];


    // Initialisierung
    for(new i = 1; i < MAX_VEHICLES; i++)
    {
    PlayerHasCreated[i] = -1; // -1 stellt einen ungültigen Spieler dar
    }


    // Fahrzeug erstellen
    new id = CreateVehicle(...);
    PlayerHasCreated[id] = playerid; // das Fahrzeug mit der ID wurde vom Spieler playerid erstellt


    // Alle selbst erstellten fahrzeuge löschen
    for(new i = 1; i < MAX_VEHICLES; i++)
    {
    if(PlayerHasCreated[i] == playerid)
    {
    DestroyVehicle(i);
    PlayerHasCreated[i] = -1;
    }
    }


    Gruss


    Edit: So können mehrere Spieler Autos selbe rerstellen, ohne dass sie sich diese gegenseitig weglöschen. Zudem kannst Du so selber mehrere Fahrzeuge erstellen
    Edit 2: Typo entfernt -.-

    mysql_GetInt und dann als 2.Specifier ein %s für Strings ?


    Edit: @Daniel.Miller Wegen deiner PN


    %d = Integer


    %f = Float


    %s = String




    Ich gehe jetzt echt mal davon aus, dass mysql_GetInt keinen String zurückgibt, Banreason aber einen String darstellt und keinen Integer. Ergo, Du versuchst nen Integer als String darzustellen, obwohl der Integer vom Datentyp String sein sollte

    Schau mal GTAIV an, die haben zwar nen Multiplayer, aber so das Gelbe vom Ei ist er auch noch nicht und bis GTA V rauskommt und dann einen Multiplayer rauskommt (sofern) vergeht auch noch eine längere Zeit. Du musst dich einfach das Fragen:

    • Lernst Du Pawn native, sprich Du erstellst Programme damit (Nichts SA-MP mässiges), dann kann ich dir aus eigener Erfahrung sagen: Lass es
    • Lernst Du Pawn mit SA-MP, würd ich dir zu einem Ja raten. Du findest immer wieder etwas zum scripten/programmieren

    Gruss

    Ich glaube Dein Satz passt überhaupt nicht zur Thematik meines Beitrages.
    Jeder der einen Auftrag annimmt, dem geht es wohl primär darum, die erstellten Programmiercodes zu verkaufen! Solltest Du das nicht verstanden haben, so gehe in Dich und schau was ein Marktplatz ist.


    Klar mag es Leute geben die aus "jux und dollerei" Skripte erstellen, aber ich glaube "Suche" & "Biete"-Themen hier sind mit Geld verbunden.

    Nein, sorry Du hast meine Aussage echt nicht verstanden. Es gibt Leute, die scripten auch für den Ruhm (tönt etwas speziell) einer Com.

    Du darfst das nicht in den falschen Hals bekommen was ich geschrieben habe.
    Ich kenn Euch nicht, ich unterstell Euch auch rein gar nichts.


    Ich weiß es auch aus eigener Erfahrung. Die meisten Leute die solche Aufträge anfangen haben keine eigene Projekte etc.. Keine will seine Zeit einfach wegschmeißen, und dass man das Skript ja noch für andere Sachen verwenden kann ist ja schwachsinn. Man muss wieder einiges anpassen und das kostet Zeit und Zeit ist Geld.


    Das muss jetzt auch nicht auf Euch zutreffen aber dass sind nun einmal Tatsachen ;)

    Ist dir auch mal in den Sinn gekommen, dass es Leute(Scripter) gibt, welche sich freuen, wenn ihr Script tagtäglich gespielt wird und die Leute Spass haben ?

    Finde ich zugegebenerweise nicht schlimm dieses Abwerbzeugs. Im Gegenteil, dadurch können wir untreue Mitglieder loswerden. Wem unser Forum gefällt, wird so oder so bleiben und sich nicht verführen lassen. Und wer unser Forum sowieso im Sekundentakt kritisiert, dann ist so eine Abwerbung für denjenigen genau das Richtige.


    Diese Abklatschprojekte werden sowieso nie einen Erfolg erzielen. Außerdem profitieren wir von solchen Abklatschprojekten - da die "schlechten" User von hier dorthin abwandern.


    Generell PNs nach XX Wochen zu erlauben, finde ich sinnlos - und Leute die halt abwerben o.Ä. - sie einfach in die Ignorierliste setzen und einem Mod/Admin melden - dann sind solche Kinder schnell weg vom Fenster.

    Dem kann ich nur zustimmen. Zudem, wo bleibt dann das Forum, wenn man keine anderen Leute kontaktieren kann. Zudem müsste geregelt werden, ob Teamler kontaktiert werden können.


    Mal was anderes, versuch mal auf einer Stack Exchange Seite jemanden zu kontaktieren (was nicht geht), dann merkste erst, wie anpissend es ist, jemanden nicht kontaktieren zu können. Eine solche Beschränkung ist nm

    Unter OnDialogResponse hast Du als Parameter das Array (String) inputtext[], das entspricht deinem Inputtext. Zum Vergleich einfach dne String in einen Integer konvertieren und dann mit dme PVar vergleichen:


    new pin_value = strval(inputtext);
    if(GetPVarInt(playerid, "myPIN") == pin_value)
    {
    }


    Ich würde dir aber empfehlen, deinen PIN als String zu speichern, denn aus einer 0234 wird bei einem Integer 234, was ja nicht mehr deinem ursprünglichen String entspricht.


    Edit: Antwort überarbeitet, um Missverständnis vorzubeugen
    Edit 2: Hier noch ein kleines Tutorial über PVars:


    [ SCRIPTING ] Per-Player Variablen-System (PVars)

    Heute wird goto mehr oder weniger verschrien (In gewissen Hochsprachen ist es nicht mehr mal vorzufinden). Goto hatte früher eigentlich eine andere Bedeutung, als wie es heute verwendet wird. Ich würde dir ans Herz legen, Schleifen zu verwenden, da man hier einerseits eine Abstraktion zum Maschinencode (welcher für Funktionsaufrufe teilweise springt, sprich eine Art goto, aber er kann auch in andere Funktionen springen und nicht nur innerhalb der Funktion) und es andererseits lesbarer ist.


    Ich denke es geht dir darum, eine vehicleid eines weggesperrten Fahrzeuges mit einer Spielervariable zu vergleichen ? Ansonsten müsstest Du mich schnell aufklären, dann kann ich dir ein Codestück liefern

    Ich würde auf die Verwendung von goto hier echt verzichten, benutz von mir aus ein for oder do while, aber kein goto. Nur weil ein Compiler jump und call als Funktionsaufruf ersetzt, ist hier die Benutzung von goto nicht gerechtfertigt. goto ist bei 10 Zeilen noch nicht wirklich schlimm, aber bei sagen wir mal 1000 Zeilen kannste dir selber ins Knie schiessen (Stichwort Modularität).


    Willst Du in einer Iteration ein Item überspringen, lautet dein Keyword continue und nicht goto ;)