[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
  • Soweit alles korrekt richtig.


    So das ist der Log beim laden:

    Code
    [22:16:01] [INFO] query "SELECT * FROM `server_biz`" successfully executed within 3.379 milliseconds
    [22:16:01] [DEBUG] CResultSet::Create(connection=0x6c87618, query_str='SELECT * FROM `server_biz`')
    [22:16:01] [DEBUG] created new resultset '0x6cd6ea0'
    [22:16:01] [DEBUG] fetched MySQL result '0x27130d8'
    [22:16:01] [DEBUG] allocated 588 bytes for PAWN result
    [22:16:01] [DEBUG] CConnection::Execute(query=0x6cc55a8, this=0x6ef7020, connection=0x6c87618)
    [22:16:01] [DEBUG] CQuery::Execute(this=0x6cc55a8, connection=0x6c87618)
    Code
    [22:16:01] [DEBUG] mysql_tquery(1, "SELECT * FROM `server_biz`", "LoadBizes", "")
    [22:16:01] [DEBUG] CCallback::Create(amx=0x4a93070, name='LoadBizes', format='', params=0x6a9fc88, param_offset=5)
    [22:16:01] [DEBUG] CCallback::Create - callback index for 'LoadBizes': 118
    [22:16:01] [DEBUG] CQuery::Execute(this=0x27157a8, connection=0x6c90800)
    [22:16:01] [INFO] Callback 'LoadBizes' set up for delayed execution.
    [22:16:01] [DEBUG] created delayed callback with 0 parameter
    [22:16:01] [DEBUG] CHandle::Execute(this=0x6c37c40, type=1, query=0x6cc4470)
    [22:16:01] [DEBUG] CHandle::Execute - return value: true
    [22:16:01] [DEBUG] mysql_tquery: return value: '1'


    //E:


    Der Befehl zum kaufen. eigentlich funktioniert der weil ID 2 und ID 3 kann ich damit ja auch kaufen. Seltsam hatte sowas noch nie.




  • Ist es eig möglich türen so aufgehen zu lassen wie bei einer Waschanlage also die alten noch so wie die Aral immer hatte

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



    Soweit alles korrekt richtig.

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

    ast2ufdyxkb1.png


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

  • 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

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • 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 ().
  • 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 ().
  • do.de - Domain-Offensive - Domains für alle und zu super Preisen