[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
  • Danke, was neues dazugelernt :) !


    Noch eine Frage, ich habe mir ein Befehl erstellt, mit dem ich Spieler markieren kann. Wie kann ich das so einrichten, das ich mehrere IDs hintereinander im Befehl eingeben kann?
    z.B /amark 1 3 5 6 9 12 11 10
    (Markiert ID 1,3,5,6,9,12,11 und 10)



    CMD:amark(playerid,params[])
    {



    if(!CheckAdminName(playerid)) return 0;
    new pID, tmp[20], idx;
    tmp = strtok(params, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid,0x6FFFFFFF,"ERROR:: /mark [ID]");
    if(IsNumeric(tmp)) pID = strval(tmp);
    else pID = ReturnPlayerID(tmp);
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,0x6FFFFFFF,"The Player is not online");
    SetPlayerMarkerForPlayer( playerid, pID, 0xFF0033FF );
    return 1;
    }


    Mit freundlichen Grüßen
    JustMe.77 8)

  • Wie kann ich das so einrichten, das ich mehrere IDs hintereinander im Befehl eingeben kann?

    Du kannst dein "tmp" bzw. dein "params" am Komma aufteilen.
    Nutze dazu die "strexplode" Funktion von hier: http://forum.sa-mp.com/showthread.php?t=362764


    Danach kannst du durch den Output loopen, per Schleife, und wenn strlen von Output[ i ] > 0 ist, dann kannst du über ReturnPlayerID die playerid auslesen, wie gehabt.

  • Was für eine Fehlermeldung kommt denn


    Na eben diese:


    XML-Verarbeitungsfehler: Fehler beim Verarbeiten einer Referenz auf eine externe Entität Adresse: jar:file:///C:/Program%20Files%20(x86)/Mozilla%20Firefox/omni.ja!/chrome/toolkit/content/global/netError.xhtml?e=connectionFailure&u=http://localhost/phpmyadmin/&c=UTF-8&f=regular&d=Firefox%20kann%20keine%20Verbindung%20zu%20dem%20Server%20unter%20localhost%20aufbauen. Zeile Nr. 10, Spalte 3:
    %netErrorAppDTD;
    --^


  • Hi, weiß jemand wie ich bei Zamaroth's Textdraw Editor, den Hintergrund eines Textdraws ändere bei dem ich eine Model ID verwende?
    Wenn ich z.B. ein Skin verwende, ist um den Skin immer eine schwarze Box, die möchte ich weg machen, weiß aber nicht wie..


    Mit freundlichen Grüßen
    JustMe.77 8)

  • if(dialogid == 107)
    {
    if(response)
    {
    if(inputtext[3])
    {


    if(SetSpawnInfo(playerid, 0, inputtext, 314.5553, -1774.3304, 4.7110, 180.0000, 0, 0, 0, 0, 0, 0))
    {
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "");
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "(( Der Vorgang war erfolgreich! Du wurdest eingeloggt und gespawnt. ))");
    SpawnPlayer(playerid);
    }
    else
    {
    Kick(playerid);
    }
    }
    }
    }


    Was mach ich falsch? Es kommt immer ein Error, weil eine Variable falsch ist...

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Erklären kann ich es dir nicht, aber schaue dir mal das hier an (ganz unten wird die 3D-Drehung erklärt), vielleicht hilft dir das:
    https://wiki.delphigl.com/index.php/Quaternion


    Die Werte kannst du nutzen, um die Rotation des Fahrzeugs in alle drei Richtungen zu berechnen.
    Hier etwas dazu: http://forum.sa-mp.com/showthread.php?t=167645
    Vor allem die Posts darunter scheinen hilfreich.

  • Hi, wollte Fragen, wie ich abfragen kann ob man bereits einen Account hat oder nicht.
    Hab dies so gemacht, leider funktioniert das nicht.



    if(playertextid == Textdraw42[playerid]) //Einloggen
    {
    if(cache_get_row_count() == 0) return SendClientMessage(playerid, COLOR_WHITE, "Du musst dir erst einen Account erstellen!");
    if(strlen(PlayerInfo[playerid][ppassword]) <= 5) return SendClientMessage(playerid, COLOR_WHITE, "Dein Passwort ist zu kurz mind. 6 Zeichen!");
    {
    new query[128];
    mysql_format(db_handle, query, sizeof(query), "SELECT id FROM accounts WHERE name = '%e'", PlayerInfo[playerid][pname]);
    mysql_pquery(db_handle, query, "OnUserCheck", "d", playerid);
    }
    }
    if(playertextid == Textdraw49[playerid]) //Registrieren
    {
    if(cache_get_row_count() == 1) return SendClientMessage(playerid, COLOR_WHITE, "Du hast bereits einen Account!");
    if(strlen(PlayerInfo[playerid][ppassword]) <= 5) return SendClientMessage(playerid, COLOR_WHITE, "Dein Passwort ist zu kurz mind. 6 Zeichen!");
    {
    new query[256];
    mysql_format(db_handle, query, sizeof(query), "INSERT INTO users (name, password) VALUES ('%e', MD5('%e'))", PlayerInfo[playerid][pname], PlayerInfo[playerid][ppassword]);
    mysql_pquery(db_handle, query, "OnUserRegister", "d", playerid);
    }
    }


    und dazu bekomm ich noch diese Debugs angezeigt.



    [20:53:28] [DEBUG] cache_get_row_count - connection: 1
    [20:53:28] [WARNING] cache_get_row_count - no active cache
    [20:53:28] [DEBUG] mysql_format - connection: 1, len: 256, format: "INSERT INTO users (name, password) VALUES ('%e', MD5('%e'))"
    [20:53:28] [DEBUG] mysql_pquery - connection: 1, query: "INSERT INTO users (name, password) VALUES ('Xtendary', MD5('1234", callback: "OnUserRegister", format: "d"
    [20:53:28] [DEBUG] CMySQLQuery::Execute[OnUserRegister] - starting query execution
    [20:53:28] [ERROR] CMySQLQuery::Execute[OnUserRegister] - (error #1146) Table 'db_samp.users' doesn't exist
    [20:53:28] [DEBUG] CMySQLQuery::Execute[OnUserRegister] - error will be triggered in OnQueryError


    Mit freundlichen Grüßen
    Grapefruit


  • forward IstAccountVorhanden(playerid);


    //Abfrage - senden
    mysql_format(db_handle, query, sizeof(query), "SELECT id FROM accounts WHERE name = '%e'", PlayerInfo[playerid][pname]);
    mysql_pquery(db_handle, query, "IstAccountVorhanden", "d", playerid);


    //Abfrage - wiedergeben
    public IstAccountVorhanden(playerid)
    {
    new num_rows,num_fields;
    cache_get_data(num_rows, num_fields, db_handle);
    if(num_rows)
    {
    return SendClientMessage(playerid, COLOR_WHITE, "Du hast bereits einen Account!");
    }
    return SendClientMessage(playerid, COLOR_WHITE, "Du musst dir erst einen Account erstellen!");
    }



  • Es gibt doch diese "Skin-Dialoge". Wo du Models in einen Dialog laden kannst. Ich hab nur absolut keine Ahnung wie die heißen. Würde die gerne nutzen. Hat jemand einen SAMP Wiki Link für mich?


    #edit: super, jetzt hab ichs auch gefunden. :D

  • Guten Tag,


    wie mache ich einen Teamausgleich?


    Beispiel:


    Team 1: 25
    Team 2: 24
    system checkt: In Team 1 sind mehr als in Team 2. Somit geht der Spieler Automatisch zu Team 2.


    -> Ich hatte schon Vermutungen mit If abfage und < > aber genau komme ich einfach nicht drauf.

    Mit freundlichen Grüßen
    [KoSoVa] :klugs:

  • Hi, hab 2 Fragen.


    1 Frage:
    Nach einem relog verschwindet eine Textdraw Box die aber vor dem relog noch da war. Die anderen Textdraws sind vorhanden nur die Box nicht.



    Textdraw0[playerid] = CreatePlayerTextDraw(playerid, 641.666687, 399.307403, "Balkenu");
    PlayerTextDrawLetterSize(playerid, Textdraw0[playerid], 0.000000, 5.214200);
    PlayerTextDrawTextSize(playerid, Textdraw0[playerid], -2.000000, 0.000000);
    PlayerTextDrawAlignment(playerid, Textdraw0[playerid], 1);
    PlayerTextDrawColor(playerid, Textdraw0[playerid], 0);
    PlayerTextDrawUseBox(playerid, Textdraw1[playerid], true);
    PlayerTextDrawBoxColor(playerid, Textdraw1[playerid], 255);
    PlayerTextDrawSetShadow(playerid, Textdraw0[playerid], 0);
    PlayerTextDrawSetOutline(playerid, Textdraw0[playerid], 0);
    PlayerTextDrawBackgroundColor(playerid, Textdraw0[playerid], 255);
    PlayerTextDrawFont(playerid, Textdraw0[playerid], 0);


    2 Frage:
    Ich möchte Anzeigen lassen, wie viele Teammitglieder zurzeit Online sind als Textdraw, das problem ist es zeigt Ingame nicht an.



    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(PlayerInfo[playerid][padmin] > 1)
    {
    new string3[80];
    format(string3, sizeof(string3), "Davon sind ~r~%i~n~~w~Teammitglieder Online!", i);
    PlayerTextDrawSetString(playerid, Textdraw21[playerid], string3);
    }
    }


    Ich bedanke mich schon mal im Voraus :)


    Mit freundlichen Grüßen
    Grapefruit


    • for(new i = 0; i < MAX_PLAYERS; i++)
    • {
    • if(PlayerInfo[playerid][padmin] > 1)
    • {
    • new string3[80];
    • format(string3, sizeof(string3), "Davon sind ~r~%i~n~~w~Teammitglieder Online!", i);
    • PlayerTextDrawSetString(playerid, Textdraw21[playerid], string3);
    • }
    • }

    zu



    • new var = 0;
    • for(new i = 0; i < MAX_PLAYERS; i++)
    • {
    • if(PlayerInfo[playerid][padmin] > 1)
    • {
    • var++;
    • }
    • }
    • new string3[80];
    • format(string3, sizeof(string3), "Davon sind ~r~%i~n~~w~Teammitglieder Online!", var);
    • PlayerTextDrawSetString(playerid, Textdraw21[playerid], string3);


    Bitteschön :)