[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
  • Kleine Frage


    wo ist hier der Fehler, das die Gangzone über die Ganze Map Flackert?
    hier die addplayerclass
    AddPlayerClass(181,1717.8798,2042.6285,11.6586,48.0337,0,0,0,0,0,0); // GF-ZNE1 o
    AddPlayerClass(181,1756.5127,1851.9514,10.8203,268.9124,0,0,0,0,0,0); // GF-ZNE1 u


    und so erstell ich die
    //minX,minY,maxX,maxY,color
    {1717.8798,2042.6285, 1756.5127,1851.9514, BallasColor}

    All in all it's just another brick in the wall

  • Die Klammern müssen immer ein Paar ergeben


    ( und ) sind ein Paar
    { und } sind ein Paar
    [ und ] sind ein Paar

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Hab da n Problem:
    Errors:

    Zeile (7009) : Falscher Variablentyp als Parameter (Parameter #2)
    Zeile (7018) : Falscher Variablentyp als Parameter (Parameter #3)


    Zeilen

    ocmd:kassegeben(pld,params[]){
    if(!istSpielerAdmin(pld,5))return ERROR5;
    new neu,name;
    if(sscanf(params,"sd",name,neu))return SCM(pld,ROT,"[INFO] /kassesetzen BIZNAME Kasse");
    Kassegeben(pld,name,neu); //Zeile 7009
    rtu;
    }


    stock Kassegeben(pld,key[],key2[]){
    new BIZ[64];
    format(BIZ,sizeof(BIZ),"/Gewerbe/%s.txt",key);
    if(dini_Exists(BIZ)){
    SCM(pld,GRUEN,"[INFO] Erfolgreich!");
    dini_IntSet(BIZ,"Kasse",key2); //Zeile 7018
    }
    else{
    SCM(pld,ROT,"[ERROR Diese Biz gibt es nicht!");
    }
    }


    Ich verstehe nicht was daran falsch sein soll :pinch:

  • Du musst das so schreiben:


    stock Kassegeben(pld,key[],key2){


    Wenn du im Parameter das hier setzt [] denkt der Compiler es handelt sich um einen string ;)


    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
  • Okay, danke, jetzt hab ich aber dieses Problem:
    Der Eintrittspreis und die Prodsanzeige ist fehlerhaft, bzw. da steht was falsches:
    Bild:

    In der Datei( test123.txt :(

    Code
    PositionX=1523.371704
    PositionY=-1610.489746
    PositionZ=13.546875
    Name=test123
    Besitzer=Wolfgang
    Eintrittspreis=5
    Kasse=20000
    Prods=120
    Pickup=1273


    Und im Script:



    stock Bizmachen(pld,key[]/*Name*/,Float:X,Float:Y,Float:Z){
    new BIZ[64],dreid[256],Text3D:textla;
    format(BIZ,sizeof(BIZ),"/Gewerbe/%s.txt",key);
    if(dini_Exists(BIZ)){
    SCM(pld,ROT,"[INFO] Diese Biz gibt es schon!");
    }
    else{
    dini_Create(BIZ);
    dini_FloatSet(BIZ,"PositionX",X);
    dini_FloatSet(BIZ,"PositionY",Y);
    dini_FloatSet(BIZ,"PositionZ",Z);
    dini_Set(BIZ,"Name",key);
    dini_Set(BIZ,"Besitzer","Wolfgang");
    dini_IntSet(BIZ,"Eintrittspreis",5);
    dini_IntSet(BIZ,"Kasse",20000);
    dini_IntSet(BIZ,"Prods",120);
    dini_IntSet(BIZ,"Pickup",1273);
    CreatePickup(1273,1,X,Y,Z,0);
    format(dreid,sizeof(dreid),"--%s--\nBesitzer: %s\nEintrittspreis: %d$\nProds: %d/120",dini_Get(BIZ,"Name"),dini_Get(BIZ,"Besitzer"),dini_Get(BIZ,"Eintrittspreis"),dini_Get(BIZ,"Prods"));
    textla=Create3DTextLabel(dreid,GRUEN,X,Y,Z,5.0,0,0);
    }
    }

  • Hi.. Kurze Frage zu SetCameraLookAt
    Ich mache z.B den Befehl "/Beispiel" und will dann das mir die Camera wohin gesetzt wird.. dies gescheht auch, jedoch guck die Kammera nach Rechts immer.. kann ich das irgendwie ändern`?
    Mfg


    In welchem public benutzt du das SetCameraLookAt denn?

  • Ich habe da ein Kleines problem mit MySQL, das Update funktioniert nicht. Die angegebenen Felder sind alle in der MySQL Datenbank vorhanden und Exakt so geschrieben. Ich habe leider keine Idee mehr :/


    new querystring[500];
    for(new x = 0; x < UC_MaxVehicles_Prem; x++)
    {
    if(UserCar[playerid][x] != 0)
    {
    format(querystring, sizeof(querystring), "UPDATE `uservehs` SET `Ownerid` = '%d', `Ownername` = '%s' WHERE `Id` = '%d'", UC_CarInfo[x][OwnerID], UC_CarInfo[x][Ownername], UC_CarInfo[x][DatabaseID]);
    mysql_query(querystring);


    format(querystring, sizeof(querystring), "UPDATE `uservehs` SET `Numberplate` = '%s', `Tank` = '%d', `Hybridtank` = '%d', `Kilometer` = '%d', `Lasttuev` = '%d', `Crashs` = '%d', `Totalcrashs` = '%d' WHERE `Id` = '%d'", UC_CarInfo[x][NumberPlate], UC_CarInfo[x][Tank], UC_CarInfo[x][HybridTank], UC_CarInfo[x][Kilometer], UC_CarInfo[x][LastTuev], UC_CarInfo[x][Crashs], UC_CarInfo[x][Totalcrashs], UC_CarInfo[x][DatabaseID]);
    mysql_query(querystring);


    format(querystring, sizeof(querystring), "UPDATE `uservehs` SET `SpawnX` = '%f', `SpawnY` = '%f', `SpawnZ` = '%f', `SpawnA` = '%f', `Color1` = '%d', `Color2` = '%d', `Paintjob` = '%d' WHERE `Id` = '%d'", UC_CarInfo[x][SpawnX], UC_CarInfo[x][SpawnY], UC_CarInfo[x][SpawnZ], UC_CarInfo[x][SpawnA], UC_CarInfo[x][Color1], UC_CarInfo[x][Color2], UC_CarInfo[x][PaintJob], UC_CarInfo[x][DatabaseID]);
    mysql_query(querystring);


    format(querystring, sizeof(querystring), "UPDATE `uservehs` SET `Nitro` = '%d', `Vents` = '%d', `Lamps` = '%d', `Wheel` = '%d', `Ausp` = '%f', `SideL` = '%d', `SideR` = '%d' WHERE `Id` = '%d'", UC_CarInfo[x][Nitro], UC_CarInfo[x][Vents], UC_CarInfo[x][Lamps], UC_CarInfo[x][Wheels], UC_CarInfo[x][Ausp], UC_CarInfo[x][SideL], UC_CarInfo[x][SideR], UC_CarInfo[x][DatabaseID]);
    mysql_query(querystring);


    format(querystring, sizeof(querystring), "UPDATE `uservehs` SET `FrontB` = '%d', `BackB` = '%d', `Spoiler` = '%d', `Roof` = '%d', `IsTow` = '%d', `Addons` = '%d', `Buytimestamp` = '%d' WHERE `Id` = '%d'", UC_CarInfo[x][FrontB], UC_CarInfo[x][BackB], UC_CarInfo[x][Spoiler], UC_CarInfo[x][Roof], UC_CarInfo[x][IsTow], UC_CarInfo[x][Addons], UC_CarInfo[x][BuyTime], UC_CarInfo[x][DatabaseID]);
    mysql_query(querystring);
    }
    }

    Ich helfe gerne, aber nur wenn die andere Person wenigstens versucht es zu schaffen.
    Solange sie nicht so dreist sind und mich beim Zocken zuspammen.

  • Okay, danke, jetzt hab ich aber dieses Problem:
    Der Eintrittspreis und die Prodsanzeige ist fehlerhaft, bzw. da steht was falsches:
    [...]


    Du benutzt auch egal für welchen Platzhalter Dini_Get() ;

    Zitat

    format(dreid,sizeof(dreid),"--%s--\nBesitzer: %s\nEintrittspreis: %d$\nProds: %d/120",dini_Get(BIZ,"Name"),dini_Get(BIZ,"Besitzer"),dini_Get(BIZ,"Eintrittspreis"),dini_Get(BIZ,"Prods"));


    dini_Get() gibt dir aber einen String zurück,wäre also %s. Wenn du aber etwas als Zahl auslesen möchtest und somit auch den Platzhalter %d nutzt,dann ist es dini_GetInt()


  • case 5://Interne Abriegelung
    {
    new vid = GetPlayerVehicleID(playerid);
    new engine,lights,alarm,doors,bonnet,boot,objective;
    if(doors[vid] == 0)
    {
    GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
    doors[vid] = 1;
    SendClientMessage(playerid,COLOR_WHITE,"Du hast die Türen verriegelt!");
    }
    else
    {
    GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    doors[vid] = 0;
    SendClientMessage(playerid,COLOR_WHITE,"Du hast die Türen entriegelt!");
    }
    }

    Was ist daran falsch ? ^^
    Komme einfach nicht drauf.
    Wollte es so machen, dass der Fahrer /auto macht, dann auf Interne Abr... und sich dann die Türen Verriegeln / Entriegeln
    Sobald der Fahrer draußen ist, sind die Türen wieder offen.


    Code
    C:\Users\...\Desktop\Wichtig\neues script\gamemodes\BCL.pwn(47912) : error 028: invalid subscript (not an array or too many subscripts): "doors"
    C:\Users\...\Desktop\Wichtig\neues script\gamemodes\BCL.pwn(47912) : warning 215: expression has no effect
    C:\Users\...\Desktop\Wichtig\neues script\gamemodes\BCL.pwn(47912) : error 001: expected token: ";", but found "]"
    C:\Users\...\Desktop\Wichtig\neues script\gamemodes\BCL.pwn(47912) : error 029: invalid expression, assumed zero
    C:\Users\...\Desktop\Wichtig\neues script\gamemodes\BCL.pwn(47912) : fatal error 107: too many error messages on one line
  • do.de - Domain-Offensive - Domains für alle und zu super Preisen