[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
  • Guten morgen allerseits.


    Bin gerade Just4Fun am rumscripten und möchte aus einer Datenbank Vehicles laden. Soweit sogut, nur leider bekomme ich einen "argument type mismatch (argument 1)" error beim CreateVehicle. Hier mal der Code:


    public loadveh(){
    mysql_query("SELECT * FROM vehicles");
    mysql_store_result();
    new vehid[50], c1[50], c2[50], posx[50], posy[50], posz[50], floatx[50];
    while(mysql_retrieve_row()){
    mysql_fetch_field_row(vehid,"vehid");
    mysql_fetch_field_row(c1,"c1");
    mysql_fetch_field_row(c2,"c2");
    mysql_fetch_field_row(posx,"posx");
    mysql_fetch_field_row(posy,"posy");
    mysql_fetch_field_row(posz,"posz");
    mysql_fetch_field_row(floatx,"floatx");
    CreateVehicle(vehid,posx,posy,posz,floatx,c1,c2,-1);
    }
    }
    Bin Frischling im Thema scripten. Ist bestimmt ein minimaler Fehler aber ich komme leider nicht drauf. Danke für die Hilfe!

    Trancebase, Dreamweaver und ab geht die Uzi.

  • Wie du sie schon nennst, so müssen sie auch für Datentypen sein.
    Positionen sind immer in Kommazahlen also float's angegeben.
    Damit sollte sich dein Problem erledigt haben ;).


    L.G.


    Danke für die Hilfe. Habe es probiert aber irgendwie kommen da immernoch Fehler:


    public loadveh(){
    mysql_query("SELECT * FROM vehicles");
    mysql_store_result();
    new vehid[50], c1[50], c2[50], posx[50], posy[50], posz[50], fx[50], Float:floatx;
    while(mysql_retrieve_row()){
    mysql_fetch_field_row(vehid,"vehid");
    mysql_fetch_field_row(c1,"c1");
    mysql_fetch_field_row(c2,"c2");
    mysql_fetch_field_row(posx,"posx");
    mysql_fetch_field_row(posy,"posy");
    mysql_fetch_field_row(posz,"posz");
    mysql_fetch_field_row(fx,"floatx");
    floatx = float(fx);
    CreateVehicle(vehid,posx,posy,posz,floatx,c1,c2,-1);
    }
    }


    Habs nach dem Prinzip versucht: http://wiki.sa-mp.com/wiki/Float


    Was mache ich falsch? :o

    Trancebase, Dreamweaver und ab geht die Uzi.

  • Weiß jemand Eventuell, wieso ich bei allen sscanf Befehlen diesen Error in der Log bekomme obwohl sscanf in den befehlen nicht vertreten ist?



    [11:32:52] sscanf warning: Strings without a length are deprecated, please add a destination size.

  • In der neuen sscanf Version solltest du optional die string länge angeben. Beispiel:


    new string[20];
    if(sscanf(params,"s",string)) return 1; //alt
    if(sscanf(params,"s[20]",string)) return 1; //neu


    Ergibt natürlich keinen Sinn, den string zu splitten, wenn nur einer da ist.
    Ist also nur als Beispiel gedacht, dass du es anwenden kannst ;)


    L.G.

  • Hatte wieder die Alte Version genommen.


    Jemand eine Idee wie man es Entfernen kann das man in ein LSPD Jeep steigt und keine Schrotflinte mit 5 Schüssen kriegt?

  • Steht nicht´s, das ist ja das Feature vom Singelplayer... ka wieso das jetzt bei mir Aufeinmal auch so ist und das noch bei den Jeeps von Medics.

  • public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(strcmp(cmdtext, "/sh", true) == 3)
    {
    new string[128];
    format(string, sizeof(string), "Hier steht dann dein Text",GetPlayerInterior(playerid));
    SendClientMessage(playerid, 0xFF8000FF, string);
    SetPlayerInterior(playerid, 3);
    return 1;
    }
    return 0;
    }



    Kann mir jemand sagen was ich falsch gemacht habe? Ich möchte das wenn man /sh in das Interior kommt mit der ID 3, also das gewöhnliche Stadthallen Interior. Kriege aber aber auch keine Fehler codes beim compilen.


    Bin noch Neuling im Scripting Bereich.


  • public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(!strcmp(cmdtext, "/sh", true)) // Hier dran liegt es, wenn es übereinstimmt, gibt die Funktion 0 zurück du hattest dort 3
    {
    new string[128];
    format(string, sizeof(string), "Hier steht dann dein Text",GetPlayerInterior(playerid));
    SendClientMessage(playerid, 0xFF8000FF, string);
    SetPlayerInterior(playerid, 3);
    return 1;
    }
    return 0;
    }


    Kleines edit:
    http://wiki.sa-mp.com/wiki/Strcmp


  • Aber wenn ich jetzt /sh eingebe setet er mich immernoch nicht in der Stadthalle.