Beiträge von [DT]midomen

    hm man könnte es so machen eine globale variable für alle in dieser variable speicherst du den namen oder die id der gewünschten person ab im listitem 0 machst du eine for new schleife wo die max_players abgefragt werden und dan machst du eine simple if abfrage wenn z.b falls du die variable in der schleife i gennant hast fragst du ab ob i den namen von der globalen variable wo der name gespeichert wurde hat wenn ja gibst du dem spieler die sachen und entziehst sie dem der den dialog bekam hoffe du hast verstanden wie ich das meine.

    mach es doch so



    dcmd_givemoney(playerid,parmas[])
    {
    new pid, money, string[128];
    if(sscanf(parmas,"ud",pid,money))return SendClientMessage(playerid,gelb,"Verwendung: /givemoney [ID] [Betrag]");
    if(pid != INVALID_PLAYER_ID)
    {
    GivePlayerMoney(pid,money);
    format(string,128,"Du hast %s einen Betrag von %d $ gegeben.",SName(pid),money);
    SendClientMessage(playerid,lila,string);
    format(string,128,"%s hat dir einen Betrag von %d $ gegeben.",SName(playerid),money);
    SendClientMessage(pid,lila,string);
    }
    else
    {
    SendClientMessage(playerid,farbe,"Spieler Name/ID Ungültig");
    }
    return 1;
    }

    Mach es so erstelle eine globale variable für alle spieler also essen[MAX_PLAYERS];
    das giveplayerhealth löscht du im dialog response und fügst dafür dann z.b beim ersten gericht essen[playerid] = 1; und beim zweiten essen[playerid] = 2; u.s.w ein
    beim public der vom timer aus abgerufen wird fragst du mit einer simplen if abfrage ab ob die variable essen[playerid] == 1 ist wenn ja gibst du die entsprechenden leben bei essen[playerid] == 2 auch u.s.w.

    Mach dir doch einen Neuen stock sagen wir mal stock levelgeben
    dann erstellst du eine globale variable für alle z.b score[MAX_PLAYERS];
    du speicherst ja wahrscheinlich das level somit machst du z.b bei onplayerconnect score[playerid] = (je nach speicher art jetzt mal auf dini) dini_Int u.s.w damit der wert score auf das gespeicherte level gesetzt wird
    dann bei dem stock levelgeben das score setzen und die variable score natürlich mit setzen falls dann der score weniger oder höher als die variable score ist wird er gebannt. natürlich musst du dann auch das level speichern ist ja klar.

    Das in Ongamemodeinit und aus onplayerconnect löschen



    Kills[playerid] = TextDrawCreate(510.000000,369.000000,"");
    TextDrawFont(Kills[playerid], 3);
    TextDrawLetterSize(Kills[playerid], 0.5099, 1.100000);
    TextDrawSetOutline(Kills[playerid], 1);
    TextDrawColor(Kills[playerid],0xFF0000FF);

    Naja der Anti Moneyhack ist eig. sehr Simpel und doch zuverlässig xD gut vllt hätte ich das Trophäen System nicht rausgeben sollen aber ich fande es eh nervig hab da mit dem Trophäen gehen übertrieben xD.