[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
  • if(strlen(inputtext)>0)
    {
    new eingabewert = strval(inputtext);
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    if(name==eingabewert)


    Bekomme hier bei dem name einen Error.


    Und muss ich jetzt für eingabewert einen Array angeben?

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


    Habe nun ein Textdraw erstellt, wenn ich Ingame /ecountdown 10 eingebe, taucht auf Countdown: 9 aber geht nicht weiter runter und bleibt permanent so.


    Zum Code:


    Textdraw:



    Textdraw0 = TextDrawCreate(316.000000, 15.000000, "1");
    TextDrawBackgroundColor(Textdraw0, 255);
    TextDrawFont(Textdraw0, 3);
    TextDrawLetterSize(Textdraw0, 0.500000, 1.000000);
    TextDrawColor(Textdraw0, -65281);
    TextDrawSetOutline(Textdraw0, 0);
    TextDrawSetProportional(Textdraw0, 1);
    TextDrawSetShadow(Textdraw0, 1);
    TextDrawSetSelectable(Textdraw0, 0);


    Public



    forward CountDownObjekte(playerid, count);
    public CountDownObjekte(playerid, count)
    {
    count--;
    if(count <= 0)
    {
    KillTimer(countTimer);
    countTimer = -1;
    //Hier die Objekte erstellen
    gObj[0] = CreateObject(1498,1866.485,-2496.830,5047.411,0.000,0.000,36.199,300.000);
    SetObjectMaterial( gObj[0], 0, 5150, "wiresetc_las2", "ganggraf01_LA_m", 0);
    SetObjectMaterialText(gObj[0], "LOCKED", 0, 50, "Calibri", 15, 1, -65536, 0, 1);
    gObj[1] = CreateObject(1498,1841.824,-2495.508,5047.339,0.000,0.000,335.900,300.000);
    SetObjectMaterial( gObj[1], 0, 5150, "wiresetc_las2", "ganggraf01_LA_m", 0);
    SetObjectMaterialText(gObj[1], "LOCKED", 0, 50, "Calibri", 15, 1, -65536, 0, 1);
    }
    new str[16];
    format(str, sizeof(str), "Countdown: %d", count);
    TextDrawSetString(Textdraw0, str); //Die id musst du halt von deinem textdraw da einfügen...
    TextDrawShowForPlayer(playerid, Textdraw0);
    return 1;
    }



    Befehl



    CMD:ecountdown(playerid,params[])
    {
    if(countTimer != -1) return SendClientMessage(playerid, 0xFF0000FF, "Error: Countdown ist bereits an.");
    if(!params[0]) return SendClientMessage(playerid, 0xFF0000FF, "Gebe eine Zeit ein.");
    new time = strval(params);
    if(time < 1 || time > 60) return SendClientMessage(playerid, 0xFF0000FF, "Gebe eine Zeit zwischen 1 und 60 ein.");
    countTimer = SetTimerEx("CountDownObjekte", 1000, true, "dd", playerid, time);
    return 1;
    }


    Mit freundlichen Grüßen
    JustMe.77 8)


  • tayson87:
    http://wiki.sa-mp.com/wiki/OnPlayerClickTextDraw_DE 8)
    Sonst sende uns einmal deinen Code, da sonst Jeffry: nicht helfen kann/wird :P


    Code ist leider zu viel deswegen meinte ich ja ob jemand über Teamviewer gucken kann :/


    PS: Ist ein MDC System, wollte es für die Community scripten bzw hier dann veröffentlichen. Aber leider kann man nicht die TextDraws anklicken.. habs eig. genau wie auf dem wiki.sa-mp gemacht nur leider kein erfolg...

    Einmal editiert, zuletzt von tayson87 ()

  • Ne Ahnung warum meins nicht funktioniert? 1 älterer Post über uns von mir.


    Hab ich übersehen, sorry. Danke für die Nachfrage.
    Hatte in dem Code vergessen, dass der Timer ja neu gestartet werden muss.


    Schreibe es so:
    forward CountDownObjekte(playerid, count);
    public CountDownObjekte(playerid, count)
    {
    count--;
    if(count <= 0)
    {
    KillTimer(countTimer);
    countTimer = -1;
    //Hier die Objekte erstellen
    gObj[0] = CreateObject(1498,1866.485,-2496.830,5047.411,0.000,0.000,36.199,300.000);
    SetObjectMaterial( gObj[0], 0, 5150, "wiresetc_las2", "ganggraf01_LA_m", 0);
    SetObjectMaterialText(gObj[0], "LOCKED", 0, 50, "Calibri", 15, 1, -65536, 0, 1);
    gObj[1] = CreateObject(1498,1841.824,-2495.508,5047.339,0.000,0.000,335.900,300.000);
    SetObjectMaterial( gObj[1], 0, 5150, "wiresetc_las2", "ganggraf01_LA_m", 0);
    SetObjectMaterialText(gObj[1], "LOCKED", 0, 50, "Calibri", 15, 1, -65536, 0, 1);
    }
    new str[16];
    format(str, sizeof(str), "Countdown: %d", count);
    TextDrawSetString(Textdraw0, str);
    TextDrawShowForPlayer(playerid, Textdraw0);
    countTimer = SetTimerEx("CountDownObjekte", 1000, false, "dd", playerid, count);
    return 1;
    }


    CMD:ecountdown(playerid,params[])
    {
    if(countTimer != -1) return SendClientMessage(playerid, 0xFF0000FF, "Error: Countdown ist bereits an.");
    if(!params[0]) return SendClientMessage(playerid, 0xFF0000FF, "Gebe eine Zeit ein.");
    new time = strval(params);
    if(time < 1 || time > 60) return SendClientMessage(playerid, 0xFF0000FF, "Gebe eine Zeit zwischen 1 und 60 ein.");
    countTimer = SetTimerEx("CountDownObjekte", 1000, false, "dd", playerid, time);
    return 1;
    }

  • Hier der Textdraw:


    MDCMENU[5] = TextDrawCreate(124.000000, 185.062500, "FAHRZEUGSUCHE");
    TextDrawLetterSize(MDCMENU[5], 0.449999, 1.600000);
    TextDrawAlignment(MDCMENU[5], 1);
    TextDrawColor(MDCMENU[5], -1);
    TextDrawSetShadow(MDCMENU[5], 0);
    TextDrawSetOutline(MDCMENU[5], 0);
    TextDrawBackgroundColor(MDCMENU[5], 51);
    TextDrawFont(MDCMENU[5], 1);
    TextDrawSetProportional(MDCMENU[5], 1);


    und hier das clickedid:


    if(clickedid == MDCMENU[5]) // MDC SearchVeh
    {
    ShowPlayerDialog(playerid, DIALOG_MDC_VehicleI, DIALOG_STYLE_INPUT, "San Andreas Police Department || Fahrzeug Akte", "=====================================================\nPOLIZEI COMPUTER "#SAPCVERSION"\n\nSchreibe die ID des gesuchten Fahrzeugs auf! (/dl um die ID zu sehen)\n\n=====================================================\n", "SUCHE", "CLOSE");
    HideMDCMenu(playerid);
    switch(Spieler[playerid][pAdmin])
    {
    case -1:
    {
    TextDrawShowForPlayer(playerid,Reportdraw[4]);
    }
    case 1:
    {
    TextDrawShowForPlayer(playerid,Reportdraw[0]);
    TextDrawShowForPlayer(playerid,Reportdraw[1]);
    }
    case 2,3,4:
    {
    TextDrawShowForPlayer(playerid,Reportdraw[0]);
    TextDrawShowForPlayer(playerid,Reportdraw[1]);
    TextDrawShowForPlayer(playerid,Reportdraw[2]);
    }
    case 5,6:
    {
    TextDrawShowForPlayer(playerid,Reportdraw[0]);
    TextDrawShowForPlayer(playerid,Reportdraw[1]);
    TextDrawShowForPlayer(playerid,Reportdraw[2]);
    TextDrawShowForPlayer(playerid,Reportdraw[3]);
    }
    case 7:
    {
    for(new i4=0;i4<sizeof(Reportdraw);i4++)
    {
    TextDrawShowForPlayer(playerid,Reportdraw[i4]);
    }
    }
    }
    }


    Und hier das Menu das dann aufgerufen wird. Ist doch alles eigentlich richtig ?
    stock ShowMDCMenu(playerid)
    {
    TextDrawShowForPlayer(playerid,MDCMENU[0]);
    TextDrawShowForPlayer(playerid,MDCMENU[1]);
    TextDrawShowForPlayer(playerid,MDCMENU[2]);
    TextDrawShowForPlayer(playerid,MDCMENU[3]);
    TextDrawShowForPlayer(playerid,MDCMENU[4]);
    TextDrawShowForPlayer(playerid,MDCMENU[5]);
    TextDrawShowForPlayer(playerid,MDCMENU[6]);
    TextDrawShowForPlayer(playerid,MDCMENU[7]);
    TextDrawShowForPlayer(playerid,MDCMENU[8]);
    TextDrawShowForPlayer(playerid,MDCMENU[9]);
    TextDrawShowForPlayer(playerid,MDCMENU[10]);
    //TextDrawShowForPlayer(playerid,MDCMENU[11]);
    TextDrawShowForPlayer(playerid,MDCMENU[12]);
    SelectTextDraw(playerid, 0x0080FF);
    }


    PS: Bitte zitieren oder mich markieren, wenn ihr wisst warum bei mir es nicht funkt :/