[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
  • Jetzt kann ich das Textdraw nicht mehr öffnen, sobald es in einer andere Funktion wieder gezeigt wird wird es sofort wieder versteckt.
    Liegt es an return 0; ?

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

  • Ich benutzte die Textdraws für eine Funktion, ich will halt, dass wenn ich nachdem das TextDraw versteckt wurde es wieder mit /textdraw anzeige, dass funktioniert nicht.

    C
    ocmd:textdraw(playerid,params[])
    {
    	    new Float:angle;
    	    GetPlayerFacingAngle(playerid,angle);
    	    SelectTextDraw(playerid, 0x00FF00FF);
    	    SetPlayerFacingAngle(playerid,angle);
    		PlayerTextDrawShow(playerid, X);


    Code
    public OnPlayerClickTextDraw(playerid, Text:clickedid)
    {
    	if(_:clickedid == INVALID_TEXT_DRAW)
    	{
    		PlayerTextDrawHide(playerid, X);
    		CancelSelectTextDraw(playerid);
    		return 1;
    }
        return 0;
    }

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

  • C
    public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
    {
    	if(playertextid == INVALID_TEXT_DRAW)
    	{
    		PlayerTextDrawHide(playerid,X);
    		CancelSelectTextDraw(playerid);
    		return 1;
    	}
        return 0;
    }

    Wieder ein Tagmismatch in der if Abfrage. Das Textdraw verschwindet auch nicht.

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

  • if(playertextid == INVALID_TEXT_DRAW)
    zu
    if(playertextid ==PlayerText: INVALID_TEXT_DRAW)


    Warum genau der Code nicht funktioniert, kann ich dir nicht sagen.
    Wenn du nicht gerade ESC drücken solltest, müsste der Code die Funktion auch aufrufen.


    Mysteriös... kann dir dazu spontan jetzt nichts hilfreiches sagen..

  • C
    PlayerTextDrawShow(playerid, X);
    C
    X = CreatePlayerTextDraw(playerid, 66.000000, 47.000000, "");
    C
    public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
    {
    	if(playertextid ==PlayerText: INVALID_TEXT_DRAW)
    	{
    		PlayerTextDrawHide(playerid, X);
    		CancelSelectTextDraw(playerid);
    		return 1;
    	}
        return 0;
    }

    Macht eigentlich nichts, man muss PlayerText: vorher nicht angeben, trotzdem war es ein Versuch wert. Klappt immer noch nicht.


    Diesmal verschwindet das Textdraw nicht einmal bei dem anderen Callback schon

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

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Es ist nicht das OnPlayerClickPlayerTextDraw... Wieso ändert ihr das überhaupt, das Callback wird NIE aufgerufen wenn man die Selektion mit ESC beendet. Mein Callback war schon richtig was ich zu allererst gepostet habe.
    Also machst du folgendes:



    Müsste so eigentlich klappen.

  • Danke euch Bois,
    Wie kann ich es so machen, dass die Zahl z.B 3 und 7 in einer Variable gespeichert werden?
    Heißt ich habe einmal die Zahl 3 und einmal die 7
    3+7 kann ich ja nicht machen, dann kommt 10 raus es soll aber 37 sein

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

  • Was sind das für Warnungen?
    Im Dialog nach Auswahl soll ein Fahrzeug spawnen sprich



    CreateVehicle(411,slx,sly,slz,3,3,-1); // Support InfernusAber immer Warnung : warning 202: number of arguments does not match definition



    Warum? Das Fahrzeug spawnt auch bei mir usw.

  • Warum? Das Fahrzeug spawnt auch bei mir usw.

    Du hast zu wenige Parameter angegeben, du hast die ZAngle (Die Richtung in die das Fahrzeug zeigt) vergessen.


    CreateVehicle(411,slx,sly,slz,0.0,3,3,-1);


    Das Fahrzeug spawnt auch so, weil die 3 als Angle genommen wurde...dadurch wurde aber -1 nur 2. Farbe...und das Auto weiß nun nicht genau, wann es respawnen soll haha xD

    ast2ufdyxkb1.png


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

  • Guten Abend!


    Ich habe die Funktion RemoveUnderscore und die Werte RPVorName und RPNachname. Was muss ich machen, damit ich folgendes machen kann?

    Code
    RemoveUnderscore(UserAccDaten[playerid][user_acc_RPVorName],UserAccDaten[playerid][user_acc_RPNachName]), text);


    Oder gibt es eine Einfachere Löung dass ich Vor- und Nachname in eins geben kann im nachhinein?



    Danke im Voraus


    Allrounder18

  • Oder gibt es eine Einfachere Löung dass ich Vor- und Nachname in eins geben kann im nachhinein?

    Ein simples format:


    format(text, sizeof(text),"%s %s",RemoveUnderscore(UserAccDaten[playerid][user_acc_RPVorName]), RemoveUnderscore(UserAccDaten[playerid][user_acc_RPNachName]));

    ast2ufdyxkb1.png


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

  • Danke, jetzt siehts so aus:



    Code
    public OnPlayerText(playerid, text[])
    {
    	format(text, sizeof(text),"%s %s sagt",RemoveUnderscore(UserAccDaten[playerid][user_acc_RPVorName]), RemoveUnderscore(UserAccDaten[playerid][user_acc_RPNachName]));
        SendClientMessage(playerid,GRAU,text);
    	return 1;
    }

    Jetzt steht da nur der Text im chat und nict ... ... sagt.

  • Danke, jetzt siehts so aus:

    Du kannst ja auch nicht diesen String formatieren.



    C
    public OnPlayerText(playerid, text[])
    {
        new string[144+1];
        format(string, sizeof(string),"%s %s sagt: %s",RemoveUnderscore(UserAccDaten[playerid][user_acc_RPVorName]), RemoveUnderscore(UserAccDaten[playerid][user_acc_RPNachName]),text);
        SendClientMessage(playerid,GRAU,string);
        return 0;
    }

    PS: SendClientMessage sendet nur die Nachricht an dich...entweder SendClientMessageToAll oder SendClientMessageToRange oder so :)

    ast2ufdyxkb1.png


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

  • SendClientMesage war nurzum Testen gedacht, aber dake für den Tipp,


    Ich hab deine Funktion verwendet aber leider weerden die Namennicht angezeigt.


    MfG


    Edit: Das ldie Namen nicht agezeigt Werden, liegt nicht an dieser Funktion.

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