Beiträge von Kaliber


    So ein Quatsch da ist immernoch der Anfangsfehler drinnen :pinch:


    Schreibe es so, wie ich es gemacht habe und es ist richtig :whistling:



    mfg. :thumbup:

    mach ganz oben im Script zu den anderen new's new PROPERTY_OFFSET[MAX_VEHICLES];


    Das ist auch totaler Schwachsinn !


    Du benötigst den #define dafür, schreibe das oben in dein Script:


    #define PROPERTY_OFFSET(%0) \
    ((((%0) * ((%0) << 1)) << 2) + 65536)


    SpielerInfo[playerid][sX], der Array muss so deklariert sein:


    Float:sX,
    Float:sY,
    ...


    mfg. :thumbup:

    Hier einige Vorschläge:


    • Blackdark
    • Darkblack
    • Darkantivir
    • Blackgamer
    • Darkcoder
    • Blackflamer
    • Darkracer
    • Blackwinner
    • Blackdinner


    mfg. :thumbup:

    stock GetPlayerFrac(playerid)
    {
    if(PlayerInfo[playerid][pLeader] > 0){
    return PlayerInfo[playerid][pLeader];
    }
    else if(PlayerInfo[playerid][pMember] > 0){
    return PlayerInfo[playerid][pMember];
    }
    }


    if(GetPlayerFrac(playerid) == 1337){
    SendClientMessage(playerid, COLOR_WHITE, "Du bist Mitglied der 1337-Fraktion.");
    return 1;
    }


    Auch nicht das was der Threadersteller wollte, er wollte schließlich wissen ob der Spieler in einer Fraktion ist und nicht in welcher er ist ;)


    PS: In der Funktion ist ein Fehler, da würde ein Waring kommen, dass nicht immer ein Wert zurückgegeben wird ;)


    mfg. :thumbup:

    Also ist mir nicht klar warum ein neuer Stock?


    Ganz einfach, weil du ihn benötigst...hier nochmal eine Erklärung wieso:


    Zitat

    if(IsPlayerInFrac(playerid, >= 0)))


    So kannst du eine Funktion nicht verwenden, da du einen Wert als Parameter übergeben musst und ihn nicht während der Übergabe abfragen kannst :wacko:


    Aus diesem Grund brauchst du meine Funktion die dir zurückgibt ob man in einer Fraktion ist oder nicht ;)


    mfg. :thumbup:

    So ist es Richtig!


    Nein ist es nicht ^^


    Die Funktion ist für so eine Abfrage nicht geeignet, man müsste dafür sowas machen:



    if(IsInAFrak(playerid) == 1)
    {
    //Er ist in einer Frak
    }
    else
    {
    //Er ist in keiner Frak
    }


    //Der stock
    stock IsInAFrak(playerid)
    {
    if(PlayerInfo[playerid][pMember] > 0 || PlayerInfo[playerid][pLeader] > 0) return 1;
    return 0;
    }


    mfg. :thumbup:

    Keine Angst, wenn ich Dich meinen würde hätte ich es auch so formuliert ;)


    Bright hatte da eine Thema zu gemacht, bzw. eine Art "Test". War bisschen aufschlussreicher als der Text da oben.


    Du hast es so formuliert :huh:


    Wieso aufschlussreicher als mein Text da oben, der sagt doch alles aus.


    Aber ist auch egal, back To Topic, falls ein User noch gute Ideen für eine Funktion hat, pls posten :)


    mfg. :thumbup:


    //Edit: Neue Funktionen hinzugefügt...bitte um weitere Vorschläge :)

    if(strcmp(cmd, "/makeadmin", true) == 0)
    {
    new name[24];
    GetPlayerName(playerid, name, 24);
    if(!strcmp(name, "DeinName", true))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /makeadmin [ID] [Level]");
    return 1;
    }
    new para1 = ReturnUser(tmp);
    tmp = strtok(cmdtext, idx);
    new level = strval(tmp);
    if(IsPlayerConnected(para1))
    {
    if(para1 != INVALID_PLAYER_ID)
    {


    So ;)


    mfg. :thumbup:

    Ja Bilder? Anfänge?


    Brauch man doch nicht...


    Codes?


    Brauch man immernoch nicht...


    @Threadersteller


    Mit einer Variable kannst du sowas machen:


    //Oben im Script
    new var[MAX_PLAYERS];


    //Bei deiner Skinauswahl
    SetPlayerSkin(playerid, -1); //wenn der hier ist halt
    var[playerid] = 1;


    SetPlayerSkin(playerid, 0);//wo du das hast halt
    var[playerid] = 2;


    ...


    //Bei OnPlayerSpawn
    if(var[playerid] == 1)
    {
    SetPlayerPos(playerid, X, Y, Z);
    }
    else if(var[playerid] == 2)
    {
    SetPlayerPos(playerid, X, Y, Z);
    }


    mfg. :thumbup:

    So könnte man das machen:


    new name[24];
    GetPlayerName(playerid, name, 24);
    if(!strcmp(name, "DeinName", true))
    {
    //Wenn dein Name "DeinName" ist
    }
    else
    {
    //Wenn er es nicht ist
    }


    mfg. :thumbup:

    Ich hab Dir gar nichts unterstellt.


    Aber sowas machen nur Leute, die Ahnung haben


    Paradox :rolleyes:


    Denk mal nach bevor du was schreibst ;)


    mfg. :thumbup:


    //edit:
    Jony

    Zitat

    //edit zu GetMaxPlayer();
    Soweit ich weiß hatte [NSG]Bright mal dazu etwas gepostet. Ich meine in Erinnerung zu haben, dass diese Funktion noch langsamer ist alles wenn man "MAX_PLAYERS" als Direktive Konstante benutzt.


    Siehe:


    Zitat

    So kannst du das nicht sehen, da GetMaxPlayers() prüft wie viele Leute auf dem Server sind, sagen wir mal 5, danach macht er einen break und gibt diesen Wert wieder...und meine Schleife geht dann auch nur 5 Leute durch..insgesamt 10 Durchläufe...


    Bei einem Direktive allerdings, läuft der constant 50 oder 100 oder was weiß ich für dinger durch, also ist in diesem Fall GetMaxPlayers() und auch eigentlich in allen anderen Fällen besser bzw gleich gut

    Das aufrufen der Funktion ist bezüglich Geschwindigkeit langsamer, als eine einfache Direktive.


    So kannst du das nicht sehen, da GetMaxPlayers() prüft wie viele Leute auf dem Server sind, sagen wir mal 5, danach macht er einen break und gibt diesen Wert wieder...und meine Schleife geht dann auch nur 5 Leute durch..insgesamt 10 Durchläufe...


    Bei einem Direktive allerdings, läuft der constant 50 oder 100 oder was weiß ich für dinger durch, also ist in diesem Fall GetMaxPlayers() und auch eigentlich in allen anderen Fällen besser bzw gleich gut ;)


    mfg. :thumbup: