[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

  • Ich weiss aber nicht ob es so funktioniert.:

    #define spawn 0.0 0.0 0.0 //spawnt das objekt auf x,y,z
    new dyn=CreateDynamicObject(2942, spawn, 0.0000, 0.0000, 0.0000);//erstellt objekt 2942=ATM
    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    if(HOLDING(KEY_HANDBRAKE))//wenn er die rechte Maustaste gedrückt hält
    {
    if(PlayerFaces(playerid, spawn, 1.0))//überprüft ob er aufs objekt guckt
    {
    DestroyDynamicObject(dyn);//zerstört objekt
    }
    }
    return 1;
    }

    PlayerFaces && HOLDING:

    Spoiler anzeigen


    #define HOLDING(%0) \
    ((newkeys & (%0)) == (%0))
    Float:DistanceCameraTargetToLocation(Float:CamX, Float:CamY, Float:CamZ, Float:ObjX, Float:ObjY, Float:ObjZ, Float:FrX, Float:FrY, Float:FrZ) {

    new Float:TGTDistance;
    TGTDistance = floatsqroot((CamX - ObjX) * (CamX - ObjX) + (CamY - ObjY) * (CamY - ObjY) + (CamZ - ObjZ) * (CamZ - ObjZ));
    new Float:tmpX, Float:tmpY, Float:tmpZ;
    tmpX = FrX * TGTDistance + CamX;
    tmpY = FrY * TGTDistance + CamY;
    tmpZ = FrZ * TGTDistance + CamZ;
    return floatsqroot((tmpX - ObjX) * (tmpX - ObjX) + (tmpY - ObjY) * (tmpY - ObjY) + (tmpZ - ObjZ) * (tmpZ - ObjZ));
    }
    stock PlayerFaces(playerid, Float:x, Float:y, Float:z, Float:radius)
    {
    new Float:cx,Float:cy,Float:cz,Float:fx,Float:fy,Float:fz;
    GetPlayerCameraPos(playerid, cx, cy, cz);
    GetPlayerCameraFrontVector(playerid, fx, fy, fz);
    return (radius >= DistanceCameraTargetToLocation(cx, cy, cz, x, y, z, fx, fy, fz));
    }

  • Hey, stehe grad echt aufm Schlauch..
    Wie kann ich Variablen returnen?


    Immer wenn ich die returnen will kommt ingame ein Wert von 11, obwohl mir als der Wert der Variable in der Console 81 oder Ähnliches angezeigt wird.
    Könnt ihr mir helfen?


    Mich würde interessieren, wie dein Code aussieht...man kann das z.B. so machen:


    printf("%d",Test()); //Würde 81 printen


    Als Funktion:
    stock Test() return 81;
    //oder
    Test() return 81;
    oder als Makro:
    #define Test() 81


    mfg. :thumbup:

    ast2ufdyxkb1.png


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

  • Und zwar möchte ich, wenn man /admins eingibt, dass nicht bei jedem Admin egal welcher Rank "Admin" dortsteht, sondern der Adminrangname, welcher das Teammitglied besitzt


    if(strcmp("/admins", cmd, true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pAdmin] == 0)
    {
    SendClientMessage(playerid, COLOR_GREY, "Admins Online:");
    for(new i = 0; i < MAX_PLAYERS; i++){
    if(IsPlayerConnected(i)){
    if(PlayerInfo[i][pAdmin] >= 1 && AFKModus[i] == 0){
    if(PlayerInfo[i][pAdmin] != 0 && PlayerInfo[i][pAdmin] < 1338){
    new AdminRangName[25];
    if(PlayerInfo[i][pAdmin] == -1){AdminRangName = "Beschwerdemoderator";}
    if(PlayerInfo[i][pAdmin] == 1){AdminRangName = "Supporter";}
    if(PlayerInfo[i][pAdmin] == 2){AdminRangName = "Moderator";}
    if(PlayerInfo[i][pAdmin] == 3){AdminRangName = "Super Moderator";}
    if(PlayerInfo[i][pAdmin] == 4){AdminRangName = "Administrator";}
    if(PlayerInfo[i][pAdmin] == 5){AdminRangName = "Projektleiter";}
    GetPlayerName(i, sendername, sizeof(sendername));
    format(string, sizeof(string), "%s: %s", AdminRangName, sendername);
    SendClientMessage(playerid, COLOR_GREY, string);
    }}}}}
    else if(PlayerInfo[playerid][pAdmin] != 0){
    SendClientMessage(playerid, COLOR_GREY, "Admins Online:");
    for(new i = 0; i < MAX_PLAYERS; i++){
    if(IsPlayerConnected(i)){
    if(PlayerInfo[i][pAdmin] != 0 && PlayerInfo[i][pAdmin] != 2050){
    GetPlayerName(i, sendername, sizeof(sendername));
    format(string, sizeof(string), "Admins [%d]%s (%d)", i, sendername, PlayerInfo[i][pAdmin]);
    SendClientMessage(playerid, COLOR_GREY, string);
    }}}}}
    return 1;


  • Aber das sieht doch dann so aus? o.o


    Hast du es probiert ? Nein, sonst würdest du es wissen.


    jeder skin ist ein TextDraw mit TextDrawSetPreviewModel


    der Hintergrund ist ein TextDraw mit Box


    die Knöpfe sind TextDraws mit TextDrawSetSelectable


    die Überschrift ist ein TextDraw mit Schrift



    alles einzelne TextDraws zusammen gesetzt


    Edit: dieses Script vom Bild sollte im SA-MP Server download dabei sein