Beiträge von Jeffry

    Nein, das gibt es nicht.
    Da musst du eine Spielervariable auf 1 setzen, wenn du es anzeigst, dort auch zuvor abfragen, ob diese 1 ist, wenn ja abbrechen, und dort wo du das Textdraw entfernst die Spielervariable wieder auf 0 setzen.


    Prüfung ob 1, wenn ja abbrechen
    Auf 1 setzen
    ...
    Auf 0 setzen

    So:
    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == DIALOG_GAME)
    {
    if(response)
    {
    if(strval(inputtext) < 2500 || strval(inputtext) > 10000)
    {
    ShowPlayerDialog(playerid,DIALOG_GAME, DIALOG_STYLE_INPUT, "Set a bet", "Type in for how much money you want to buy a ticket.", "Buy", "Cancel");
    return SendClientMessage(playerid,0x00FF00FF, "{FF1717}ERROR:{FFFFFF} You must set a bet from 2.500$ to 10.000$ at least.");
    }
    new str[145];
    format(str, sizeof(str), "You have bought a ticket for %i $!", strval(inputtext));
    SendClientMessage(playerid,0x00FF00FF, str);
    new zahl = random(300001) + 100000;
    format(str, sizeof(str), "Zahl: %d", zahl);
    if(random(2) == 0)
    {
    Showing[playerid] = 1;
    TextDrawShowForPlayer(playerid, Textdraw0);
    TextDrawShowForPlayer(playerid, Textdraw1);
    TextDrawShowForPlayer(playerid, Textdraw2);
    TextDrawShowForPlayer(playerid, Textdraw3);
    TextDrawShowForPlayer(playerid, Textdraw4);
    TextDrawShowForPlayer(playerid, Textdraw6);
    TextDrawSetString(Textdraw2, str);
    SelectTextDraw(playerid, 0xFFFF0000);
    }
    else
    {
    Showing[playerid] = 1;
    TextDrawShowForPlayer(playerid, Textdraw0);
    TextDrawShowForPlayer(playerid, Textdraw1);
    TextDrawShowForPlayer(playerid, Textdraw2);
    TextDrawShowForPlayer(playerid, Textdraw3);
    TextDrawShowForPlayer(playerid, Textdraw5);
    TextDrawShowForPlayer(playerid, Textdraw6);
    TextDrawSetString(Textdraw2, str);
    SelectTextDraw(playerid, 0xFFFF0000);
    }
    }

    }
    return 0;
    }

    C
    savePlayer(playerid)
    {   
    	//Speichern//
    	new query[256], pname[MAX_PLAYER_NAME];
    	GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
    	format(query,sizeof(query),"UPDATE accounts SET money='%i' WHERE name = '%s'", pInfo[playerid][pMoney], pname);
    	mysql_query(query);
    	return 1;
    }

    random(2) => Gibt entweder 0 oder 1 zurück. Du kannst da auch 1 hinschreiben, das spielt keine Rolle, da die Chance 50:50 ist, welche Zahl kommt.


    Zu deiner anderen Frage:

    C
    new zahl = random(300001) + 100000;

    random(300001) => Zahl zwischen 0 und 300.000 (jeweils inklusiv).

    Die 50% Chance kannst du so machen:

    C
    if(random(2) == 0)
    {
        //Gewonnen
    }
    else
    {
        //Verloren
    }


    Dann jeweils dort den Code einfügen, den du dort haben willst.

    Die Anzahl der Spalten Namen (erster Teil) stimmt nicht mit der Anzahl der Werte (zweiter Teil) überein. Zähle die Platzhalter (%d,...) und die Variablen im format nach und prüfe, welche Variable bzw welcher Platzhalter zu viel da ist, oder fehlt.

    Vielen Dank

    Ich poste hier nochmal, da dein Code noch einige weitergehende Probleme hat, die du aber beim alleinigen Test nicht merken wirst.
    - Es werden irgendwann ziemlich viele Timer laufen, da die Variable nicht gespeichert wird, sondern nur lokal existiert.
    - Du löschst das Textdraw, anstatt es zu verstecken, sprich es kann nicht wieder angezeigt werden.
    - Schält ein Spieler die Anzeige an, dann ist sie für alle an.


    Mache es so:


    Bei OnGameModeInit:

    C
    SetTimer("Fps",500,true);


    Unter den Includes:

    C
    new bool:fpsbefehl[MAX_PLAYERS];


    Den Befehl:


    Das Timer Callback:


    Und bei OnPlayerConnect:

    C
    fpsbefehl[playerid]=false;

    Versuche es so, mit dem letzten format:

    C
    format(var, sizeof(var),
    "INSERT INTO `usercars` (`Name`, `AH_Typ`, `AH_X`, `AH_Y`, `AH_Z`, `AH_Rot`, `AH_Status`, `AH_Lock`, `AH_Paintjob`, `AH_Farbe1`, `AH_Farbe2`, `AH_mod1`, `AH_mod2`, `AH_mod3`, `AH_mod4`, %s, %s) VALUES ('%s', '%d', '%.1f', '%.1f', '%.1f', '%.1f', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', %s, %s)",
    formi3,formi2,formi,Carlist[playerid][chid][Typ],Carlist[playerid][chid][pos_x],Carlist[playerid][chid][pos_y],Carlist[playerid][chid][pos_z],Carlist[playerid][chid][z_angle],Carlist[playerid][chid][Status],Carlist[playerid][chid][Lock],Carlist[playerid][chid][Paintjob],
    Carlist[playerid][chid][Farbe1],Carlist[playerid][chid][Farbe2],Carlist[playerid][chid][mod1],Carlist[playerid][chid][mod2],Carlist[playerid][chid][mod3],Carlist[playerid][chid][mod4],formi4,formi5);

    Wie schauts mit dem Ping beim mobilen Hotspot aus? (Wäre gut wenn du Aldi Talk hast.. oder zumindest die Entfernung zum nächsten Funkturm angibst^^)

    Das kommt ja immer auf das Netz drauf an, wie gut das am jeweiligen Ort ist.
    Am besten du fragst die Freundin mal, ob du das mal ausprobieren kannst, wie die Ping bei dir ist, das ist der beste Weg das herauszufinden. Ich denke aber, dass das nicht oder nur kaum vom Gerät abhängig ist, sondern eher vom Netz an sich.

    Stimmt der Rest sonst?
    Wenn ja, dann würde ich es einfach so machen, das schließt die Fehler aus:

    C
    public Fps(playerid)
    {
    	new fpsstring[50], fps = GetPlayerFPS(playerid);
    	if(fps <= 0) return 1;
    	format(fpsstring, sizeof(fpsstring), "%d",fps);
    	PlayerTextDrawSetString(playerid,fpsanzeige[playerid],fpsstring);
    	PlayerTextDrawShow(playerid, fpsanzeige[playerid]);
    	return 1;
    }

    Was wird dir so geprintet?