[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
  • Hey,


    if(GetPlayerVehicleCount(playerid) == 0) -> Hat kein Schlüssel


    so ich wollte /givecarkey einfügen heißt.


    /givecarkey [playerid (Fraktion)


    also der Spieler hat die Auswahl entweder er gibt den schlüssel für die Fraktion für sein Auto
    oder nur an ein gewissen Spieler.


    z.b /givecarkey 123 z.b aber er muss den schlüssel bei /carkey ausgewählt haben.




    CMD:carkey(playerid)
    {
    if(!IsLoggedIn(playerid))return 1;
    new string1[64], string2[64], string3[64], string4[64];
    if(GetPlayerVehicleCount(playerid) == 0)return SendClientMessage(playerid, COLOR_GREY, "Du besitzt keine Autoschlüssel.");
    if(PrivateVehicle[playerid][0][modelid] >= 400 && PrivateVehicle[playerid][0][modelid] <= 611) // Erster Slot
    {
    format(string1, sizeof(string1), "{FFFFFF}%s\n", VehicleName[PrivateVehicle[playerid][0][modelid]-400]);
    }
    else
    {
    format(string1, sizeof(string1), "{FFFFFF}-\n");
    }


    if(PrivateVehicle[playerid][1][modelid] >= 400 && PrivateVehicle[playerid][1][modelid] <= 611) // Zweiter Slot
    {
    format(string2, sizeof(string2), "{FFFFFF}%s\n", VehicleName[PrivateVehicle[playerid][1][modelid]-400]);
    }
    else
    {
    format(string2, sizeof(string2), "{FFFFFF}-\n");
    }


    if(PrivateVehicle[playerid][2][modelid] >= 400 && PrivateVehicle[playerid][2][modelid] <= 611) // Dritter Slot
    {
    format(string3, sizeof(string3), "{FFFFFF}%s\n", VehicleName[PrivateVehicle[playerid][2][modelid]-400]);
    }
    else
    {
    format(string3, sizeof(string3), "{FFFFFF}-\n");
    }


    if(PrivateVehicle[playerid][3][modelid] >= 400 && PrivateVehicle[playerid][3][modelid] <= 611) // Vierter Slot
    {
    format(string4, sizeof(string4), "{FFFFFF}%s\n", VehicleName[PrivateVehicle[playerid][3][modelid]-400]);
    }
    else
    {
    format(string4, sizeof(string4), "{FFFFFF}-\n");
    }
    strdel(DialogString, 0, sizeof(DialogString));
    format(DialogString, sizeof(DialogString), "%s%s%s%s", string1, string2, string3, string4);
    ShowPlayerDialog(playerid, DIALOG_CARKEYS, DIALOG_STYLE_LIST, "Deine Autoschlüssel", DialogString, "Orten", "Schließen");
    return 1;
    }


    ist der Befehl für /carkey.


    und mit /carkeywithdraw wider den schlüssel entziehen


    wen man /givecarkey playerid soll erscheinen.


    Du hast %s den Zweitschlüssel für dein %s gegeben.


    bei /carkeywithdraw


    Du hast deinen Zweitschlüssel von %s entzogen.
    Du kannst deinen Zweitschlüssel nun neu vergeben.


    wen der Spieler /carkeywithdraw eingibt und er den schlüssel nicht vergeben hat soll die nachricht


    Du kannst deinen Zweitschlüssel nun neu vergeben.


    wäre geil wen ihr mir helfen könnt

  • Hey wieso kann ich dieses Bos nicht anklicken ?
    @Jeffry:

  • Hey wieso kann ich dieses Bos nicht anklicken ?
    @Jeffry:

    hat jemand ein Plan ?


  • public OnVehicleSirenStateChange(playerid, vehicleid, newstate)
    {
    new fV = IsAFraktionsVeh(vehicleid);
    if(IsAFraktionsVeh(vehicleid))
    {
    if(fVehicle[fV][vehSiren] == 1)
    {
    if(newstate)
    {
    FlashTime[vehicleid] = SetTimerEx("OnLightFlash", flashtime, true, "d", vehicleid);
    fVehicle[fV][vehSiren1] = CreateDynamicObject(19419, 0, 0, 0, 0, 0, 0, 0);
    AttachDynamicObjectToVehicle(fVehicle[fV][vehSiren1], fVehicle[fV][vehID], 0.000000, 0.000000, 0.829999, 0.000000, 0.000000, 0.000000);
    GameTextForPlayer(playerid, "~w~Sirene ~g~an", 5000, 1);
    }


    if(!newstate)
    {
    new panels, tuer, licht, reifen;
    KillTimer(FlashTime[vehicleid]);
    GetVehicleDamageStatus(vehicleid, panels, tuer, licht, reifen);
    UpdateVehicleDamageStatus(vehicleid, panels, tuer, 0, reifen);
    DestroyDynamicObject(fVehicle[fV][vehSiren1]);
    GameTextForPlayer(playerid, "~w~Sirene ~r~aus", 5000, 1);
    }
    }
    }
    return 1;
    }



    forward OnLightFlash(vehicleid);
    public OnLightFlash(vehicleid)
    {
    new panels, tuer, licht, reifen;
    new fV = IsAFraktionsVeh(vehicleid);
    GetVehicleDamageStatus(vehicleid, panels, tuer, licht, reifen);
    if(IsAFraktionsVeh(vehicleid))
    {
    if(fVehicle[fV][vehSiren] == 1)
    {
    switch(Flash[vehicleid])
    {
    case 0: UpdateVehicleDamageStatus(vehicleid, panels, tuer, 2, reifen);


    case 1: UpdateVehicleDamageStatus(vehicleid, panels, tuer, 5, reifen);


    case 2: UpdateVehicleDamageStatus(vehicleid, panels, tuer, 2, reifen);


    case 3: UpdateVehicleDamageStatus(vehicleid, panels, tuer, 4, reifen);


    case 4: UpdateVehicleDamageStatus(vehicleid, panels, tuer, 5, reifen);


    case 5: UpdateVehicleDamageStatus(vehicleid, panels, tuer, 4, reifen);
    }
    if(Flash[vehicleid] >=5) Flash[vehicleid] = 0;
    else Flash[vehicleid] ++;
    }
    }
    return 1;
    }


    Hey,


    Ich hab eine frage warum kann nur Fraktion ID 6 das ausführen und Fraktion ID 3 nicht :o?

  • Hey wieso kann ich dieses Bos nicht anklicken ?

    So rum klappt es:
    Register[2] = TextDrawCreate(244.000000, 126.566665, "usebox");
    TextDrawLetterSize(Register[2], 1.000000, 1.964812);
    TextDrawTextSize(Register[2], 382.500000, 16.000000);
    TextDrawAlignment(Register[2], 0);
    TextDrawColor(Register[2], 0);
    TextDrawUseBox(Register[2], true);
    TextDrawBoxColor(Register[2], 102);
    TextDrawSetShadow(Register[2], 0);
    TextDrawSetOutline(Register[2], 0);
    TextDrawFont(Register[2], 1);
    TextDrawSetSelectable(Register[2], 1);



    Zur Info:
    Du musst die Größe das anklickbaren Bereiches mit TextDrawTextSize anpassen. https://wiki.sa-mp.com/wiki/TextDrawTextSize Der X Wert ist die Position PLUS die Größe des nach rechts anklickbaren Bereiches. Der Y Wert ist die geschätzte Höhe.
    Angenommen du erstellst dein Textdraw bei X = 120 und Y = 90. Dann machst du den Text "Hallo Welt" da rein. Sagen wir, der Text ist so groß, dass er in etwa über ein Zehntel deines Bildschirmes geht (musst du abschätzen, oder mit einem Lineal abmessen), dann heißt das 640 durch 10, das wäre 64. Somit ist TextDrawTextSize-X = 120 + 64 = 184.


    Nun misst, bzw. schätzt, du die Höhe des Textdraws, sagen wir mal du bekommst den Text in etwa 20 mal untereinander hin, bis dein Bildschirm von oben nach unten voll damit wäre. Heißt also: 480 durch 20, das gibt 24. Somit wäre TextDrawTextSize-Y = 24.

  • C:\Users\Medion\Desktop\Daten Medion\GTA SA Datein\GTA Scripts\German\gamemodes\German.pwn(9772) : error 029: invalid expression, assumed zeroC:\Users\Medion\Desktop\Daten Medion\GTA SA Datein\GTA Scripts\German\gamemodes\German.pwn(9772) : warning 215: expression has no effectC:\Users\Medion\Desktop\Daten Medion\GTA SA Datein\GTA Scripts\German\gamemodes\German.pwn(9772) : error 001: expected token: ";", but found ")"C:\Users\Medion\Desktop\Daten Medion\GTA SA Datein\GTA Scripts\German\gamemodes\German.pwn(9772) : error 029: invalid expression, assumed zeroC:\Users\Medion\Desktop\Daten Medion\GTA SA Datein\GTA Scripts\German\gamemodes\German.pwn(9772) : fatal error 107: too many error messages on one line



    //E:


    @Jeffry

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • So:if(Spieler[playerid][pWaffenSkill] == 1 && if(pPacketsWD[playerid]+menge) > 5)
    Ein ; gehört da nicht hin

    So:if(Spieler[playerid][pWaffenSkill] == 1 && if(pPacketsWD[playerid]+menge) > 5)
    Ein ; gehört da nicht hin


    C:\Users\Medion\Desktop\Daten Medion\GTA SA Datein\GTA Scripts\German\gamemodes\German.pwn(9772) : warning 217: loose indentation
    C:\Users\Medion\Desktop\Daten Medion\GTA SA Datein\GTA Scripts\German\gamemodes\German.pwn(9772) : error 029: invalid expression, assumed zero
    C:\Users\Medion\Desktop\Daten Medion\GTA SA Datein\GTA Scripts\German\gamemodes\German.pwn(9772) : warning 215: expression has no effect
    C:\Users\Medion\Desktop\Daten Medion\GTA SA Datein\GTA Scripts\German\gamemodes\German.pwn(9772) : error 001: expected token: ";", but found ")"
    C:\Users\Medion\Desktop\Daten Medion\GTA SA Datein\GTA Scripts\German\gamemodes\German.pwn(9772) : error 029: invalid expression, assumed zero
    C:\Users\Medion\Desktop\Daten Medion\GTA SA Datein\GTA Scripts\German\gamemodes\German.pwn(9772) : fatal error 107: too many error messages on one line


    es bleibt aber gleich?

  • Jeffry:
    Kaliber:
    Wo liegt da mein Problem ?
    Ich habe es versucht aber bekomme es nicht hin habe die anderen vom Registrieren hinbekommen aber beim Login nicht.


  • es bleibt aber gleich?

    ..du kannst kein if..in einem if Verwenden :S



    Wo liegt da mein Problem ?

    Ja..das Frage ich mich auch...wo liegt denn dein Problem...beschreibe doch mal was nicht funktioniert?


    Zeigst du die TextDraws..auch dem Spieler an...wo..und was willst du machen?


    und dir ist klar, dass ~n~ einfach nur ein Zeilenumbruch ist..und du da nichts sehen wirst? :huh:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • ..du kannst kein if..in einem if Verwenden :S


    Ja..das Frage ich mich auch...wo liegt denn dein Problem...beschreibe doch mal was nicht funktioniert?
    Zeigst du die TextDraws..auch dem Spieler an...wo..und was willst du machen?


    und dir ist klar, dass ~n~ einfach nur ein Zeilenumbruch ist..und du da nichts sehen wirst? :huh:


    bleibt aber trd gleich?!

  • @JustMe.77:
    Da geht es aber auch