Beiträge von Zone

    Hallo Leute !
    Ich habe mal so ne Frage.
    Ich würde gerne wissen ob es möglich ist,
    über einen Befehl einen neuen Textdraw zu erstellen.
    Und die Anzahl der Textdraws soll in einer Variable gespeichert werden.
    Wenn nun ein neuer Textdraw gemacht wird,
    soll dieser eine Zahl zugeordnet bekommen:
    Anzahl der Textdraws + 1.


    Wäre cool wenn mir das einer erklären könnte ^^

    das weiß ich aber wie soll ich die genaue mitte herraus finden und wie soll ich es machen das es so genau wie mögleich an der genze lang geht?

    Hm, man kann so ziemlich die mitte mit dem MTA map editor herausahnen und sich die Koordinaten raus kopiern.
    Und mit der Range ein Bisschen rumprobieren bis es grob funktioniert, denn die Range verläuft glaub ich in einer Kreis form ^^

    Laptopsystem im Dialog, Eingang, Ausgang, Kontakte usw

    Bin ich grad in meinen Reallife Gamemode am rein machen xD
    Dachte das wird wohl kein Server so schnell haben.
    Aber wenn das wer als Fliterscript macht, ist das nichts mehr besonderes :( xD


    b2t: Wie wärs mit so ner Art FAQ Ingame Suchfunkion :D Mit DialogBox.
    EDIT: Text editiert
    EDIT²: Text editiert

    C:\Users\Admin\Desktop\Spiele\Server 2#\gamemodes\Script200.pwn(531) : error 017: undefined symbol "dcmd" C:\Users\Admin\Desktop\Spiele\Server 2#\gamemodes\Script200.pwn(532) : error 017: undefined symbol "dcmd_giveweapon"

    Mach ma auch oben hin:


    #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1

    Es könnte so gehen,
    Du fragst ab ob der Spieler in einer Bestimmten Reichweite von einem Punkt ist.
    Das geht ja wie wir alle wissen so:
    if(IsPlayerInRangeOfPoint(playerid,range,Float:X,Float:Y,Float:Z)
    {
    //Do Something here
    }
    Wenn dies geschiet, kannst du die Zeit wohl mit SetPlayerTime ändern
    Link zum Wiki
    Als Beispiel kann man das schon Standart vorhandene Filterscript gl_realtime benutzen.!
    //
    // Keeps the in game time synced to the server's time and
    // draws the current time on the player's hud using a textdraw/
    // (1 minute = 1 minute real world time)
    //
    // Kye 2009


    #include <a_samp>
    #pragma tabsize 0


    //--------------------------------------------------


    new Text:txtTimeDisp;
    new hour, minute;
    new timestr[32];



    forward UpdateTime();


    //--------------------------------------------------



    public UpdateTime()
    {
    gettime(hour, minute);
    format(timestr,32,"d:d",hour,minute);
    TextDrawSetString(txtTimeDisp,timestr);

    SetWorldTime(hour);

    new x=0;
    while(x!=MAX_PLAYERS) {
    if(IsPlayerConnected(x) && GetPlayerState(x) != PLAYER_STATE_NONE) {


    SetPlayerTime(x,hour,minute); // Das wäre die Realtime ! Diese am besten in der Hauptstadt verwenden


    }
    x++;
    }
    }


    //--------------------------------------------------


    public OnGameModeInit()
    {
    // Init our text display
    txtTimeDisp = TextDrawCreate(605.0,25.0,"00:00");
    TextDrawUseBox(txtTimeDisp, 0);
    TextDrawFont(txtTimeDisp, 3);
    TextDrawSetShadow(txtTimeDisp,0); // no shadow
    TextDrawSetOutline(txtTimeDisp,2); // thickness 1
    TextDrawBackgroundColor(txtTimeDisp,0x000000FF);
    TextDrawColor(txtTimeDisp,0xFFFFFFFF);
    TextDrawAlignment(txtTimeDisp,3);
    TextDrawLetterSize(txtTimeDisp,0.5,1.5);


    UpdateTime();
    SetTimer("UpdateTime",1000 * 60,1);


    return 1;
    }


    //--------------------------------------------------


    public OnPlayerSpawn(playerid)
    {
    TextDrawShowForPlayer(playerid,txtTimeDisp);


    gettime(hour, minute);
    SetPlayerTime(playerid,hour,minute);


    return 1;
    }


    //--------------------------------------------------


    public OnPlayerDeath(playerid, killerid, reason)
    {
    TextDrawHideForPlayer(playerid,txtTimeDisp);
    return 1;
    }


    //--------------------------------------------------


    public OnPlayerConnect(playerid)
    {
    gettime(hour, minute);
    SetPlayerTime(playerid,hour,minute);
    return 1;
    }


    //--
    Und nun kann man im Timer der Schon vorhanden ist (public UpdateTime())
    Abfragen ob der Spieler sich halt in der Nähe eines Punktes befindet.
    also:
    public UpdateTime()
    public UpdateTime()
    {
    gettime(hour, minute);
    format(timestr,32,"%02d:%02d",hour,minute);
    TextDrawSetString(txtTimeDisp,timestr);

    SetWorldTime(hour);

    new x=0;
    while(x!=MAX_PLAYERS) {
    if(IsPlayerConnected(x) && GetPlayerState(x) != PLAYER_STATE_NONE) {
    if(IsPlayerInRangeOfPoint(playerid,Float:Range,Float:X,Float:Y,Float:Z)// Bitte die Floats durch deine Ersetzen!
    {
    SetPlayerTime(x,hour,minute); // Das wäre die Realtime ! Diese am besten in der Hauptstadt verwenden
    }
    else if(IsPlayerInRangeOfPoint(playerid,Float:Range,Float:X,Float:Y,Float:Z)// Bitte die Floats durch deine Ersetzen!
    {
    SetPlayerTime(x,hour -= 1,minute); // Hier wird in einer anderen "Posotion" gesagt, dass es eine Stunde Unterschied gibt.
    }
    if(IsPlayerInRangeOfPoint(playerid,Float:Range,Float:X,Float:Y,Float:Z)// Bitte die Floats durch deine Ersetzen!
    {
    SetPlayerTime(x,hour -= 2,minute); // Hier wird die Zeit um 2 Stunden nach hinten versetzt!
    }
    }
    x++;
    }
    }
    Bitte die Floats durch eigene ersetzen!
    Ist ungetestet, weiss nicht ob es so geht, bin ja noch anfänger xD


    EDIT: Versteckten Text direkt sichtbar gemacht

    Geld geben tust du mit:
    GivePlayerMoney(playerid,1000); // 1000 = der Geld Wert
    Vielleicht nähere angaben, willst du ,dass wenn man z.B. An dem Zoll vorbei geht, dass man dann geld bekommt oder wie? ^^

    Muss ich alle einzelnen Vehicle ID´s abfragen?

    Auf diese Frage habe ich geantwortet, auf die andere konnt ich leider keine geben.
    Also chill ma.



    EDIT: Dann lag da ein missverständnis vor.Ich habe dir lediglich auf die Frage : Muss ich alle einzelnen Vehicle ID's geantwortet mit der Antwort : NEIN denn ... Wenn du mit der Frage meintest, ob du zum Beispiel die MODEL ids abfragen musst, dann hat die Frage mit den Vehicle IDs ein doch schon größeres missverständnisskeitspotenzial (jaja langes wort ^^)

    Ich glaube du brauchst nicht jede ID abfragen denn:
    new VehicleID;
    VehicleID = GetPlayerVehicleID(playerid);

    Und nun musst du eben überprüfen ob es ein Viertürer ist... (Weisst nicht wie das geht)
    Bin neu beim Scripten und hoffe,dass ich nun keinen Quark gelabert habe ^^


    EDIT : TEXT EIN WENIG UMGESCHRIEBEN ^^


    EDIT² : text wieder ein bisschen umgeschrieben ^^

    Fenster ist gut, man kann es mit einem dilog mahcen oder mit einem Textdraw, mir persönlich fällt der textdraw besser, nur ist dort das Problem das du machen müsst das dieser nach einiger zeit aus geht beim Dilog kann es einfach weg geklickt werden.

    Das mit dem Textdraw könnte man auch so lösen:


    Wir nehmen als Beispiel den Befehl "/stats".
    Wir brauchen eine Variable für den Spieler die kann z.B.: "sStatus" heißen.
    Diese ist beim Einlogen natürlich auf 0.
    Nun kann man bei dem /stats Befehl überprüfen ob die Variable sStatus auf 0 ist, und anschließend läst man Folgendes Passieren:
    Man "zeigt" dem Spieler den Textdraw und setzt die Variable sStatus auf 1.
    Wiederum kann man auch Abfragen ob die Variable sStatus auf 1 gesetzt ist.
    Dann "versteckt" man den Textdraw und setzt die Variable wieder auf 0.
    Fertig :D

    Wenn du nicht willst, dass man wieder ins Auto einsteigen kann und los fahren kann, dann mach doch eine Abfrage bei OnPlayerEnterVehicle ob eine Variable
    einen von dir bestimmten Wert hat.