Beiträge von Haxler

    Hi,
    Ich glaube gehört zu haben, dass es ein Filterscript (oder Ähnliches) gibt, mit dem man TextDraws anklicken kann. Weiß jemand wo ich das finden kann?


    mfg :)

    Dazu sollten wir erstmal wissen ob du ein Carsystem hast und wenn ja, wie du es gescriptet hast...


    So in der Art müsste es gehen:


    Beim Befehl /opark wird überprüft ob der Spieler in der Fraktion ist. Dann wird die Position des Spieler abgefragt, der im Auto sitzt. Diese wird in die Datei des Fahrzeuges gespeichert(Geht nur wenn du ein Carsystem has(Carownership)).

    new knastzeit[MAX_PLAYERS];
    new timer[MAX_PLAYERS];
    forward knasttimer(playerid);
    //bei /arrest:
    knastzeit[id] = time; // Wie du das halt mit deinem Befehl gemacht hast.
    timer[id] = SetTimerEx("knasttimer",1000,1,"d",id);


    public knasttimer(playerid);
    {
    if(knastzeit[playerid]<= 0)
    {
    KillTimer(timer[playerid]);
    // Spieler aus Knast lassen
    }
    else
    {
    knastzeit[playerid]--; // pro sekunde wir von der Variable Knastzeit 1 abgezogen.
    }
    return 1;
    }


    // bei OnPlayer Disconnect variable knastzeit[playerid] in Spielerdatei schreiben und bei OnPlayerConnect wieder Laden
    //OnPlayerConnect:
    knastzeit[playerid] = .... //laden
    if(knastzeit[playerid] > 0)
    {
    timer[id] = SetTimerEx("knasttimer",1000,1,"d",id);
    }
    So in der Art müsste es klappen.

    Hi,
    dcmd_makeleader(playerid,params[]){
    if(Spieler[playerid][Adminlevel] >= 1){
    new
    pID,
    level,
    Player[MAX_PLAYER_NAME],
    MPlayer[MAX_PLAYER_NAME],
    string1[128],
    string2[128];
    if(sscanf(params, "uc",pID,level)) { // wieso steht da ein C? level ist ein integer d.h. du musst statt c ein i bzw. ein d verwenden
    return SendClientMessage(playerid,rot,"/makeleader [playerid] [Fraktion]");
    }
    GetPlayerName(playerid,Player,sizeof(Player));
    GetPlayerName(pID,MPlayer,sizeof(MPlayer));
    format(string1,sizeof(string1),"%s hat dich zum Leader einer Fraktion gemacht",Player);
    SendClientMessage(playerid,grün,string1);
    format(string2,sizeof(string2),"Du hast %s zum Leader einer Fraktion gemacht",MPlayer);
    SendClientMessage(playerid,grün,string2);
    if (level == 0) { Spieler[pID][Fraktion] = 1; SetPlayerSkin(pID,0); SendClientMessage(pID,weiss,"Du bist nun Zivilist"); }
    else if (level == 1) { Spieler[pID][Fraktion] = 2; SetPlayerSkin(pID,106); SendClientMessage(pID,weiss,"Du bist nun Leader der Grove Street"); }
    return 1;
    }
    return 0;
    }


    if(sscanf(params, "ud",pID,level)) {

    @MuLtiVaN


    Der Marker ist IMMER vor der Arena... Da bringt Scriptzeigen auch nicht viel


    Hmm soweit ich weiß kann man den nicht weg machen :(

    Hi,
    Hatte das gleiche Problem. Bei mir hat SpawnPlayer nicht funktioniert, weil der Server noch viel zu viele Sachen laden musste. Hab einen Timer von 4 Sekunden gesetzt, der dann SpawnPlayer aufruft. Jetzt funktionierts einwandfrei :)


    Timer:
    forward SpawnP(playerid);


    public SpawnP(playerid)
    {
    SpawnPlayer(playerid);
    return 1;
    }


    Nach dem Login:
    SetTimerEx("SpawnP",4000,0,"d",playerid); // 4000 = 4 sek

    Du könntest einfach bei /arrest einen Wert in die Spielerdatei schreiben(wenn du ein Loginsystem hast). Diesen wert lädst du beim Connecten und fragst ihn ab. Im Arresttimer musst du dann eine Variable "hochzählen" und deren Wert auch mit abspeichern, damit du den Timer später wieder starten kannst.

    Einfach einen zweiten Timer machen...


    forward untazer(playerid);


    public untazer(playerid)
    {
    TogglePlayerControllable(playerid,1);
    return 1;


    // Public Tazer:
    SetTimerEx("untazer",10000,0,"d",pID);


    Der Timer wird dann für pID ausgeführt. Die 10000 sind die Zeit wie lange er gefreezt(getazert) ist und die 0 bedeutet, dass der Timer nur einmal ausgeführt wird.

    Hier wird einfach ein Timer gesetzt, der überprüft wieviele Spieler online sind. Wenn die Spielerzahl größer als 50 (> 50) ist, dann wird die Message "Es sind viele Spieler online" an alle Spieler geschickt. Wenn nicht wird die Message "Es sind nicht viele Spieler online" an alle Spieler geschickt :)


    Edit:


    new name[MAX_PLAYER_NAME], ip[16], msg[128];;
    Stimmt auch nicht ganz ;)

    Ich würds so machen:


    Bei OnPlayerConnect:

    new name[MAX_PLAYER_NAME]; // Variable für den Namen
    new ip[16]; // Variable für die IP
    GetPlayerName(playerid,name,sizeof name); // Name in Variable schreiben
    GetPlayerIP(playerid,ip,sizeof ip); // IP in Variable schreiben
    new msg[128]; // String für die Nachricht
    format(msg,sizeof msg,"%s hat den Server betreten. IP: %s",name,ip);
    for(new pid =0;pid < MAX_PLAYERS;pid++) // Schleife für alle Spieler
    {
    if(PlayerInfo[playerid][pid] >0) // Wenn der Spieler Admin ist(Adm. Level höher als 0)
    {
    SendClientMessage(pid,COLOR_GREY,msg);
    }
    }

    Hatte das Problem auch mal. Hab am Tag zuvor viele Schriftarten aus dem FONTS-Ordner gelöscht. Danach haben viele Programme gestreikt. Hab die Schriftarten wiederhergestellt und es tat :)