Virtual-Reallife Release

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
  • Das sollte bereits so implementiert sein mit Spawnwechsel und Hitsound.

  • Das sollte bereits so implementiert sein mit Spawnwechsel und Hitsound.

    Geht aber trotzdem nicht.
    Nach jeden relog sind diese wieder leer in der Datenbank sprich auf 0

  • Schaue ob es bei SavePlayer() mit gespeichert wird. Wenn ja, führe am besten SavePlayer nach dem Setzen von Spawnchange in DIALOG_SPAWNCHANGE aus. Oder schreibe eine neue SQL Anweisung um Ressourchen zu sparen das nicht jedes mal der komplette Account gespeichert wird

    Wer PALWAL-Sternchen vergibt, bekommt aus Prinzip ein Like 😏


    @palwal Donald Trump ist einer der besten Präsidenten welche die USA je hatte, meine Meinung.

  • Moin Jungs ,


    Habe eine Frage wenn man als Polizist einen einsperren will gibt es den Knast nicht heißt der findet das Interior nicht b.z die Kordis...


    nur habe alles gesucht wo finde ich das wo ich die Kordis einfügen kann dringende hilfe.


    danke

  • @Dubst3p.[44]


    In diesem Abschnitt hast du die Coords, sind insgesamt 4 verschiedene.
    XYZ
    Beispiel


    Range 30 (wie groß die Zone ist wo der Spieler den Befehl eingeben kann)
    X 264.3524,
    Y 77.5642,
    Z 1001.0391


    Ganz sieht es so aus: 30, 264.3524,77.5642,1001.0391


    http://wiki.sa-mp.com/wiki/IsPlayerInRangeOfPoint

    Zitat

    if((IsPlayerInRangeOfPoint(pID, 30, 264.3524,77.5642,1001.0391) && GetPlayerInterior(pID) == 0) (IsPlayerInRangeOfPoint(pID, 20, 1563.4137,-1694.5535,5.8906) && GetPlayerInterior(pID) == 0))
    {
    if((IsPlayerInRangeOfPoint(playerid, 30, 264.3524,77.5642,1001.0391) && GetPlayerInterior(playerid) == 0) (IsPlayerInRangeOfPoint(playerid, 20, 1563.4137,-1694.5535,5.8906) && GetPlayerInterior(playerid) == 0))


    //edit @palwal zu deiner Frage.


    Zitat

    Das LSPD , Medic Base ,San News & an der Bank fehlt was du musst auch die Koordinaten ändern vom Gefängnis u. Enter/Exit bei LSPD , Medic & San News

  • Schaue ob es bei SavePlayer() mit gespeichert wird. Wenn ja, führe am besten SavePlayer nach dem Setzen von Spawnchange in DIALOG_SPAWNCHANGE aus. Oder schreibe eine neue SQL Anweisung um Ressourchen zu sparen das nicht jedes mal der komplette Account gespeichert wird

    Funktioniert nicht.
    Er speichert es wohl nicht in der MYSQL-Datenbank.
    Wenn ich relogge ist der Spawn wieder auf 0 gesetzt genauso wie bei Hitsound.


    Zusätzlich ist mir aufgefallen, dass wenn man Trucker jobbt und sich dann reloggt der Truckerskill wieder auf 0 0/50 EXP gesetzt wird..
    Kann mir jemand helfen, dass ich die ganzen Buggs ihrgendwie gefixxt bekomme?


    LG

  • Ich habe das Script mal entbuggt.


    Gebe mir mal die stock SavePlayer(playerid), dann schaue ich ob die Spieler[playerid][pSpawnchange] bei dir in der stock vorhanden ist.

    Wer PALWAL-Sternchen vergibt, bekommt aus Prinzip ein Like 😏


    @palwal Donald Trump ist einer der besten Präsidenten welche die USA je hatte, meine Meinung.

  • Beitrag von Exclusive FiveM Scripts ()

    Dieser Beitrag wurde vom Autor gelöscht ().
  • Ich habe das Script mal entbuggt.

    stock SavePlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
    {
    new mainQuery[2046], secondQuery[512];
    format(secondQuery, sizeof(secondQuery), "UPDATE `script_accounts` SET `Level`='%d', `Admin`='%d', `SpawnHealth`='%f', `PayDay`='%d', `Exp`='%d', `Fraktion`='%d', `PBPoints`='%d', `Zigaretten`='%d', `Bierflaschen`='%d', `Ipod`='%d', ",
    Spieler[playerid][pLevel], Spieler[playerid][pAdmin], Spieler[playerid][pSpawnHealth],
    Spieler[playerid][pPayDay], Spieler[playerid][pExp], Spieler[playerid][pFraktion], Spieler[playerid][pPBPoints], Spieler[playerid][pZigaretten], Spieler[playerid][pBierflaschen], Spieler[playerid][pIpod]);
    strcat(mainQuery, secondQuery);


    format(secondQuery, sizeof(secondQuery), "`Tutorial`='%d', `Skin`='%d', `FrakSkin`='%d', `Geschlecht`='%d', `Perso`='%d', `CarLicense`='%d', `CarLicensePoints`='%d', `Wanteds`='%d', ",
    Spieler[playerid][pTutorial], Spieler[playerid][pSkin], Spieler[playerid][pFrakSkin],
    Spieler[playerid][pGeschlecht], Spieler[playerid][pPerso],
    Spieler[playerid][pCarLicense], Spieler[playerid][pCarLicensePoints],
    Spieler[playerid][pWanteds], GetName(playerid));
    strcat(mainQuery, secondQuery);


    format(secondQuery, sizeof(secondQuery), "`JobMoney`='%d', `JobCount`='%d', `BusSkill`='%d', `BusSkillEXP`='%d', `Tot`='%d', `TotUnix`='%d', `TotX`='%f', `TotY`='%f', `TotZ`='%f', `Kills`='%d', `Deaths`='%d', `Jailed`='%d', `JailTime`='%d', ",
    Spieler[playerid][pJobMoney], Spieler[playerid][pJobCount], Spieler[playerid][pBusSkill], Spieler[playerid][pBusSkillEXP],
    Spieler[playerid][pTot], Spieler[playerid][pTotUnix], Spieler[playerid][pTotX], Spieler[playerid][pTotY], Spieler[playerid][pTotZ],
    Spieler[playerid][pKills], Spieler[playerid][pDeaths], Spieler[playerid][pJailed], Spieler[playerid][pJailTime]);
    strcat(mainQuery, secondQuery);


    format(secondQuery, sizeof(secondQuery), "`Rank`='%d', `Verbrechen`='%d', `JailType`='%d', `Banned`='%d', `BanReason`='%s', `BanAdmin`='%s', `Erstehilfe`='%d', `GotMD5`='%d', ",
    Spieler[playerid][pRank], Spieler[playerid][pVerbrechen], Spieler[playerid][pJailType], Spieler[playerid][pBanned], Spieler[playerid][pBanReason], Spieler[playerid][pBanAdmin],
    Spieler[playerid][pErstehilfe], GotMD5[playerid]);
    strcat(mainQuery, secondQuery);


    format(secondQuery, sizeof(secondQuery), "`Number`='%d', `Handy`='%d', `HandyStatus`='%d', `HandyGuthaben`='%d', `Akku`='%f', `DetektivSkill`='%d', `DetektivSkillEXP`='%d', ",
    Spieler[playerid][pNumber], Spieler[playerid][pHandy], Spieler[playerid][pHandyStatus], Spieler[playerid][pHandyGuthaben], Spieler[playerid][pAkku], Spieler[playerid][pDetektivSkill], Spieler[playerid][pDetektivSkillEXP]);
    strcat(mainQuery, secondQuery);


    format(secondQuery, sizeof(secondQuery), "`PlayTime`='%d', `Warns`='%d', `Crimes`='%d', `JailVisits`='%d', `Eisen`='%d', `EisenSafe`='%d', `Marihuana`='%d', ",
    Spieler[playerid][pPlayTime], Spieler[playerid][pWarns], Spieler[playerid][pCrimes], Spieler[playerid][pJailVisits], Spieler[playerid][pEisen], Spieler[playerid][pEisenSafe], Spieler[playerid][pMarihuana]);
    strcat(mainQuery, secondQuery);


    format(secondQuery, sizeof(secondQuery), "`MarihuanaSafe`='%d', `Kanister`='%d', `Verheiratet`='%d', `VerheiratetName`='%s', `Bank`='%d', `Premium`='%d', `SkillPoints`='%d', `Lotto`='%d', ",
    Spieler[playerid][pMarihuanaSafe], Spieler[playerid][pKanister], Spieler[playerid][pVerheiratet], Spieler[playerid][pVerheiratetName], Spieler[playerid][pBank], Spieler[playerid][pPremium], Spieler[playerid][pSkillPoints], Spieler[playerid][pLotto]);
    strcat(mainQuery, secondQuery);


    format(secondQuery, sizeof(secondQuery), "`FlyLicense`='%d', `BoatLicense`='%d', `FishLicense`='%d', `GunLicense`='%d', `Zollpass`='%d', `Job`='%d', `Money`='%d', `QuitJob`='%d', `Boombox`='%d', `HaveBoombox`='%d' WHERE `Name`='%s'",
    Spieler[playerid][pFlyLicense], Spieler[playerid][pBoatLicense], Spieler[playerid][pFishLicense],
    Spieler[playerid][pGunLicense], Spieler[playerid][pZollpass], Spieler[playerid][pJob], GetMoney(playerid), Spieler[playerid][pQuitJob], Spieler[playerid][pBoombox], Spieler[playerid][pHaveBoombox],GetName(playerid));
    strcat(mainQuery, secondQuery);


    mysql_function_query(myCon, mainQuery, false, "", "");
    strdel(mainQuery, 0, sizeof(mainQuery));
    strdel(secondQuery, 0, sizeof(secondQuery));


    format(secondQuery, sizeof(secondQuery), "UPDATE `script_accounts` SET `Geschenk`='%d', `GeschenkCount`='%d' WHERE `Name`='%s'",
    Spieler[playerid][pGeschenk], Spieler[playerid][pGeschenkCount], GetName(playerid));
    strcat(mainQuery, secondQuery);


    mysql_function_query(myCon, mainQuery, false, "", "");
    strdel(mainQuery, 0, sizeof(mainQuery));
    strdel(secondQuery, 0, sizeof(secondQuery));


    // Neuer Query für Save
    format(secondQuery, sizeof(secondQuery), "UPDATE `script_accounts` SET `Muted`='%d', `MuteReason`='%s', `TruckSkill`='%d', `TruckSkillEXP`='%d', `SpawnChange`='%d', `PremiumZeit`='%d', ",
    Spieler[playerid][pMuted], Spieler[playerid][pMuteReason], Spieler[playerid][pTruckSkill], Spieler[playerid][pTruckSkillEXP], Spieler[playerid][pSpawnChange], Spieler[playerid][pPremiumZeit]);
    strcat(mainQuery, secondQuery);
    new xplTime = gettime();
    format(secondQuery, sizeof(secondQuery), "`FishSkill`='%d', `FishSkillEXP`='%d', `OrgMember`='%d', `Contract`='%d', `ContractCount`='%d', `LastLogin`='%d', `PilotSkill`='%d', `PilotSkillEXP`='%d', ",
    Spieler[playerid][pFishSkill], Spieler[playerid][pFishSkillEXP], Spieler[playerid][pOrgMember], Spieler[playerid][pContract], Spieler[playerid][pContractCount], xplTime, Spieler[playerid][pPilotSkill], Spieler[playerid][pPilotSkillEXP]);
    strcat(mainQuery, secondQuery);


    format(secondQuery, sizeof(secondQuery), "`HouseKey`='%d', `TotWorld`='%d', `Hitsound`='%d', `Messages`='%d', `Fished`='%d', `FishTime`='%d', `FishSperre`='%d', `SkillDrug`='%f', `Festgeld`='%d', `HatFestgeld`='%d', `BisFestgeld`='%d' WHERE `Name`='%s'",
    Spieler[playerid][pHouseKey], Spieler[playerid][pTotWorld], Spieler[playerid][pHitsound], Spieler[playerid][pMessages], Spieler[playerid][pFished], Spieler[playerid][pFishTime], Spieler[playerid][pFishSperre], Spieler[playerid][pSkillDrug], Spieler[playerid][pFestgeld], Spieler[playerid][pHatFestgeld], Spieler[playerid][pBisFestgeld], GetName(playerid));
    strcat(mainQuery, secondQuery);


    mysql_function_query(myCon, mainQuery, false, "", "");
    strdel(mainQuery, 0, sizeof(mainQuery));
    strdel(secondQuery, 0, sizeof(secondQuery));


    // Fish
    format(secondQuery, sizeof(secondQuery), "UPDATE `script_accounts` SET `FishID1`='%d', `FishID2`='%d', `FishID3`='%d', `FishID4`='%d', `FishID5`='%d',",
    Spieler[playerid][pFishID][1], Spieler[playerid][pFishID][2], Spieler[playerid][pFishID][3], Spieler[playerid][pFishID][4], Spieler[playerid][pFishID][5]);
    strcat(mainQuery, secondQuery);
    format(secondQuery, sizeof(secondQuery), " `Fishweight1`='%d', `Fishweight2`='%d', `Fishweight3`='%d', `Fishweight4`='%d', `Fishweight5`='%d' WHERE `Name`='%s'",
    Spieler[playerid][pFishweight][1], Spieler[playerid][pFishweight][2], Spieler[playerid][pFishweight][3], Spieler[playerid][pFishweight][4], Spieler[playerid][pFishweight][5], GetName(playerid));
    strcat(mainQuery, secondQuery);


    mysql_function_query(myCon, mainQuery, false, "", "");
    strdel(mainQuery, 0, sizeof(mainQuery));
    strdel(secondQuery, 0, sizeof(secondQuery));


    format(secondQuery, sizeof(secondQuery), "UPDATE `script_accounts` SET `CookID1`='%d', `CookID2`='%d', `CookID3`='%d', `CookID4`='%d', `CookID5`='%d',",
    Spieler[playerid][pCookID][1], Spieler[playerid][pCookID][2], Spieler[playerid][pCookID][3], Spieler[playerid][pCookID][4], Spieler[playerid][pCookID][5]);
    strcat(mainQuery, secondQuery);
    format(secondQuery, sizeof(secondQuery), " `CookHP1`='%d', `CookHP1`='%d', `CookHP1`='%d', `CookHP1`='%d', `CookHP1`='%d' WHERE `Name`='%s'",
    Spieler[playerid][pCookHP][1], Spieler[playerid][pCookHP][2], Spieler[playerid][pCookHP][3], Spieler[playerid][pCookHP][4], Spieler[playerid][pCookHP][5], GetName(playerid));
    strcat(mainQuery, secondQuery);


    mysql_function_query(myCon, mainQuery, false, "", "");
    strdel(mainQuery, 0, sizeof(mainQuery));
    strdel(secondQuery, 0, sizeof(secondQuery));



    Fehlt da etwas bezüglich Spawnchange, Hitsound & Truckerskill? Mehr Bugs habe ich grade nicht gefunden bei den Stats weil ich keine Zeit mehr hatte..

    Einmal editiert, zuletzt von Kuno ()

  • Funktioniert nicht.Er speichert es wohl nicht in der MYSQL-Datenbank.
    Wenn ich relogge ist der Spawn wieder auf 0 gesetzt genauso wie bei Hitsound.


    Zusätzlich ist mir aufgefallen, dass wenn man Trucker jobbt und sich dann reloggt der Truckerskill wieder auf 0 0/50 EXP gesetzt wird..
    Kann mir jemand helfen, dass ich die ganzen Buggs ihrgendwie gefixxt bekomme?


    LG

    poste bitte die MysqlLog (Nicht die Serverlog)

  • Nope Spawnchange wird gespeichert.
    schaue das du den Spawnchange richtig setzt. Sofern SpawnChange z.B. 1 hat wirst du woanders gespawnt.

    case DIALOG_SPAWNCHANGE:
    {
    if(response)
    {
    if(listitem == 0)// Zivi
    {
    Spieler[playerid][pSpawnChange] = 0;
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Du hast deinen Spawn auf den Zivilisten Spawn gesetzt.");
    SavePlayer(playerid);
    }
    if(listitem == 1) // Frak
    {
    if(Spieler[playerid][pFraktion] == 0)return SendClientMessage(playerid, COLOR_GREY, "Du bist nicht Mitglied einer Fraktion.");
    Spieler[playerid][pSpawnChange] = 1;
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Du hast deinen Spawn auf deinen Fraktions Spawn gesetzt.");
    SavePlayer(playerid);
    }
    if(listitem == 2)// Zivi
    {
    Spieler[playerid][pSpawnChange] = 2;
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Du hast deinen Spawn auf dein Haus gesetzt, sofern du eins besitzt oder eingemietet bist.");
    SavePlayer(playerid);
    }
    }
    }


    und


    if(Spieler[playerid][pSpectate] != INVALID_PLAYER_ID)
    {
    SetPlayerColor(playerid, COLOR_WHITE);
    SetPlayerPos(playerid,Spieler[playerid][pLastPosX],Spieler[playerid][pLastPosY],Spieler[playerid][pLastPosZ]);
    SetPlayerInterior(playerid,Spieler[playerid][pLastPosInt]);
    SetPlayerVirtualWorld(playerid,Spieler[playerid][pLastPosWorld]);
    switch(Spieler[playerid][pFraktion])
    {
    case 0: SetPlayerSkin(playerid, Spieler[playerid][pSkin]);
    case 1:{ SetPlayerSkin(playerid, Spieler[playerid][pFrakSkin]); SetPlayerColor(playerid, LSPD_DUTY);}
    case 2: SetPlayerSkin(playerid, Spieler[playerid][pFrakSkin]);
    case 3:{ SetPlayerSkin(playerid, Spieler[playerid][pFrakSkin]);}
    case 4: SetPlayerSkin(playerid, Spieler[playerid][pFrakSkin]);
    case 5: SetPlayerSkin(playerid, Spieler[playerid][pFrakSkin]);
    case 6:{ SetPlayerSkin(playerid, Spieler[playerid][pFrakSkin]); SetPlayerColor(playerid, OAMT_DUTY); }
    case 7:{SetPlayerSkin(playerid, Spieler[playerid][pFrakSkin]); SetPlayerColor(playerid, COLOR_ORANGE); }
    case 8: SetPlayerSkin(playerid, Spieler[playerid][pFrakSkin]);
    case 9: SetPlayerSkin(playerid, Spieler[playerid][pFrakSkin]);
    }
    Spieler[playerid][pSpectate] = INVALID_PLAYER_ID;
    return 1;
    }
    if(Spieler[playerid][pSpawnChange] == 0) // Zivilist
    {
    SetPlayerPos(playerid, 1703.1233,-1880.1876,13.5695);
    SetPlayerFacingAngle(playerid, 270.5345);
    SetPlayerInterior(playerid, 0);
    SetPlayerVirtualWorld(playerid, 0);
    }
    else if(Spieler[playerid][pSpawnChange] == 1) // Fraktion
    {
    if(Spieler[playerid][pFraktion] == 0)
    {
    SetPlayerSkin(playerid, Spieler[playerid][pSkin]);
    SetPlayerPos(playerid, 1703.1233,-1880.1876,13.5695);
    SetPlayerFacingAngle(playerid, 270.5345);
    SetPlayerInterior(playerid, 0);
    SetPlayerVirtualWorld(playerid, 0);
    Spieler[playerid][pSpawnChange] = 0;
    SendClientMessage(playerid, COLOR_WHITE, "Dein Spawn wurde auf den Zivilisten Spawn gesetzt.");
    }
    else
    {
    new playerFraktion = Spieler[playerid][pFraktion];
    if(playerFraktion == 1 || playerFraktion == 3)FreezePlayer(playerid);
    SetPlayerSkin(playerid, Spieler[playerid][pFrakSkin]);
    SetPlayerInterior(playerid, Frak[playerFraktion][spawnInterior]);
    SetPlayerVirtualWorld(playerid, Frak[playerFraktion][spawnVirtualWorld]);
    SetPlayerPos(playerid, Frak[playerFraktion][spawnX], Frak[playerFraktion][spawnY], Frak[playerFraktion][spawnZ]);
    if(playerFraktion == 1)
    {
    SetTimerEx("UnfreezePlayer", 1000, 0, "i", playerid);
    }
    if(playerFraktion == 3){
    SetTimerEx("UnfreezePlayer", 2000, 0, "i", playerid);
    }
    // SetPlayerFacingAngle zukünftig
    }
    }
    else if(Spieler[playerid][pSpawnChange] == 2) // House
    {
    new hausIDx = Spieler[playerid][pHouseKey];
    if(hausIDx != -255)
    {
    if(Haus[hausIDx][hCreated] == 1)
    {
    if(Haus[hausIDx][EnterX] != 0.0 && Haus[hausIDx][ExitX] != 0.0)
    {
    SetPlayerInterior(playerid, Haus[hausIDx][hInterior]);
    SetPlayerVirtualWorld(playerid, hausIDx);
    SetPlayerPos(playerid, Haus[hausIDx][ExitX], Haus[hausIDx][ExitY], Haus[hausIDx][ExitZ]);
    switch(Spieler[playerid][pFraktion])
    {
    case 0: SetPlayerSkin(playerid, Spieler[playerid][pSkin]);
    case 1:{ SetPlayerSkin(playerid, Spieler[playerid][pFrakSkin]); SetPlayerColor(playerid, LSPD_DUTY);}
    case 2: SetPlayerSkin(playerid, Spieler[playerid][pFrakSkin]);
    case 3:{ SetPlayerSkin(playerid, Spieler[playerid][pFrakSkin]);}
    case 4: SetPlayerSkin(playerid, Spieler[playerid][pFrakSkin]);
    case 5: SetPlayerSkin(playerid, Spieler[playerid][pFrakSkin]);
    case 6:{ SetPlayerSkin(playerid, Spieler[playerid][pFrakSkin]); SetPlayerColor(playerid, OAMT_DUTY); }
    case 7:{SetPlayerSkin(playerid, Spieler[playerid][pFrakSkin]); SetPlayerColor(playerid, COLOR_ORANGE); }
    case 8: {SetPlayerSkin(playerid, Spieler[playerid][pFrakSkin]); }
    case 9: {SetPlayerSkin(playerid, Spieler[playerid][pFrakSkin]); }
    }
    return 1;
    }
    else
    {
    Spieler[playerid][pSpawnChange] = 1;
    SpawnPlayerEx(playerid);
    }
    }
    else
    {
    Spieler[playerid][pSpawnChange] = 1;
    SpawnPlayerEx(playerid);
    }
    }
    else
    {
    Spieler[playerid][pSpawnChange] = 1;
    SpawnPlayerEx(playerid);
    }
    }
    return 1;
    }

    poste bitte die MysqlLog (Nicht die Serverlog)

    Der Mysql-Log bleibt leer. Hab es grade Ingame mit /spawnchange -> Fraktion (bin Medic) probiert habe mich gespawnt und /saveall gemacht.
    Der Mysql-Log bleibt wie vorher komplett leer....

  • Beitrag von Batu ()

    Dieser Beitrag wurde vom Autor gelöscht ().