Beiträge von Kaliber

    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:

    Google mal gerade den Unterschied.


    Wieso erklärst du es ihnen nicht ?


    Zitat

    hat das einen bestimmten grund oder nur aus lust und laune?
    ich versteh nicht warum man freiwillig bools verwenden will ob man jetzt 0/1 schreibt oder true/false macht doch eigtl keinen unterschied.
    bei bools muss man nur mehr schreiben


    Übrigens, es besteht kein Unterschied ob man true oder false schreibt !


    Code
    true entspricht 1 | false entspricht 0


    mfg. :thumbup:

    Aber sowas machen nur Leute, die Ahnung haben und Ihre Programmierung überdenken.


    Schneller geht es auf jeden Fall nicht, als einfach eine statische Variable darein zu setzen ;)


    Du gehst jetzt von MAX_PLAYERS oder GetMaxPlayers() aus...uhh, weil ich keine von diesen Funktionen verwendet habe, habe ich jetzt keine Ahnung von den Sachen die ich da mache oder was 8|


    Geile Logik :whistling:


    mfg. :thumbup:

    Du musst das ganz anders schreiben, schreibe es so:


    new stringstats[600];


    format(stringstats,sizeof(stringstats)," \t Hauptinformationen:\n Name: [%s]",SpielerName(playerid));
    format(stringstats,sizeof(stringstats)," %s\n Level: [%i]",stringstats,GetPlayerScore(playeird));
    format(stringstats,sizeof(stringstats)," %s\n Job: [%s]",stringstats,Jobname);
    format(stringstats,sizeof(stringstats)," %s\n \t Deine Scheine:",stringstats);
    format(stringstats,sizeof(stringstats)," %s\n Führerschein: [%s]",stringstats,ScheinName);
    format(stringstats,sizeof(stringstats)," %s\n Motorradschein: [%s]",stringstats,ScheinNameB);
    format(stringstats,sizeof(stringstats)," %s\n Flugschein: [%s]",stringstats,ScheinNameF);
    format(stringstats,sizeof(stringstats)," %s\n \t Deine Finanzen:",stringstats);
    format(stringstats,sizeof(stringstats)," %s\n Geld: [%d]",stringstats, GetPlayerMoney(playerid));
    format(stringstats,sizeof(stringstats)," %s\n Konto: [%d]",stringstats,GetPVarInt(playerid,"Bank"));
    format(stringstats,sizeof(stringstats)," %s\n \tDeine Identität:",stringstats);
    format(stringstats,sizeof(stringstats)," %s\n Fraktion: [%s]",stringstats,Frakname);
    format(stringstats,sizeof(stringstats)," %s\n Admin:[%s]",stringstats,Adminname);
    format(stringstats,sizeof(stringstats)," %s\n \t Deine Resepktstatus:",stringstats);
    format(stringstats,sizeof(stringstats)," %s\n RespektPunkte: [%i/%i]",stringstats,GetPVarInt(playerid,"Respektpunkte"),GetPVarInt(playerid,"Respekt"));
    format(stringstats,sizeof(stringstats)," %s\n Levelkosten: [%i$]",stringstats,GetPVarInt(playerid,"LevelMoney"));
    format(stringstats,sizeof(stringstats)," %s\n \t Deine DMRate:",stringstats);
    format(stringstats,sizeof(stringstats)," %s\n Tode: [%i]",stringstats, GetPVarInt(playerid,"Tode"));
    format(stringstats,sizeof(stringstats)," %s\n Kills: [%i]",stringstats, GetPVarInt(playerid,"Kills"));
    format(stringstats,sizeof(stringstats)," %s\n Wantedlevel [%i]",stringstats,GetPlayerWantedLevel(playerid));


    ShowPlayerDialog(playerid,DIALOG_STATS,DIALOG_STYLE_MSGBOX,"{FFCC00}Deine Statistiken",stringstats,"Schliessen","Schliessen");
    return 1;
    }


    mfg. :thumbup:

    Kaliber es gefällt mir


    eine kleine sache fin dich da nicht so schön
    #pragma tabsize 0
    ((Das kannste besser :D))


    Aber eine idee hab ich noch


    Du wirst lachen, aber in diesem Fall ist das notwendig !


    Ich habe alles eingerückt, aber wenn jetzt einer auf die schlaue Idee kommt und das von pastebin kopiert ist es nicht mehr eingerückt, aus diesem Grund das #pragma als Sicherheit um Warnings vorzubeugen ;)


    Zitat

    Aber eine idee hab ich noch


    Welche :)