Beiträge von Jeffry

    Du hast nicht ernsthaft einen Timer mit 1 Millisekunde erstellt???


    Alle:SetTimer("ScanTimer",1,1);
    zu:
    SetTimer("ScanTimer",1000,1);
    reicht völlig, von mir aus auch 500ms, weniger ist unnötig, wenn man bedenkt, dass die Reaktionszeit des Menschen im Durchschnitt bei 1 Sekunde (1000ms) liegt. Da würde ich lieber den Radius etwas größer machen. Aber einen 1ms Timer brennt deine CPU durch.



    LookForAReasonToPause()
    {
    new x=0;
    while(x!=MAX_PLAYERS)
    {
    if(IsPlayerInRangeOfPoint(x,2.0,2051.5762,-2285.0776,13.5513))
    {
    return 1;
    }
    x++;
    }
    return 0;
    }

    switch(zaehler)
    {
    case 0: farbe = 0x00000000;
    case 1: farbe = 0x00000001;
    case 2: farbe = 0x00000002;
    case 3: farbe = 0x00000003;
    case 4: farbe = 0x00000004;
    case 5: farbe = 0x00000005;
    case 6: farbe = 0x00000006;
    case 7: farbe = 0x00000007;
    case 8: farbe = 0x00000008;
    case 9: farbe = 0x00000009;
    case 10: farbe = 0x0000000A;
    case 11: farbe = 0x0000000B;
    case 12: farbe = 0x0000000C;
    case 13: farbe = 0x0000000D;
    case 14: farbe = 0x0000000E;
    case 15: farbe = 0x0000000F;
    case 16: farbe = 0x00000010;
    case 17: farbe = 0x00000011;
    //usw...
    case 255: farbe = 0x000000FF;
    }


    Oder eben so wie Sharpadox: geschrieben hat, da haste die Funktion die dir das berechnet. Wenn du das nicht verstehst, nimm den switch.

    Timer nehmen (35ms damit es flüssig ist) und das Alpha Level der Farbe ändern.


    Von 0x00000000 (Transparenz) bis 0x000000FF (Schwarz).
    Das wären 256 verschiedene Transparenzstufen, die kannst du entweder mit einem switch-case aufrufen, oder du bastelst Dir eine Funktion die das berechnen kann. Einfacher ist der switch alle mal, ist halt aufwändig alle 256 durchzugehen.

    Trotzdem bleibt der parameter "playerid" in sscanf ein u und kein d


    Das ist falsch. Du kannst mit u zwar die playerid bekommen, genausogut kannst du sie aber mit d oder i bekommen.


    Um das klarzustellen:
    d = Funktioniert wenn die ID eingegeben wird.
    i = Funktioniert wenn die ID eingegeben wird.
    u = Funktioniert wenn die ID oder der Name eingegeben wird.


    Wenn er nicht möchte, dass der Name eingegeben werden kann, dann muss er sogar d/i benutzen.
    Je nach dem was gewollt ist.


    playerid ist in sscanf also nicht zwangsläufig mit u zu definieren.

    Um deine Frage zu beantworten:
    new pID, time, reason[30], String[128];
    //Und hier:
    if(sscanf(params,"dds[30]",pID,time,reason)){


    reason muss ein Array sein, da es eine Zeichenkette ist.



    An die Posts oben: Traurig, dass keiner annähernd versucht hat die Frage zu beantworten. Wenn er es So machen will, dann lasst es ihn doch so machen. Es hat vielleicht einen Grund!
    Wenn ich frage warum meine Pizza im Ofen verbrannt ist, und die Antwort "mach doch Nudeln" bekomme, was hilft mir das bezüglich meiner Frage? Nichts.

    So wie ich es geschrieben habe. Wenn du das nicht verstehst ist das schlecht.


    Hier die "Idiotensichere Variante":


    forward oamttor ();
    zu:
    forward oamttor_Timer();



    SetTimer("oamttor",5000,false);
    zu:
    SetTimer("oamttor_Timer",5000,false);



    public oamttor ()
    public oamttor ()
    {
    MoveObject(oamttor,925.29999,-1220.80005,19.5,0,0,90);
    return 1;
    }
    zu:
    public oamttor_Timer()
    public oamttor_Timer()
    {
    MoveObject(oamttor,925.29999,-1220.80005,19.5,0,0,90);
    return 1;
    }




    Was oben steht jeweils mit dem drunter ersetzen.

    Ja das geht.


    1) Du zeigst dem Spieler den Dialog der Regeln an der Stelle des Register Dialogs an, den Register Dialog entfernst du an seiner jetzigen Stelle.
    2) Bei OnDialogResponse fragst du dann ab:


    if(dialogid == RegelnDialogID)
    {
    if(response)
    {
    //Er hat OK gedrückt, hier zeigst du dann den Register Dialog an (das was du zuvor weg gemacht hast kommt hier hin).
    }
    else
    {
    //Er hat nicht OK gedrückt, du kickst Ihn.
    }
    }

    Benenne dein Objekt um. Es hat den selben Namen wie der Timer.


    new oamttor_objekt;
    oamttor_objekt = CreateObject(971, 925.29999, -1220.80005, 19.5, 0, 0, 90);


    MoveObject(oamttor_objekt,971, 925.29999, -1220.80005,09.5,0,0,90);
    MoveObject(oamttor_objekt,925.29999,-1220.80005,19.5,0,0,90);

    Du musst:
    for(new i=0; i<5; i++)


    jeweils an die Größe des Arrays (3,4,8) anpassen, also bei SPlanes muss die 5 eine 8 sein, usw.