Beiträge von Inaktiv_Für_Immer

    Das würde nicht gehen bzw. ging bei mir früher nicht ;):
    if(!IsPlayerInRangeOfPoint(playerid,5,pID))return SendClientMessage(playerid,Lila,"Du bist zu weit weg!");


    Hier mal einen public:
    oben ins Script =
    forward Float:GetDistanceBetweenPlayers(p1,p2);


    Irgendwo im Script =
    public Float:GetDistanceBetweenPlayers(p1,p2)
    {
    new Float:x12,Float:y12,Float:z12,Float:x22,Float:y22,Float:z22;
    if(!IsPlayerConnected(p1) || !IsPlayerConnected(p2))
    {
    return -1.00;
    }
    GetPlayerPos(p1,x12,y12,z12);
    GetPlayerPos(p2,x22,y22,z22);
    return floatsqroot(floatpower(floatabs(floatsub(x22,x12)),2)+floatpower(floatabs(floatsub(y22,y12)),2)+floatpower(floatabs(floatsub(z22,z12)),2));
    }


    Und hier ein kleines Beispiel:
    if(GetDistanceBetweenPlayers(playerid, pID) < 8)
    {
    }
    else
    {
    SendClientMessage(playerid,FARBE,"zu weit weg.");
    }
    return 1;
    Gruß, Bunny

    Und wie füge ich einen Timer ein? Also z.B, dass der Befehl nur alle 30 Sekunden verfügbar ist


    Eine if-Abfrage und einen Timer, der nach einer bestimmten Zeit den Befehl wieder nutzbar macht.


    Schreibe dir später eine ausführliche Nachricht, da ich gerade im Zeitdruck bin und gleich los gehen muss ;)


    /edit
    Und wenn Du dem Spieler unbedingt einen Crash verpassen willst, schreib hin:
    SetPlayerSkin(giveplayerid,500);


    :whistling:


    Nützt ihm ja recht wenig, wenn Du fast das gleiche postest. Schreib mal bei deinem /makeleader-Befehl:
    SpielerSpeichern(pID);


    hin.

    coole idee aber das mit level wird nach 1 sek wieder weg gehen genau so mit geld
    lol und nach restart kann man das wieder benutzen
    kann mir wer helfen?


    Edit: Rechtschreibung


    Ich habe doch gesagt, dass Du "Advent" noch abspeichern sollst. Ich kenne dein Script leider nicht, damit ich es speichern kann. Das musst Du wohl oder übel selbst erledigen ;)

    Irgendwo ein neues public erstellen:


    public Advent(playerid)
    {
    if(IsPlayerConnected(playerid))
    {
    SendClientMessage(playerid,FARBE,"Du kannst Dir nun wieder ein Geschenk aussuchen! [/advent]");
    SetPVarInt(playerid,"Advent",0);
    }
    return 1;
    }


    Und am Anfang vom Script forward Advent(playerid);


    Hier der allgemeine Befehl:


    ocmd:advent(playerid,params[])
    {
    if(GetPVarInt(playerid,"Advent")==0)
    {
    ShowPlayerDialog(playerid,ADVENT,DIALOG_STYLE_LIST,"Advent-Geschenk:","Einen Zollpass \r\n10.000$ \r\n+3 Level","Auswählen","Abbrechen");
    }
    else
    {
    SendClientMessage(playerid,FARBE,"Du hast heute schon dein Geschenk bekommen.");
    }
    return 1;
    }


    Das hier bei OnDialogResponse:
    // Advents-System
    if(dialogid == ADVENT)
    {
    if(response==1)
    {
    if(listitem == 0)
    {
    // zollpass halt geben, kenne deinen script nicht,also musst du es machen
    SetPVarInt(playerid,"Advent",1);
    SetTimer("Advent", 84000000, false);
    SendClientMessage(playerid,FARBE,"Du hast einen Zollpass Geschenk bekommen. Nach 24 Stunden kannst Du dir erneut ein Geschenk aussuchen!");
    }
    if(listitem == 1)
    {
    GivePlayerMoney(playerid,10000);
    SetPVarInt(playerid,"Advent",1);
    SetTimer("Advent", 84000000, false);
    SendClientMessage(playerid,FARBE,"Du hast 10.000$ Geschenk bekommen. Nach 24 Stunden kannst du dir erneut ein Geschenk aussuchen!");
    }
    if(listitem == 2)
    {
    SetPlayerScore(playerid, GetPlayerScore(playerid) + 3);
    SetPVarInt(playerid,"Advent",1);
    SetTimer("Advent", 84000000, false);
    SendClientMessage(playerid,FARBE,"Du hast +3 Level Geschenk bekommen. Nach 24 Stunden kannst Du dir erneut ein Geschenk aussuchen!");
    }
    }
    if(response==0)
    {
    SendClientMessage(playerid,FARBE,"Dann halt nicht...");
    }
    }


    Und bei deinen Dialogen ein
    #define ADVENT [die zahl des dialoges]


    So, und jetzt musst Du die Adventabfrage speichern ;) Musst Du alleine machen, da ich dein Script nicht kenne.

    Ihr schreibt, dass ein Preis auch eingegeben werden muss, doch bestimmt den Preis selber.
    Und GoldHamster, das hier ist völliger Schwachsinn:
    format(string,sizeof(verletzter)
    Und Medic brauchst Du garnicht extra zu definieren, (playerid) reicht auch aus, soweit ich weiß ;)



    ocmd:heal(playerid,params[])
    {
    if(!isPlayerInFrakt(playerid,3))
    {
    new verletzter;
    new preis;
    if(sscanf(params,"ui",verletzter,preis))return SendClientMessage(playerid,ROT,"/heal [SpielerID] [Preis]");
    SetPlayerHealth(verletzter,100);
    GivePlayerMoney(playerid,preis);
    GivePlayerMoney(verletzter,-preis);
    new string[128];// 128 reicht vollkommen
    format(string,sizeof(string),"Du wurdest von Artzt %s geheilt und bezahlst %d$.",SpielerName(playerid),preis);// Da gehört nicht verletzer sonder Medic weil du wirst ja nicht vom verletzten geheilt
    SendClientMessage(verletzter,ROT,string);

    }
    else
    {
    SendClientMessage(playerid,FARBE,"Du bist kein Medic!");
    }
    return 1;
    }


    So dürfte es klappen ;)