[SAMMELTHREAD] Kleine Scripting Fragen

Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Ja, aber nicht im enum, sondern in einer Schleife bei OnGameModeInit:
    for(new i = 0; i < sizeof(array); i++) array[i][label] = Text3D:INVALID_3D_TEXTID;


    Und zusätzlich dort, wo das Label gelöscht wird:
    if(array[i][label] != Text3D:INVALID_3D_TEXTID) Delete3DTextLabel(array[i][label]);
    array[i][label] = Text3D:INVALID_3D_TEXTID;

  • Danke.


    @Kaliber



    Kommt aber:


    happyages.pwn(33162) : warning 213: tag mismatch
    happyages.pwn(33162) : warning 213: tag mismatch


    Bei beiden "dis = GetPlayer.."

    Einmal editiert, zuletzt von hav0K~ ()

  • Hmm, hat jemand vielleicht eine Lösung für mein Problem, @Jeffry vielleicht :) ?


    Ich rufe mit einem Befehl eine Top Liste für verschiedene Bereiche ab, alle funktionieren bis auf eins.
    So schaut's aus wenn's funktioniert (Top Kills)



    Und so mit dem was ich als letztes hinzugefügt habe



    Ich denke es liegt daran, das ich die Farbe abfragen möchte, die aber in der "players" Tabelle gespeichert ist und die Daten die für die Top-Liste in der "battlestats" gespeichert sind.
    Wie könnte ich das jetzt so machen, das er die Farbe von der players Tabelle aufruft, die anderen Daten aber von der Battlestats Tabelle, also von 2 verschiedenen Tabellen?



    format(cQuery, sizeof(cQuery), "SELECT Name, WonDuels, Color FROM `battlestats` ORDER BY `WonDuels` DESC LIMIT 10");
    mysql_query(MySQL, cQuery);
    mysql_store_result();


    Mit freundlichen Grüßen
    JustMe.77 8)

  • case DIALOG_ATM:
    {
    if(response)
    {
    if(listitem == 0) // Einzahlen
    {
    strdel(DialogString, 0, sizeof(DialogString));
    format(DialogString, sizeof(DialogString), COLOR_HEX_YELLOW"Dein Kontostand beträgt %d$\nGib hier den Betrag ein, den du Einzahlen möchtest.", Spieler[playerid][pBank]);
    ShowPlayerDialog(playerid, DIALOG_ATM_ANLEGEN, DIALOG_STYLE_INPUT, "Einzahlen", DialogString, "OK", "Abbrechen");
    return 1;
    }
    if(listitem == 1) // Abheben
    {
    strdel(DialogString, 0, sizeof(DialogString));
    format(DialogString, sizeof(DialogString), COLOR_HEX_YELLOW"Dein Kontostand beträgt %d$\nGib hier den Betrag ein, den du Auszahlen möchtest.", Spieler[playerid][pBank]);
    ShowPlayerDialog(playerid, DIALOG_ATM_ABHEBEN, DIALOG_STYLE_INPUT, "Auszahlen", DialogString, "OK", "Abbrechen");
    return 1;
    }
    if(listitem == 2) // Handyladekarte
    {
    strdel(DialogString, 0, sizeof(DialogString));
    format(DialogString, sizeof(DialogString), "1000$\n5000$\n10000$");
    ShowPlayerDialog(playerid, DIALOG_ATM_HANDY, DIALOG_STYLE_LIST, "Handyladekarte", DialogString, "Aufladen", "Abbrechen");
    return 1;
    }
    }
    }


    Ich habe eine kleine Frage wen ich jetzt z,b auf Aufladen klicke z,b 1000$ Handykarte soll das Fenster verschwinden und nicht mehr erscheinen bei mir ist der fall wen ich auf 1000$ Handykarte gehe kommt das fenster wider wie kann ich das machen das es dann nicht mehr kommt?

    Einmal editiert, zuletzt von seegras () aus folgendem Grund: Mit der richtigen Einrückung sieht es doch gleich viel besser aus

  • case DIALOG_ATM:{ if(response) { if(listitem == 0) // Einzahlen { strdel(DialogString, 0, sizeof(DialogString)); format(DialogString, sizeof(DialogString), COLOR_HEX_YELLOW"Dein Kontostand beträgt %d$\nGib hier den Betrag ein, den du Einzahlen möchtest.", Spieler[playerid][pBank]); ShowPlayerDialog(playerid, DIALOG_ATM_ANLEGEN, DIALOG_STYLE_INPUT, "Einzahlen", DialogString, "OK", "Abbrechen"); return 1; } if(listitem == 1) // Abheben { strdel(DialogString, 0, sizeof(DialogString)); format(DialogString, sizeof(DialogString), COLOR_HEX_YELLOW"Dein Kontostand beträgt %d$\nGib hier den Betrag ein, den du Auszahlen möchtest.", Spieler[playerid][pBank]); ShowPlayerDialog(playerid, DIALOG_ATM_ABHEBEN, DIALOG_STYLE_INPUT, "Auszahlen", DialogString, "OK", "Abbrechen"); return 1; } if(listitem == 2) // Handyladekarte { strdel(DialogString, 0, sizeof(DialogString)); format(DialogString, sizeof(DialogString), "1000$\n5000$\n10000$"); ShowPlayerDialog(playerid, DIALOG_ATM_HANDY, DIALOG_STYLE_LIST, "Handyladekarte", DialogString, "Aufladen", "Abbrechen"); return 1; } }}


    Ich habe eine kleine Frage wen ich jetzt z,b auf Aufladen klicke z,b 1000$ Handykarte soll das Fenster verschwinden und nicht mehr erscheinen bei mir ist der fall wen ich auf 1000$ Handykarte gehe kommt das fenster wider wie kann ich das machen das es dann nicht mehr kommt?

    zeig mal den case DIALOG_ATM_HANDY:


  • case DIALOG_ATM_HANDY:
    {
    if(!response){
    strdel(DialogString, 0, sizeof(DialogString));
    format(DialogString, sizeof(DialogString), "Einzahlen\nAbheben\nHandyladekarte");
    ShowPlayerDialog(playerid, DIALOG_ATM, DIALOG_STYLE_LIST, "Bankautomat", DialogString, "Auswählen", "Schließen");
    return 1;
    }

  • Hey habe eine kleine frage.




    if(IsVehicleATaxi(vehicleid))
    {
    strdel(DialogString, 0, sizeof(DialogString));
    format(DialogString, sizeof(DialogString), COLOR_HEX_WHITE"Du kannst nun den Preis festlegen, den die Fahrgäste jede 10 Sekunden bezahlen\nDer Preis muss mindestens 1$ und maximal 200$ sein.");
    ShowPlayerDialog(playerid, DIALOG_TAXI, DIALOG_STYLE_INPUT, "Taxi Company", DialogString, "Weiter", "Aussteigen");
    }



    Unter was muss ich das packen habe das selber geschrieben wen der Spieler in IsVehicleATaxi steigt wen er drinnen sitzt das er den Dialog angezeigt bekommt


  • case DIALOG_Taxi
    {
    if(response)
    {
    if(listitem == 0)
    {
    UpdateDynamic3DTextLabelText
    return 1;
    }
    if(listitem == 1)
    {
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    }
    }



    Ich habe noch eine Frage,


    Wen der Spieler jetzt z.b eingibt ihm dialog 0 sollte der



    strdel(DialogString, 0, sizeof(DialogString));
    format(DialogString, sizeof(DialogString), COLOR_HEX_WHITE"Du kannst nun den Preis festlegen, den die Fahrgäste jede 10 Sekunden bezahlen\nDer Preis muss mindestens 1$ und maximal 200$ sein.");
    ShowPlayerDialog(playerid, DIALOG_TAXI, DIALOG_STYLE_INPUT, "Taxi Company", DialogString, "Weiter", "Aussteigen");

    wider angezeigt werden wen er über 200$ geht auch wie kann ich das abfragen?


  • stock UpdatePlayerTacho(playerid)
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    new string[128],
    vehicleid,
    model,
    Float:CarHealth,
    CarHealthIni,
    Float:TankInProzent,
    Float:Tank;
    vehicleid = GetPlayerVehicleID(playerid);
    model = GetVehicleModel(vehicleid);
    //GetVehiclePos(vehicleid, Vehicle[vehicleid][vehPosX2], Vehicle[vehicleid][vehPosY2], Vehicle[vehicleid][vehPosZ2]);
    if(IsAFahrrad(model))return 1;
    TankInProzent = VehicleData[GetVehicleModel(vehicleid)-400][vehMaxTank]/100;
    Tank = Vehicle[vehicleid][vehFuel];
    GetVehicleHealth(vehicleid, CarHealth);
    CarHealthIni = floatround((CarHealth - 250.0) / 7.5, floatround_floor);
    if(CarHealthIni < 0) CarHealthIni = 0;
    format(string, sizeof(string), "~b~%s: ~w~%d%", VehicleName[GetVehicleModel(vehicleid)-400],CarHealthIni);
    PlayerTextDrawSetString(playerid, pTextSpeedo[playerid][3], string);
    format(string, sizeof(string), "%d km/h", GetVehicleSpeed(vehicleid));
    PlayerTextDrawSetString(playerid, pTextSpeedo[playerid][4], string);
    format(string, sizeof(string), "~b~KM-Stand:~w~ %.1f", Vehicle[vehicleid][vehKMStand]);
    PlayerTextDrawSetString(playerid, pTextSpeedo[playerid][2], string);
    new Float:position = 514.0;
    position += Tank/TankInProzent;
    PlayerTextDrawTextSize(playerid, pTextSpeedo[playerid][1], position, 0.0);
    if(Tank/TankInProzent >= 50 && Tank/TankInProzent <= 100){
    PlayerTextDrawBoxColor(playerid, pTextSpeedo[playerid][1], 828254308);
    }
    if(Tank/TankInProzent <= 49 && Tank/TankInProzent >= 25){
    PlayerTextDrawBoxColor(playerid, pTextSpeedo[playerid][1], -945203201);
    }
    if(Tank/TankInProzent >= 0 && Tank/TankInProzent <= 24){
    PlayerTextDrawBoxColor(playerid, pTextSpeedo[playerid][1], -1625941249);
    }
    PlayerTextDrawShow(playerid, pTextSpeedo[playerid][1]);
    format(string, sizeof(string), "~b~Tank: ~w~%d/%d ~b~L", floatround(Tank/TankInProzent));
    PlayerTextDrawSetString(playerid, pTextSpeedo[playerid][1], string);
    }
    return 1;
    }



    Habe eine andere frage,


    der Tank wird ja mit 100 L angezeigt. so aber ich möchte machen z.b 100.0/100 L


    Wie mache ich das.


    "Das ich jedes Auto einstellen kann wv Liter es haben soll