Beiträge von robbi2304

    Es ist nicht die Frage wo du eine neue herbekommst sondern welche dein Script verwendet.


    Schau mal in den Include Ordner dort ist eine a_mysql.inc darin steht mit glück die version deines MySQL Scripts

    Hallo,


    ich habe leider ein Problem mit meinen Checkpoints. Sie verschwinden nicht wenn ich durch ihnen durch gehe oder durch fahre.



    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == DIALOG_FAHRSCHULE)
    {
    if(response)
    {
    if(listitem == 0)
    {

    PlayerInfo[playerid][pFahrschulmotor]=1;
    SetPlayerCheckpoint(playerid,2063.8250,-1940.2357,13.2188,5);
    testjob[playerid]= 1;
    }
    }
    }
    }



    public OnPlayerEnterCheckpoint(playerid)
    {



    if(testjob[playerid] == 1)
    {
    DisablePlayerCheckpoint(playerid);
    testjob[playerid] =2;
    SetPlayerCheckpoint(playerid,1886.5037,-1754.6860,13.2580,5);
    }
    if(testjob[playerid] == 2)
    {
    DisablePlayerCheckpoint(playerid);
    testjob[playerid] =3;
    SetPlayerCheckpoint(playerid,1886.5037,-1754.6860,13.2580,5);
    }
    }

    Hallo liebe Brotfische,


    eure hilfe ist mal wieder gefragt.



    //Edit


    Fehler behoben habe aber noch ein anderes Problem.


    Hat sich ein Spieler neu Registriert wird dieser nicht gespeichert. Loggt er sich aus und Loggt sich wieder ein um sich dann wieder auszuloggen, speichert er wie gewohnt. Woran könnte das Problem liegen ?



    forward OnUserRegister(playerid);
    public OnUserRegister(playerid)
    {
    PlayerInfo[playerid][pLoggedIn] = true;
    PlayerInfo[playerid][pKonto]=10000;
    PlayerInfo[playerid][pMoney]=10000;
    PlayerInfo[playerid][pLevel]=1;
    PlayerInfo[playerid][pRPg]=8;
    GivePlayerMoney(playerid,PlayerInfo[playerid][pMoney]);
    SpawnPlayer(playerid);
    return 1;
    }

    Du solltest schon im Public mit deinen newstates bleiben. Hier einmal der Richtige Code


    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if(newstate==PLAYER_STATE_DRIVER)
    {
    new vID=GetPlayerVehicleID(playerid);
    for(new i=0; i<sizeof(ahCars); i++)
    {
    if(ahCars[i][id_x]!=vID)continue;
    //Verkaufsprozess
    SetPVarInt(playerid,"buyCarID",i);
    new string[256];
    format(string,sizeof(string),"Möchten sie das Fahrzeug für %i$ kaufen?",ahCars[i][c_preis]);
    ShowPlayerDialog(playerid,DIALOG_AUTOHAUS,DIALOG_STYLE_MSGBOX,"Autoverkauf",string,"Ja","Nein");
    break;
    }
    }
    if(newstate==PLAYER_STATE_DRIVER)
    {
    new vID=GetPlayerVehicleID(playerid);
    new vModel=GetVehicleModel(vID);
    for(new i=0; i<sizeof(AutosOhneMotor); i++)
    {
    if(AutosOhneMotor[i]!=vModel)continue;
    new tmp_engine,
    tmp_lights,
    tmp_alarm,
    tmp_doors,
    tmp_bonnet,
    tmp_boot,
    tmp_objective;
    //Motor an/ausschalten
    GetVehicleParamsEx(vID, tmp_engine, tmp_lights, tmp_alarm, tmp_doors, tmp_bonnet, tmp_boot, tmp_objective);
    SetVehicleParamsEx(vID, 1, tmp_lights, tmp_alarm, tmp_doors, tmp_bonnet, tmp_boot, tmp_objective);
    }
    return 1;
    }
    }

    Code
    apt-file find libmysqlclient.so
    libmysqlclient-dev: /usr/lib/x86_64-linux-gnu/libmysqlclient.so
    libmysqlclient18: /usr/lib/x86_64-linux-gnu/libmysqlclient.so.18
    libmysqlclient18: /usr/lib/x86_64-linux-gnu/libmysqlclient.so.18.0.0
    You have new mail in /var/mail/root

    es liegt an keinem port... kann es sein das die datei verschoben werden muss?


    Er läuft aber das problem ist nicht behoben... mysql geht auch, accounts laden und speichern.. braucht man libmysqlclient überhaupt, also is das schlimm wenn der fehler kommt

    Ja das ist schlimm. So kann er nicht Richtig laden & speichern. Somit crasht der Server dann auch gerne mal. Du brauchst entweder die libs32 glaub

    Code
    apt-get install lib32

    oder eben die _static.so version.

    Wie soll ich das den bitte laden wenn nicht mal der Pfad von der Datenbank angegben wird ...
    Und ich will keine Fahrzeuge laden aus dem Autohaus was du geschrieben hast .

    Deswegen habe ich es umgeschrieben.


    Die Pfade sind sehr wohl angegeben.


    Schau mal hier



    [list=1][*] XmasInfo[i][ObjectID] = cache_get_field_content_int(i,"ObjectID",handle);
    [*] XmasInfo[i][sperreX] = cache_get_field_content_int(i,"baumx",handle);
    [*] XmasInfo[i][sperreY] = cache_get_field_content_float(i,"baumy",handle);
    [*] XmasInfo[i][sperreZ] = cache_get_field_content_float(i,"baumz",handle);
    [*] XmasInfo[i][Erstellt] = cache_get_field_content_float(i,"z",handle);
    [*] XmasInfo[i][ID] = cache_get_field_content_float(i,"id",handle);
    [/list]


    musst nur den Wert von float blablabla anpassen

    Ich glaube so müsste es klappen



    [list=1][*]public LoadObjects(playerid)
    [*]{
    [*] new num_fields,num_rows;
    [*] cache_get_data(num_rows,num_fields,handle);
    [*] if(!num_rows)return 1;
    [*] for(new i=0; i<num_rows; i++)
    [*] {
    [*] XmasInfo[i][ObjectID] = cache_get_field_content_int(i,"ObjectID",handle);
    [*] XmasInfo[i][sperreX] = cache_get_field_content_int(i,"baumx",handle);
    [*] XmasInfo[i][sperreY] = cache_get_field_content_float(i,"baumy",handle);
    [*] XmasInfo[i][sperreZ] = cache_get_field_content_float(i,"baumz",handle);
    [*] XmasInfo[i][Erstellt] = cache_get_field_content_float(i,"z",handle);
    [*] XmasInfo[i][ID] = cache_get_field_content_float(i,"id",handle);
    [*] XmasInfo[i][ID] = CreateDynamicObject(XmasInfo[i][ObjectID],XmasInfo[i][sperreX],XmasInfo[i][sperreY],XmasInfo[i][sperreZ],0.0,0.0,a);
    [*] }
    [*] return 1;
    [*]}
    [/list]

    Hallo, mir grauseln die Augen bei deiner Vorstellung. Bitte schaue dir nochmal deine Vorstellung an. Darin sind einige Rechtschreibfehler enthalten. Bei einer Vorstellung eines neuen Projektes erwarte ich zumindest auch eine Vorstellung ohne Rechtschreibfehler. Daher überarbeite doch eventuell nochmal deine Vorstellung.



    Liebe Grüße

    Zum Thema PayDay-Timer entweder du speicherst sowas auch in der Datenbank oder in einer Datei , wenn OnGameModeExit aufgerufen wird oder nach einem gewissen interval.

    Wie genau meinst du das ? Ich speicher meine PayDay Zeit in einer Datenbank. Bzw er soll es eigentich in einer Datenbank abspeichern.
    Ich verwende zum speichern folgenden Befehl


    SaveUserStats(playerid);



    hier einmal die Funktion


    stock SaveUserStats(playerid)
    {
    //Wenn der Spieler nicht eingeloggt ist, dann speichere seine Statistiken nicht
    if(!PlayerInfo[playerid][pLoggedIn]) return 1;
    //Ansonsten speichere sie
    new query[512];
    mysql_format(handle, query, sizeof(query), "UPDATE users SET banreason = '%s',banned = '%i',banner = '%s',alevel = '%d',jobk = '%d', paytime = '%d',prpg = '%d',jobmoney = '%d',konto = '%d',respektpunkte = '%d',paytime= '%d',perso = '%d',dunger = '%d',drogensamen = '%d',job = '%d',matskauf = '%d',drogens = '%d',drogen = '%d',matss = '%d',mats = '%d',level = '%d', money = '%d', kills = '%d', deaths = '%d' WHERE id = '%d'",
    PlayerInfo[playerid][pBanreason],PlayerInfo[playerid][pBanned],PlayerInfo[playerid][pBanner],PlayerInfo[playerid][admin_level],PlayerInfo[playerid][pJobk],PlayerInfo[playerid][pPaytime],PlayerInfo[playerid][pRPg],PlayerInfo[playerid][pJobMoney],PlayerInfo[playerid][pKonto],PlayerInfo[playerid][pRespektpunkte],PlayerInfo[playerid][pPayTime],PlayerInfo[playerid][pPerso],PlayerInfo[playerid][pddunger],PlayerInfo[playerid][pDrogensamen],
    PlayerInfo[playerid][pJob],PlayerInfo[playerid][pMatskauf],PlayerInfo[playerid][pDrogens],PlayerInfo[playerid][pDrogen],PlayerInfo[playerid][pMatss],PlayerInfo[playerid][pMats],PlayerInfo[playerid][pLevel], PlayerInfo[playerid][pMoney], PlayerInfo[playerid][pKills], PlayerInfo[playerid][pDeaths],
    PlayerInfo[playerid][p_id]);
    //Das Query wird abgesendet
    mysql_pquery(handle, query);
    return 1;
    }


    Weiter nochmal zum Autohaus, ich habe ein falsches Format in der Datenbank verwendet so das dass Auto eigentlich ganz woanders spawnt. Nun denke ich aber, das ich noch ein Ladeproblem der Autos habe.


    Hier einmal nochmal der Code vom OnPlayerCarsLoad


    forward OnPlayerCarsLoad(playerid);
    public OnPlayerCarsLoad(playerid)
    {
    new num_rows;
    for(new i=0; i<num_rows; i++)
    {
    new id = getFreeCarID();
    cache_get_value_name_int(i, "model", cInfo[id][model]);//Integer
    cache_get_value_name_int(i, "besitzer", cInfo[id][besitzer]);//Integer
    cache_get_value_name_float(i, "x", cInfo[id][c_x]); //Float
    cache_get_value_name_float(i, "y", cInfo[id][c_y]);//Float
    cache_get_value_name_float(i, "z", cInfo[id][c_z]);//Float
    cache_get_value_name_float(i, "r", cInfo[id][c_r]);//Float
    cache_get_value_name_int(i, "gespeert", cInfo[id][c_gespeert] );//Integer
    cache_get_value_name_int(i, "id", cInfo[id][db_id] );//Integer
    if(cInfo[id][c_gespeert] == 0)
    {
    cInfo[id][id_x] = CreateVehicle(cInfo[id][model],cInfo[id][c_x],cInfo[id][c_y],cInfo[id][c_z],cInfo[id][c_r],001,001,-1);
    }
    }
    }


    //Edit Code verbessert


    Beim erstellen kriege ich schon Fehler in der MySQL Log womit aber wohl nie jemand was mit anfangen kann


    hier erstmal der Code zum erstellen des Fahrzeugs



    createPlayerCar(playerid,modelid,Float:x,Float:y,Float:z,Float:r)
    {
    for(new i=0; i<sizeof(cInfo); i++)
    {


    if(cInfo[i][id_x]!=0)continue;
    GetPlayerName(playerid,PlayerInfo[p_id][pName],MAX_PLAYER_NAME);
    cInfo[i][besitzer]=PlayerInfo[playerid][p_id];
    cInfo[i][c_x]=x;
    cInfo[i][c_y]=y;
    cInfo[i][c_z]=z;
    cInfo[i][c_r]=r;
    cInfo[i][model]=modelid;
    cInfo[i][id_x] = CreateVehicle(modelid,x,y,z,r,-1,-1,-1);
    new string[128];
    format(string,sizeof(string),"Das Auto %i wurde erstellt.",GetVehicleFriendlyName(cInfo[i][id_x]));
    SendClientMessage(playerid,COLOR_RED,string);
    saveCarToDB(playerid,i);
    SaveUserStats(playerid);
    return 1;
    }
    return 1;
    }



    saveCarToDB(playerid,carid)
    {
    new query[128];
    format(query,sizeof(query),"INSERT INTO autos (besitzer,model,x,y,z,r) VALUES ('%i','%i','%f','%f','%f','%f')",PlayerInfo[playerid][p_id],cInfo[carid][model],cInfo[carid][c_x],cInfo[carid][c_y],cInfo[carid][c_z],cInfo[carid][c_r]);
    mysql_pquery(handle,query,"carSavedToDB","i",carid);
    return 1;
    }

    Nadann werde ich dieses Angebot doch mal in betracht ziehen :D Windows oder Linux? :b

    Ich empfehle jeden der einen Server betreibt Linux zunehmen. Allerdings solltest du dich 0 mit Linux auskennen, verwende Windows oder suche dir jemanden der dich dabei unterstützt den Server sauber zu halten.


    Ich arbeite nur mit Linux und nix anderen. Ist in jedenfall stabiler und dir werden nicht schon 500 mb ram vom system her geklaut

    Hallo Vepixx,


    der weiter Verkauf von Lizenzen von Click & Learn 360° ist nicht gestattet. Die Fahrschule hat dir einen Code gegeben mit dem du dich Registrieren solltest. Ebenfalls musstest du einen Fahrschulcode eingeben, damit deine Fahrschule sehen kann wo deine Schwachen Punkte sind und wo deine Guten Punkte sind.


    Daher denke ich kann man den Verkauf hier ab Sofort stoppen da dies nicht zulässig ist.


    Die App ist nur für den Fahrschüler der die Lizenz gekauft hat.


    Hinzu ist deine Preisliche Vorstellung auch der Burner. Ich habe meine Lizenz für 25€ von der Fahrschule erhalten.