Beiträge von Kaliber

    Weiß nicht ob du einen Commandprozessor verwendest oder nicht, deshalb schreib ich es mal allgemein:


    //Ganz oben im Script
    new g_SpielerTimer[MAX_PLAYERS];


    // [/start] Command
    g_SpielerTimer[playerid] = GetTickCount();


    //[/stopp] Command
    g_SpielerTimer[playerid] = 0;


    //[/timer] Command
    if(!g_SpielerTimer[playerid]) return SendClientMessage(playerid,-1,"Du hast keinen Timer gestartet!");
    new string[64];
    format(string,64,"Der Timer läuft seid %d Sekunden!",(GetTickCount()-g_SpielerTimer[playerid])/1000);
    SendClientMessage(playerid,-1,string);


    mfg. :thumbup:

    Sehr nice, Danke! FS funktioniert.


    Was ich noch brauche ist ein "Aus dem Krankenhaus holen" Script. Also als Admin sollte man User, die grundlos sterben, aus dem Krankenhaus holen, mit einem speziellen Befehl. /nokh <ID> sollte er sich dann nennen und dann einen text beim Spieler anzeigen lassen "Du wurdest von einem Admin aus dem Krankenhaus geholt".


    :thumbup:


    Wie sind hier keine Community die dir all deine Sachen schreibt :wacko:


    Du solltest hier nur nach Codeschnipseln oder Anregungen fragen :whistling:


    PS: Um dir sowas zu schreiben bräuchte man schon mehr Informationen über dein Script :whistling:


    mfg. :rolleyes:


    Hier kopiers in ein Filterscript und fertig:


    /* Wettersystem Filterscript
    *
    * (c) by Kaliber, 2014
    *
    */


    #include <a_samp>


    #define Farbe -1
    #define SCM(%0) SendClientMessageToAll(Farbe,%0)


    static const wetter[] = {0,9,2,15,16,3};
    static t_ID,idx;


    public OnFilterScriptInit() return @WetterChange(),t_ID=SetTimer("@WetterChange",1000*60*60*2,1);
    public OnFilterScriptExit() return KillTimer(t_ID);


    @WetterChange();@WetterChange() {
    if(idx==sizeof(wetter)) idx=0;
    switch(idx) {
    case 0: SCM("* Wetter News: Es wird ein sonniger Tag werden.");
    case 1: SCM("* Wetter News: Dichter Nebel erscheint plötzlich.");
    case 2: SCM("* Wetter News: Die Wolkendecke reißt auf, es wird sonnig.");
    case 3: SCM("* Wetter News: Dichte Wolken ziehen langsam auf.");
    case 4: SCM("* Wetter News: Es beginnt zu regnen.");
    case 5: SCM("* Wetter News: Der Regen ist vorbei, es wird wieder sonnig.");
    }
    return SetWeather(wetter[idx]),idx++;
    }


    Viel Spaß damit ;)


    mfg. :thumbup:

    GetTickCount fragt ab wie lange man schon auf dem Server is, hat nix mit Timer zu tun.


    Nein tut es nicht ^^


    Mach folgendes:

    new g_SpielerTimer[MAX_PLAYERS];


    //Dann da wo der Timer starten soll
    g_SpielerTimer[playerid] = GetTickCount();


    //Und da wo du prüfen willst wie viel zeit vergangen ist
    printf("Es sind %ds vergangen",(GetTickCount()-g_SpielerTimer[playerid])/1000);


    mfg. :thumbup:

    Prüfen ob der Spieler im Auto sitzt mit:


    if(IsPlayerInAnyVehicle(playerid)) {
    //Hier sitzt er in einem Auto
    }


    //Wenn du prüfen willst, ob er Fahrer eines Autos ist, dann:
    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) {
    //Hier wäre er Fahrer eines Wagens
    }


    mfg. :thumbup:

    Bei Code-Teil 2 sieht man ja wie man durch eine schleife alle variablen auf 0 setzen kann, gibt es auch einen weg den namen der variable auszulesen?


    Nein, aber das brauchst du ja auch nicht...du kannst die Variablen direkt ansteuern:


    var[var_enum:0] = 1;


    //Das würde folgendem entsprechen:
    var[var1] = 1;


    mfg. :thumbup:

    Das könntest du z.B. so machen:


    static const Float:spawns[][] = {
    {192.01, 127.01, 13.65},
    {3121.20, 312.01, 12.31}
    //usw
    };


    //Abfragen tust du es so:
    new idx = random(sizeof(spawns));
    SetPlayerPos(playerid,spawns[idx][0],spawns[idx][1],spawns[idx][2]);


    mfg. :thumbup:

    Gibt es ein include bzw ein tutorial wie ich eine Tür/tor offen kann per Textdraw? Also so ein ding wo man ein Pin eingeben muss. Z.b ein tastenfeld mit den Zahlen 1-9 und wo man dann auf die zahlen klicken muss und wenn man den richtigen Code hat das die Tür/tor aufgeht.



    Ist zwar komisch erklärt aber ich hoffe ihr versteht das :D


    Naja, also ich glaube keiner wird dir den Source-Code dafür geben, aber das geht eigentlich recht einfach.


    Du downloadest dir einen TextDraw Editor und erstellst sowas ganz einfach unten rechts...mit ClickTextDraws ist das relativ einfach und gut zu verwirklichen.


    Könnte am Ende z.B. so aussehen:


    https://www.youtube.com/watch?v=w535NMc0eE4


    mfg. :thumbup:

    Schreib das mal so:


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid==DIALOG_TELEPORT) {
    if(!response) return SendClientMessage(playerid,COLOR_RED,"Vorgang abgebrochen.");
    switch(listitem) {
    case 0: SetPlayerPos(playerid,1193.8284,-925.0678,42.6760); //LS
    case 1: SetPlayerPos(playerid,1957.6561,1343.2363,14.9717); //LV
    case 2: SetPlayerPos(playerid,1957.6561,1343.2363,14.9717); //SF
    }
    }
    return 1;
    }


    mfg. :thumbup:

    Nah, die Aktualisierung ist zu krass :D


    Unter OnPlayerUpdate wird das ungefähr > 1000x die Sekunde aufgerufen ^^


    Schreibs mal so:


    Spoiler anzeigen
    #include <a_samp>

    Spoiler anzeigen
    new PlayerText3D:Info[MAX_PLAYERS],FPS_LAST[MAX_PLAYERS],FPS[MAX_PLAYERS];
    public OnPlayerConnect(playerid) return SetTimerEx("@Stream_Draw",1000,1,"i",playerid);
    public OnPlayerStreamIn(playerid, forplayerid)
    {
    if(IsPlayerNPC(playerid)) return 1;
    Info[playerid] = CreatePlayer3DTextLabel(forplayerid, "Ping: 0\nFPS: 0", -1, 0.0, 0.0, 0.35, 30.0, playerid, 0);
    return 1;
    }
    @StreamDraw(playerid);@StreamDraw(playerid) {
    new string_3D[256];
    format(string_3D, sizeof(string_3D), "{ff0033}Ping: {ffffff}%d\n{ff0033}FPS: {ffffff}%d", GetPlayerPing(playerid), FPS[playerid]);
    for(new i, j = GetMaxPlayers(); i != j; i++)
    {
    if(!IsPlayerConnected(i) || IsPlayerNPC(i)) continue;
    UpdatePlayer3DTextLabelText(i, Info[playerid], -1, string_3D);
    }
    return 1;
    }

    Spoiler anzeigen
    public OnPlayerUpdate(playerid)
    {
    new drunknew = GetPlayerDrunkLevel(playerid);
    if (drunknew < 100) return SetPlayerDrunkLevel(playerid, 2000),1;
    if (FPS_LAST[playerid] != drunknew) {
    new wfps = FPS_LAST[playerid] - drunknew;
    if ((wfps > 0) && (wfps < 200))FPS[playerid] = wfps;
    FPS_LAST[playerid] = drunknew;
    }
    return 1;
    }
    public OnPlayerStreamOut(playerid, forplayerid)
    {
    if(IsPlayerNPC(playerid)) return 1;
    for(new i; i < 6; i++) DeletePlayer3DTextLabel(forplayerid, Info[playerid]);
    return 1;
    }


    mfg. :thumbup: