[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
  • C
    X[0] = Create3DTextLabel("{X", YELLOW,/*X,Y,Z*/, 6.0, 0, 1);
    	Y[0] = CreateDynamicObject(X,/*X,Y,Z...*/, -1, -1, -1, 300.00, 300.00);

    Warum kriege ich ein Tag mismatch in Zeile 1?

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • Hey, ich wollte mal fragen wie man bei einem Script (bzw WestSide) die Preise von den Personalausweiß oder Scheinen ändern kann. Muss man die im Script ändern?

  • Das klingt super danke für die Schnelle Antwort, Aber habe tatsächlich noch nie MapSanAndreas verwendet inwiefern kann man das mit einbinden?

    Damit kannst du genau bestimmen was die Z Koordiante an der X/Y Position ist, bedeutet die genaue Höhe vom boden
    (ist jetzt denke mal nicht für diesen Befehl wichtig, nutzen hatte es bei mir z.B als ich etwas aus der Luft auf den Boden Moven lassen wollte, also ein Object)
    Hier das Plugin
    https://forum.sa-mp.com/showthread.php?t=120013

  • Ich versteh es nicht. Ich will, dass man das TextLabel nicht durch Objekte sehen kann, heißt Testlos = 0

    C
    CreateDynamic3DTextLabel("X", YELLOW,x,y,z, 6.0);

    füge ich hiernach 0, 0 , 0 ein sehe ich das TextLabel nicht einmal



    CreateDynamic3DTextLabel(const text[], color, Float:x, Float:y, Float:z, Float:drawdistance, attachedplayer = INVALID_PLAYER_ID, attachedvehicle = INVALID_VEHICLE_ID, testlos = 0, worldid = -1, interiorid = -1, playerid = -1, Float:distance = 100.0); 

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • Ich versteh es nicht. Ich will, dass man das TextLabel nicht durch Objekte sehen kann, heißt Testlos = 0

    C
    CreateDynamic3DTextLabel("X", YELLOW,x,y,z, 6.0);

    füge ich hiernach 0, 0 , 0 ein sehe ich das TextLabel nicht einmal



    CreateDynamic3DTextLabel(const text[], color, Float:x, Float:y, Float:z, Float:drawdistance, attachedplayer = INVALID_PLAYER_ID, attachedvehicle = INVALID_VEHICLE_ID, testlos = 0, worldid = -1, interiorid = -1, playerid = -1, Float:distance = 100.0); 

    Dann setz die default werte anstatt 0...
    Also INVALID_PLAYER_ID, INVALID_VEHICLE_ID und dann 0 für testlos
    0 sind nämlich für beides valide IDs, also versucht der Streamer des text label an einen Spieler bzw. ein Fahrzeug zu attachen, somit siehst du es nicht.

  • Hey,


    Ist das so richtig @Mogly1


  • Hey,


    Ist das so richtig @Mogly1



    Du musst trotzdem GetPlayerPos nutzen.
    Die MapAndreas funktion gibt dir lediglich eine Z Koordinate zurück, abhängig von den X & Y Koordinaten die du ihr gibst.
    MapAndreas_FindZ_For2DCoord(Float:X, Float:Y, &Float:Z) <- nur Z ist eine referenz

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Moin hab folgendes Problem.


    Sobald ich mein Script compile kommt folgende Errormeldung "error 035: argument type mismatch (argument 3)"
    Ich möchte nämlich bei dem Command "/suspect" hinzufügen das man auch eine Menge eingeben kann an Wanteds die der Spieler erhalten soll


    Hier der Command:



    ocmd:suspect(playerid, params[])
    {
    new pID, reason[64], wanteds, string[256];



    if (!IsACop(playerid)) return SendClientMessageEx(playerid, COLOR_GRAD1, "Du bist kein Staatsbeamter.");
    if (PlayerInfo[pID][pTot] >= 1) return SendClientMessageEx(playerid, COLOR_GRAD1, "Du kannst aktuell keine Wanteds vergeben.");
    if (sscanf(params, "us[64]", pID, reason)) return SendClientMessageEx(playerid, COLOR_GRAD1, "Verwendung: (/su)spect [SpielerID/Name] [Grund]");
    if (!IsLoggedIn(pID)) return SendClientMessageEx(playerid, COLOR_GRAD1, ERROR_OFFLINE);
    if (!IsLoggedIn(pID)) return SendClientMessageEx(playerid, COLOR_GRAD1, ERROR_NOT_LOGGEDIN);
    if (IsACop(pID)) return SendClientMessageEx(playerid, COLOR_GRAD1, "Du kannst Beamten keine Wanteds eintragen.");
    if (PlayerInfo[pID][pJailed] >= 1) return SendClientMessageEx(playerid, COLOR_GRAD1, "Der Spieler ist aktuell im Gefängnis.");
    if (PlayerInfo[pID][pTot] >= 1) return SendClientMessageEx(playerid, COLOR_GRAD1, "Der Spieler ist aktuell tot.");
    if((PlayerInfo[pID][pWantedLevel] + wanteds) > 60) return SendClientMessageEx(playerid, COLOR_GRAD1, "Du kannst maximal nur 60 Wanteds vergeben.");



    PlayerInfo[pID][pWantedLevel] -= wanteds;
    PlayerInfo[pID][pWantedLevel] ++;
    PlayerInfo[pID][pWantedWitness] = playerid;



    SetPlayerCriminal(pID, playerid, wanteds, reason);

    new uhrzeit[32], method[64], query[256];
    format(method, sizeof(method), "suspect %s (%s)", GetFullName(pID), Menge, reason);
    format(uhrzeit, sizeof(uhrzeit), "%02d.%02d.%02d - %02d:%02d", tag, monat, jahr, stunde, minute);
    format(query, sizeof(query), "INSERT INTO `script_coplog` (Player, Method, Amount, Uhrzeit) VALUES ('%s', '%s', '%d', '%s')", GetFullName(playerid), method, PlayerInfo[pID][pWantedLevel], uhrzeit);
    mysql_function_query(myCon, query, false, "", "");
    return 1;
    }


    und bei folgender Zeile kommt der Error


    SetPlayerCriminal(pID, playerid, wanteds, reason);

  • @Awayus:
    Da ich soein "schlechter" Scripter bin
    Du musst natürlich die Funktion umschreiben wenn du die ein Parameter hinzufügst aber das müsste man eigentlich wissen :D

  • Beitrag von palwal ()

    Dieser Beitrag wurde von Eddy aus folgendem Grund gelöscht: Spam ().
  • Hi,
    Ich habe hier Türen, beim öffnen frage ich ab, ob diese Tür bereits offen ist (Zeile 11.)
    Dafür habe ich eine globale Variable erstellt, jetzt habe ich mehrere Türen.


    Es wäre ja nicht schlau, wenn ich in Zeile 16. erneut eine Globale Variable erstelle wie z.b IsDoor2Opened


    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • Dann verwende dafür einfach ein Array.


    Statt new IsDoorOpened; machst du einfach new IsDoorOpened[2];


    Und dann deine Abfrage so:

    new i = /*X*/(playerid);
    if(i == -1) return 1;
    switch(i)
    {
    case 0: //Tür 1
    {
    new Float:x,Float:y,Float:z;
    GetDynamicObjectPos(X[i],x,y,z);
    MoveDynamicObject(Y[i], x-1.6816,y,z,1);
    UpdateDynamic3DTextLabelText(X[i],-1,"/*X*/");
    IsDoorOpened[0] = 1; //is Tür 1 offen
    }
    case 1: //Tür 2
    {
    UpdateDynamic3DTextLabelText(Y[i],-1,"/*X*/");
    IsDoorOpened[1] = 1; //is Tür 2 offen
    }
    }


  • Kleines Problem, folgender Code:


    Die Server Log gibt nicht den Namen der ersten Spalte aus.


    Code
    [05:55:03] Die Fraktion  wurde erfolgreich gespeichert!
    [05:55:03] Die Fraktion Federal Bureau of Investigation wurde erfolgreich gespeichert!



    Ich muss in der Datenbank doch nicht bei null anfangen, oder?