Beiträge von Zunno

    Du brauchst eine Schleife und nicht MAX_PLAYERS :)


    Verusch mal dies hier:
    {
    new Menu:CurrentMenu = GetPlayerMenu(playerid);


    if(CurrentMenu == semenu)
    {
    switch(row)
    {
    case 0:
    {
    for(new i=0; i< MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    ShowPlayerDialog(i,1,DIALOG_STYLE_MSGBOX,"Chiliad2 EV.","Ein admin hat das Event: Chiliad2 gestartet. \n Möchtest du mitmachen?","JA","NEIN");
    }
    }
    }
    }
    return 1;
    }


    PS: Einrücken musst du es , es ist nemlich eine etwas schlechte Formatierung ^^

    new sendername[MAX_PLAYER_NAME];
    new giveplayer[MAX_PLAYER_NAME];
    new cmd[256];
    new tmp[256];
    new giveplayerid,idx;
    cmd = strtok(cmdtext, idx);


    ReturnUser + IsNumeric:
    IsNumeric(const string[])
    {
    for (new i = 0, j = strlen(string); i < j; i++)
    {
    if (string[i] > '9' || string[i] < '0') return 0;
    }
    return 1;
    }


    ReturnUser(text[], playerid = INVALID_PLAYER_ID)
    {
    new pos = 0;
    while (text[pos] < 0x21) // Strip out leading spaces
    {
    if (text[pos] == 0) return INVALID_PLAYER_ID; // No passed text
    pos++;
    }
    new userid = INVALID_PLAYER_ID;
    if (IsNumeric(text[pos])) // Check whole passed string
    {
    // If they have a numeric name you have a problem (although names are checked on id failure)
    userid = strval(text[pos]);
    if (userid >=0 && userid < MAX_PLAYERS)
    {
    if(!IsPlayerConnected(userid))
    {
    /*if (playerid != INVALID_PLAYER_ID)
    {
    SendClientMessage(playerid, 0xFF0000AA, "User not connected");
    }*/
    userid = INVALID_PLAYER_ID;
    }
    else
    {
    return userid; // A player was found
    }
    }
    /*else
    {
    if (playerid != INVALID_PLAYER_ID)
    {
    SendClientMessage(playerid, 0xFF0000AA, "Invalid user ID");
    }
    userid = INVALID_PLAYER_ID;
    }
    return userid;*/
    // Removed for fallthrough code
    }
    // They entered [part of] a name or the id search failed (check names just incase)
    new len = strlen(text[pos]);
    new count = 0;
    new name[MAX_PLAYER_NAME];
    for (new i = 0; i < MAX_PLAYERS; i++)
    {
    if (IsPlayerConnected(i))
    {
    GetPlayerName(i, name, sizeof (name));
    if (strcmp(name, text[pos], true, len) == 0) // Check segment of name
    {
    if (len == strlen(name)) // Exact match
    {
    return i; // Return the exact player on an exact match
    // Otherwise if there are two players:
    // Me and MeYou any time you entered Me it would find both
    // And never be able to return just Me's id
    }
    else // Partial match
    {
    count++;
    userid = i;
    }
    }
    }
    }
    if (count != 1)
    {
    if (playerid != INVALID_PLAYER_ID)
    {
    if (count)
    {
    SendClientMessage(playerid, 0xFF0000AA, "Multiple users found, please narrow earch");
    }
    else
    {
    SendClientMessage(playerid, 0xFF0000AA, "No matching user found");
    }
    }
    userid = INVALID_PLAYER_ID;
    }
    return userid; // INVALID_USER_ID for bad return
    }

    Mute Befehl:
    if(strcmp(cmd, "/mute", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid, 0xAFAFAF00, "BENUTZE: /mute [playerid]"); //0xAFAFAF00 oder COLOR_GREY(GF)
    new playa;
    playa = ReturnUser(tmp);
    if(IsPlayerAdmin(playerid))
    {
    if(IsPlayerConnected(playa))
    {
    if(playa != INVALID_PLAYER_ID)
    {
    GetPlayerName(playa, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    if(GetPVarInt(playa, "Muted") == 0)
    {
    SetPVarInt(playa, "Muted", 1);
    format(string, sizeof(string), "AdmCmd: %s wurde von %s gemutet",giveplayer ,sendername);
    SendClientMessageToAll(COLOR_LIGHTRED,string);
    }
    else
    {
    DeletePVar(playa, "Muted");
    format(string, sizeof(string), "AdmCmd: %s wurde von %s ungemutet",giveplayer ,sendername);
    SendClientMessageToAll(COLOR_LIGHTRED,string);
    }
    }
    }
    }
    else SendClientMessage(playerid, COLOR_GRAD1, "Dir ist es nicht erlaubt, diesen Befehl zu benutzen!");
    }
    return 1;
    }


    Muteliste zum sehen wer alles Gemutet ist:
    if(strcmp(cmd, "/mutelist", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(IsPlayerAdmin(playerid))
    {
    SendClientMessage(playerid, COLOR_LIGHTRED, "[____ Gemutete Personen ____]");
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(GetPVarInt(i, "Muted") >= 1)
    {
    GetPlayerName(i,sendername,sizeof(sendername));
    format(string,sizeof(string), "Name %s ID: %d", sendername,i); SendClientMessage(playerid, COLOR_WHITE, string);
    }
    }
    }
    }
    return 1;
    }


    MFG
    Picaso

    Simple Lösung die ich eingebaut habe...


    AddStaticPickup(1210, 23, 0.0,0.0,0.0,1); // OPFER PICKUP
    Dies Pickup habe ich vor allen anderen Pickups in OnGameModeInit() getan.
    Es liegt in der Virtual World 1 und ist somit nicht sichtbar.
    Somit dürften die Pickups vom Autohaus nichtmehr "Verschwinden". Es kann aber möglich sein das die Totenköpfe abunzu bleiben... (Is jedenfalls bei mir so, vieleicht hab ich aber nur nen fehler im System^^)


    Mit freundlichen Grüßen,
    Picaso

    Warum? Erklär mir mal genau warum!
    Ich bin über zufriedener Kunde bei Server4You, weil sie auf Support Tickets innerhalb von (bei mir) 3 Minuten antworten?


    kann dir nur zustimmen , habe nen Rootserver bei Server4You der bis jetz ohne probleme läuft :)

    Wieso läst du 3 mal die gleiche Funktion ausführen lassen wen


    a) Der Server gestartet wird
    b) Jemand connected
    c) Immer wen jemand Spawnt...


    Öhm wo is da die Logik? 8|

    das hatte ich bei mir auch, ich hatte das audio plugin drauf und dan kahmen vereinzelnt User an deren Accounts auf 0 gesetzt worden ist sogesagt.
    Nun weiß ich auch warum weil er das netmehr gespeichert hat bzw falsch 8|


    Etwas Offtopic:
    Wie kann man diese Pfeile überhaubt Scripten? ^^

    hatte das gleiche problem und habe auch den Steam Support angeschrieben die meinten das ich keinen VAC Ban bekomme und das Level kann leider net zurück gesetzt werden.


    MFG,
    Picaso

    Um die Position abzufragen reichen doch auch 5 sekunden oder mehr.


    Gutes tut 9/10


    //Edit: um statt for(new i=0; i<MAX_PLAYERS; i++) mach lieber for(new i=0; i<GetMaxPlayers(); i++) muss ja nicht für alle Spieler durchgehen, besonders nicht für die die nicht Online sind :thumbup:

    Ja wie man den Timer einstellt ist jeden belieben.
    Ich habe dies auf 1 Sekunde gestellt da dan der Übergang von z.B. LS nach SF besser aussieht ^^ so das, dass wetter gleich umstellt oder z.B. beim /wetter cmd. das dort das Wetter nicht erst nach 5 Sekunden umstellt wird aber wie gesagt jeder kann es so einstellen wie er möchte :)


    Und das mit GetMaxPlayers, danke für die Info , ist sehr hilfreich ^^ ich werde es sofort ändern :D


    /Edit: Geändert