Beiträge von J0a9

    Hallo Breadfish-Community,


    ich wollte euch fragen, ob es möglich ist wenn man im Pay N Spray war wird ja automatisch 100$ abgezogen,
    allerdings wird dies an meiner Geldanzeige nicht angezeigt und im Account (MySQL) nicht gespeichert...


    Meine Geldanzeige ist so aufgebaut:
    new Text:MoneyDraw [MAX_PLAYERS];



    stock UpdatePlayerMoneyTextdraw(playerid)
    {
    new m = GetPlayerMoney(playerid), str[50];
    if(m == 0) format(str, sizeof str, "~r~00000000 ~g~Euro");
    else if(m < 10 && m > 0) format(str, sizeof str, "~w~0000000%d ~g~Euro", m);
    else if(m < 100 && m >= 10) format(str, sizeof str, "~w~000000%d ~g~Euro", m);
    else if(m < 1000 && m >= 100) format(str, sizeof str, "~w~00000%d ~g~Euro", m);
    else if(m < 10000 && m >= 1000) format(str, sizeof str, "~w~0000%d ~g~Euro", m);
    else if(m < 100000 && m >= 10000) format(str, sizeof str, "~w~000%d ~g~Euro", m);
    else if(m < 1000000 && m >= 10000) format(str, sizeof str, "~w~00%d ~g~Euro", m);
    else if(m < 10000000 && m >= 1000000) format(str, sizeof str, "~w~0%d ~g~Euro", m);
    else if(m < 100000000 && m >= 10000000) format(str, sizeof str, "~w~%d ~g~Euro", m);
    else format(str, sizeof str, "~w~%d ~g~Euro", m);
    TextDrawSetString(MoneyDraw[playerid], str);
    return 1;
    }


    Unter SetPlayerSpawn:
    TextDrawShowForPlayer(playerid, MoneyDraw[playerid]);



    for(new playerid = 0; playerid<MAX_PLAYERS; playerid++)
    {
    MoneyDraw[playerid] = TextDrawCreate(493.000000, 81.000000, "~w~00000000 ~g~Euro");
    TextDrawBackgroundColor(MoneyDraw[playerid], 255);
    TextDrawFont(MoneyDraw[playerid], 3);
    TextDrawLetterSize(MoneyDraw[playerid], 0.500000, 1.700000);
    TextDrawColor(MoneyDraw[playerid], -1);
    TextDrawSetOutline(MoneyDraw[playerid], 0);
    TextDrawSetProportional(MoneyDraw[playerid], 1);
    TextDrawSetShadow(MoneyDraw[playerid], 1);
    TextDrawUseBox(MoneyDraw[playerid], 1);
    TextDrawBoxColor(MoneyDraw[playerid], 0x000000FF);
    TextDrawTextSize(MoneyDraw[playerid], 621.000000, 1.000000);
    }


    Mein Problem ist, das das Geld nach dem Pay N Spray nicht den abgezogenen Beitrag anzeigt und nicht gespeichert wird...


    Kann man dies beheben oder ist dies möglich?


    Lg
    J0a9

    ah ok danke sehr :)


    Ich versuche dann das /fpark system umzuschreiben, so wie es in deinem Tutorial ist :)


    Wenn ich Hilfe benötige Melde ich mich, bis dahin bedanke ich mich für deine schnelle Hilfe...


    //Edit:


    Ich versuche es nun mit dem Stock Aufbau...


    Code:

    stock SaveFracVehCheck(vehicleid)
    {
    new query[256];
    for(new i;i<MAX_FACTION_CARS ;i++)
    {
    if(FactionCars[i][fVehid] >= 400 && FactionCars[i][fVehid] <= 611)
    {
    GetVehiclePos(FactionCars[i][fVehid], FactionCars[i][v_X], FactionCars[i][v_Y], FactionCars[i][v_Z]);
    GetVehicleZAngle(FactionCars[i][fVehid], FactionCars[i][v_A]);
    format(query, sizeof(query), "UPDATE fraktionsautos SET FVehid = '%d', Fv_aX = '%f', Fv_aY = '%f', Fv_aZ = '%f', Fv_aA = '%f', FCol1 = '%d', FCol2 = '%d', FracID = '%d' WHERE id = '%d'",
    FactionCars[i][fVehid], FactionCars[i][v_X], FactionCars[i][v_Y], FactionCars[i][v_Z], FactionCars[i][v_A], FactionCars[i][fCol][0], FactionCars[i][fCol][1], FactionCars[i][fFaction], FactionCars[i][fdb_id]);
    mysql_tquery(dbhandle, query);
    return 1;
    }
    }
    return 0;
    }


    Allerdings bekomme ich ein Warning:

    Code
    warning 203: symbol is never used: "vehicleid"

    in der Zeile -> stock SaveFracVehCheck(vehicleid)


    Was ist denn da der Fehler?


    Lg
    J0a9

    Datenbank Screenshot:



    Lade Funktion:



    forward LoadFraktionsAuto();
    public LoadFraktionsAuto()
    {
    new query1[100];
    format(query1, sizeof(query1), "SELECT * FROM fraktionsautos");
    mysql_function_query(dbhandle, query1, true, "LoadFactionCars", "");
    return 1;
    }


    forward LoadFactionCars();
    public LoadFactionCars()
    {
    if(!cache_num_rows())return 1;
    for(new fc = 0; fc < cache_num_rows(); fc++)
    {
    FactionCars[fc][fVehid] = cache_get_field_content_int(fc, "FVehId", dbhandle);
    FactionCars[fc][fFaction] = cache_get_field_content_int(fc, "FFaction", dbhandle);
    FactionCars[fc][v_X] = cache_get_field_content_float(fc, "Fv_aX", dbhandle);
    FactionCars[fc][v_Y] = cache_get_field_content_float(fc, "Fv_aY", dbhandle);
    FactionCars[fc][v_Z] = cache_get_field_content_float(fc, "Fv_aZ", dbhandle);
    FactionCars[fc][v_A] = cache_get_field_content_float(fc, "Fv_aA", dbhandle);
    FactionCars[fc][fCol][0] = cache_get_field_content_int(fc, "FCol1", dbhandle);
    FactionCars[fc][fCol][1] = cache_get_field_content_int(fc, "FCol2", dbhandle);
    FactionCars[fc][fCarid] = CreateVehicle(FactionCars[fc][fVehid],FactionCars[fc][v_X],FactionCars[fc][v_Y],FactionCars[fc][v_Z],FactionCars[fc][v_A],FactionCars[fc][fCol][0],FactionCars[fc][fCol][1],-255);
    }
    return 1;
    }



    Speicher System (ist von dir Jeffry habs versucht einzubauen aber kp ob's klappt hab das mit dem Timer):



    forward SaveAllFactionCars();
    public SaveAllFactionCars()
    {
    new query[256];
    for(new i;i<sizeof(FactionCars);i++)
    {
    if(FactionCars[i][fVehid] >= 400 && FactionCars[i][fVehid] <= 611)
    {
    GetVehiclePos(FactionCars[i][fVehid], FactionCars[i][v_X], FactionCars[i][v_Y], FactionCars[i][v_Z]);
    GetVehicleZAngle(FactionCars[i][fVehid], FactionCars[i][v_A]);
    format(query, sizeof(query), "UPDATE fraktionsautos SET FVehid = '%d', Fv_aX = '%f', Fv_aY = '%f', Fv_aZ = '%f', Fv_aA = '%f', FCol1 = '%d', FCol2 = '%d', FracID = '%d' WHERE id = '%d'",
    FactionCars[i][fVehid], FactionCars[i][v_X], FactionCars[i][v_Y], FactionCars[i][v_Z], FactionCars[i][v_A], FactionCars[i][fCol][0], FactionCars[i][fCol][1], FactionCars[i][fFaction], i);
    mysql_tquery(dbhandle, query);
    return 1;
    }
    }
    return 0;
    }


    Lg
    J0a9

    Hallo Breadfish-Community,


    ich bin am versuchen vom Dini Fraktionssystem auf MySQL umzuschreiben.
    Mein Problem liegt allerdings jetzt beim Befehl '/fpark' ...


    Ich habe mir auch das kleine Tutorial von Jeffry angeschaut, aber das klappt bei mir auch irgendwie nicht...
    (Link zum Tutorial: http://forum.sa-mp.de/gta-mult…g-system-mit-mysql-r39-2/ )



    So sieht bis jetzt mein /fpark Befehl aus:

    dcmd(efa,3,cmdtext);
    if(strcmp(cmdtext,"/fpark",true)==0)
    {
    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
    for(new i=0; i< MAX_FACTION_CARS; i++)
    {
    if(FactionCars[i][fVehid] >= 400 && FactionCars[i][fVehid] <= 611)
    {
    if(GetPlayerAdminLevel(playerid) >= NEEDED_ADMINLEVEL || GetPlayerLeader(playerid) == FactionCars[i][fFaction][0])
    {
    //new vehicleid = GetPlayerVehicleID(playerid);
    //if(SaveFracVehCheck(vehicleid)) return SendClientMessage(playerid,COLOR_WHITE,"Du hast das Fraktionsfahrzeug {88FF6A}erfolgreich{FFFFFF} umgeparkt.");
    new query[156];
    format(query, sizeof(query), "UPDATE fraktionsautos SET Fv_aX='%f', Fv_aY='%f', Fv_aZ='%f', Fv_aA='%f' WHERE FVehID = '%d'",FactionCars[i][v_X], FactionCars[i]
    [v_Y], FactionCars[i][v_Z], FactionCars[i][v_A], FactionCars[i][fCarid]);
    mysql_function_query(dbhandle, query, false, "", "");
    SendClientMessage(playerid,COLOR_WHITE,"Du hast das Fraktionsfahrzeug {88FF6A}erfolgreich{FFFFFF} umgeparkt.");
    }
    else SendClientMessage(playerid,COLOR_WHITE,"Du bist dazu {FF6A6A}nicht{FFFFFF} berechtigt.");
    return true;
    }SendClientMessage(playerid,COLOR_WHITE,"Du sitzt in {FF6A6A}keinem{FFFFFF} Fraktionsfahrzeug.");
    }SendClientMessage(playerid,COLOR_WHITE,"Du sitzt in {FF6A6A}keinem{FFFFFF} Fahrzeug oder bist {FF6A6A}nicht{FFFFFF} der Fahrer.");
    }
    return 1;
    }


    habe es auch so Probiert, das Problem hierbei ist, in der Datenbank werden alle Autos mit der selben ID auf eine Koordinate gesetzt...
    (Hier habe ich am ende FactionCars[i][fCarid] zu FactionCars[i][fVehid] gesetzt)



    dcmd(efa,3,cmdtext);
    if(strcmp(cmdtext,"/fpark",true)==0)
    {
    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
    for(new i=0; i< MAX_FACTION_CARS; i++)
    {
    if(FactionCars[i][fVehid] >= 400 && FactionCars[i][fVehid] <= 611)
    {
    if(GetPlayerAdminLevel(playerid) >= NEEDED_ADMINLEVEL || GetPlayerLeader(playerid) == FactionCars[i][fFaction][0])
    {
    //new vehicleid = GetPlayerVehicleID(playerid);
    //if(SaveFracVehCheck(vehicleid)) return SendClientMessage(playerid,COLOR_WHITE,"Du hast das Fraktionsfahrzeug {88FF6A}erfolgreich{FFFFFF} umgeparkt.");
    new query[156];
    format(query, sizeof(query), "UPDATE fraktionsautos SET Fv_aX='%f', Fv_aY='%f', Fv_aZ='%f', Fv_aA='%f' WHERE FVehID = '%d'",FactionCars[i][v_X], FactionCars[i][v_Y], FactionCars[i][v_Z], FactionCars[i][v_A], FactionCars[i][fVehid]);
    mysql_function_query(dbhandle, query, false, "", "");
    SendClientMessage(playerid,COLOR_WHITE,"Du hast das Fraktionsfahrzeug {88FF6A}erfolgreich{FFFFFF} umgeparkt.");
    }
    else SendClientMessage(playerid,COLOR_WHITE,"Du bist dazu {FF6A6A}nicht{FFFFFF} berechtigt.");
    return true;
    }SendClientMessage(playerid,COLOR_WHITE,"Du sitzt in {FF6A6A}keinem{FFFFFF} Fraktionsfahrzeug.");
    }SendClientMessage(playerid,COLOR_WHITE,"Du sitzt in {FF6A6A}keinem{FFFFFF} Fahrzeug oder bist {FF6A6A}nicht{FFFFFF} der Fahrer.");
    }
    return 1;
    }


    Wo kann das Problem liegen?


    P.S.: Ich habe auch mit so einer Stock abfrage versucht aber auch fehlgeschlagen...


    Bitte um Hilfe...



    Lg
    J0a9

    Hallo,


    ich bin derzeitig das Fraktionsautosystem von Dini auf MySQL umzuschreiben, was bis jetzt gut geklappt hat nur die Autos werden nicht
    von der Datenbank geladen...


    Bei GameModeInit:

    LoadFraktionsAuto();



    Function LoadFraktionsAuto()
    {
    new query1[100];
    format(query1, sizeof(query1), "SELECT * FROM fraktionsautos");
    mysql_function_query(dbhandle, query1, true, "LoadFactionCars", "");
    return 1;
    }



    forward LoadFactionCars();
    public LoadFactionCars()
    {
    new num_fields,num_rows;
    cache_get_data(num_rows,num_fields,dbhandle);
    //for(new fc;fc<sizeof(FactionCars);fc++)
    for(new fc = 0; fc < num_rows; fc++)
    {
    FactionCars[fc][fVehid] = cache_get_field_content_int(fc, "fVehid", dbhandle);
    FactionCars[fc][fFaction] = cache_get_field_content_int(fc, "fFraktion", dbhandle);
    FactionCars[fc][v_X] = cache_get_field_content_float(fc, "v_X", dbhandle);
    FactionCars[fc][v_Y] = cache_get_field_content_float(fc, "v_Y", dbhandle);
    FactionCars[fc][v_Z] = cache_get_field_content_float(fc, "v_Z", dbhandle);
    FactionCars[fc][v_A] = cache_get_field_content_float(fc, "v_A", dbhandle);
    FactionCars[fc][fCol][0] = cache_get_field_content_int(fc, "fCol1", dbhandle);
    FactionCars[fc][fCol][1] = cache_get_field_content_int(fc, "fCol2", dbhandle);
    printf("Fraktionauto %d für Fraktion %d erfolgreich geladen!",FactionCars[fc][fVehid],FactionCars[fc][fFaction]);
    FactionCars[fc][fCarid] = CreateVehicle(FactionCars[fc][fVehid],FactionCars[fc][fPos][0],FactionCars[fc][fPos][1],FactionCars[fc][fPos][2],FactionCars[fc][fPos]
    [3],FactionCars[fc][fCol][0],FactionCars[fc][fCol][1],-255);
    }
    return 1;
    }



    Kann mir einer Helfen?
    Komme nicht weiter...


    Lg
    J0a9

    Hallo Blackshadowscript,



    Bei OnPlayerDisconnect würde ich diese Abfrage rausnehmen da du das selbe mit "savePlayer" gesetzt hast.


    Also das hier unter OnPlayerDisconnect rausnehmen:

    for(new i=0; i<sizeof(aInfo); i++)
    {
    if(aInfo[i][id_x]==0)continue;
    if(aInfo[i][besitzer]!=sInfo[playerid][db_id])continue;
    GetVehiclePos(aInfo[i][id_x],aInfo[i][c_x],aInfo[i][c_y],aInfo[i][c_z]);
    GetVehicleZAngle(aInfo[i][id_x],aInfo[i][c_r]);
    new query[156];
    format(query,sizeof(query),"UPDATE user SET level='%i',money='%i',alevel='%i',fraktion='%i',rang='%i' WHERE id='%i'",sInfo[playerid][level],
    GetPlayerMoney(playerid),sInfo[playerid][alevel],sInfo[playerid][fraktion],sInfo[playerid][rang],sInfo,sInfo[playerid][db_id]);
    mysql_function_query(dbhandle,query,false,"","");
    DestroyVehicle(aInfo[i][id_x]);
    aInfo[i][id_x]=0;
    break;
    }



    Bei OnPasswordResponse hast du 2x das Score lade Funktion daraus kannst du eins machen.4


    Hinweis, du hast ebenso 2x den selben Stock erstellt nur anders benennt und zwar den hier:
    - stock SpielerName(playerid)
    - getPlayerName(playerid)
    reicht wenn du eins daraus machst.



    Ansonsten sehe ich beim Ladesystem keinen Fehler warum der Account vom Spieler nicht geladen werden soll...


    Lg
    J0a9

    Hallo Nino. ,


    ich war für 1-2 Wochen lang auf deinem Server und wollte mich erkunden ob der Server doch noch etwas taucht,
    denn deine Serverwerbung ist eig 0815 ebenso das Script wurde kaum was geändert außer Maps von GTA_Urgestein eingefügt!


    Zum Team muss ich sagen das da nur klein Kinder eingestellt sind und selbst du (Airmax) kaum Supportet sondern Supports Ignoriert.


    Zum Script, es buggt Tag zu Tag immer mehr, ich möchte jetzt hier nicht alle Bugs auflisten aber euer Scripter tut ja auch nichts,
    ich sehe dadurch auch kaum kompetenz das aus eurem Projekt etwas wird!
    Euer Scripter findet nicht mal den Bug auch Hilfe möchte er kaum annehmen, ich frag mich wie kann man dann jmd Scripter nennen (Hugo) der gerade mal
    sich etwas in Dini auskennt...
    Ich habe vorallem auch mitbekommen ihr wollt auf MySQL umsteigen aber euer Scripter kennt sich nur etwas mit Dini aus, ob das ne gute entscheidung ist weiß ich nicht,
    ist ja euer Ding...


    Außerdem wollte ich noch dazu sagen, dass dein Bann so sinnlos war und ich mich immer wenn ich da drann denken muss sofort lachflash bekomme...
    Leute einfach zu bannen weil man mit denen nicht klar kommt...



    Ich wünsche dir weiterhin viel Spaß und Glück bei eurem Server :)
    Vielleicht Spielen keine Kinder die sich kindisch verhalten ;)


    P.S.: Auch euer Servername wurde einfach kopiert von diesem Server hier: 217.172.180.95:7777
    Also bitte neuen Namen nehmen würde ich mal sagen ;)


    Lg
    J0a9

    Hallo Breadfish-Community,


    ich möchte eine Funktion aufbauen, wo ausgeschrieben werden soll nach dem Einloggen,
    wann man das letzte Mal online gewesen war auf dem Server also Datum Technisch abspeichert und beim nächsten Login aufm Server ausschreibt...


    Es klingt vielleicht etwas komisch das nach dem Einloggen das letzte Login Datum angezeigt werden soll, aber ich möchte wiegesagt erstmal die Funktion haben
    und dann versuche ich das weiter in meinem System einzubauen...



    Soweit ich weiß sollte man mit "GetDate" arbeiten aber ich komme irgendwie nicht zurecht...


    Kann mir jemand helfen beim Aufbau?
    Ich habe bei meinen PlayerInfo's 3 neue Variabeln aufgestelt damit da Tag,Monat,Jahr einsetzen kann aber weiter komme ich nicht...


    Wäre eine Abspeicherung so möglich?

    new query[200], Date, Month, Year;
    getdate(Date,Month,Year);
    format(query,sizeof(query),"UPDATE account SET Tag='%i', Monat='%i', Jahr='%i' WHERE id='%i'", Date, Month, Year, PlayerInfo[playerid][db_id]);
    mysql_function_query(dbhandle, query, false, "", "");


    Und wie würde ich das aufrufen?
    Ist das System vom Aufbau her in Ordnung oder komplett falsch?


    Bitte um Hilfe


    Lg
    J0a9

    Hallo Breadfish-Community,


    derzeitig bin ich an meinen Stats am arbeiten und woltle einbauen das man seinen Skin sieht...
    Die Funktion lautet dafür soweit ich weiß "PlayerTextDrawSetPreviewModel".


    Mein Problem ist, das er die falsche Skin ID zeigt also ID 0 (CJ Skin) was eigentlich nicht stimmt...


    So sieht die Abfrage bis jetzt aus:



    new PlayerText: Persobox36[MAX_PLAYERS];



    Persobox36[playerid] = CreatePlayerTextDraw(playerid, 141.000000, 140.000000, "_");
    PlayerTextDrawBackgroundColor(playerid, Persobox36[playerid], 0xFFFFFF00);
    PlayerTextDrawFont(playerid, Persobox36[playerid], 5);
    PlayerTextDrawBoxColor(playerid, Persobox36[playerid], 0xFFFFFF00);
    PlayerTextDrawTextSize(playerid, Persobox36[playerid], 102.000000, 111.000000);
    PlayerTextDrawSetPreviewModel(playerid, Persobox36[playerid], GetPlayerSkin(playerid));
    PlayerTextDrawSetPreviewRot(playerid, Persobox36[playerid], 1.000000, 2.000000, 3.000000, 1.000000);



    Function Stats(playerid,targetid)
    {
    //... sind noch einige Dinga davor sind aber unwichtig hier...
    PlayerTextDrawShow(targetid, Persobox36[playerid]);//Profilbild
    return 1;
    }


    Davor habe ich auch eine Format abfrage gemacht ob auch wirklich aus der Datenbank des Spielers die ID geladen wird, was auch stimmte
    nur es wird im Textdraw nicht angezeigt...



    Funktionen wie "SetPlayerSkin(playerid, PlayerInfo[playerid][pModel])" habe ich versucht oder "GetplayerSkin(playerid)" ging aber nicht...



    Könnt ihr mir weiterhelfen?
    Ich bin verwirrt was ich falsch gemacht habe...


    Lg
    J0a9

    Hinweis: so wie du es unter OnPasswordResponse gemacht hast wird auch so dein Scripe geladen allerdings wenn du Level Up bist
    wird dein Level nicht aktualisiert...


    Ich woltle es nur kurz gesagt haben :)


    Lg
    J0a9

    Das was da noch unsichtbar vorhanden ist, ist die Kollision.
    Der MapEditor hat extra einen Modus den du beim start auswählen kannst "Load with COLLs".
    Wenn du das machst und dann unter dem Tab "Views" unten "Show colls" anklickst siehst du die Kollision aller Objekte.
    Wenn du deinen Remove Code einfügst wirst du feststellen das unter colls noch alle Gebäude angezeigt werden, weil eben deren Kollision noch da ist.
    Klick auf ein Haus und das was alles markiert ist ein zusammenhängendes Objekt.


    Für das Area gibt es seit 0.3.7 ein Ersatzobjekt ohne die Kollisionen und mit gestopften Löchern: 11692


    Daaaaaankeeeeeee!!!!


    Stimmt das mit dem "Show colls" habe ich nicht dran gedacht und habe auch mein Map Editor geupdatet war irgendwie zuletzt von 0.3e oder so
    aber jetzt klappts!


    Danke sehr bin happy das das Peroblem behoben wurde!



    Lg
    J0a9