Beiträge von Equ

    Wenn du möchtest, das ein Befehl für mehre Fraktionen zugänglich sein soll wäre dies die Abfrage dazu:


    if(IstSpielerInFraktion(playerid, 1) || IstSpielerInFraktion(playerid, 2) || IstSpielerInFraktion(playerid, 3) || IstSpielerInFraktion(playerid, 4))




    Grüße

    forward(playerid);





    if (strcmp("/menu", cmdtext, true, 10) == 0)
    {
    if (IsPlayerInRangeOfPoint(playerid,3.0,361.8299,173.6750,1008.3828))
    {
    SendClientMessage(playerid, COLOR_WHITE, "Du bestellst dein Essen.");
    SendClientMessage(playerid, COLOR_WHITE, "Du bist für 15 Sekunden gefreezt.");
    TogglePlayerControllable(playerid,0);
    SetTimerEx("StartMenu",15000,false,"d",playerid); // SetTimerEx verwenden
    return 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Sie sind nicht in der nähe von einem Burger Shot.");
    }
    }



    public StartMenu (playerid)
    {
    TogglePlayerControllable(playerid,1);
    SetPlayerHealth(playerid, 100);
    return 1;
    }

    Was mir auf die Eier geht das Rockstar unbedingt Ändern muss ist.
    Man hat eine Mission, Rennen o.ä abgeschlossen und über $5000 Verdient, und dann kann man ja in der Lobby wählen was man jetzt als nächsten machen möchte.
    Also, Wiederholen, Aktualisieren & Freifahrt.. Man klickt auf Freifahrt weil man halt kein bock mehr hat, und dann ist man nicht der einzige der auf Freifahrt klickt.
    sondern auch noch 2 Andere und dann Spawnt man sieht erstmal 2-3 Sek niemanden, und dann das erste was kommt ist eine Bombe, oder eine Safte Kugel in den Hinterkopf ..
    und das Gesamte Geld ist futsch X( ..


    Die Lösung:


    Die Lösung wäre meine Meinung nach das wenn man eine Mission, Rennen o.ä beenden tut.
    Das man dann für 30-40sek (den Passive) Modus erhalten tut, so das man genug zeit hat sein Geld sicher wegzulagern.
    Weil derzeit ist das wirklich Schlimm, ich gehe meist schon auf "Beenden" und nicht auf Freifahrt weil wenn man auf Beenden klickt Spawn ich manchmal oder glaub sogar immer in meiner Wohnung auch rein.
    Das wäre derzeit die einzige Lösung.



    Grüße




    DDR2 ?! ist das Mainboard noch aus der DDR Zeit oder was ? :DD


    Wenn du dir ein Neues Mainboard zulegen tust, lass es am besten falls du dich nicht damit auskennst,
    von einem PC Spezialisten einbauen kostet zwar etwas aber Sicher ist Sicher ^^



    Grüße

    Equ: was soll da falsch erklärt sein besser als bei dir, der Timer musd unter OnGameMode init
    das du nie sagst sonst ist alles gleich,..

    Es ist nichts falsch? schaut doch mal genau hin es soll unter OnGameModeInit rein aber der forward ist als playerid definiert ?



    forward NAMEVOMTIMER(playerid);


    muss zu


    forward NAMEVOMTIMER();


    public NAMEVOMTIMER(playerid)


    muss zu


    public NAMEVOMTIMER()



    erst dann wäre es richtig.


    Aber halt mal ?
    hat er nicht geschrieben das er ein Level System mit einem PayDay haben möchte?
    dazu brauch man das "playerid" und das wird unter OnGameModeInit nicht funktionieren!


    ===


    -Jede stunde 1respekt punkt
    -8Respekt punkte für lvl2
    -12 für lvl 3
    -16für lvl 4
    und immer so weiter.


    ===


    Das möchte der Thread ersteller doch haben, also ein Level & PayDay System.
    dazu brauch er natürlich einen Timer der mit "playerid" funktioniert



    Grüße


    Falscher erklären kann man es einen nicht ..


    So pass auf du erstellst einen Timer:


    forward PAYDAY(playerid); // Ganz oben unter den includes hinpacken
    SetTimerEx("PAYDAY",1000,false,"d",playerid); // 1000millisek = 1sek | hier wird der Timer ausgeführt




    public PAYDAY(playerid)
    {
    // Was halt passieren soll
    return 1;
    }

    ok Danke :thumbup:


    Habt beide einen DankeDaumen bekommen :love:

    Ich wüsste nur diese Methode:


    // Dies hier packst du einfach ganz nach oben.
    new checkeintritt[MAX_PLAYERS];


    // Dann packst du das hier, unter deiner erstellten funktion OnDialogResponse denke mal du weißt wohin das soll..
    checkeintritt[playerid] = 1;
    SetPlayerCheckPoint(playerid,X,Y,Z);


    // Dann gehst du einfach noch zu OnPlayerEnterCheckpoint.
    OnPlayerEnterCheckPoint();
    {
    if(checkeintritt[playerid] == 1)
    {
    //Hier kannst du nun alles rein packen was passieren soll wenn er den Checkpoint betreten tut.
    }
    return 1;
    }


    Bei fragen melde dich einfach in Skype bei mir hast mich ja ^^


    Grüße dein Equ ♥

    *furtzz*


    Verzeihung.


    Also ich hatte mein PC auch länger als 40STD Mal an er wurde nur recht warm da es im sommer war ^^
    aber das machte nichts da ein Lüfter eingebaut ist. Aber musste sogar zum teil mal selber Pusten *Spaß* ;D



    Da wird schon nichts mit deinem PC passieren, man wird dir nur eine ordentliche Stromrechnung ins Gesicht klatschen aber sonst.. :D



    Grüße


    Das @ Zeichen setzt einen Pointer, funktioniert eigentlich genauso wie forward und public ;)


    mfg. :thumbup:

    Achso, also verstehe ich das jetzt richtig?


    wenn ich es jetzt so machen würde:


    forward Timer1(); // Timer erstellt
    SetTimer("Timer1",1000,1); // Timer ausgeführt
    public Timer1(); // Hier wird der Timer abgerufen was passieren soll ..
    {
    // Inhalt
    }


    wäre es später ein normaler public.


    Würde ich es aber jetzt so machen:


    forward Timer2();
    SetTimer("@Timer2",1000,1);
    @Timer2();
    {
    // Inhalt
    }


    könnte ich den 'public' mit einem '@' Zeichen als public kennzeichnen oder wie?


    Kaliber, dieses '@' Zeichen im Timer hat dies eine bestimme Funktion aufzurufen?
    verstehe nämlich nicht warum du es mit einem '@' Zeichen davor machst und dann die publics @No_Weapons(); nennst ?


    weil ich mach das immer eigentlich so:


    forward verstehtest();
    SetTimer("verstehtest",1000,1);
    public verstehtest();
    {
    // Sachen machen
    return 1;
    }





    Grüße

    Abfrage mit deinem stock:


    if(IstSpielerLevel(playerid,3))return SendClientMessage(playerid,-1,"Du bist kein Level 3 und kannst deswegen keine waffen tragen!"); 


    Pvar direkt abfragen:


    if(GetPVarInt(playerid,"Score") == 3)

    public OnPlayerDisconnect(playerid, reason)
    {
    new file[40], pname[MAX_PLAYER_NAME];
    new Float:x, Float:y, Float:z;
    GetPlayerName(playerid, pname, sizeof(pname));
    format(file, sizeof(file), "/SavePos/%s.txt", pname); // Das '\\' muss du noch zu '/' Ändern nicht 2x '//' sondern nur 1x '/
    if(!dini_Exists(file))
    dini_Create(file);
    GetPlayerPos(playerid, x, y, z);
    dini_FloatSet(file, "posX", x);
    dini_FloatSet(file, "posY", y);
    dini_FloatSet(file, "posZ", z);
    return 1;
    }


    public OnPlayerSpawn(playerid)
    {
    new file[40], pname[MAX_PLAYER_NAME];
    new Float:x, Float:y, Float:z;
    GetPlayerName(playerid, pname, sizeof(pname));
    format(file, sizeof(file), "/SavePos/%s.txt", pname); // Das '\\' muss du noch zu '/' Ändern nicht 2x '//' sondern nur 1x '/'
    if(!dini_Exists(file))
    {
    x = dini_Float(file, "posX");
    y = dini_Float(file, "posY");
    z = dini_Float(file, "posZ");
    SetPlayerPos(playerid, x, y, z);
    return 1;
    }
    else
    {
    SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
    return 1;
    }
    }


    # Edit


    Ich Empfehle dir nehme am besten immer nur die benötigten Ressourcen die auch wirklich gebraucht werden!
    Einige denken sich halt, ach mache ich doch einfach mal einen 256 string schadet ja nicht..
    das frisst nur unnötige Ressourcen ich mach dir mal ein Beispiel:


    FALSCH:


    new string[256];
    format(string,sizeof(string),"Dein name %s",SpielerName(playerid);
    SendClientMessage(playerid,WEIS,string);


    RICHTIG:


    new string[40];
    format(string,sizeof(string),"Dein name %s",SpielerName(playerid); // Denn die Maximale namens länge in SA:MP liegt bei meine ich 25-26 Zeichen oder weniger .. daher würde ich hier bei einfach einen 40 nehmen statt einen 256 String.
    SendClientMessage(playerid,WEIS,string);


    Der Text selbst hat ja nur 9 Zeichen zählt man aber den Namen dazu sind es um die 30-35 Zeichen also würde hierbei ein 256 extrem überflüssig sein also macht man ganz einfach einen 40 Raus.



    Falls du aber mal kein bock hast Zeichen zu zählen so geht es mir auch geht extrem auf die Augen ^^
    - Klick HIER


    Ich hoffe du hast verstanden was ich damit sagen möchte, man sollte einfach nur die Ressourcen verwenden die auch wirklich notwendig sind.



    Grüße

    Ich glaube der Denk Fehler liegt hier:



    //PlayerTextDrawShow(playerid,Textdraw0[playerid]); <-- Hier müsste der Denkfehler sein.
    Textdraw0[playerid] = CreatePlayerTextDraw(playerid, 641.531494, 1.500000, "usebox");
    PlayerTextDrawLetterSize(playerid, Textdraw0[playerid], 0.000000, 49.396297);
    PlayerTextDrawTextSize(playerid, Textdraw0[playerid], -2.000000, 0.000000);
    PlayerTextDrawAlignment(playerid, Textdraw0[playerid], 1);
    PlayerTextDrawColor(playerid, Textdraw0[playerid], 0);
    PlayerTextDrawUseBox(playerid, Textdraw0[playerid], true);
    PlayerTextDrawBoxColor(playerid, Textdraw0[playerid], 255);
    PlayerTextDrawSetShadow(playerid, Textdraw0[playerid], 0);
    PlayerTextDrawSetOutline(playerid, Textdraw0[playerid], 0);
    PlayerTextDrawFont(playerid, Textdraw0[playerid], 0);
    // PlayerTextDrawShow(playerid,Textdraw0[playerid]);// Das Obere weg und dann hier hin



    Grüße

    Kann man ab heute ne bank überfallen? :rolleyes:

    Das Frage ich mich schon die ganze Zeit Rockstar sollte sich mal dazu äußern finde ich (Also mal etwas dazu auf ihrer Seite Schreiben).
    Weil die schmeißen einen Online Trailer,Raus, wo sie dann zeigen das man Banken, Juwelier Geschäft mit Freunden ausrauben kann und dann noch Rennen erstellen kann,
    aber es dann doch nicht Vorhanden ist warum auch immer ...