Beiträge von Kaliber

    Achso, jetzt habe ich dein Problem verstanden :D


    Mache es ganz easy so:


    ocmd:fraktionswahl(playerid, params[])
    {
    new string[256];
    format(string,sizeof string,"%i Spieler = Cali Kartell\n%i Spieler = Yakuza\n%i Spieler = Ballas\n%i Spieler = Triaden\n%i Spieler = Vagos\n%i Spieler = Aztecas\n%i Spieler = Grove Street\n%i Spieler = Red Solderis\n%i Spieler = Zivilist",GetFraktion(1),GetFraktion(2),GetFraktion(3),GetFraktion(4),GetFraktion(5),GetFraktion(6),GetFraktion(7),GetFraktion(8),GetFraktion(0));
    ShowPlayerDialog(playerid, DIALOG_FRAKTIONSWAHL, DIALOG_STYLE_LIST, "Gangfight - Fraktionswahl",string,"Wählen","Schließen");
    return 1;
    }


    stock GetFraktion(id) {
    new count;
    for(new i; i<MAX_PLAYERS; i++) {
    if(IsPlayerConnected(i) && Spieler[i][Member] == id) count++;
    }
    return count;
    }


    if(dialogid == DIALOG_FRAKTIONSWAHL)
    {
    if(!response) return 1;
    if(listitem != 8) Spieler[playerid][Member] = listitem+1;
    else Spieler[playerid][Member] = 0;
    SpawnPlayer(playerid);
    }


    mfg. :thumbup:

    Einfach mal so abfragen:


    if(dialogid == DIALOG_FRAKTIONSWAHL)
    {
    if(!response) return 1;
    if(listitem != 8) Spieler[playerid][Member] = listitem+1;
    else Spieler[playerid][Member] = 0;
    switch(listitem) {
    case 0: cali++;
    case 1: yak++;
    case 2: ballas++;
    case 3: triaden++;
    case 4: vagos++;
    case 5: aztecas++;
    case 6: grove++;
    case 7: red++;
    case 8: zivi++;
    }
    SpawnPlayer(playerid);
    }


    Das fasst deinen ganzen Code zusammen :D


    mfg. :thumbup:


    //Edit: gar nicht die unterschiedlichen Namen gesehen :whistling:

    Ich schätze mal, dass es so nicht funktionieren wird. die Methode von [DT]Sniper wird wohl eher funktionieren. Allerdings zweifel ich bei der Variante an, dass es durch die neue Schleife überhaupt noch sinnvoll ist.


    Kaliber:
    Wenn 1 Bot und 5 Spieler bei deiner Methode verbinden, so hat der letzte die ID 5. Verlassen nun Spieler 2 und 3 den Server, zählt deine Variante runter und ID 5 wird ausgelassen.


    :D Omg, habe da gerade einen großen Fehler gesehen ^^


    Schau jetzt nochmal, jetzt sollte das alles funktionieren :D


    @Rest Dankeschön :love:


    mfg. :thumbup:

    stock GetItem(playerid,slot, name[],len)


    Ja, darüber habe ich nicht nachgedacht ^^


    Gut, danke das du mir sowas sagst, verbessere es gleich :)


    Item[playerid][s] = "";


    Ein ganz schlimmer Fehler, der dir das "beigebracht" hat - gehört verprügelt.
    Du sorgst hier nur für memory leaks.


    Auch hier danke für den Tipp :D
    (Du kannst das uralte GF mal verprügeln :D)


    Unglaubliche 32 Zeilen Effektivcode und trotzdem noch so viel Mist.


    Dann gebe doch mal konstruktive Kritik und sag mal was hier Mist ist ;)


    @Rest, danke für die ganzen Kommentare :)


    mfg. :thumbup:


    //Edit: Rechtschreibung

    Sorry das ich mich grade Dumm anstelle aber versteh ich grade nicht also das ist ein Inventar System wo halt Sachen gespeichert sind aber wie speicher ich etwas wird es automatisch oder wie ähhh?. SORRY!



    Mit freundlichen Grüßen


    Nein, die Sachen werden nicht automatisch gespeichert, aber du kannst das ganz simpel speichern...


    Halt mit deinem Speicherungssystem und GetItem(playerid, slot); Das sähe dann so aus (Beispiel mit dini):


    dini_Set(Spielerdatei,"Item1",GetItem(playerid,0));
    dini_Set(Spielerdatei,"Item2",GetItem(playerid,1));
    //usw bis MAX_SLOTS erreicht ist


    Coole Sache,würdest du mir sowas als Kofferraumsystem machen gg Taschengeld?


    Was genau meinst du...erkläre das mal genauer ;)



    mfg. :thumbup:

    CreateObject ist die Standard Funktion von a_objects und man kann nur 1000 von diesen Objekten erstellen, da sie global erstellt sind und dauerhaft existieren...


    CreateDynamicObject arbeitet mit einem Streamer von Incognito und man kann unendlich viele Objekte nutzen, die aber halt auch verschwinden wenn man aus der DrawDistance läuft...da liegt nämlich der Unterschied :D


    mfg. :thumbup:


    //Edit: Name "a_objects"

    Wenn es für ihn _objectid ist dann ist das nun mal so!


    War nicht böse gemeint :D


    Aber es soll sich schließlich nicht falsch verbreiten... ;)


    Wenn es für ihn _objectid ist dann ist das nun mal so!


    Ja...aber das geht halt nicht, schau:


    new obj = CreateObject(...); //CreateObject returnt die Objektid


    CreateObject(modelid...); //Die modelid ist halt die id des Modells des Objekts :D


    Das ist ein wichtiger Unterschied !


    mfg. :thumbup:

    Schreibe es mal so:


    Strecke = floatsqroot(floatpower(floatabs(floatsub(X1[i],X2[i])),2)+floatpower(floatabs(floatsub(Y1[i],Y2[i])),2)+floatpower(floatabs(floatsub(Z1[i],Z2[i])),2));


    mfg. :thumbup:

    Probiere es mal so:


    command:startlotto(playerid, params[])
    {
    new zeit;
    if(sscanf(params,"d", zeit))return SendClientMessage(playerid, Farbe_Gelb, "Benutzung:{FFFFFF} /startlotto [Zeit(in Sekunden)]");
    if(!IstAdmin(playerid,7)) return SendClientMessage(playerid,Rot,"Du bist kein Admin Stufe 7 !");
    if(LottoTimer < 125)return SendClientMessage(playerid, Rot, "Mindestens 125 Sekunden");
    LottoTimer = zeit;
    format(ALLSTRING,sizeof(ALLSTRING),"{000FFF}:[Lotto]: {FFFFFF}Eine neue Lottoziehung beginnt in %d Minuten {000FFF}:[Lotto]: (von %s)",zeit*60,PlayerName[playerid]);
    OOCOff(Weiss, ALLSTRING);
    return 1;
    }
    mfg. :thumbup: