[SAMMELTHREAD] Kleine Scripting Fragen

Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • wie baue ich das mit else if rein? Folgender ERROR kommt: error 001: expected token: "*then", but found ";"

    if(strcmp("/loadbenzin", cmdtext, true) == 0)
    {
    if(IsPlayerInRangeOfPoint(playerid, 7.0, 260.0804,1371.4133,10.4647))
    {
    ShowPlayerDialog(playerid, DIALOG_LOADBENZIN, DIALOG_STYLE_LIST, "Loadbenzin", "1000 Liter\n5000 Liter\n8000 Liter", "Einladen", "Abbrechen");
    }
    else
    {
    SendClientMessage(playerid,0xAA3333AA,"Du bist nicht in der Nähe!");
    }
    return 1;
    }

  • Guten Abend,
    ich habe ein WBB 4.1 Forum und möchte das mit meinem Script verbinden, Hauke hat ja "leider" nur für die 3.1.X Version, jetzt habe ich dies hier gefunden.


    Meine Idee war es, das man wie folgt vorgeht:
    Forum Aufrufen -> Benutzer Erstellen -> Nutzer wird in der WCF Datenbank angelegt aber auch zugleich in der SA:MP Datenbank.


    Jetzt ist natürlich die Frage, wie kann ich dies anstellen?


    Mit freundlichen Grüßen.

    Die Missglückte Persönlichkeit, Ciao!

  • @Cireyses
    Dankdir, optimal! :)


    Jetzt könnte ich z.B in meinem Gamemode ja Abfragen ob der Username schon in der SA:MP Tabelle vorhanden ist mit native WBB_GetUserID(Username[], playerid = -1, index = 0) oder Irre ich mich da gerade?


    Mit freundlichen Grüßen.

    Die Missglückte Persönlichkeit, Ciao!

    • Offizieller Beitrag

    Ich weiß nicht genau wie du das alles machen möchtest. Aber es würde doch mehr Sinn machen, die AddUser Funktion innerhalb der Registration zu benutzen.


    Was ich die auch empfehlen kann, ist die Registration komplett über das Forum laufen zu lassen.
    Mit der CheckPassword-Funktion kannst du beim Login die Eingaben mit dem Forum abgleichen. Die UserID
    aus dem Forum benutzt du dann für ingame-relevante Daten, welche du dann in extra Tabellen abspeicherst.


    Du musst nämlich bedenken: Wenn der Spieler das Passwort ändert musst du diese synchronisieren (ggf. auch den Namen).


    Wir lassen alle Accounts über das Forum verwalten. Wobei unsere Accounts über das UCP erstellt werden. (Hat seine Gründe)


    In der Include hast du ja Beispiele, welche Funktionen so existieren. Bedenke auch, dass das ganze über HTTP-Requests läuft, also A-synchron.


    Das ganze ist sehr einfach zu überblicken, wenn dir Funktionen fehlen, dann könntest du diese erweitern/hinzufügen.


    // Zu deiner eigentlichen Frage: Ja.
    // Edit 2: Nicht in deiner SAMP, sondern in deiner WBB-Tabelle.

  • @Cireyses


    Ich wollte es aber so haben, das man sich auf dem SA:MP Server gar keine Registration Funktion gibt, sondern nur im Forum.
    Das man sich im Forum Registriert und dann auch in der SA:MP Tabelle ein Spieler mit dem Namen und das Passwort eingetragen wird.


    MfG.

    Die Missglückte Persönlichkeit, Ciao!

    • Offizieller Beitrag

    Das man sich im Forum Registriert und dann auch in der SA:MP Tabelle ein Spieler mit dem Namen und das Passwort eingetragen wird.

    Wie ich ja sagte, macht das auch Sinn. Aber den Namen und das Passwort extra nochmals in einer Tabelle zu haben nicht. Du kannst doch deine Login-Funktion in SAMP mit den Funktionen über das Forum laufen lassen.
    Daten wie: Fraktion, Waffen usw. speicherst du dann eben ganz normal ab, wie wenn du eine normale Spielertabelle hättest, eben ohne Name und Passwwort usw. Stattdessen aber die UserID vom Forum.


    Du hast also in der Tabelle für jede Spalte eine UserID, welche einem Benutzeraccount im Forum zugewiesen ist. Beim einloggen auf dem Server bekommst du die UserID (oder fragst sie eben an), damit kannst du dann die Daten aus der Datenbank laden.

  • Hatte eh vor ein Multi Char System zu Schreiben.



    Ich müsste ja dann zwei Verbinden zur Datenbank aufbauen, oder kann ich alles über die Datenbank vom Forum laufen lassen und mir dort weitere Tabellen erstellen wie z.B:
    char_account, char_log und Co, oder würde es zu Problemen kommen ?


    MfG.

    Die Missglückte Persönlichkeit, Ciao!

  • Magst mir zeigen wie ich dies am besten anstelle mit zwei Verbindungen ?


    Also, wann sollte ich die Verbindung zur Forum Datenbank herstellen und wann wieder Beenden?
    Oder kann ich zwei Verbindungen gleichzeitig laufen lassen, was ich denke, aber unnötig ist, oder?


    MfG.

    Die Missglückte Persönlichkeit, Ciao!

  • Beitrag von MGPK-1323 ()

    Dieser Beitrag wurde vom Autor gelöscht ().
  • Guten Morgen,
    ich bin dabei ein Multi Char System zu Schreiben, leider hänge ich gerade Fest ...


    Ich möchte gerne, das ein Dialog kommt das dann wie folg z.B ausschaut in einer Liste:


    Test_Test
    *** FREIER SLOT ***
    *** FREIER SLOT ***


    Sprich, hat er ein Char erstellt soll dieser im Dialog aufkommen, hat er zwei, dann zwei, und bei drei dann drei.
    Hat er kein Char, soll im Dialog kommen das überall FREIER SLOT steht.


    Ich weiß nun nicht, wie ich dies am besten anstellen soll, hoffe ihr könnt mir auf die Sprünge helfen.


    MfG.

    Die Missglückte Persönlichkeit, Ciao!

  • Ich weiß nun nicht, wie ich dies am besten anstellen soll, hoffe ihr könnt mir auf die Sprünge helfen.

    Naja...wie soll das schon großartig gemacht werden, hier mal ein paar Beispiele:


    Mit einer Schleife:


    Natürlich ginge es auch mit 3 if-Abfragen, aber packen wir das mit dem ternary Operator zusammen:



    Kannst das letztere natürlich auch mit der Schleife kombinieren...what ever, hoffe das Prinzip ist durch ersteres Beispiel klar geworden xD

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Ja, soweit Gedanken Ansporn bekommen,
    Könnte ich das auch direkt kombinieren mit meiner Datenbank? Wenn ja, wie müsste ich die Schleife dann aussehen lassen?


    MfG.

    Die Missglückte Persönlichkeit, Ciao!

  • Wie kann man Marker erstellen die nur innerhalb eines Teams funtkionieren (SetPlayerTeam)?


    Bsp.: Man geht in eine Fratkion und es werden nur Marker von allen Mitgliedern der Fraktion angezeigt.


    Mein bisheriger Ansatz:


    Code
    for(new i = 0; i < MAX_PLAYERS; i++){
    				if(!IsPlayerConnected(i))continue;
    				if(GetPlayerTeam(playerid) == GetPlayerTeam(i)){
    					SetPlayerMarkerForPlayer(playerid, i, GetPlayerColor(i) & 0xC2A2DAFF);
    					SetPlayerMarkerForPlayer(i, playerid, GetPlayerColor(playerid) & 0xC2A2DAFF);
    				}	
    			}

    Problem: Die Marker werden nicht angezeigt und die Farbe des Namen ändert sich nur bei einem selbst.


    Habe im Script ShowPlayerMarkers(2).


    Bei OnPlayerSpawn  hab ich standardmäßig SetPlayerColor(playerid, 0xFFFFFF00) drinne, Marker sollen nur in dieser Arena (Gangfigt) sichtbar sein .

  • Hey,


    Habe eine Kurze frage warum wird nicht der Name gesetzt als kennzeichen der das Fahrzeug gespawnt hat?