Beiträge von Kaliber

    Ist es möglich irgendwie den Servernamen über die Datenbank zu speichern?


    Ja, du könntest das oben in dein Script schreiben:


    #define GetServerName(%1) GetServerVarAsString("hostname",%1,sizeof(%1))


    //und dann so abfragen:
    new string[128];
    GetServerName(string);
    printf("Mein Servername lautet: %s",string);


    mfg. :thumbup:

    Aber es funktuniert doch :D


    Darum geht es nicht.


    Du könntest es auch nur so schreiben:


    #define OnPlayerUpdate t_OnPlayerUpdate


    und es würde gehen :rolleyes:


    Es geht bei dem obrigen nur darum Warnings zu vermeiden, z.B. 2 Includes die den selben Callback hooken...durch diese Abfragen wird dann wieder das eine #undef und dafür das andere #define ;)


    Ist nur eine kleine Sicherheitsmaßnahme für mehrere Includes ;)


    mfg. :thumbup:

    Kannst mir den auch sagen welche Fehler ich beim hooken gemacht habe?


    Klar ;)


    Also, du hast folgendes geschrieben:


    #if defined _ALSt_OnPlayerUpdate
    #undef OnPlayerUpdate
    #else
    #define _ALSt_OnPlayerUpdate
    #endif
    #define OnPlayerUpdate t_OnPlayerUpdate


    Richtig wäre es aber so:


    #if defined _ALS_OnPlayerUpdate
    #undef OnPlayerUpdate
    #else
    #define _ALS_OnPlayerUpdate
    #endif
    #define OnPlayerUpdate t_OnPlayerUpdate


    mfg. :thumbup:

    Wie wenn er die Option 14 hat ,...


    einfach -1 hinten?


    Es wird hier von der Typid gesprochen nicht von der Virtuellen Welt ^^


    Ja, wie schon gesagt wurde, einfach das Pickup zerstören :)


    forward P_Timer(Float:X,Float:Y,Float:Z);


    //Wenn er in das Pickup reinfährt unten schreiben
    SetTimerEx("P_Timer", 1000*10, 0, "fff", 0.0,0.0,0.0); //Hier Koordinaten vom Pickup einsetzen
    DestroyPickup(pickupid);//pickupid halt von dem Pickup als Variable da einsetzen


    //Der Timer
    public P_Timer(Float:X,Float:Y,Float:Z)
    {
    CreatePickup(model,14,X,Y,Z,-1); //model halt ersetzen
    return 1;
    }


    mfg. :thumbup:

    Schreib das mal so:


    public FeuerTimer()
    {
    for(new i; i < MAX_PLAYERS; i++)
    {
    if(Spieler[i][Team] != 3 || !IsPlayerConnected(i)) continue;
    SendClientMessage(i,COLOR_RED,"********************************|Brand-Meldung|********************************");
    SendClientMessage(i,COLOR_YELLOW,"An alle einheiten, wir haben eine Brandmeldung von einen Anwohner bekommen.");
    SendClientMessage(i,COLOR_YELLOW,"Laut der aussage des Anwohners ist der Brand am Los Santos Burger Shot Nord.");
    SendClientMessage(i,COLOR_YELLOW,"Bitte begeben sie sich sofort zum Einsatzort.");
    AddFire(1756.1765,-1929.7749,16.6859);
    AddFire(1210.4668,-921.8366,42.9317);
    AddFire(1207.8740,-921.8892,42.9356);
    AddFire(1206.0255,-921.0020,43.0624);
    AddFire(1202.4823,-921.2293,43.0858);
    AddFire(1201.5690,-923.6860,43.0025);
    AddFire(1199.7859,-923.0240,43.0217);
    AddFire(1197.1677,-923.3539,43.0496);
    AddFire(1195.6759,-925.0435,43.0652);
    AddFire(1194.5585,-924.3815,43.0773);
    }
    return 1;
    }


    mfg. :thumbup:

    Ich möchte mal kurz sagen, dass das so schlecht gelöst ist, omg :pinch:


    Hier, mal deins zusammengefasst und verbessert mit mehr Funktionen:


    #include <a_samp>
    static bool:tazed[MAX_PLAYERS];

    public OnFilterScriptInit() return print("Script Loaded (c) by Kaliber");


    GetName(playerid) {
    new name[24];
    GetPlayerName(playerid,name,24);
    return name;
    }

    public OnPlayerGiveDamage(playerid, damagedid, Float: amount, weaponid)
    {
    if(GetPlayerWeapon(playerid) != 23 || tazed[damagedid]) return 1;
    new string[128];
    TogglePlayerControllable(damagedid,0);
    ApplyAnimation(damagedid,"CRACK","crckdeth2",4.1,1,1,1,1,1);
    SetTimerEx("Tazered", 15000, 0, "d",damagedid);
    tazed[damagedid] = true;
    format(string, sizeof string, "* %s hat %s mit einem Stromschocker getroffen.",GetName(playerid),GetName(damagedid));
    RangeSend(playerid, 30.0, string);
    GameTextForPlayer(damagedid, "~r~Geschockt", 5000, 3);
    return 1;
    }
    RangeSend(playerid, Float:range, txt[]) {
    new i,Float:Q[3];
    GetPlayerPos(playerid,Q[0],Q[1],Q[2]);
    for(; i<MAX_PLAYERS; i++) {
    if(!IsPlayerInRangeOfPoint(i,range,Q[0],Q[1],Q[2])) continue;
    SendClientMessage(i,0xC2A2DAAA,txt);
    }
    return 1;
    }
    forward Tazered(playerid);
    public Tazered(playerid) {
    TogglePlayerControllable(playerid,1);
    tazed[playerid] = false;
    ClearAnimations(playerid);
    return 1;
    }


    Das ist 1000x besser als das was du da gemacht hast zudem ist bei dir die Variable "tazetimer[MAX_PLAYERS]" total Sinnlos :rolleyes:


    Schau dir an, wie ich das gemacht habe und lerne bitte etwas daraus ^^


    mfg. :thumbup:


    //Edit: Rechtschreibung im Code...

    So zum Beispiel:


    //In einem CMD oder Callback
    ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Test Text","Hier bitte den Text eingeben:","Bestätigen","Abbrechen");


    //Unter OnPlayerDialogResponse
    if(dialogid == 1) {
    if(!response) return 1;
    new string[128];
    format(string,128,"Du hast eingegeben: %s",inputtext);
    SendClientMessage(playerid,-1,string);
    }


    mfg. :thumbup:

    new string[128],sendername[24];
    GetPlayerName(playerid,sendername,24);
    format(string,sizeof(string),"accounts/%s",sendername);
    if(dini_exists(string)){
    return 1;
    }
    else
    return 0;
    }
    return 1;


    So ;)


    mfg. :thumbup: