[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
  • Eben, aber da ja alles korrekt geladen wird, liegt es ja eventuell an dem Befehl vom Kaufen?


    Oder wo vermutest du den Fehler?

    ast2ufdyxkb1.png


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

  • ich vermute eher beim kaufen weil laden funktioniert ja.


    Befehl zum kaufen:


    An was anderem kanns ja nicht liegen weil man es ja kaufen muss.

  • Ja, mit [wiki]MoveObject[/wiki] kannst du auch Türen so rotieren lassen, google da einfach mal nach :)


    Sorry, bin schon etwas angetrunken xDMeinte das Laden sieht korrekt aus, eventuell ist der Fehler beim kaufen, da du das ja nicht kannst :D

    Ja ist mir schon kla CreateObject wird ja nix passieren ;D
    nur ich muss die ja 2 mal moven einmal hinfahren lassen und dann muss die sich noch drehen und das gleich mit 4 türen da komme ich nicht mehr mit :D

  • nur ich muss die ja 2 mal moven einmal hinfahren lassen und dann muss die sich noch drehen und das gleich mit 4 türen da komme ich nicht mehr mit

    Also zunächst muss ich gestehen, dass ich keine Ahnung hab, wie sich genau die Türen verhalten sollen in deiner Vorstellung.


    Meinst du, dass die sich abknicken oder sollen die nur einfach auf und zu gehen?


    Ansonsten, mach dir ein Filterskript, erstell dir mal eine Tür und spiel mit den Rotationen rum, so immer in 90° schritten.


    Dann weißt du, wie du sie moven musst und wie das so alles aussieht :D


    Und kannst das filterscript ja ingame immer neu laden und somit direkt dein Ergebnis sehen, brauchst nicht immer den Server neustarten o.ä.

    ast2ufdyxkb1.png


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


  • Okay dann bau ich da ma was :D mehr als in der Wildnis fahren kann ja nicht passieren :D

  • Habe ebenso das Problem mit Speichern:




    Laut log ist alles korrekt .


    Habe das mit secondquery eingehalt wie es Jeffry gesagt hat.
    Er greift ja auch nicht mehr zu seid dem ich das umgestellt habe das kaufen funktioniert jetz.

  • Beitrag von Dr. Frauenarzt ()

    Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: Fehler gefunden ().
  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Hey,
    ich habe das Problem das mein Fraktionsname nicht ausgelesen wird. Alles andere irgendwie schon, das heißt die Pickups werden erstellt und die Base wird auch richtig angezeigt.
    public Load_Fraktion(i)
    {
    new rows, string[256];
    cache_get_row_count(rows);
    for(i=0; i<rows; i++)
    {
    cache_get_value_name_int(i, "fid", fInfo[i][fID]);
    cache_get_value_name(i, "fname", fInfo[i][fName]);
    cache_get_value_name_int(i, "ftyp", fInfo[i][fTyp]);
    cache_get_value_name_int(i, "fkasse", fInfo[i][fKasse]);
    cache_get_value_name_float(i, "fspawn_x", fInfo[i][fSpawn_X]);
    cache_get_value_name_float(i, "fspawn_y", fInfo[i][fSpawn_Y]);
    cache_get_value_name_float(i, "fspawn_z", fInfo[i][fSpawn_Z]);
    cache_get_value_name_float(i, "fspawn_r", fInfo[i][fSpawn_R]);
    cache_get_value_name_float(i, "ficon_x", fInfo[i][fIcon_X]);
    cache_get_value_name_float(i, "ficon_y", fInfo[i][fIcon_Y]);
    cache_get_value_name_float(i, "ficon_z", fInfo[i][fIcon_Z]);
    cache_get_value_name_int(i, "member", fInfo[i][fMember]);
    cache_get_value_name_int(i, "base", fInfo[i][fBase]);
    DestroyPickup(fInfo[i][Pickup]);
    Delete3DTextLabel(fInfo[i][Text]);
    printf("Fraktion %i geladen", i);
    printf("NAME: %i", fInfo[i][fBase]);
    if(fInfo[i][fBase] == 1){
    format(string,sizeof(string), "%s\nHQ: geöffnet", fInfo[i][fName]);
    fInfo[i][Text] = Create3DTextLabel(string, -1, fInfo[i][fIcon_X], fInfo[i][fIcon_Y], fInfo[i][fIcon_Z], 40.0, 0, 1);
    }else if(fInfo[i][fBase] == 0){
    format(string, sizeof(string), "%s\nHQ: geschlossen", fInfo[i][fName]);
    fInfo[i][Text] = Create3DTextLabel(string, -1, fInfo[i][fIcon_X], fInfo[i][fIcon_Y], fInfo[i][fIcon_Z], 40.0, 0, 1);
    }
    fInfo[i][Pickup] = CreatePickup(1272, 1, fInfo[i][fIcon_X], fInfo[i][fIcon_Y], fInfo[i][fIcon_X]);
    }
    }

  • Warum wird das textdraw nicht aktualisiert?
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    new string[128];
    format(string, sizeof(string), "Speed: %d KM/H", getPlayerSpeed(i));
    PlayerTextDrawSetString(i, Tacho9[i], string);
    }
    stock getPlayerSpeed(playerid)
    {
    new Float:x, Float:y, Float:z, Float:rtn;
    if(IsPlayerInAnyVehicle(playerid))
    {
    GetVehicleVelocity(GetPlayerVehicleID(playerid), x, y, z);
    return 1;
    } else {
    GetPlayerVelocity(playerid, x, y, z);
    }
    rtn = floatsqroot(x*x + y*y + z*z);
    return floatround(rtn * 100 * 1.61);
    }

  • @Kaliber
    Hab mir das gestern ein bisschen abgeschaut. Kriege es selber aber leider nicht hin.
    Vielleicht kannst du ja mal rüber gucken.
    forward OnBussinessCheck(playerid);
    public OnBussinessCheck(playerid)
    {
    new rows, string[512] = "Name\tTyp\tKasse\tBesitzer", ints[5], tmp[32];
    cache_get_row_count(rows);
    for(new i; i < rows; i++)
    {
    cache_get_value_name_int(i, "bid", ints[0]);
    cache_get_value(i, 1, tmp);
    cache_get_value_name_int(i, "b_typ", ints[1]);
    cache_get_value_name_int(i, "b_kasse", ints[2]);
    cache_get_value_name(i, "b_owner", ints[3]);
    cache_get_value_name_int(i, "b_owned", ints[4]);
    format(string, sizeof(string), "%s\nID: %i | %s\t%s\t%i$\t%s",
    string,ints[0],tmp,(ints[1]==0)?("Tankstelle"):("Ammunation"):("Paintball"):("Fahrzeuglackiererei"), ints[2], (ints[4]==0)?("Niemand"):(ints[3]));
    }
    ShowPlayerDialog(playerid, DIALOG_FRAKTIONSLIST, DIALOG_STYLE_TABLIST_HEADERS, "existierende Bussiness", string, "Ok","");
    return 1;
    }

  • 3 Dinge zu dem Code:


    • Das liegt an dem return 1; in der Funktion getPlayerSpeed. Das bedeutet in deinem TextDraw müsstest du immer eine 1 sehen, wenn du im Auto bist :) Also einfach das löschen.
    • Du könntest die Funktion noch optimierten, indem du anstatt floatsqroot einfach [wiki]VectorSize[/wiki] nutzt, diese wurde dafür extra entwickelt :)
    • In einer Schleife solltest du keine Variablen deklarieren, da das immer viel Zeit braucht.

    Im Spoiler ist die optimierte Version :)


    ast2ufdyxkb1.png


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

  • Warum werden bei diesen Code meine Login Boxen mit Angezeigt ?




  • Beitrag von Dr. Frauenarzt ()

    Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: FEHLER GEFUNDEN ().
  • Hallo, ich verstehe da jetzt nicht was daran falsch ist.
    Mir wird folgende Fehlermeldung ausgespuckt:


    s.p(324) : error 010: invalid function or declaration
    s.p(326) : error 010: invalid function or declaration
    s.p(329) : error 010: invalid function or declaration
    s.p(331) : error 021: symbol already defined: "SendMessageToAdmins"
    s.p(333) : error 010: invalid function or declaration
    s.p(388) : warning 203: symbol is never used: "achat"
    s.p(388) : warning 203: symbol is never used: "msg"


    Code:



    Code
    stock SendMessageToAdmins(color, const string[])
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(PlayerInfo[i][pAdmin] != 0)
    {
    SendClientMessage(i,color, string);
    }
    }
    }
  • @Xazor


    Falls du die neuste ocmd Include hast, und du das sscanf Plugin nutzt, versuch es mal bitte so:

    ocmd@3:a,achat,adminchat(playerid,params[])
    {
    if(PlayerInfo[playerid][pAdmin]>=1)
    {
    new achat[128],msg[128];
    if(sscanf(params,"s[128]",achat))return SendClientMessage(playerid,COLOR_RED,"[INFO] Nutze /a[chat] [Text]");
    format(msg,sizeof(msg),"%s %s: %s",Adminrang(playerid),PlayerInfo[playerid][pName],achat);
    SendMessageToAdmins(COLOR_ADMIN,msg);
    }
    else{
    SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin!");
    }
    }



    Dazu schaut es aus, als wenn du schon die Funktion "symbol already defined: "SendMessageToAdmins"" irgendwo hast, und, ist der stock über den Befehl oder unter den Befehl ?
    Hatte tatsächlich schon einmal das Problem, als der Stock unter dem Befehl war, das mir der Compiler auch Fehler ausgespuckt hat.

    Macht alles, versteht aber nichts!
    ♣ Entwickeln, Testen, Versagen, meine Devise ♣

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen