[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
  • if(dialogid == DIALOG_SHOP)
    {
    if(response)
    {
    switch(listitem)
    {
    case 0: if(GetPlayerMoney(playerid) <= 5000) return SendClientMessage(playerid, 0xAA3333AA, "Du hast nicht genug Geld um die Deagle zu kaufen!"); GivePlayerWeapon(playerid,24,500);
    case 1: return if(GetPlayerMoney(playerid) <= 1000)SendClientMessage(playerid, 0xAA3333AA, "Du hast nicht genug Geld um die Deagle zu kaufen!"); SetPlayerArmour(playerid,100);
    }
    }
    return 1;
    }


    return 0;
    }


    Kann mir jemand sagen wie ich das hier machen könnte das keine Errors kommen und alles stimmt:
    case 0: if(GetPlayerMoney(playerid) <= 5000) return SendClientMessage(playerid, 0xAA3333AA, "Du hast nicht genug Geld um die Deagle zu kaufen!"); GivePlayerWeapon(playerid,24,500);
    case 1: return if(GetPlayerMoney(playerid) <= 1000)SendClientMessage(playerid, 0xAA3333AA, "Du hast nicht genug Geld um die Deagle zu kaufen!"); SetPlayerArmour(playerid,100);

  • case 0: { if(GetPlayerMoney(playerid) < 5000) return SendClientMessage(playerid, 0xAA3333AA, "Du hast nicht genug Geld um die Deagle zu kaufen!"); else return GivePlayerWeapon(playerid,24,500);}
    case 1: { if(GetPlayerMoney(playerid) < 1000) return SendClientMessage(playerid, 0xAA3333AA, "Du hast nicht genug Geld um die Deagle zu kaufen!"); else return SetPlayerArmour(playerid,100);}

  • case 0: { if(GetPlayerMoney(playerid) < 5000) return SendClientMessage(playerid, 0xAA3333AA, "Du hast nicht genug Geld um die Deagle zu kaufen!"); else return GivePlayerWeapon(playerid,24,500);}
    case 1: { if(GetPlayerMoney(playerid) < 1000) return SendClientMessage(playerid, 0xAA3333AA, "Du hast nicht genug Geld um die Deagle zu kaufen!"); else return SetPlayerArmour(playerid,100);}


    Danke und wie mache ich das wenn ich noch einbauen will du hast dir erfolgreich eine Deagle gekauft

  • GivePlayerWeapon(playerid,24,500),SendClientMessage(playerid,0xAA3333AA,"Du hast dir eine Deagle gekauft!");
    Machst nach GivePlayerWeapon einfach ein Komma, und schreibst SendClientMessage

  • Die unterbricht komischerweise so komisch...


    Mach es mal so:


    ApplyAnimation(i, "ON_LOOKERS", "wave_loop", 4.0, 1, 0, 0, 1, 0, 1);


    Wie erstelle ich ein Random aus Spieler welche nur eine gewisse Variable haben.
    Also Beispiel, Spieler XY und Spieler ZY haben beide die Variable 1 und sollten somit beim random dabei sein.
    Es sollte immer einer der ganzen im random ausgewählt werden.


    So kann man das lösen:


    new list[4],idx;
    for(new i; i<MAX_PLAYERS; i++) {
    if(!IsPlayerConnected(i) || !var[i]) continue;
    list[idx] = i,idx++;
    }
    //Und hier kannst du das dann so nutzen:
    new randomSpielerID = list[random(4)];


    Bei dem Beispiel nehme ich an, dass es nur 4 Spieler sind die diese Variable (var[ i ]) auf true bzw nicht gleich 0 haben ;)


    mfg. :thumbup:

    ast2ufdyxkb1.png


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

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Hallo com ich habe auf mein server ein Autohaus system erstellt und will nun das die cars an der Trucker Base spawnen unswa Random


    AddStaticVehicle(502,-31.5830,-276.6498,5.3175,269.5427,51,75); // autokaufspawn1
    AddStaticVehicle(502,-30.5126,-280.0215,5.3186,269.2653,51,75); // autokaufspawn2
    AddStaticVehicle(502,-31.2262,-283.4319,5.3170,269.3367,51,75); // autokaufspawn3
    AddStaticVehicle(502,-31.4291,-286.8210,5.3192,270.3276,51,75); // autokaufspawn4
    AddStaticVehicle(502,-30.6872,-290.2162,5.3215,270.0367,51,75); // autokaufspawn5
    AddStaticVehicle(502,-31.2113,-293.6188,5.3206,270.5205,51,75); // autokaufspawn6
    AddStaticVehicle(502,-30.9714,-296.9427,5.3215,269.7877,51,75); // autokaufspawn7
    AddStaticVehicle(502,-0.9785,-301.1555,5.3132,89.2128,51,75); // autokaufspawn8
    AddStaticVehicle(502,-0.3900,-304.6669,5.3173,90.0018,51,75); // autokaufspawn9
    AddStaticVehicle(502,-0.4273,-308.1667,5.3223,89.5486,51,75); // autokaufspawn10
    AddStaticVehicle(502,0.0562,-311.6645,5.3220,90.0193,51,75); // autokaufspawn11
    AddStaticVehicle(502,-0.2071,-315.2568,5.3215,89.2483,51,75); // autokaufspawn12
    AddStaticVehicle(502,-0.6865,-318.7336,5.3232,89.6181,51,75); // autokaufspawn13
    AddStaticVehicle(502,-0.5670,-322.2784,5.3224,89.8154,51,75); // autokaufspawn14
    AddStaticVehicle(502,-0.7787,-325.8391,5.3220,88.6041,51,75); // autokaufspawn15
    AddStaticVehicle(502,-0.5788,-329.3296,5.3211,89.3954,51,75); // autokaufspawn16
    AddStaticVehicle(502,-0.8341,-332.8588,5.3224,89.2498,51,75); // autokaufspawn17
    AddStaticVehicle(502,-0.3046,-336.4436,5.3222,88.9489,51,75); // autokaufspawn18
    AddStaticVehicle(502,-0.7694,-339.8704,5.3236,89.9762,51,75); // autokaufspawn19
    AddStaticVehicle(502,-0.8461,-343.4076,5.3248,89.5425,51,75); // autokaufspawn20
    AddStaticVehicle(502,-0.5109,-346.9451,5.3220,89.8589,51,75); // autokaufspawn21
    AddStaticVehicle(502,-0.5799,-350.4830,5.3219,89.6116,51,75); // autokaufspawn22
    AddStaticVehicle(502,-0.2762,-354.0208,5.3204,89.5558,51,75); // autokaufspawn23
    AddStaticVehicle(502,-0.0255,-357.5459,5.3205,89.8315,51,75); // autokaufspawn24
    AddStaticVehicle(502,-0.6771,-361.0365,5.3217,88.9111,51,75); // autokaufspawn25
    AddStaticVehicle(502,-1.2926,-364.7119,5.3221,89.1589,51,75); // autokaufspawn26


    Das sind die Cordinaten wo sie Spawnen sollen unswa Random wenn ich z.b in Autohaus xxx ein Cheetah kauf soll der dort auf i-ein spawnen unswa soll der Random ausgesucht werden und wenn ich im Autohaus yyy ein Sultan kaufe soll er dort auch spawnen auf i-ein parkplatz der wieder Random ausgesucht werden soll weil wenn spieler xxx ein Auto kauft und spier yyy auch in dem gleichen Autohaus die sonst übereinander buggen bzw ineinander



    enum autohausEnum{
    Float:s_x,
    Float:s_y,
    Float:s_z,
    Float:s_r
    }


    enum autohauscarEnum{
    model,
    Float:c_x,
    Float:c_y,
    Float:c_z,
    Float:c_r,
    c_preis,
    ah_id,
    id_x
    }


    new ahInfo[][autohausEnum] = {
    {-31.5830,-276.6498,5.3175,269.5427},
    {-31.4291,-286.8210,5.3192,270.3276}
    };
    new ahCars[][autohauscarEnum] = {
    {411,-1668.7550,1205.7421,20.8833,272.0864,1200000,0},
    {541,-1663.4056,1220.9622,20.8833,211.1151,900000,0},
    {412,2134.5305,-1130.4222,25.5472,119.9674,60000,1}
    };


    #define DIALOG_AUTOHAUS 4


    //Unter OnGameModeInit
    for(new i=0; i<sizeof(ahCars); i++)
    {
    ahCars[i][id_x]=AddStaticVehicle(ahCars[i][model],ahCars[i][c_x],ahCars[i][c_y],ahCars[i][c_z],ahCars[i][c_r],-1,-1);
    }


    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if(newstate==PLAYER_STATE_DRIVER)
    {
    new vID=GetPlayerVehicleID(playerid);
    for(new i=0; i<sizeof(ahCars); i++)
    {
    if(ahCars[i][id_x]!=vID)continue;
    SetPVarInt(playerid,"buyCarID",i);
    new string[265];
    format(string,sizeof(string),"Mochten sie das Fahrzeug für %i$ kaufen?",ahCars[i][c_preis]);
    ShowPlayerDialog(playerid,DIALOG_AUTOHAUS,DIALOG_STYLE_MSGBOX,"Autokauf",string,"Ja","Nein");
    break;
    }
    return 1;
    }
    return 1;
    }


    //OnDialogResponse
    if(dialogid==DIALOG_AUTOHAUS)
    {
    if(response)
    {
    new id=GetPVarInt(playerid,"buyCarID");
    if(GetPlayerMoney(playerid)<ahCars[id][c_preis])
    {
    SendClientMessage(playerid,ROT,"Du hast nicht genügend Geld");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    GivePlayerMoney(playerid,-ahCars[id][c_preis]);
    createPlayerCar(playerid,ahCars[id][model],ahInfo[ahCars[id][ah_id]][s_x],ahInfo[ahCars[id][ah_id]][s_y],ahInfo[ahCars[id][ah_id]][s_z],ahInfo[ahCars[id][ah_id]][s_r]);
    SendClientMessage(playerid,LEUCHTENDBLAU,"Herzlichen Glückwunsch zu ihren Kauf");
    RemovePlayerFromVehicle(playerid);
    }
    else
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,ROT,"Dann eben nicht ...");
    }
    return 1;
    }

  • Wo genau bleibt dann der Sinn der PlayerTextDraws?
    Arbeiten doch dann genau so wie die normalen.


    Danke.


    Naja, das kann du dann z.B für eine Playerausgabe benutzen was nur der Spieler selbst sehen soll.
    Wenn es ein Globales TD wäre und darin daten ausgegeben werden, sagen wir TextDrawSetString. Dann wird das für jeden angezeigt der das Textdraw bereits sieht. Sollte aber nicht so sein,von daher haben die PlayTextDraw schon ihren sinn

    • Offizieller Beitrag

    Dann wird das für jeden angezeigt der das Textdraw bereits sieht. Sollte aber nicht so sein,von daher haben die PlayTextDraw schon ihren sinn

    Ich kann aber auch wie bei den PlayerTextDraws einfach für jeden Player einen eigenen TextDraw erstellen und dann wird auch nur dieser für ihn geändert.
    Aber gut, danke euch.

  • stock textdrawerstellen()
    {
    Textdraw0 = TextDrawCreate(531.000000, 384.000000, "Rank:");
    TextDrawBackgroundColor(Textdraw0, 255);
    TextDrawFont(Textdraw0, 1);
    TextDrawLetterSize(Textdraw0, 0.500000, 1.000000);
    TextDrawColor(Textdraw0, -1);
    TextDrawSetOutline(Textdraw0, 0);
    TextDrawSetProportional(Textdraw0, 1);
    TextDrawSetShadow(Textdraw0, 1);
    TextDrawUseBox(Textdraw0, 1);
    TextDrawBoxColor(Textdraw0, 255);
    TextDrawTextSize(Textdraw0, 638.000000, 0.000000);


    Textdraw1 = TextDrawCreate(531.000000, 400.000000, "Kills:");
    TextDrawBackgroundColor(Textdraw1, 255);
    TextDrawFont(Textdraw1, 1);
    TextDrawLetterSize(Textdraw1, 0.500000, 1.000000);
    TextDrawColor(Textdraw1, -1);
    TextDrawSetOutline(Textdraw1, 0);
    TextDrawSetProportional(Textdraw1, 1);
    TextDrawSetShadow(Textdraw1, 1);
    TextDrawUseBox(Textdraw1, 1);
    TextDrawBoxColor(Textdraw1, 255);
    TextDrawTextSize(Textdraw1, 638.000000, 0.000000);


    Textdraw2 = TextDrawCreate(531.000000, 416.000000, "Deaths:");
    TextDrawBackgroundColor(Textdraw2, 255);
    TextDrawFont(Textdraw2, 1);
    TextDrawLetterSize(Textdraw2, 0.500000, 1.000000);
    TextDrawColor(Textdraw2, -1);
    TextDrawSetOutline(Textdraw2, 0);
    TextDrawSetProportional(Textdraw2, 1);
    TextDrawSetShadow(Textdraw2, 1);
    TextDrawUseBox(Textdraw2, 1);
    TextDrawBoxColor(Textdraw2, 255);
    TextDrawTextSize(Textdraw2, 638.000000, 0.000000);
    return 1;
    }


    forward zeigetextdraw();
    public zeigetextdraw()
    {
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(GetPVarInt(i, "Teilnehmer"))
    {
    TextDrawShowForPlayer(i, Textdraw0);
    TextDrawShowForPlayer(i, Textdraw1);
    TextDrawShowForPlayer(i, Textdraw2);
    }
    }
    return 1;


    So wird der public aufgerufen-> SetTimer("zeigetextdraw",1,false);
    }


    Doch leider funktioniert es nicht, die Textdraws werden total komisch angezeigt.


  • /Push kann mir wer helfen?

  • Hey,
    habe ein Problem mit Textdraw-Figuren..


    Möchte einen Kreis und ein Viereck per Textdraw erstellen.
    Wenn ich es mit einem 'Punkt' mache, und den dann vergrößer, dann ist es unscharf. ( genau so beim Viereck )
    Mir fällt leider nicht ein..


    Kann mir da vlt jemand helfen?