Beiträge von RFT

In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums

    Wieso aufwendig ?


    Dazu hab ich doch die GiveMoney(playerid, Money);
    Funktion geschrieben ?Was ist denn daran Aufwendig ?
    Im Script mit strg+H alle GivePlayerMoney´s gegen GiveMoney austauschen und fertig.
    Oder die GivePlayerMoney Funktion hooken.


    LG RFT

    MAch es doch so wenn er in pay and spray 4 sekunden in rage of point ist gib ihm 100 dollar :D so einfach


    //CLOSE



    Aha und dann stell ich mich dort den ganzen Tag hin und werde Millionär.



    stock GiveMoney(playerid, money)
    {
    SetPVarInt(playerid, "money", GetPVarInt(playerid, "money")+money);
    GivePlayerMoney(playerid, money);
    }


    stock CheckPlayerMoney(playerid)
    {
    if(GivePlayerMoney(playerid) != GetPVarInt(playerid, "money"))
    {
    GivePlayerMoney(playerid, GetPVarInt(playerid, "money"));
    }
    }



    Wie keine Lust ?
    Die Paar Zeilen das war ne Arbeit von 20 Sekunden.


    Diese Funktion in nem Timer nutzen.
    Und zum Geld geben "GiveMoney" nutzen.
    Oder GivePlayerMoney Funktion hooken.


    LG RFT

    Ich habe gerade nicht verstanden was du genau möchtest.
    Du kannst natürlich nicht einfach einen Admin Command umbennen und dann ist er für Fraktionen gedacht.
    Musst die Abfragen etc. Anpassen.



    }
    else{
    SendClientMessage(playerid, RED,"Du bist kein Admin!");


    Das muss noch raus da du ja keine Admin Abfrage drinne hast.


    public Zahltag()
    {
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    new TempLohn;
    new Tax;
    new Text[1024];//Nehmen wir vorsichtshalber 1024 Zellen
    new TempJob=SpielerStats[i][Job];
    if(TempJob==1)
    TempLohn=Lohn[Polizei];
    else if(TempJob==2)
    TempLohn=Lohn[FBI];
    else if(TempJob==2)
    TempLohn=Lohn[Army];
    else if(TempJob==2)
    TempLohn=Lohn[Feuerwehr];
    else if(TempJob==2)
    TempLohn=Lohn[Praesident];
    else if(TempJob==2)
    TempLohn=Lohn[News];
    else if(TempJob==2)
    TempLohn=Lohn[Taxi];
    else if(TempJob==2)
    TempLohn=Lohn[Fahrschule];
    else if(TempJob==2)
    TempLohn=Lohn[Adac];
    else if(TempJob==2)
    TempLohn=Lohn[Lufthansa];
    else if(TempJob==2)
    TempLohn=Lohn[Meteorologen];
    else if(TempJob==2)
    TempLohn=Lohn[Krankenhaus];


    TempLohn=TempLohn + (TempLohn/2)*SpielerStats[i][Jobrang];
    new TempSteuern = (TempLohn/100)*Steuern;
    Staatsgeld += TempSteuern;
    new lohn=TempLohn - (TempLohn/100)*Steuern;
    SpielerStats[i][Konto] += lohn;
    format(Text,sizeof(Text),"|____________________ Zahltag ____________________|\nZuschuss zum Lohn vom Staat: %d$",TempLohn);
    format(Text,sizeof(Text),"%s\nLohnsteuer: -%d$ (%d Prozent)",Text, TempSteuern,Steuern);
    format(Text,sizeof(Text),"%s\nLohn: +%d$",Text, lohn);
    if(SpielerStats[i][Haus] > 0)
    {
    SpielerStats[i][Konto]-=SpielerStats[i][Haus]*Stromkosten;
    format(Text,sizeof(Text),"%s\nStromrechnung: -%d$",Text, SpielerStats[i][Haus]*Stromkosten);
    SpielerStats[i][Konto]-=SpielerStats[i][Haus]*Heizkosten;
    format(Text,sizeof(Text),"%s\nHeizkosten: -%d$",Text, SpielerStats[i][Haus]*Heizkosten);
    }
    if(SpielerStats[i][Miete] > 0)
    {
    SpielerStats[i][Konto]-=SpielerStats[i][Miete];
    format(Text,sizeof(Text),"%s\nMietkosten: -%d$",Text, SpielerStats[i][Miete]);
    for(new h=0;h<MAX_HOUSES;h++)
    {
    if(!strcmp(HausStats[i][Mieter],SpielerName[i],false))
    {
    HausStats[h][Hauskasse]+=SpielerStats[i][Miete];
    }
    }
    }
    if(SpielerStats[i][Handyvertrag] == 1)
    {
    SpielerStats[i][Konto] -= 100;
    format(Text, sizeof(Text), "%s\nHandyVertrag: 100$",Text);
    }
    if(SpielerStats[i][Versicherung]==1)
    {
    SpielerStats[i][Konto] -= SpielerStats[i][Versicherungsgebrauch]*250;
    format(Text,sizeof(Text),"%s\nVersicherung: -%d$",Text, SpielerStats[i][Versicherungsgebrauch]*250);
    }
    if(SpielerStats[i][Webspace] > 0)
    {
    new Webspacekosten = SpielerStats[i][Webspace] * 300;
    SpielerStats[i][Konto] -= Webspacekosten;
    format(Text,sizeof(Text),"%s\nWebspacekosten: -%d$",Text, Webspacekosten);
    SendClientMessage(i, FARBE_HELLROT, Text);
    }
    if(SpielerStats[i][DSL] > 0)
    {
    SpielerStats[i][Konto] -= 129;
    format(Text, sizeof(Text), "%s\nDSL Kosten: -129$", Text);
    }
    if(SpielerStats[i][ViP] == 1)
    {
    new Zinsen = (SpielerStats[i][Konto] / 100)*2;
    SpielerStats[i][Konto] += (SpielerStats[i][Konto] / 100)*2;
    format(Text,sizeof(Text),"%s\nZinsen: +%d$ (2 Prozent)",Text, Zinsen);
    format(Text,sizeof(Text),"%s\nVermögenssteuer: Befreit", Text);
    }
    else
    {
    new Zinsen = (SpielerStats[i][Konto] / 100)/2;
    SpielerStats[i][Konto] += (SpielerStats[i][Konto] / 100)/2;
    format(Text,sizeof(Text),"%s\nZinsen: +%d$ (0.5 Prozent)",Text, Zinsen);
    Tax = SpielerStats[i][Konto] / 100 * V_Steuern;
    SpielerStats[i][Konto] -=Tax;
    Staatsgeld += Tax;
    format(Text,sizeof(Text),"%s\nVermögenssteuer: -%d (%d Prozent)",Text, Tax,V_Steuern);
    }


    format(Text,sizeof(Text),"%s\nKontostand: %d",Text, SpielerStats[i][Konto]);
    GameTextForPlayer(i, "~y~Zahltag", 5000, 1);
    ZahltagSound(i);
    SpielerStats[i][Erfahrungspunkte]++;
    ShowPlayerDialog(playerid, 0, DIALOG_STYLE_MSGBOX, "Zahltag", Text, "OK", "OK");
    }
    return 1;
    }

    Du lässt die Werte mit Dini bei jeder benutzung auslesen.
    Wieso lässt du sie beim Server Start nicht in einer Enum Struktur laden und fragst die Werte von der Enum Struktur ab ?
    und bei veränderungen am Haus halt Updaten ist doch optisch viel schöner und schonender.

    Kann ja auch nicht pickupid wird nicht übertragen.




    SetTimerEx("UpdateHausInfoText", 800, 1, "dd", playerid, pickupid);



    Obwohl du das nicht benötigst.
    Ausserdem fragst du doch schon die position ab also nimm das hier raus:




    forward UpdateHausInfoText(playerid);
    public UpdateHausInfoText(playerid)
    {
    for(new haus=1;haus<MAX_HAUS;haus++)
    {
    new pfad[50];
    format(pfad,sizeof(pfad),"/Haeuser/%d.txt",haus);
    if(IsPlayerInRangeOfPoint(playerid,2,dini_Float(pfad,"x"),dini_Float(pfad,"y"),dini_Float(pfad,"z")))
    {
    SendClientMessage(playerid,Color_Green,"Hey-Ho!");
    TextDrawShowForPlayer(playerid,HausInfoText[haus]);
    }
    }
    return 1;
    }


    Und mach es so aber wieso du es bei jedem abfragen neu auslesen lässt ist mir ein Rätsel :P

    Möchtest du das überhaupt in ocmd ?
    Oder welches System benutzt du oder einfach strcmp in Verbindung mit strtok ?



    PS: Der OCMD Command da oben ist ohne adminabfrage.



    //Edit: Unshow Command in ocmd:



    ocmd:show(playerid,params[]){
    DisablePlayerCheckpoint(playerid);
    SendClientMessage(playerid,Farbe," Du siehst nun kein CP mehr auf der Karte");}



    Bitte richtig einrücken und wenn du es in strcmp oder so möchtest einfach bescheid sagen.

    Spielerdatei als playerid für nen PVar ? Kann nicht funktionieren.




    public OnPlayerDisconnect(playerid, reason)
    {
    if(GetPVarInt(playerid,"loggedin") == 1 //Falls er eingeloggt war
    {
    SpielerSpeichern(playerid); //Unsere SpielerSpeichern-Funktion wird angewendet......
    }
    return 1;
    }