Beiträge von Cryptex

    jo der will für die zeile


    vBesitzer = SpielerNameAnzeige(playerid);


    ein array, darum habe ich das eig gemacht


    Error wenn ich den arry bei new weg mache

    Code
    error 006: must be assigned to an array


    wenn ich es nur unten im quarry weg mache

    Code
    error 035: argument type mismatch (argument 9)

    POLONE[0][playerid] = CreateObject(1238,X+0.07,Y,Z,0,0,Angle,0);
    POLONE[1][playerid] = CreateObject(1238,X+0.14,Y,Z,0,0,Angle,0);
    POLONE[2][playerid] = CreateObject(1238,X+0.21,Y,Z,0,0,Angle,0);
    POLONE[3][playerid] = CreateObject(1238,X+0.28,Y,Z,0,0,Angle,0);
    POLONE[4][playerid] = CreateObject(1238,X+0.35,Y,Z,0,0,Angle,0);


    die z achse geht nach unten oder oben

    Ich habe das umgeschrieben, habe auch einpar fehler gefunden jedoch geht das immernoch nicht :D
    Da muss ein experte ran :D Bestimmt ist nur wieder was kleine flasch und ich sehe das wieder nicht...


    CMD:abuyvehicle(playerid, params[])
    {
    new rand = random(sizeof(RandomSpawnVehicleShop)), vModel, vColor1, vColor2, vType, vBesitzer[500], vPreis;
    vModel = GetVehicleModel(GetPlayerVehicleID(playerid));
    GetVehicleColor(GetPlayerVehicleID(playerid), vColor1, vColor2);
    vType = 999;
    vBesitzer = SpielerNameAnzeige(playerid);
    vPreis = 100;


    if(Vehicles[GetPlayerVehicleIDEX(playerid)][fvType] == 10)
    {
    AddPlayerVehicleToFile(vModel, RandomSpawnVehicleShop[rand][0], RandomSpawnVehicleShop[rand][1], RandomSpawnVehicleShop[rand][2], RandomSpawnVehicleShop[rand][3], vColor1, vColor2, vType, vBesitzer[128], vPreis);
    SendClientMessage(playerid, green, "{FF0000}[SERVER] {FFFFFF}Du hast dir das Fahzeug gekauft");
    }
    return 1;
    }


    stock AddPlayerVehicleToFile(vModel, Float:vX, Float:vY, Float:vZ, Float:vA, vColor1, vColor2, vType, vBesitzer, vPreis)
    {
    new Query[200];
    format(Query, sizeof(Query), "INSERT INTO `Vehicles` (`VehicleModel`, `VehicleX`, `VehicleY`, `VehicleZ`, `VehicleAngle`, `Color1`, `Color2`, `VehicleType`, `Besitzer`, `Price`) VALUES ('%d', '%f', '%f', '%f', '%f', '%d', '%d', '%d', '%s', '%d')",
    vModel, vX, vY, vZ, vA, vColor1, vColor2, vType, vBesitzer, vPreis);
    mysql_query(Query);
    mysql_free_result();
    return 1;
    }


    Mein SQL Aufbau


    Die SQLTabelle

    das macht eig kein untschied, so hatte ich das auch vorher..
    damit geht das aber auch nicht habe es eben nochmal getestet


    das funktioniert z.b. wenn ich noale autos spawne und speichere
    stock AddVehicleToFile(Float:vX, Float:vY, Float:vZ, Float:vA, vModel, vColor1, vColor2)
    {
    new Query[200];
    format(Query, sizeof(Query), "INSERT INTO `Vehicles` (VehicleModel, VehicleX, VehicleY, VehicleZ, VehicleAngle, Color1, Color2) VALUES(%d, %f, %f, %f, %f, %d, %d)",
    vModel, vX, vY, vZ, vA, vColor1, vColor2);
    mysql_query(Query);
    mysql_free_result();
    return 1;
    }


    muss man die werte erst floaten? eig nicht oder, die parameter zeigen ja das es floads sind oder?


    //edit 1
    float text hinzugefügt

    erst das als root ausführen um htop zu installieren


    Code
    apt-get install htop


    wenn es installiert wurde schreibst du einfach htop und mit den pfeiltasten sihest du dann die prozesse die laufen


    mit f10 kannst du htop wieder schließen

    Bin grad dabei kaufbare vehicles zu erstellen,
    soweit ein player in einem bestimmten shopfahrzeug sitz kann er den selben wagen an einer bestimmten stelle spawnen


    irgendwie will der das aber nicht in die datenbank speichern, kann mal einer drüberschauen, ich finde den fehler nicht


    CMD:abuyvehicle(playerid, params[])
    {
    if(Vehicles[GetPlayerVehicleIDEX(playerid)][fvType] == 10)
    {
    new Query[500], vModel, vColor1, vColor2;
    vModel = GetVehicleModel(GetPlayerVehicleID(playerid));
    GetVehicleColor(GetPlayerVehicleID(playerid), vColor1, vColor2);
    format(Query, sizeof(Query), "INSERT INTO `Vehicles` (VehicleModel = '%d', VehicleX = '%f', VehicleY = '%f', VehicleZ = '%f', VehicleAngle = '%f', Color1 = '%d', Color2 = '%d', VehicleType = '%d', vBesitzer = '%s', vPreis = '%d')",
    vModel, -1630.91, 1289.79, 6.74587, 134.595, vColor1, vColor2, 999, SpielerNameAnzeige(playerid), 100);
    mysql_query(Query);
    mysql_free_result();

    LoadPlayerVehicle(playerid);
    SendClientMessage(playerid, green, "{FF0000}[SERVER] {FFFFFF}Du hast dir das Fahzeug gekauft");
    }
    return 1;
    }

    Hier die DB einträge der Autos


    Man sieht hier die Vans mit der ID 482 (2te Spalte in der DB) und die 9te Spalte zeigt VehicleType(100) bedeutet das das ein Admin fahrzeug ist
    else if(Vehicles[i][fvType] == 100)
    {
    Admin3DText[i] = Create3DTextLabel( "Admin Vehicle", 0xB70000FF, 0.0, 0.0, 0.0, 50.0, 0, 1 );
    Attach3DTextLabelToVehicle( Admin3DText[i] , i, 0.0, 0.0, 1.3);
    }


    Sniper, dein Stock habe ich mal eingesetzt irgendwie macht der das weniger falsch als davor?!
    if(newstate == PLAYER_STATE_DRIVER)
    {
    if(Vehicles[GetPlayerVehicleIDEX(playerid)][fvType] == 10)
    {
    SendClientMessage(playerid, green, "{FF0000}[SERVER] {FFFFFF}Du kannst dir das Fahzeug mit /buyvehicle kaufen");
    }
    else if(Vehicles[GetPlayerVehicleID(playerid)][fvType] == 11)
    {
    SendClientMessage(playerid, green, "{FF0000}[SERVER] {FFFFFF}Du kannst dir das Fahzeug mit /buyvehicle kaufen");
    }
    }


    if(newstate == PLAYER_STATE_DRIVER)
    {
    if((Vehicles[GetPlayerVehicleIDEX(playerid)][fvType] == 100) && SpielerInfo[playerid][pAdmin] <= 0)
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid, red, "{FF0000}[SERVER] {FFFFFF}Du bist leider kein Admin");
    }
    }


    if(newstate == PLAYER_STATE_DRIVER)
    {
    if((Vehicles[GetPlayerVehicleIDEX(playerid)][fvType] == 101) && SpielerInfo[playerid][pCop] <= 0)
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid, red, "{FF0000}[SERVER] {FFFFFF}Du bist leider kein Cop");
    }
    }


    Hier die Fahzuege im Autohaus. Hinten die Bikes + Sultan wurde keine Message ausgegeben jedoch haben die ein Label
    Aber die Fahzeuge genau vor mir haben eine Message ausgegeben jedoch kein Label. Mir ist schon ganz wirr :S


    Kann es daran liegen das ich unter LoadVehicles 500 Fahrzeuge durchlaufe es jedoch keine 500 Fahrzeuge gibt?
    while(ID < 500)
    {



    //Edit 1
    fehler beseitigt


    //Edit2
    erklärung erweitert

    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    if(newkeys & KEY_FIRE) //Wenn die Taste die du drückst CTRL ist ...
    {
    if(IsPlayerInAnyVehicle(playerid)) // .. und in einem Auto sitzt ...
    {
    new Float:vx,Float:vy,Float:vz;
    GetVehicleVelocity(GetPlayerVehicleID(playerid),vx,vy,vz);
    SetVehicleVelocity(GetPlayerVehicleID(playerid), vx, vy, vz + 0.2);
    return 1;
    }
    return 1;
    }
    return 1;
    }

    Du musst Armytimer ja wieder auf nul setzten wenn es 30 erreicht hat
    if(IsPlayerInRangeOfPoint(x,25.0,257.7721,1864.1960,8.7578))
    {
    if(isPlayerInTeam(x,2))
    {
    armytimer++;
    }
    }
    if(armytimer >= 30)
    {
    armytimer = 0;
    armyleben--;
    }
    if(armyleben == 0)
    {
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    SetPlayerHealth(i,0);
    GameTextForPlayer(i,"~r~Terror ~r~gewinnt",5000,3);
    armyleben = 20;
    CreateExplosion(260.6477,1865.0687,8.7578,6,40.0);
    for(new a=0;a<MAX_VEHICLES;a++)
    {
    SetVehicleToRespawn(a);
    }
    }
    }

    Na du erweiterst deine mysql tabelle mit den slots die ein vehicle haben darf "http://wiki.sa-mp.com/wiki/Componentslots".
    Dann kannst du nachdem du ein Fahzeug getunt hast abfragen welche slots mit welchen komponenten belegt sind und deren id in den slots speichern "http://wiki.sa-mp.com/wiki/GetVehicleComponentInSlot".

    probier mal das


    if(dialogid==DIALOG_REG)
    {
    if(response==0)
    {
    SendClientMessage(playerid,COLOR_RED,"Ciao");
    Kick(playerid);
    return 1;
    }


    if(response==1)
    {
    if(!strlen(inputtext))
    {
    ShowPlayerDialog(playerid,DIALOG_REG,DIALOG_STYLE_PASSWORD,"{FF0000}Registrieren","Du bist neu, Bitte gebe dein Passwort ein: {FFFFFF} || {FF0000}You are new, request gives your password:","Enter","Close");
    return SendClientMessage(playerid,COLOR_LIGHTBLUE,"Das Passwort ist zu kurtz! {FFFFFF} || {FF0000}The password is too short!");
    }
    if(strcmp(inputtext,dini_Get(accFormat,"Passwort")) == 0)
    {
    dini_Create(accFormat);
    dini_Set(accFormat,"Passwort",inputtext);
    Player[playerid][admin] = 0 ;
    Player[playerid][Kills] = 0 ;
    Player[playerid][Deaths] = 0 ;
    Player[playerid][eingeloggt] = 1;
    ApplyAnimation(playerid,"DANCING","DAN_LOOP_A",4.0,1,0,0,1,-1);
    InterpolateCameraPos(playerid, 1532.795776, -1774.432128, 33.512901, 1529.263916, -1686.004516, 14.459429, 4500,CAMERA_MOVE );
    InterpolateCameraLookAt(playerid, 1528.934692, -1777.396484, 32.370731, 1533.586914, -1683.492187, 14.482867, 3000,CAMERA_MOVE );
    SendClientMessage(playerid,COLOR_LIGHTBLUE,"Ihr Konto wurde erfolgreich registriert!{FFFFFF} || {FF0000}Their(Her) account was registered successfully!");
    }
    }
    return 1;
    }

    if (strcmp(cmdtext, "/bibomben", true) == 0)
    {
    if(IsPlayerInRangeOfPoint(playerid,10.0,4567.0459,-1868.7660,13.0454))
    {
    if(BombeStatus == 1)
    {
    SendClientMessage(playerid, COLOR_GREY, "Du kannst nur jede 5 Stunden eine Bombe legen!");
    }
    else
    {
    SendClientMessage(playerid, COLOR_LIGHTRED,"Text");
    SendClientMessage(playerid, COLOR_LIGHTRED,"Text");
    GetPlayerPos(playerid, PlayerExplosionX[1], PlayerExplosionY[1], PlayerExplosionZ[1]);
    bombe = CreateObject(1252, PlayerExplosionX[1], PlayerExplosionY[1], PlayerExplosionZ[1]-0.85, 0.0000, 0.0000, 0.0000);
    ClearAnimations(playerid);
    OnePlayAnim(playerid, "BOMBER", "BOM_Plant", 4.0, 0, 0, 0, 0, 0); // Place Bomb
    SetTimer("Explosions", 30000, 0);
    SetTimer("Abklinge", 1000*60*60*5, 0);
    BombeStatus = 1;
    }
    }
    }