Ressourcen sparen bzw freundlicher Scripten

  • Ressourcen sparen bzw freundlicher Scripten

    Moin, ich habe mehrere Fragen zum Ressourcen sparen bzw freundlicher Scripten.

    [pwn]new AnfangerRoller[MAX_PLAYERS];
    new Teamauto[MAX_PLAYERS];
    new Waffen[MAX_PLAYERS][waffen];[/pwn]

    Habe zwar schon #define MAX_PLAYERS 100 gestellt, aber es ist ja unnötig wenn man es 100 mal ausführt, wenn es nur 3-10 Spieler online sind, gibt es eine alternative ?.


    [pwn]public SaveMysqlPlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
    {
    if(gPlayerLogged[playerid] == 1)
    {
    new query[2048];
    SpielerInfo[playerid][pCash] = PlayerMoney[playerid];
    format(query, sizeof(query), "UPDATE `accounts` SET banned = '%d',admin = '%d',donater = '%d',upgradepoints = '%d',reg = '%d',sex = '%d',exp = '%d',level = '%d',hand = '%d',konto = '%d' WHERE `name` = '%s'",
    SpielerInfo[playerid][pGebannt],SpielerInfo[playerid][pAdmin],SpielerInfo[playerid][pDonateRank],SpielerInfo[playerid][gPupgrade],SpielerInfo[playerid][pReg],
    SpielerInfo[playerid][pSex],SpielerInfo[playerid][pExp],SpielerInfo[playerid][pAge],SpielerInfo[playerid][pCash],SpielerInfo[playerid][pAccount], SpielerInfo[playerid][Name]);
    mysql_query(query);

    format(query, sizeof(query), "UPDATE `accounts` SET crimes = '%d',arrested = '%d',wanteddeaths = '%d',phonebook = '%d',lottonr = '%d',fishes = '%d',biggestfish = '%d',job = '%d',kills = '%d',deaths = '%d' WHERE `name` = '%s'",
    SpielerInfo[playerid][pCrimes],SpielerInfo[playerid][pArrested],SpielerInfo[playerid][pWantedDeaths],SpielerInfo[playerid][pPhoneBook],SpielerInfo[playerid][pLottoNr],
    SpielerInfo[playerid][pFishes],SpielerInfo[playerid][pBiggestFish],SpielerInfo[playerid][sJob],SpielerInfo[playerid][pKills],SpielerInfo[playerid][pDeaths], SpielerInfo[playerid][Name]);
    mysql_query(query);

    format(query, sizeof(query), "UPDATE `accounts` SET jobgehalt = '%d',headvalue = '%d',jailed = '%d',jailtime = '%d',mats = '%d',gras = '%d',lsd = '%d',kokain = '%d',helmid = '%d' WHERE `name` = '%s'",
    SpielerInfo[playerid][pJobGehalt],SpielerInfo[playerid][pHeadValue],SpielerInfo[playerid][pJailed],SpielerInfo[playerid][pJailTime],
    SpielerInfo[playerid][pMats],SpielerInfo[playerid][pGras],SpielerInfo[playerid][pLSD],SpielerInfo[playerid][pKokain],SpielerInfo[playerid][pHelmID], SpielerInfo[playerid][Name]);
    mysql_query(query);

    format(query, sizeof(query), "UPDATE `accounts` SET kmedizin = '%d',gmedizin = '%d',member = '%d',rank = '%d',charakter = '%d',contracttime = '%d',health = '%d',interior = '%d',local = '%d',team = '%d' WHERE `name` = '%s'",
    SpielerInfo[playerid][pKMedizin],SpielerInfo[playerid][pGMedizin],SpielerInfo[playerid][sMember],SpielerInfo[playerid][pRank],SpielerInfo[playerid][pChar],
    SpielerInfo[playerid][pContractTime],SpielerInfo[playerid][pHealth],SpielerInfo[playerid][pInt],SpielerInfo[playerid][pLocal],SpielerInfo[playerid][pTeam], SpielerInfo[playerid][Name]);
    mysql_query(query);

    format(query, sizeof(query), "UPDATE `accounts` SET pnumber = '%d',housekey = '%d',bizzkey = '%d',carlic = '%d',flylic = '%d',motolic = '%d',lkwlic = '%d',ALG = '%d',carinsurance = '%d',lifeinsurance = '%d' WHERE `name` = '%s'",
    SpielerInfo[playerid][pPnumber],SpielerInfo[playerid][pPhousekey],SpielerInfo[playerid][pPbiskey],SpielerInfo[playerid][pCarLic],SpielerInfo[playerid][pFlyLic],
    SpielerInfo[playerid][pMotoLic],SpielerInfo[playerid][pLKWLic],SpielerInfo[playerid][pARG],SpielerInfo[playerid][pCarInsurance],SpielerInfo[playerid][pLifeInsurance], SpielerInfo[playerid][Name]);
    mysql_query(query);

    format(query, sizeof(query), "UPDATE `accounts` SET boxmats = '%d',boxgras = '%d', boxlsd = '%d',boxkokain = '%d',boatlic = '%d',fishlic = '%d',gunlic = '%d',gun1 = '%d',gun2 = '%d',gun3 = '%d' WHERE `name` = '%s'",
    SpielerInfo[playerid][pBoxMats],SpielerInfo[playerid][pBoxGras],SpielerInfo[playerid][pBoxLSD],SpielerInfo[playerid][pBoxKokain],SpielerInfo[playerid][pBoatLic],
    SpielerInfo[playerid][pFishLic],SpielerInfo[playerid][pGunLic],SpielerInfo[playerid][pGun1],SpielerInfo[playerid][pGun2],SpielerInfo[playerid][pGun3], SpielerInfo[playerid][Name]);
    mysql_query(query);

    format(query, sizeof(query), "UPDATE `accounts` SET gun4 = '%d',gun5 = '%d',ammo1 = '%d',ammo2 = '%d',ammo3 = '%d',ammo4 = '%d',ammo5 = '%d',cartime = '%d',payday = '%d',paydayhad = '%d' WHERE `name` = '%s'",
    SpielerInfo[playerid][pGun4],SpielerInfo[playerid][pGun5],SpielerInfo[playerid][pAmmo1],SpielerInfo[playerid][pAmmo2],SpielerInfo[playerid][pAmmo3],
    SpielerInfo[playerid][pAmmo4],SpielerInfo[playerid][pAmmo5],SpielerInfo[playerid][pCarTime],SpielerInfo[playerid][pPayDay],SpielerInfo[playerid][pPayDayHad], SpielerInfo[playerid][Name]);
    mysql_query(query);

    format(query, sizeof(query), "UPDATE `accounts` SET cdplayer = '%d',wins = '%d',loses = '%d',alcoholperk = '%d',drugperk = '%d',miserperk = '%d',painperk = '%d',traderperk = '%d',detskill = '%d',sexskill = '%d' WHERE `name` = '%s'",
    SpielerInfo[playerid][pCDPlayer],SpielerInfo[playerid][pWins],SpielerInfo[playerid][pLoses],SpielerInfo[playerid][pAlcoholPerk],SpielerInfo[playerid][pDrugPerk],
    SpielerInfo[playerid][pMiserPerk],SpielerInfo[playerid][pPainPerk],SpielerInfo[playerid][pTraderPerk],SpielerInfo[playerid][pDetSkill],SpielerInfo[playerid][pSexSkill], SpielerInfo[playerid][Name]);
    mysql_query(query);

    format(query, sizeof(query), "UPDATE `accounts` SET boxskill = '%d',lawskill = '%d',mechskill = '%d',jackskill = '%d',carskill = '%d',newsskill = '%d',cockskill = '%d',fishskill = '%d',farmerskill = '%d',tut = '%d',warns = '%d' WHERE `name` = '%s'",
    SpielerInfo[playerid][pBoxSkill],SpielerInfo[playerid][pLawSkill],SpielerInfo[playerid][pMechSkill],SpielerInfo[playerid][pJackSkill],SpielerInfo[playerid][pCarSkill],SpielerInfo[playerid][pNewsSkill],
    SpielerInfo[playerid][pCookSkill],SpielerInfo[playerid][pFishSkill],SpielerInfo[playerid][pFarmerSkill],SpielerInfo[playerid][pTut],SpielerInfo[playerid][pWarns], SpielerInfo[playerid][Name]);
    mysql_query(query);

    format(query, sizeof(query), "UPDATE `accounts` SET fuel = '%d',married = '%d',marriedto = '%s',kampfstil = '%d',spawnchange = '%d',wanteds = '%d',sflic = '%d',lvlic = '%d',uhrid = '%d',ownperso = '%d' WHERE `name` = '%s'",
    SpielerInfo[playerid][pFuel],SpielerInfo[playerid][pMarried],SpielerInfo[playerid][pMarriedTo],SpielerInfo[playerid][pKampfstil],
    SpielerInfo[playerid][pSpawnChange],GetPlayerWantedLevel(playerid),SpielerInfo[playerid][pSFLic],SpielerInfo[playerid][pLVLic],SpielerInfo[playerid][pUhrID],SpielerInfo[playerid][pOwnPerso],SpielerInfo[playerid][Name]);
    mysql_query(query);

    format(query, sizeof(query), "UPDATE `accounts` SET pinb = '%d',handyid = '%d',handyton = '%d',handyakku = '%d',zigid = '%d',zig = '%d',zigsucht = '%d',handygeld = '%d',handyver = '%d',GWD = '%.3f',playminutes = '%d' WHERE `name` = '%s'",
    SpielerInfo[playerid][pPinB],SpielerInfo[playerid][pHandyID],SpielerInfo[playerid][pHandyTon],SpielerInfo[playerid][pHandyAkku],SpielerInfo[playerid][pZigID],SpielerInfo[playerid][pZig],
    SpielerInfo[playerid][pZigSucht],SpielerInfo[playerid][pHandyGeld],SpielerInfo[playerid][pHandyVer],SpielerInfo[playerid][pGWD],SpielerInfo[playerid][pPlayMinutes], SpielerInfo[playerid][Name]);
    mysql_query(query);

    format(query, sizeof(query), "UPDATE `accounts` SET gesamtminutes = '%d',pfandflaschen = '%d',coins = '%d', lastonline = '%d', frakinvited = '%d', online = '%d' WHERE `name` = '%s'",
    SpielerInfo[playerid][pGesamtMinutes],SpielerInfo[playerid][sPfandflaschen],SpielerInfo[playerid][pCoins],SpielerInfo[playerid][pLastOnline],SpielerInfo[playerid][pFrakInvited],SpielerInfo[playerid][pOnline], SpielerInfo[playerid][Name]);
    mysql_query(query);
    return 1;
    }
    }
    return 1;
    }[/pwn]

    Könnte man das auch irgendwie Freundlicher lösen ?.


    Gibt es noch andere Sachen ressourcen zusparen, auf Timer achten, nicht MAX_Player zuhoch.

    Einen Thread würde ganz gut sein, für ressourcen sparen, für jede andere Antwort dankbar, die hilft ressourcen bzw laggs zuvermeiden.

    mfg
  • Das kannst du auch so machen aber ob das freundlicher ist weiß ich nicht ^^
    [pwn]new AnfangerRoller[MAX_PLAYERS], Teamauto[MAX_PLAYERS], Waffen[MAX_PLAYERS][waffen];[/pwn]

    Und sonst habe ich gehört das es immer besser ist nach einem "," eine Leerzeichen zu lassen da das irgentwie die sachen besser laden kann bzw schneller ausführen kann ^^

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von [BlaZZeR]BirD ()

  • und zwar was ich (fast) immer benutze ist GetPlayer()

    der hat meiner meinung ne schleife mit ne if abfrage drin

    ist ne samp funktion und wird im englischen immer angewendet

    also es müsste schon was bringen

    //EDIT

    MAX_PLAYERS brauchst du nicht definen denn es ist schon bei der server.cfg drin

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von diavolonew ()

  • Habe zwar schon #define MAX_PLAYERS 100 gestellt, aber es ist ja unnötig wenn man es 100 mal ausführt, wenn es nur 3-10 Spieler online sind, gibt es eine alternative ?.
    Du könntest z.b foreach von y_less nutzen.

    Und sonst habe ich gehört das es immer besser ist nach einem "," eine Leerzeichen zu lassen da das irgentwie die sachen besser laden kann bzw schneller ausführen kann.
    Das ist käse^^