Beiträge von Pusher Apparel

    Ich weiß ja nicht wie das "Haus System" Aufgebaut ist....
    Also

    new Darf[MAX_PLAYERS];


    //OnPlayerConnect
    Darf[playerid]=0;
    //Befehl
    if (strcmp("/Menu", cmdtext, true, 10) == 0)
    {
    if(Darf[playerid] == 0)return SendClientMessage(playerid, COLOR_RED, "Du darfst das Menu ausserhalb eines Hausses nicht öffnen!");
    ShowPlayerDialog(playerid, DIALOG_HAUS_MENU+1, DIALOG_STYLE_LIST, "Such dir was aus", "Armour\nHeal", "Waehlen", "Abbrechen");
    return 1;
    }

    Dann in deinem "Haus" Script, bei /enter stellst die Variable auf 1, bei /exit wieder auf 0.


    MfG
    Ed_Hardy

    Danke,
    das Update hat sich ganz schön verzögert...grade einfach keine Zeit zum mappen :(
    Das nächste Update wird aufjedenfalls ca. genauso groß sein wie die derzeitige Map.
    Mapbugs die zur Zeit sind, sind eigentlich alle schon fixxed nur eben neues fehlt noch.
    Nur wie gesagt geht es nur in kleinen Schritten voran. Jeden Tag vll 1Stunde :(


    Mfg
    Ed_Hardy

    Okay, ...
    Problem 1 somit behoben Danke. Irgendwie habe ich das mit einer Abfrage verwechselt :P
    Problem 2 besteht weiterhin...
    wenn ich 19Score habe bekomm ich kein Geld aber Meldung +3500$
    Also wie löse ich das, das man von 0-10 = 500$ // 10-20 = 600$ // 20-30 = 700$ usw. bekommt.


    MfG
    Ed_HArdy

    Wenn ich Max_PLAYERS nicht benutzen würde, wärs ja gar nicht für alle Spieler Oo
    Und das mit den unterschiedlichen Scores ist ja für jeden Spieler ?
    Trotzdem löst das nicht mein Problem ... -.-


    MfG
    Ed_Hardy

    Moin,
    ich habe es grade so gemacht das der Payday nach Score geht.
    Public Payday
    Code:

    Spoiler anzeigen
    public payday(playerid)
    {
    for (new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(GetPlayerScore(playerid)==0)return GivePlayerMoney(playerid,500); GameTextForPlayer(playerid, "~r~+500$", 3000, 4);
    if(GetPlayerScore(playerid)==10)return GivePlayerMoney(playerid,600); GameTextForPlayer(playerid, "~r~+600$", 3000, 4);
    if(GetPlayerScore(playerid)==20)return GivePlayerMoney(playerid,700); GameTextForPlayer(playerid, "~r~+700$", 3000, 4);
    if(GetPlayerScore(playerid)==30)return GivePlayerMoney(playerid,800); GameTextForPlayer(playerid, "~r~+800$", 3000, 4);
    if(GetPlayerScore(playerid)==40)return GivePlayerMoney(playerid,900); GameTextForPlayer(playerid, "~r~+900$", 3000, 4);
    if(GetPlayerScore(playerid)==50)return GivePlayerMoney(playerid,1000); GameTextForPlayer(playerid, "~r~+1000$",3000, 4);
    if(GetPlayerScore(playerid)==60)return GivePlayerMoney(playerid,1100); GameTextForPlayer(playerid, "~r~+1100$",3000, 4);
    if(GetPlayerScore(playerid)==70)return GivePlayerMoney(playerid,1200); GameTextForPlayer(playerid, "~r~+1200$",3000, 4);
    if(GetPlayerScore(playerid)==80)return GivePlayerMoney(playerid,1300); GameTextForPlayer(playerid, "~r~+1300$",3000, 4);
    if(GetPlayerScore(playerid)==90)return GivePlayerMoney(playerid,1400); GameTextForPlayer(playerid, "~r~+1400$",3000, 4);
    if(GetPlayerScore(playerid)==100)return GivePlayerMoney(playerid,1500); GameTextForPlayer(playerid, "~r~+1500$",3000, 4);
    if(GetPlayerScore(playerid)==110)return GivePlayerMoney(playerid,1600); GameTextForPlayer(playerid, "~r~+1600$",3000, 4);
    if(GetPlayerScore(playerid)==120)return GivePlayerMoney(playerid,1700); GameTextForPlayer(playerid, "~r~+1700$",3000, 4);
    if(GetPlayerScore(playerid)==130)return GivePlayerMoney(playerid,1800); GameTextForPlayer(playerid, "~r~+1800$",3000, 4);
    if(GetPlayerScore(playerid)==140)return GivePlayerMoney(playerid,1900); GameTextForPlayer(playerid, "~r~+1900$",3000, 4);
    if(GetPlayerScore(playerid)==150)return GivePlayerMoney(playerid,2000); GameTextForPlayer(playerid, "~r~+2000$",3000, 4);
    if(GetPlayerScore(playerid)==160)return GivePlayerMoney(playerid,2100); GameTextForPlayer(playerid, "~r~+2100$",3000, 4);
    if(GetPlayerScore(playerid)==170)return GivePlayerMoney(playerid,2200); GameTextForPlayer(playerid, "~r~+2200$",3000, 4);
    if(GetPlayerScore(playerid)==180)return GivePlayerMoney(playerid,2300); GameTextForPlayer(playerid, "~r~+2300$",3000, 4);
    if(GetPlayerScore(playerid)==190)return GivePlayerMoney(playerid,2400); GameTextForPlayer(playerid, "~r~+2400$",3000, 4);
    if(GetPlayerScore(playerid)==200)return GivePlayerMoney(playerid,2500); GameTextForPlayer(playerid, "~r~+2500$",3000, 4);
    if(GetPlayerScore(playerid)==210)return GivePlayerMoney(playerid,2600); GameTextForPlayer(playerid, "~r~+2600$",3000, 4);
    if(GetPlayerScore(playerid)==220)return GivePlayerMoney(playerid,2700); GameTextForPlayer(playerid, "~r~+2700$",3000, 4);
    if(GetPlayerScore(playerid)==230)return GivePlayerMoney(playerid,2800); GameTextForPlayer(playerid, "~r~+2800$",3000, 4);
    if(GetPlayerScore(playerid)==240)return GivePlayerMoney(playerid,2900); GameTextForPlayer(playerid, "~r~+2900$",3000, 4);
    if(GetPlayerScore(playerid)==250)return GivePlayerMoney(playerid,3000); GameTextForPlayer(playerid, "~r~+3000$",3000, 4);
    if(GetPlayerScore(playerid)==260)return GivePlayerMoney(playerid,3100); GameTextForPlayer(playerid, "~r~+3100$",3000, 4);
    if(GetPlayerScore(playerid)==270)return GivePlayerMoney(playerid,3200); GameTextForPlayer(playerid, "~r~+3200$",3000, 4);
    if(GetPlayerScore(playerid)==280)return GivePlayerMoney(playerid,3300); GameTextForPlayer(playerid, "~r~+3300$",3000, 4);
    if(GetPlayerScore(playerid)==290)return GivePlayerMoney(playerid,3400); GameTextForPlayer(playerid, "~r~+3400$",3000, 4);
    if(GetPlayerScore(playerid)==300)return GivePlayerMoney(playerid,3500); GameTextForPlayer(playerid, "~r~+3500$",3000, 4);
    }
    }
    return 1;
    }

    Problem daran ist, wenn ich exakt 20Score habe, bekomm ich 700$ aber die Meldung +600$.
    if(GetPlayerScore(playerid)==20)return GivePlayerMoney(playerid,700); GameTextForPlayer(playerid, "~r~+700$", 3000, 4);

    Weiteres Problem, wenn ich 15Score habe bekomm ich 0$ und die Meldung +3500$.
    Irgendwas mit >= / =< Oder so ?
    Woran liegt das ?
    Danke schonmal ;)


    MfG
    Ed_Hardy
    Ps. Hier könnt ich vll auch etwas Hilfe gebrauchen :)
    EDIT: Code etwas geändert... // Geht trotzdem nicht... // Keiner eine Lösung ?

    Also erstell erstmal ein Dialog

    //defines
    #define DIALOG_HAUS_MENU 2020


    //OnPlayerCommand...
    if (strcmp("/Menu", cmdtext, true, 10) == 0)
    {
    ShowPlayerDialog(playerid, DIALOG_HAUS_MENU+1, DIALOG_STYLE_LIST, "Such dir was aus", "Armour\nHeal", "Waehlen", "Abbrechen");
    return 1;
    }


    //OnDialog...
    if(dialogid == DIALOG_HAUS_MENU+1)
    {
    if(response)
    {
    if(listitem == 0)
    {
    SetPlayerArmour(playerid,100);
    }
    if(listitem == 1)
    {
    SetPlayerHealth(playerid, 100);
    }
    }
    return 1;
    }

    So in dem Befehl dann noch eine Abfrage ob er in einem Haus ist, oder nicht.
    Wenn Ja kann man es öffnen wenn nicht dann Fehlermeldung.
    Erstell dazu einfach eine neue Variable, bei /enter =1 _/exit = 0



    Mfg
    Ed_Hardy

    Ne Ne, aber Danke für die Hilfe.
    Das das unter OnPlayerSpawn ist, ist schon koreckt.
    Es soll ja beim Spawnen angezeigt werden.
    OnPlayerConnect > 2 Schwarze Textdraws
    OnPlayerSpawn > Befehle + Version + [SeS]Stunt > angezeigt wird nur Version + [SeS]Stunt nach gmx.


    MfG
    Ed_Hardy


    EDIT: Ich benutze /rcon gmx. Warum HideForPlayer, wenn ich das in OnGameModeExit eintrage ist es auch weg, aber danach wird es trotzdem nicht angezeigt.


    EDIT2: Hat keiner eine Idee?

    Moin,
    ich habe irgendwie mit einem Textdraw probleme, die mir nicht gefallen ^^
    Alsoo,
    ich habe ein normales Textdraw das nach einem GameMode Restart verschwindet...
    >Gmx > OnPlayerSpawn > Kurz angezeigt > Verschwunden
    Code:

    //oben
    new Text:Befehle;


    //OnPlayerspawn
    TextDrawShowForPlayer(playerid, Befehle);


    //OnGameModeInit
    Befehle = TextDrawCreate(1.000000, 432.000000, "Commands: /Teles /Parks /Jumps /Commands /Commands1");
    TextDrawBackgroundColor(Befehle, 65535);
    TextDrawFont(Befehle, 1);
    TextDrawLetterSize(Befehle, 0.500000, 1.500000);
    TextDrawColor(Befehle, 16777215);
    TextDrawSetOutline(Befehle, 1);
    TextDrawSetProportional(Befehle, 1);
    TextDrawUseBox(Befehle, 1);
    TextDrawBoxColor(Befehle, 255);
    TextDrawTextSize(Befehle, 645.000000, -72.000000);

    Das ist das einzige Textdraw, was denkt es wäre was besonderes und müsste nicht angezeigt werden...
    Alle anderen werden richtig angezeigt.
    Bitte um Hilfe weiß nicht wieso das Teil einfach verschwindet.



    MfG
    Ed_Hardy

    public OnPlayerDeath(playerid, killerid, reason)
    {
    FadePlayerScreen(playerid, 0xFFFFFFCC, 6, 192);
    GameTextForPlayer(playerid,"~w~Du Noob xD",1000,1);
    SendDeathMessage(killerid, playerid, reason);
    new score; // Das muss hier runter ^^
    score = GetPlayerScore(playerid); // Muss GetPlayerScore heißen, muss ja emittelt werden.
    SetPlayerScore(playerid,score-3); //das war wie vorher
    SetPlayerScore(killerid,4); // Hier war ein Fehler da ich score drinne hatte -.-
    GameTextForPlayer(killerid,"~r~Du Killa xD",4000,3);
    if( DMZone[killerid] >= 1 )
    {
    GivePlayerMoney(killerid, 1000);
    }
    return 1;
    }
    Also sooo sollte es nun gehen, gerade getestet.


    MfG
    Ed_Hardy
    Ps. K adde

    Es muss schon GetPlayerScore heißen, es soll ja der Score Wert emittelt werden.
    Meine Weise funktioniert genauso wie es beschrieben ist.
    Wäre gut wenn de die Zeilen sagst, also welches genau.


    MfG
    Ed_Hardy
    Ps. Icq addet
    EDIT: Haste auch das new unter OnPlayerDeath gemacht ? Muss darunter sein, sonst kommen die Errors ^^

    Also sorry, ich versteh den Text zwar nicht so ganz,
    also an dem Code finde ich nur das komisch
    SendDeathMessage(killerid, playerid, reason);
    2x wieso ? 1x reicht ^^



    Nun zum eigentlichen Problem....
    Damit "er" mit den Scores rechnen kann, muss er ja erstmal wissen was überhaupt der derzeitige Score ist.
    new score;Neue Variable


    score = GetPlayerScore(playerid);Danach fragst du den Score ab.


    SetPlayerScore(playerid,score-3); //Das heißt "score" - 3 Score
    SetPlayerScore(killerid,score 4); //Das heißt "score" + 4 Punkte sieht man oder ^^ 
    Müsste eigentlich klappen ;)


    MfG
    Ed_Hardy

    Was heißt denn einfach :P
    Das mit Junkbuster kann ich mir grad nicht erklären, da ich es nicht nutze.
    Vieleicht muss man das da noch so ändern z.B J_GivePlayerMoney, J_GivePlayerWeapon etc.


    MfG
    Ed_Hardy

    Kommt drauf an was es alles beinhalten soll,
    Ich würde dir Junkbuster empfehlen.
    Aber durch die Funktionen von Junkbuster und Lux Admins System überschneiden sich einige Sachen.
    Also entweder anpassen, oder eben Selfmade.
    Junkbuster ist zwar nicht von einem englishen Scripter aber es ist gut :)


    MfG
    Ed_Hardy

    In dem System kannst du es oben einstellen ob Score gespeichert werden soll oder nicht.
    Wenn man 1.6 ladet steht es auf false stell es auf true register dich neu und dann speichert er score mit.


    MfG
    Ed_Hardy