Beiträge von Key

    Nabend,
    ich hab ein Autohaus-System in mein Script eingebaut, jedoch kann man jetzt nicht mehr auf den Server connecten.
    Wenn ich die Zeile in OnPlayerGameModeInit "LoadCars();" rausnahme, funktioniert alles wieder.


    LoadFahrzeug Stock:

    stock LoadCars()
    {
    new i;
    new xx,tinstring[6];
    for(; i<=MAX_CARS; i++) {
    format(Car[i][owner], 24, "%s", mysql_GetStringWithInt("Cars", "owner", "id", i));
    Car[i][x] = mysql_GetFloatWithInt("Cars", "x", "id", i);
    Car[i][y] = mysql_GetFloatWithInt("Cars", "y", "id", i);
    Car[i][z] = mysql_GetFloatWithInt("Cars", "z", "id", i);
    Car[i][r] = mysql_GetFloatWithInt("Cars", "r", "id", i);
    Car[i][c1] = mysql_GetIntWithInt("Cars", "c1", "id", i);
    Car[i][c2] = mysql_GetIntWithInt("Cars", "c2", "id", i);
    format(Car[i][plate], 20, "%s", mysql_GetStringWithInt("Cars", "plate", "id", i));
    Car[i][model] = mysql_GetIntWithInt("Cars", "model", "id", i);
    Car[i][price] = mysql_GetIntWithInt("Cars", "price", "id", i);
    Car[i][car] = AddStaticVehicleEx(Car[i][model], Car[i][x], Car[i][y], Car[i][z], Car[i][r], Car[i][c1], Car[i][c2], -1);
    SetVehicleNumberPlate(Car[i][car], Car[i][plate]);
    //printf("i = %d, owner = %s, x = %f, y = %f, z = %f, r = %f, c1 = %d, c2 = %d, plate = %s, model = %d, price = %d, car = %d", i, Car[i][owner], Car[i][x], Car[i][y], Car[i][z], Car[i][r], Car[i][c1], Car[i][c2], Car[i][plate], Car[i][model], Car[i][price], Car[i][car]);
    xx=1;
    for(;xx!=18;xx++) format(tinstring,6,"mod%d",xx), Car[i][mod][xx] = mysql_GetIntWithInt("Cars", tinstring, "id", i);
    AddTuning(i);
    }
    return 1;
    }


    //edit LoadFahrzeuge zu LoadCars geändert

    Hab das in mein Script eingebaut etc.
    Alles hat funktioniert, den Server kann ich auch starten, aber ich kann nicht auf den Server connecten, der ist jetzt so, als wenn der Server off währe. Wenn ich oben bei OnGameModeInit "LoadCars();" kommentiere ( // LoadCars(); ) dann geht es. :O


    Woran kann das liegen?

    Bei:


    stock LoadPlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
    {
    GetPlayerName(playerid, SpielerInfo[playerid][pName], MAX_PLAYER_NAME);
    SpielerInfo[playerid][pLevel] = mysql_GetInt("accounts", "Level", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pGeld] = mysql_GetInt("accounts", "Geld", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pKills] = mysql_GetInt("accounts", "Kills", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pTode] = mysql_GetInt("accounts", "Tode", "Name", SpielerInfo[playerid][pName]);
    }
    return 1;
    }


    wird ja das was in der Datenbank steht in die Variable geschrieben, aber das Level des Spielers inGame muss man noch mit SetPlayerScore ändern, oder? Genauso auch mit dem Geld und dem Health.

    Danke an euch, aber die Anwendung funktioniert trotzdem nicht.. :D.



    stock GetPlayerKaufCar(playerid)
    {
    for(new i=0;i<MAX_AUTOS;i++)
    {
    if(strcmp(Spielername(playerid), PlayerAuto[i][vkey], true) == 0)
    {
    KaufCar[playerid] = i;
    }
    }
    return 1;
    }


    So sieht sie jetzt aus..
    Vielleicht kann mir ja noch einer helfen.


    Ahja, PlayerAuto[vkey] ist der Name des Fahrzeugbesitzers & Spielername ist ja klar.


    //edit: Ich hab die Anwendung mal zum Test beim Befehl reingemacht, und der zeigt immer an, das die FahrzeugID 1 ist, obwohl das nicht stimmt.

    So?:

    stock GetPlayerKaufCar(playerid)
    {
    for(new i=0;i<MAX_AUTOS;i++)
    {
    if(strcmp(Spielername(playerid),PlayerAuto[i][vkey], false, 5))
    {
    KaufCar[playerid] = i;
    }
    }
    return 1;
    }

    Ich versteh nicht, wieso ich hier ein Error bekommen .. :O



    stock GetPlayerKaufCar(playerid)
    {
    for(new i=0;i<MAX_AUTOS;i++)
    {
    new namess[MAX_PLAYER_NAME];
    GetPlayerName(playerid,namess,sizeof(namess));
    if(Spielername(playerid) == PlayerAuto[i][vkey])
    {
    KaufCar[playerid] = i;
    }
    }
    return 1;
    }


    stock Spielername(playerid)
    {
    new xn[MAX_PLAYER_NAME];
    GetPlayerName(playerid,xn,sizeof(xn));
    return xn;
    }


    Error: C:\Users\The Darkmen\Downloads\GTA SAN ANDREAS\GTA SAN ANDREAS\samp03e_svr_RC6_win32\gamemodes\Cobra.pwn(2501) : error 033: array must be indexed (variable "Spielername")

    Taag..
    Ich hab ein Problem, undzwar habe ich folgenden Code bei OnPlayerKeyStateChange:



    else if (newkeys & (KEY_JUMP))
    {
    if(GetPlayerVehicleSeat(playerid) == 0)
    {
    new car = GetPlayerVehicleID(playerid);
    if(GetVehicleModel(car) == 509 || GetVehicleModel(car) == 481 || GetVehicleModel(car) == 510)
    {
    SendClientMessage(playerid, COLOR_WARN, "Du sitzt auf einem Fahrrad. Das het keinen Motor!");
    }
    else if(Motor[car] == false)
    {
    GetVehicleParamsEx(car,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(car,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
    Motor[car] = true;
    }
    else
    {
    GetVehicleParamsEx(car,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(car,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    Motor[car] = false;
    }
    }
    }


    Jedoch, wenn ich jetzt Shift drücke, passiert nichts.
    Wenn ich aber KEY_HANDBRAKE benutze, funktionierts. Ich möchte aber nicht das der Motor auf der Handbremse an/aus geht. :D


    Ich würde mich über Hilfe freuen!


    //edit 1: Rechtschreibung
    //edit 2: Der Motor wird stattdessen auf "S" (Rückwärts) gestartet

    Doch, doch ich benutz ein Enum.


    meinst du so?:

    stock LoadFahrzeug(playerid,vehicleid)
    {
    new Float:x,Float:y,Float:z,Float:angle, id;
    new Fahrzeugdatei[64];
    format(Fahrzeugdatei,sizeof(Fahrzeugdatei),"/Fahrzeuge/%s",SpielerName(playerid));
    id = dini_Int(Fahrzeugdatei,"ID");
    x = dini_Float(Fahrzeugdatei,"PositionX");
    y = dini_Float(Fahrzeugdatei,"PositionY");
    z = dini_Float(Fahrzeugdatei,"PositionZ");
    angle = dini_Int(Fahrzeugdatei,"PositionAngle");
    AutoInfo[vehicleid][fID]=CreateVehicle(id,x,y,z,angle,0,0,-1000);
    return 1;
    }

    Ja schon.. aber das Fahrzeug wird ja nicht bei OnGameModeInit erstellt, sondern beim Kaufen im Autohaus.


    Unter OnGameModeInit hab ich:

    LoadFahrzeug();


    stock LoadFahrzeug(playerid)
    {
    new Float:x,Float:y,Float:z,Float:angle, id;
    new Fahrzeugdatei[64];
    format(Fahrzeugdatei,sizeof(Fahrzeugdatei),"/Fahrzeuge/%s",SpielerName(playerid));
    id = dini_Int(Fahrzeugdatei,"ID");
    x = dini_Float(Fahrzeugdatei,"PositionX");
    y = dini_Float(Fahrzeugdatei,"PositionY");
    z = dini_Float(Fahrzeugdatei,"PositionZ");
    angle = dini_Int(Fahrzeugdatei,"PositionAngle");
    CreateVehicle(id,x,y,z,angle,0,0,-1000);
    return 1;
    }

    Morgäähnn..
    ich habe gerade mein Fahrzeugsystem angefangen und ein Autohaus erstellt. Bisher funktioniert eig. soweit alles.
    Jetzt aber, möchte ich den /lock Befehl machen, damit soll man das Auto auch von außen abschließen können, dazu bräuchte ich jedoch die ID.
    Diese könnt ich beim Autokauf zwar in die Fahrzeugdatei speichern, aber die ID ändert sich doch nach dem Restart oder nicht?


    Deshalb meine Frage: Wie finde ich die ID von meinem Fahrzeug heraus ( Wenn ich nicht drinsitze oder unbedingt danebenstehe! )


    LG,
    Key

    Tagchen..
    ich wollte fragen, wie ich nochmal den Fahrzeugtyp ( NICHT GetPlayerVehicleID ) herrausfinde.
    Also ich will bei meinem Autohaus, dass das selbe Auto, in welches man einsteigt draußen gespawnt wird.


    LG,
    Key

    Taag..
    ich hab gerade in meinem Selfmade ein Fraksystem mit einer Fraktionskasse erstellt, jedoch wird nichts in die Datei gespeichert..


    mein Fraksys:

    enum FInfo
    {
    Kasse
    };
    new FraktionsInfo[MAX_FRAKTION][FInfo];


    LoadFraktion();//OnGameModeInit


    FraktionSpeichern();//OnGamemodeExit


    stock FraktionSpeichern()
    {
    new Fraktionsdatei[64];
    format(Fraktionsdatei,sizeof(Fraktionsdatei),"/Fraktionen/SAPD.txt");
    dini_IntSet(Fraktionsdatei,"Kasse",FraktionsInfo[1][Kasse]);
    /*format(Fraktionsdatei,sizeof(Fraktionsdatei,"/Fraktionen/Army.txt");
    dini_IntSet(Fraktionsdatei,"Kasse",FraktionsInfo[2][Kasse]);*/
    return 1;
    }


    stock LoadFraktion()
    {
    new Fraktionsdatei[64];
    format(Fraktionsdatei,sizeof(Fraktionsdatei),"/Fraktionen/SAPD.txt");
    FraktionsInfo[1][Kasse]=dini_Int(Fraktionsdatei,"Kasse");
    /*format(Fraktionsdatei,sizeof(Fraktionsdatei),"/Fraktionen/Army.txt");
    FraktionsInfo[2][Kasse]=dini_Int(Fraktionsdatei,"Kasse");*/
    return 1;
    }


    ocmd:fkasse(playerid,params[])
    {
    new fraktion, money;
    new string[128];
    if(GetPVarInt(playerid,"Leader") > 0)
    {
    if(sscanf(params,"i",money)) return SendClientMessage(playerid,Hellblau,"Benutzung: /fkasse [Betrag]");
    if(GetPVarInt(playerid,"Leader") == 1){fraktion=1;}
    FraktionsInfo[fraktion][Kasse]+=money;
    GivePlayerMoney(playerid,-money);
    format(string,sizeof(string),"Du hast %d€ in die Fraktionskasse getan!",money);
    SendClientMessage(playerid,Hellblau,string);
    return 1;
    }
    else{SendClientMessage(playerid,Hellblau,"Du bist kein Leader einer Fraktion.");}
    return 1;
    }


    Die Datei "SAPD.txt" hab ich selbst erstell unter /scriptfiles/Fraktionen/


    //edit: Funktioniert jetzt! Hab den Server sonst immer übers "X " geschlossen, jetzt hab ich mal exit eingegeben & jetzt funzt es :D