Beiträge von Inaktiv_Für_Immer

    Irgendwie sind am LSPD Irgendwelche Straßen gemappt die Rumfliegen.
    Man Sieht alle Spieler auf der Karte es gibt kein /help
    Und das Tacho ist aus dem Standart Loh Script......

    Die Straße am LSPD hab ich ausversehen hoch getan. Kann ich schnell beheben.


    In OnGameModeInit ShowPlayerMarkers ganz einfach behebar. /Faq sollte eigentlich gehen :O


    Tacho hab ich einfach mit GameTexts gemacht, keine Ahnung ob es das vom LoH Script ist. Hab das originale LoH Tacho nie gesehen


    Startgebot: Biete einfach. Finde eigentlich alles ok.


    iPawn: Bleib mal bitte sachlich und geb konstruktive Kritik ab. Und es gibt Commands, da musste wohl was verpasst haben. :d

    Testserver: 85.114.130.96:8527


    Tutorial wurde extra rausgenommen,also nicht wundern


    edit: Und danke an Weihnachtsferien für den Server :)
    edit²: Hab vergessen den AccountsOrdner in Scriptfiles reinzukopieren,also wenn Acc nicht gespeichert wird wars meine Schuld.Kein Bug1

    Was ist an den coordinaten denn Falsch? die Zonen werden angezeigt nur der Textdraw an der einen Nicht


    Timer erstellen und unter OnGameModeInit alle 2 Sekunden ausführen lassen. Im Timer dann überprüfen, ob der Spieler sich in der NO-DM Zone befindet (IsPlayerInArea), und dann zeigst Du ihm den Textdraw:


    TextDrawShowForPlayer(i,text:text);


    Und du wolltest ja, dass er dann keine Waffe rausholen soll:
    SetPlayerArmedWeapon(i,0);


    Gruß

    Entweder im Callback "OnPlayerStateChange" so etwas abfragen, wenn du wissen willst, ob der Spieler ALLGEMEIN schießt:


    if (newkeys & KEY_FIRE)
    {


    }


    Und wenn du wissen willst, ob der Spieler auf einen anderen Spieler geschossen hat, musst Du das neue Callback von 0.3d (OnPlayerGiveDamage) nutzen.


    public OnPlayerGiveDamage(playerid, damagedid, Float: amount, weaponid)
    {
    return 1;
    }


    Viele Grüße,
    Bunny

    Oben eine Variable erstellen:
    new DMPeople;


    Und jedes mal wenn der Command "/dm" ausgeführt wird, der Variable ein "Punkt" dazugeben.


    if(strcmp(cmdtext,"/dm",true)==0)
    {
    SendClientMessage(playerid,FARBE,"Du bist nun in der Deathmatch-Arena!");
    SetPlayerPos(playerid,X,Y,Z);
    DMPeople +=1;
    return 1;
    }


    So als Beispiel ;) Und nun möchtest Du per /dmpeople auslesen, wie viele Leute, sich in der Deathmatch Arena befinden. Das machst du so:


    if(strcmp(cmdtext,"/dmpeople",true)==0)
    {
    new string[128];
    format(string,sizeof(string)," Es befinden sich gerade %d Leute in der Deathmatch Arena. Mit /dm kannst du diese auch betreten!",DMPeople);
    SendClientMessage(playerid,FARBE,string);
    return 1;
    }


    Und unter dem Callback "OnPlayerDisconnect", der Variable ein "Punkt" abziehen (davor erstmal abfragen, ob der Spieler sich in der DMArena befindet), weil der Spieler sich ja sozusagen ausloggt also die Arena verlässt:

    if(PlayerInfo[playerid][pDM] = 1) // Beispiel
    {
    DMPeople -=1;
    }

    Und natürlich unter dem Befehl, wo man die Arena verlässt, das gleiche Spiel wie bei OnPlayerDisconnect.


    Viele Grüße,
    Bunnyhopper

    Versuchs so:


    Bei OnPlayerConnect:
    SetTimer("CheckFlughafen",5000,true); // ein Timer überprüft alle 5 Sekundne ob der Spieler sich im Flughafen aufhält


    Ein public irgendwo im Script erstellen:
    forward CheckFlughafen();
    public CheckFlughafen()
    {
    for (new i = 0; i < MAX_PLAYERS; i++) // oder GetMaxPlayers wenn du paar Ressourcen sparen möchtest, damit bekommen wir jeden Spieler
    {
    if(IsPlayerInArea(i,-84.8909,2710.7996,507.2017,2350.0823))
    {
    GameTextForPlayer(i,"Flughafen",4000,1);
    }
    }
    return 1;
    }


    Halt einen Timer starten, welcher alle 5 Sekunden überprüft, ob der Spieler sich am Flughafen befindet ;)

    Erstmal der Stock:
    stock IsPlayerInArea(playerid,Float:minX,Float:minY,Float:maxX,Float:maxY)
    {
    new Float:pX,Float:pY,Float:pZ;
    GetPlayerPos(playerid,pX,pY,pZ);
    if(pX >= minX && pX <= maxX && pY >= minY && pY <= maxY) return 1;
    else return 0;
    }


    Und den stock benutzt Du z.B so:
    if(strcmp(cmdtext,"/hallo",true)==0)
    {
    if(IsPlayerInArea(playerid,minX,minY,maxX,maxY))
    {
    // blabla
    }
    else
    {
    // blabla
    }
    }

    #define Türke 0x00FFF0FF


    Haha, das ist regelrecht der HAMMER :D!


    Back to Topic:
    Du hast in deinem Script leider keine Variablen für LvL usw, nur für das Passwort. Erstell wie Benutzername schon sagte, ein enum mit Level, Adminlevel und Score.. Wenn Du Hilfe brauchst, sag Bescheid und ich helfe dir gerne. :)