Beiträge von Joe_Westbrook

    Ah xD
    Danke .. :D
    Nu geht bei zuwenig Geld das Menü zu, da steht das er zuwenig Geld hat aber er ist gefreezt :/


    Ist es richtig wenn ich hier sowas einbaue?


    new Menu:current; //Pistolen/Sonstiges menu
    current = GetPlayerMenu(playerid);
    if(current == pistolmenu)
    {
    switch(row)
    {
    case 0:
    if(499 <= GetPlayerMoney(playerid))
    {
    TogglePlayerControllable (playerid, 1);
    GivePlayerWeapon(playerid, 22, 50); //USP
    GivePlayerMoney(playerid, -500);
    HideMenuForPlayer(pistolmenu, playerid);
    TogglePlayerControllable(playerid, 1);
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du hast nicht genug Geld");
    TogglePlayerControllable(playerid, 1); // <-------------------------------------------------------------- Das da .. ;)
    }



    //EDIT:


    Klappt! DANNKKEEE!! =)
    Kommst auch in die Credits .. :)

    4 Errors:


    Code
    : error 014: invalid statement; not in switch
    : error 001: expected token: ";", but found ":"
    : error 029: invalid expression, assumed zero
    : fatal error 107: too many error messages on one line


    Alle Errors kommen aus der selben Zeile, in welcher "case 1" beginnt:


    new Menu:current; //Pistolen/Sonstiges menu
    current = GetPlayerMenu(playerid);
    if(current == pistolmenu)
    {
    switch(row)
    {
    case 0:
    if(4999 <= GetPlayerMoney(playerid))
    {
    TogglePlayerControllable (playerid, 1);
    GivePlayerWeapon(playerid, 22, 50); //USP
    GivePlayerMoney(playerid, -500);
    HideMenuForPlayer(pistolmenu, playerid);
    TogglePlayerControllable(playerid, 1);
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du hast nicht genug Geld");
    }
    }}
    case 1: // <---------------------------------------------------------------------- Die Errorzeile ;)
    if(GetPlayerMoney(playerid) >649)
    {
    GivePlayerWeapon(playerid, 24, 50); //Desert Eagle
    GivePlayerMoney(playerid, -650);
    HideMenuForPlayer(pistolmenu, playerid);
    TogglePlayerControllable(playerid, 1);
    }

    Mh ..
    So siehts momentan aus:



    new Menu:current; //Pistolen/Sonstiges menu
    current = GetPlayerMenu(playerid);
    if(current == pistolmenu)
    {
    switch(row)
    {
    case 0:
    if(GetPlayerMoney(playerid) >499)
    {
    TogglePlayerControllable (playerid, 1);
    GivePlayerWeapon(playerid, 22, 50); //USP
    GivePlayerMoney(playerid, -500);
    HideMenuForPlayer(pistolmenu, playerid);
    TogglePlayerControllable(playerid, 1);
    }


    Wie kann ich nun einbauen das wenn der Spieler unter 500$ hat, er eine Nachricht bekommt das er zuwenig Geld hätte aber das Menü geöffnet bleibt?
    Mit "else if" ?


    Also:


    Spieler X kauft sich eine USP.
    Spieler X möchte sich noch mehr Munition für die USP kaufen und wiederholt den Vorgang.
    Spieler X hat nun aber zuwenig Geld und bekommt eine Nachricht.


    Momentan geht das Menü zu und der Spieler ist gefreezt sobald er zuwenig Geld für die Waffe hat.



    Etwa irgendwie so? (Bitte haut mich nicht wenns totaler Schrott ist^^) :



    new Menu:current; //Pistolen/Sonstiges menu
    current = GetPlayerMenu(playerid);
    if(current == pistolmenu)
    {
    switch(row)
    {
    case 0:
    if(GetPlayerMoney(playerid) >499)
    {
    TogglePlayerControllable (playerid, 1);
    GivePlayerWeapon(playerid, 22, 50); //USP
    GivePlayerMoney(playerid, -500);
    HideMenuForPlayer(pistolmenu, playerid);
    TogglePlayerControllable(playerid, 1);
    {
    else if(GetPlayerMoney(playerid) <501)
    SendClientMessage(playerid, COLOR_RED, "Du hast nicht genuegend Geld!");
    }}}

    Es klappt nun, jedenfalls mehr oder weniger:


    Spieler X hat 500$.
    Spieler X will sich eine Waffe für 1000$ kaufen.
    Spieler X erhält die Waffe und hat -500$.
    Spieler X möchte nun nochmals eine Waffe kaufen.
    Spieler X kann sich die Waffe nicht kaufen, das Menü schließt sich und der Spieler ist gefreezt.

    Etwa so?


    case 0:
    {
    if(GetPlayerMoney(playerid) >0);
    GivePlayerWeapon(playerid, 22, 50); //USP
    GivePlayerMoney(playerid, -500);
    HideMenuForPlayer(pistolmenu, playerid);
    TogglePlayerControllable(playerid, 1);
    }


    Entschuldige aber ich bin ein totaler Scriptnoob .. ;):whistling:

    So ungefähr?


    case 0:
    {
    GivePlayerWeapon(playerid, 22, 50); //USP
    GivePlayerMoney(playerid, -500);
    HideMenuForPlayer(pistolmenu, playerid);
    TogglePlayerControllable(playerid, 1);
    if(GetPlayerMoney(playerid) >0);
    }



    Da bringt er mir einen Error in genau die Zeile wo das "if[GetPlayerMoney(playerid) >0);" steht:


    Code
    : error 036: empty statement

    Ja ich weiß, ich scheine zu blöd zum scripten zu sein aber heute ist halt mein erster Tag und ich versuche gerade einen TDM Script aufzubauen.
    Wie dem auch sei, hier ein Error welchen ich zu 0% verstehe:


    Code
    (423) : error 002: only a single statement (or expression) can follow each "case"


    Was will mit der Pawno Editor da sagen?





    //EDIT:


    Und hier noch die zwei Menüs falls es hilft.
    Die Zeile mit dem Error (423) ist hier Zeile 49.


    public OnPlayerSelectedMenuRow(playerid, row)
    {
    new Menu:current; //Pistolen/Sonstiges menu
    current = GetPlayerMenu(playerid);
    if(current == pistolmenu)
    {
    switch(row)
    {
    case 0:
    {
    GivePlayerWeapon(playerid, 22, 50); //USP
    GivePlayerMoney(playerid, -500);
    HideMenuForPlayer(pistolmenu, playerid);
    TogglePlayerControllable(playerid, 1);
    }
    case 1:
    {
    GivePlayerWeapon(playerid, 24, 50); //Desert Eagle
    GivePlayerMoney(playerid, -650);
    HideMenuForPlayer(pistolmenu, playerid);
    TogglePlayerControllable(playerid, 1);
    }
    case 2:
    {
    GivePlayerWeapon(playerid, 17, 2); //Rauchgranate
    GivePlayerMoney(playerid, -200);
    HideMenuForPlayer(pistolmenu, playerid);
    TogglePlayerControllable(playerid, 1);
    }
    case 3:
    {
    GivePlayerWeapon(playerid, 16, 1); //HE-Granate
    GivePlayerMoney(playerid, -700);
    HideMenuForPlayer(pistolmenu, playerid);
    TogglePlayerControllable(playerid, 1);
    }
    case 4:
    {
    GivePlayerWeapon(playerid, 44, 1); //Nachtsichtgerät
    GivePlayerMoney(playerid, -1250);
    HideMenuForPlayer(pistolmenu, playerid);
    TogglePlayerControllable(playerid, 1);
    }
    case 5:
    {
    HideMenuForPlayer(pistolmenu, playerid); //Pistolen/Sonstiges Menu schließen
    TogglePlayerControllable(playerid, 1);
    }
    else if(current == mpmenu)
    {
    switch(row)
    {
    case 0:
    {
    GivePlayerWeapon(playerid, 22, 50); //USP
    GivePlayerMoney(playerid, -500);
    HideMenuForPlayer(mpmenu, playerid);
    TogglePlayerControllable(playerid, 1);
    }
    case 1:
    {
    GivePlayerWeapon(playerid, 24, 50); //Desert Eagle
    GivePlayerMoney(playerid, -650);
    HideMenuForPlayer(pistolmenu, playerid);
    TogglePlayerControllable(playerid, 1);
    }
    case 2:
    {
    GivePlayerWeapon(playerid, 17, 2); //Rauchgranate
    GivePlayerMoney(playerid, -200);
    HideMenuForPlayer(mpmenu, playerid);
    TogglePlayerControllable(playerid, 1);
    }
    case 3:
    {
    GivePlayerWeapon(playerid, 16, 1); //HE-Granate
    GivePlayerMoney(playerid, -700);
    HideMenuForPlayer(mpmenu, playerid);
    TogglePlayerControllable(playerid, 1);
    }
    case 4:
    {
    GivePlayerWeapon(playerid, 44, 1); //Nachtsichtgerät
    GivePlayerMoney(playerid, -1250);
    HideMenuForPlayer(mpmenu, playerid);
    TogglePlayerControllable(playerid, 1);
    }
    case 5:
    {
    HideMenuForPlayer(pistolmenu, playerid); //Pistolen/Sonstiges Menu schließen
    TogglePlayerControllable(playerid, 1);
    }
    }
    }
    }


    return 1;
    }

    Momentan habe ich zwei Menüs in meinem Script. Einmal einen um Autos zu kaufen und einen um Waffen zu kaufen.
    Das Problem ist das man sich ins unendliche verschulden kann.


    Beispiel: Max connectet auf den Server und tippt /buygun ein. Er wählt die M4 aus obwohl er nur 0$ hat. Die M4 kostet 5000$.
    Nun ist er für 5000$ im minus, was aber für ihn total egal ist da er sich unendlich weit verschulden kann.


    Gibt es da schon etwas vorgefertigtes? Ich habe nichts gefunden.

    Gibt es eine Möglichkeit ein benutzbares Herz oder eine Rüstung zu spawnen?
    Also so ein Object in welches man reinlaufen kann und dann aufnimmt? Mein stärkstes Problem hierbei ist, das es von einem Spieler gespawnt werden soll und man es nur einmal aufnehmen können darf.


    Dies habe ich probiert:



    if (strcmp("/spa", cmdtext, true, 10) == 0)
    {
    if (gTeam[playerid] == TEAM_BLUE_PIONIER)
    {
    GetPlayerPos(playerid, rx, ry, rz);
    GetPlayerFacingAngle(playerid, a);
    CreateObject(1242, rx, ry, rz, 0.0, 0.0, a);
    }
    else if (gTeam[playerid] == TEAM_RED_PIONIER)
    {
    GetPlayerPos(playerid, rx, ry, rz);
    GetPlayerFacingAngle(playerid, a);
    CreateObject(1242, rx, ry, rz, 0.0, 0.0, a);
    }
    else
    {
    SendClientMessage(playerid, COLOR_BLACK, "_________________________________________________________________________________________");
    SendClientMessage(playerid, COLOR_RED, " ");
    SendClientMessage(playerid, COLOR_RED, "Du musst ein Pionier sein um diesen Befehl zu nutzen.");
    SendClientMessage(playerid, COLOR_BLACK, "_________________________________________________________________________________________");
    }
    return 1;




    Die ID 1242, welche ich von dieser Seite habe ( http://forum.sa-mp.de/wiki_backup/wiki/Object_ID%27s.html ), ist die Rüstung.
    Das gleiche habe ich für ein Herz mit der ID 1240 gemacht, bloß mit dem Befehl /sph.

    Ich glaube du hast da das "(Code) (/code)" vergessen :P
    Habe es mal einfach ein Stück eingerückt und die Warnung ist weg. Ebenfalls funktioniert es auf dem Server nun, wenn auch nicht so wie gewollt das ein Team langsam, das andere schnell unterwegs ist aber immerhin kein "Schwulentanz" mehr beim laufen ^^


    Danke Danke Danke!

    Dann erhalte ich diese Warnung:


    Code
    : warning 217: loose indentation


    Ist diese schlimm, bzw tötlich? ^^
    Sollte die 217 eine Zeilenangabe sein: In Zeile 217 ist nur eine "}" Klammer.

    Entschuldige, aber so?




    public OnGameModeInit()
    {


    UsePlayerPedAnims();


    ShowPlayerMarkers(0);


    // Don't use these lines if it's a filterscript
    SetGameModeText("BlubbBlubb");
    AddPlayerClass(97,2512.0205,128.9519,26.8512,16.6047,27,100,22,50,5,1); // Team Blau
    AddPlayerClass(264,2512.0205,128.9519,26.8512,16.6047,38,500,25,100,0,1); // Team Blau
    AddPlayerClass(97,826.9868,-1371.1267,-0.5015,317.6851,1,1,32,1000,41,1000); // Team Rot
    AddPlayerClass(264,826.9868,-1371.1267,-0.5015,317.6851,1,1,32,1000,41,1000); // Team Rot

    jopp, aber kann es sein, das er (auch) meint, das man schneller als CJ rennen können solle?^^


    Nein, nicht wirklich^^
    Nur ein Team soll schneller rennen können als das andere. Grund: Das eine Team ist wortwörtlich "fetter" als das andere .. ;)



    Wenn ich das gepostete einfüge erhalte ich folgenden Fehler:
    : error 021: symbol already defined: "UsePlayerPedAnims"


    Vermutlich bin ich aber einfach zu blöd.



    //EDIT


    Nicht möglich? Schade ..^^