Beiträge von Flo_White

    bei public OnPlayerCommandText(playerid,cmdtext[])
    {
    dcmd(test,4,cmdtext);
    return 0
    };
    und hast du das #define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1 im Script oben?



    Ausserdem is es sinnlos diesen Command mit sscanf zu machen, da der Command keine Parameter hat. Ich weiß gar nicht, ob das dann überhaupt geht

    omg. das sind die, die immer nur Copy&Paste machen <.< Ein bisschen kann man doch auch selber überlegen, mach einfach hinter new text1[20], text2[20], text3[20], text4[20], text5[20];
    noch text6[20], text7[20], text8[20], text9[20];

    und anstatt if(PlayerInfo[playerid][gTeam] == Bürgermeister) return SendClientMessage(playerid, COLOR_RED, "Du bist kein Bürgermeister");


    mach if(PlayerInfo[playerid][gTeam] != Bürgermeister) return SendClientMessage(playerid, COLOR_RED, "Du bist kein Bürgermeister");

    hab beide ausprobiert


    €dit: so is der code im moment: forward timebanupdate(wert,wertin[],oname[21]);


    dcmd_timeban(playerid, params[])
    {
    if(PlayerData[playerid][Level] >= 2)
    {
    new opfer,time,reason[128],oname[MAX_PLAYER_NAME];
    if(sscanf(params,"uds",opfer,time,reason)) return SendClientMessage(playerid, COLOR_SYSTEM, "Usage: /timeban [playerid] [hours] [reason]");
    GetPlayerName(opfer,oname,sizeof(oname));
    format(string,sizeof(string),"/fAdmin/Users/%s.ini",oname);
    dini_IntSet(string,"Timeban",time);
    SetTimerEx("timebanupdate",time*60,0,"dss",0,"a",oname);
    return 1;
    }
    else return SendClientMessage(playerid,COLOR_RED,"Admins only!");
    }


    public timebanupdate(wert,wertin[],oname[21])
    {
    format(oname,sizeof(oname),"/fAdmin/Users/%s.ini",oname);
    if(fexist(oname))
    {
    dini_IntSet(oname,"Timeban",0);
    }
    return 1;
    }
    weiss niemand, wieso das nicht klappt?

    @ Superdok: ja das is mir klar ^^ nur von der idee her, wie man das scriptet, das wollte ich wissen


    €dit: ich hab das jetzt mal getestet, aber iwie wird die Variable nicht wieder auf 0 gesetzt :S

    hi


    ich hab ne Frage und zwar, wollte ich mal fragen, ob es möglich ist, mit nem Timer eine Variable in einer Spielerfile zu ändern.
    also man macht nen CMD wo zB Variable a=1 ist und dann startet man nen Timer, der dann die Variable a zB wieder auf 0 setzt. Geht das wenn der Spieler offline ist?

    //oben im Skipt
    forward MoneyScoreUpdateFunction();
    //unter OnGameModeInit
    SetTimer("MoneyScoreUpdateFunction",2000,1); //2sek reichen vollkommen, kannst auch noch höher setzen
    //im Skript
    public MoneyScoreUpdateFunction()
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    SetPlayerScore(i,GetPlayerMoney(i));
    }
    return 1;
    }


    so sollte es klappen ;)


    ..Und dein /dm befehl lässte so, wie er is, dann sollte es klappen


    du solltest die Beiträge schon richtig lesen ;)
    if(strcmp(cmdtext,"/dm",true)==0)
    {
    if(IsSpielerInDM[playerid] == 1) return SendClientMessage(playerid,COLOR_RED," Das geht im DM nicht!");
    {
    if(IsSpielerInDM[playerid] == 0)
    {

    weil wie soll das auch gehen? wenn er im DM ist kommt die Nachricht, das es im DM nicht geht. Du musst es in jedem anderen Cmd so machen if(strcmp(cmdtext,"/cmd",true)==0)
    {
    if(IsSpielerInDM[playerid] == 1) return SendClientMessage(playerid,COLOR_RED," Das geht im DM nicht!");
    // Rest des Cmd
    und dein DM Cmd machste wieder so wie er am Anfang war