Beiträge von EvilToastBrot

    @Pati: Hast falsch verstanden glaub ich^^ Will keinen Command mit Parametern erstellen, sondern mit einem Tastendruck ein Tor öffnen.


    Lars: Ne funzt net, woher soll ich denn das newkeys in OnPlayerCommandText herkriegen?^^

    Okee, danke hab immer gedacht, dass das die Taste 2 ist. Ist es auch, ist mir aufgefallen^^. Aber das Funktioniert nur, wenn man in einem Fahrzeug ist. Ist auch IsPlayerInVehicle oder so drin. Wenn ich den Code in nen Befehl packe gehts auch zu Fuß. Hier mein Code:


    if(newkeys & KEY_SUBMISSION)
    {
    new string[150];
    if(PlayerToPoint(20.0, playerid,1587.3488,-1636.3077,12.9607))
    {
    if(PlayerInfo[playerid][pMember] == 1||PlayerInfo[playerid][pLeader] == 1||PlayerInfo[playerid][pMember] == 2||PlayerInfo[playerid][pLeader] == 2||PlayerInfo[playerid][pMember] == 3||PlayerInfo[playerid][pLeader] == 3||PlayerInfo[playerid][pMember] == 21||PlayerInfo[playerid][pLeader] == 21)
    {
    SetTimer("GateClose", 8000, 0);
    MoveObject(LSPDTOR,1596.5496826172,-1638.4108886719,12.758577346802, 2.0);
    PlayerPlaySound(playerid, 1153, 1589.053344,-1638.123168,14.122960);
    ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
    if(PlayerInfo[playerid][pSex]){format(string, sizeof(string), "** %s holt ihre Fernbedienung raus und öffnet das Tor.", pn(playerid));}
    else if(PlayerInfo[playerid][pSex] == 2) {format(string, sizeof(string), "** %s holt ihre Fernbedienung raus und öffnet das Tor.", pn(playerid));}
    SendClientMessage(playerid, COLOR_GRAD1,"** Du hast das Tor geöffnet, es schließt sich automatisch wieder!");
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD1, "** Du bist kein Beamter!");
    return 1;
    }
    }
    else if(PlayerToPoint(20.0, playerid,-1549.6320,516.6087,6.6563))
    {
    if(PlayerInfo[playerid][pMember] == 3||PlayerInfo[playerid][pLeader] == 3)
    {
    SetTimer("GateClose", 8000, 0);
    SetObjectRot(ARMYTOR,0, 358.99487304688, 263.99597167969);
    PlayerPlaySound(playerid, 1153, -1549.6320,516.6087,6.6563);
    ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
    if(PlayerInfo[playerid][pSex]){format(string, sizeof(string), "** %s holt ihre Fernbedienung raus und öffnet das Tor.", pn(playerid));}
    else if(PlayerInfo[playerid][pSex] == 2) {format(string, sizeof(string), "** %s holt ihre Fernbedienung raus und öffnet das Tor.", pn(playerid));}
    SendClientMessage(playerid, COLOR_GRAD1,"** Du hast das Tor geöffnet, es schließt sich automatisch wieder!");
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD1, "** Du bist kein Beamter!");
    }
    }
    else if(PlayerToPoint(20.0, playerid,-1631.6003,685.8247,6.7595))
    {
    if(PlayerInfo[playerid][pMember] == 1||PlayerInfo[playerid][pLeader] == 1||PlayerInfo[playerid][pMember] == 2||PlayerInfo[playerid][pLeader] == 2||PlayerInfo[playerid][pMember] == 3||PlayerInfo[playerid][pLeader] == 3||PlayerInfo[playerid][pMember] == 21||PlayerInfo[playerid][pLeader] == 21)
    {
    SetTimer("GateClose", 8000, 0);
    MoveObject(SFPDTOR,-1631.4951171875,688.35559082031,13.384237289429, 2.0);
    PlayerPlaySound(playerid, 1153, -1631.6003,685.8247,6.7595);
    ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
    if(PlayerInfo[playerid][pSex]){format(string, sizeof(string), "** %s holt ihre Fernbedienung raus und öffnet das Tor.", pn(playerid));}
    else if(PlayerInfo[playerid][pSex] == 2) {format(string, sizeof(string), "** %s holt ihre Fernbedienung raus und öffnet das Tor.", pn(playerid));}
    SendClientMessage(playerid, COLOR_GRAD1,"** Du hast das Tor geöffnet, es schließt sich automatisch wieder!");
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD1, "** Du bist kein Beamter!");
    }
    }
    }



    Ist unter OnPlayerKeyStateChange.



    EvilToast.

    Haste strtok definiert?


    Und mach x_nr mal größer. Also: new x_nr[256];


    Falls du strtok nicht hast:


    strtok(const string[], &index)
    {
    new length = strlen(string);
    while ((index < length) && (string[index] <= ' '))
    {
    index++;
    }
    new offset = index;
    new result[20];
    while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
    {
    result[index - offset] = string[index];
    index++;
    }
    result[index - offset] = EOS;
    return result;
    }

    Einfach irgendwo im Script außerhalb eines Publics definieren.


    Evil.



    //Edit: Direkt am Anfang von OnPlayerCommandText machst du: new cmd[180]; und cmd = strtok(cmdtext, idx);


    Für das IsNumeric und ReturnUser machst du ganz oben unter die Includes: #pragma unused IsNumeric und darunter #pragma unused ReturnUser

    Hallo!


    Ich habe 2 Textdraw´s, die mir Sorgen bereiten. Zum einen einer namens Needs[playerid] und einer Namens NoWeaponWarning. Der TDraw NoWeaponWarning wird angezeigt, wenn der Player am Rathaus ist. Der Needs TDraw die ganze Zeit. Nun hab ich nen Timer public namens AndererTimer() und einen namens SetPlayerUnjail ( ja das ist LoH Script^^ ). In Anderer Timer wird geprüft, ob der Player in der Zone ist, in der der TDraw NoWeaponWarning angezeigt wird. In SetPlayerUnjail ist neben paar anderen Funktionen auch die if Abfrage, ob der Player süchtig nach Drogen ist.
    Die sieht folgendermaßen aus:

    if(PlayerInfo[playerid][pDabhaengig])
    {
    TextDrawSetString(Needs[playerid], "Harndrang~n~Sex~n~Durst~n~Drogensucht");
    }
    else if(!PlayerInfo[playerid][pDabhaengig])
    {
    TextDrawSetString(Needs[playerid], "Harndrang~n~Sex~n~Durst");
    }


    Und die Funktion aus AndererTimer für NoWeaponWarning folgendermaßen:
    if(IsPlayerInRangeOfPoint(i, 80.0, -2706.3770,376.3634,4.9685))
    {
    TextDrawShowForPlayer(i, NoWeaponWarning);
    TextDrawSetString(NoWeaponWarning, "No Weapon Zone");
    }
    else
    {
    TextDrawHideForPlayer(i, NoWeaponWarning);
    }


    So. Das waren die 2 Funktionen. Nur wenn ich jetzt in die Zone gehe, wo der Textdraw NoWeaponWarning angezeigt wird zeigt er auch ganz kurz "No Weapon Zone" an, so wie es sein soll. Doch dann springt er sofort auf Harndrang[Neue Zeile]Sex[Neue Zeile]Durst um. Sobald die Funktion anderer Timer wieder ausgeführt wird springt er wieder auf No Weapon Zone um und dann, wenn der Timer SetPlayerUnjail abgelaufen ist und die Funktion durchläuft steht wieder Harndrang[Neue Zeile]Sex[Neue Zeile]Durst dort. Dies wiederholt sich so lange, bis ich wieder aus der No Weapon Zone herausgelaufen bin. Und hier ist mein Problem. Der Textdraw NoWeaponWarning soll nicht auf den String des Textdraws Needs umspringen. Doch das tut er. Obwohl in TextDrawSetString(Needs[playerid], "Harndrang~n~Sex~n~Durst~n~Drogensucht");, was die Fehlerquelle ist, steht, dass der TextDraw Needs[playerid] auf Harndrang~n~Sex~n~... umgestellt werden soll. Doch der String des TextDraw´s NoWeaponWarning wird auf Harndrang~n~Sex... umgestellt. Das ist das Problem. Ich hab auch schon geprüft, ob die Textdraws vielleicht durch einen Fehler von Pawno die gleiche ID haben, haben sie aber nicht ( Falls es interessiert: NoWeaponWarning hat die ID 0 und Needs die ID 83 ). Is richtig blöd das zu erklären, aber ich hoffe ihr habt es verstanden.


    Nochmal kurz: Wenn ich den TextDraw Needs auf "Harndrang~n~Sex~n~Durst" machen will, dann ändert sich nicht der TextDraw Needs, sondern ein anderer Textdraw Namens NoWeaponWarning. Die beiden haben Infolge eines Testes nicht die selbe ID.


    Bitte Helft mir, das ist echt wichtig!


    Danke


    EvilToastBrot

    Hallo.


    Ich suche seit einiger Zeit nach einer Erklärung, wie man Text Draw Balken erstellt. Gebt mir bitte ein Beispiel, wie man einen solchen Balken erstellt.
    Hier ein Bild, damit jeder weiß, was ich meine:


    MFG
    Toast