Mirage Source

Free ORPG making software.
It is currently Thu Mar 28, 2024 7:29 pm

All times are UTC




Post new topic Reply to topic  [ 16 posts ] 
Author Message
 Post subject: Improve Server Saving
PostPosted: Fri Oct 20, 2006 3:48 pm 
Offline
Community Leader
User avatar

Joined: Mon May 29, 2006 1:00 pm
Posts: 2538
Location: Sweden
Google Talk: johansson_tk@hotmail.com
Difficulty
1/5

Introduction
Are you tired of the lag, when the server saves all players online. Well that should be over now. This tutorial will make it so 'only the player that you play with' will be saved. And not the other two characters on your account (since they are unchanged). And it also splits the saving part into two stages. So after 5 minutes, it saves 1/2 of the player, and 5 minutes later, it saves the other part of the player (2/2). Then its complete, and it starts over again. Also, some other minor improvements has been done. Such as a variable has become byte instead of long. And DoEvents takes time to run over and over again. So that will only run when there is a player to save (Etc..).
Remember, that if you save your files as binary. There are somethings that needs to be changed in the both SavePlayer subs.
This line of code, can also be added to the default Sub SavePlayer(byval Index as long):
Code:
If Player(Index).CharNum = i Then
It will make it so that only 1 player is saved, and not all the 3 players on the account.

Tutorial Start: All Server Side
Find: Private Sub tmrPlayerSave_Timer()
Replace that whole sub with:
Code:
Private Sub tmrPlayerSave_Timer()
Static MinPassed As Long
Dim i As Byte 'make it long if MAX_PLAYERS > 255

    MinPassed = MinPassed + 1
   
    If MinPassed >= 5 And MinPassed < 10 Then
        If TotalOnlinePlayers > 0 Then
            Call GlobalMsg("Saving 1/2 of the player..", Yellow)
            For i = 1 To MAX_PLAYERS 'use High_Index if you added that tut
                If IsPlaying(i) Then
                    Call tmrSavePlayerMain(i)
                    DoEvents
                End If
            Next i
        End If
        MinPassed = 10
    End If

    If MinPassed >= 15 Then
        If TotalOnlinePlayers > 0 Then
            Call GlobalMsg("Saving 2/2 of the player..", Yellow)
            For i = 1 To MAX_PLAYERS 'use High_Index if you added that tut
                If IsPlaying(i) Then
                    Call tmrSavePlayerOther(i)
                    DoEvents
                End If
            Next i
        End If
        MinPassed = 0
    End If
End Sub


Now, below: Sub SavePlayer(ByVal Index As Long)
Add the following:
Code:
Sub tmrSavePlayerMain(ByVal Index As Long)
Dim FileName As String
Dim i As Byte

    FileName = App.Path & "\Accounts\" & Trim(Player(Index).Login) & ".ini"
    For i = 1 To MAX_CHARS
        If Player(Index).CharNum = i Then
            ' General
            Call PutVar(FileName, "CHAR" & i, "Name", Trim(Player(Index).Char(i).Name))
            Call PutVar(FileName, "CHAR" & i, "Class", STR(Player(Index).Char(i).Class))
            Call PutVar(FileName, "CHAR" & i, "Sex", STR(Player(Index).Char(i).Sex))
            Call PutVar(FileName, "CHAR" & i, "Sprite", STR(Player(Index).Char(i).Sprite))
            Call PutVar(FileName, "CHAR" & i, "Level", STR(Player(Index).Char(i).Level))
            Call PutVar(FileName, "CHAR" & i, "Exp", STR(Player(Index).Char(i).Exp))
            Call PutVar(FileName, "CHAR" & i, "Access", STR(Player(Index).Char(i).Access))
            Call PutVar(FileName, "CHAR" & i, "PK", STR(Player(Index).Char(i).PK))
            Call PutVar(FileName, "CHAR" & i, "Guild", STR(Player(Index).Char(i).Guild))
       
            ' Vitals
            Call PutVar(FileName, "CHAR" & i, "HP", STR(Player(Index).Char(i).HP))
            Call PutVar(FileName, "CHAR" & i, "MP", STR(Player(Index).Char(i).MP))
            Call PutVar(FileName, "CHAR" & i, "SP", STR(Player(Index).Char(i).SP))
       
            ' Stats
            Call PutVar(FileName, "CHAR" & i, "STR", STR(Player(Index).Char(i).STR))
            Call PutVar(FileName, "CHAR" & i, "DEF", STR(Player(Index).Char(i).DEF))
            Call PutVar(FileName, "CHAR" & i, "SPEED", STR(Player(Index).Char(i).SPEED))
            Call PutVar(FileName, "CHAR" & i, "MAGI", STR(Player(Index).Char(i).MAGI))
            Call PutVar(FileName, "CHAR" & i, "POINTS", STR(Player(Index).Char(i).POINTS))
       
            ' Worn equipment
            Call PutVar(FileName, "CHAR" & i, "ArmorSlot", STR(Player(Index).Char(i).ArmorSlot))
            Call PutVar(FileName, "CHAR" & i, "WeaponSlot", STR(Player(Index).Char(i).WeaponSlot))
            Call PutVar(FileName, "CHAR" & i, "HelmetSlot", STR(Player(Index).Char(i).HelmetSlot))
            Call PutVar(FileName, "CHAR" & i, "ShieldSlot", STR(Player(Index).Char(i).ShieldSlot))
        End If
    Next i
End Sub

Sub tmrSavePlayerOther(ByVal Index As Long)
Dim FileName As String
Dim i As Byte
Dim n As Long

    FileName = App.Path & "\Accounts\" & Trim(Player(Index).Login) & ".ini"
    For i = 1 To MAX_CHARS
      If Player(Index).CharNum = i Then
        ' Check to make sure that they aren't on map 0, if so reset'm
        If Player(Index).Char(i).Map = 0 Then
            Player(Index).Char(i).Map = START_MAP
            Player(Index).Char(i).x = START_X
            Player(Index).Char(i).y = START_Y
        End If
           
        ' Position
        Call PutVar(FileName, "CHAR" & i, "Map", STR(Player(Index).Char(i).Map))
        Call PutVar(FileName, "CHAR" & i, "X", STR(Player(Index).Char(i).x))
        Call PutVar(FileName, "CHAR" & i, "Y", STR(Player(Index).Char(i).y))
        Call PutVar(FileName, "CHAR" & i, "Dir", STR(Player(Index).Char(i).Dir))
       
        ' Inventory
        For n = 1 To MAX_INV
            Call PutVar(FileName, "CHAR" & i, "InvItemNum" & n, STR(Player(Index).Char(i).Inv(n).Num))
            Call PutVar(FileName, "CHAR" & i, "InvItemVal" & n, STR(Player(Index).Char(i).Inv(n).Value))
            Call PutVar(FileName, "CHAR" & i, "InvItemDur" & n, STR(Player(Index).Char(i).Inv(n).Dur))
        Next n
       
        ' Spells
        For n = 1 To MAX_PLAYER_SPELLS
            Call PutVar(FileName, "CHAR" & i, "Spell" & n, STR(Player(Index).Char(i).Spell(n)))
        Next n
     End if
    Next i
End Sub


Thats it! Your saving process has now been reduced and improved. To try it out, just change the interval on the timer (tmrPlayerSave) to 1000. And you will see how it works, when you open the client.

Also, if you want the server to save the players less. Just change the 5, 10 and 15 values to something like: 10, 20 and 30. That would double the time for it.

Tell me, if you know something else that can be improved with it. Or if you just don't like my idea behind it.

_________________
I'm on Facebook!My Youtube Channel Send me an email
Image


Top
 Profile  
 
 Post subject:
PostPosted: Wed Feb 14, 2007 7:41 pm 
Offline
Newbie

Joined: Mon May 29, 2006 2:18 pm
Posts: 22
Location: Florida
I know this is a somewhat old topic, but instead of

Code:
For i = 1 To MAX_CHARS
        If Player(Index).CharNum = i Then


You could just do

Code:
i = Player(Index).CharNum


Top
 Profile  
 
 Post subject:
PostPosted: Wed Feb 14, 2007 8:11 pm 
Offline
Community Leader
User avatar

Joined: Mon May 29, 2006 1:00 pm
Posts: 2538
Location: Sweden
Google Talk: johansson_tk@hotmail.com
I think I remember having a problem with that. But it should work.

_________________
I'm on Facebook!My Youtube Channel Send me an email
Image


Top
 Profile  
 
 Post subject:
PostPosted: Fri Apr 06, 2007 10:21 pm 
Offline
Knowledgeable
User avatar

Joined: Sun Nov 19, 2006 6:59 pm
Posts: 213
Sweet tutorial :D

I modified it so that it uses the existing SavePlayer sub using an optional variable.

Basically, change your tmrPlayerSave code to

Code:
Private Sub tmrPlayerSave_Timer()
Static MinPassed As Long
Dim i As Byte 'make it long if MAX_PLAYERS > 255

    MinPassed = MinPassed + 1
   
    If MinPassed >= 5 And MinPassed < 10 Then
        If TotalOnlinePlayers > 0 Then
            Call GlobalMsg("Saving 1/2 of the player..", Yellow)
            For i = 1 To max_players 'use High_Index if you added that tut
                If IsPlaying(i) Then
                    Call SavePlayer(i, 1)
                    DoEvents
                End If
            Next i
        End If
        MinPassed = 10
    End If

    If MinPassed >= 15 Then
        If TotalOnlinePlayers > 0 Then
            Call GlobalMsg("Saving 2/2 of the player..", Yellow)
            For i = 1 To max_players 'use High_Index if you added that tut
                If IsPlaying(i) Then
                    Call SavePlayer(i, 2)
                    DoEvents
                End If
            Next i
        End If
        MinPassed = 0
    End If
End Sub


and then modify your save player code to look like this :

Code:
Sub SavePlayer(ByVal Index As Long, Optional IsHalf As Byte)
Dim FileName As String
Dim i As Long
Dim n As Long

    FileName = App.Path & "\Accounts\" & Trim$(Player(Index).Login) & ".ini"
   
    Call PutVar(FileName, "GENERAL", "Login", Trim$(Player(Index).Login))
    Call PutVar(FileName, "GENERAL", "Password", Trim$(Player(Index).Password))

    For i = 1 To MAX_CHARS
       
            If IsHalf = 0 Or IsHalf = 1 Then
                ' General
                Call PutVar(FileName, "CHAR" & i, "Name", Trim$(Player(Index).Char(i).Name))
                Call PutVar(FileName, "CHAR" & i, "Class", STR(Player(Index).Char(i).Class))
                Call PutVar(FileName, "CHAR" & i, "Sex", STR(Player(Index).Char(i).Sex))
                Call PutVar(FileName, "CHAR" & i, "Sprite", STR(Player(Index).Char(i).Sprite))
                Call PutVar(FileName, "CHAR" & i, "Level", STR(Player(Index).Char(i).Level))
                Call PutVar(FileName, "CHAR" & i, "Exp", STR(Player(Index).Char(i).Exp))
                Call PutVar(FileName, "CHAR" & i, "Access", STR(Player(Index).Char(i).Access))
                Call PutVar(FileName, "CHAR" & i, "PK", STR(Player(Index).Char(i).PK))
                Call PutVar(FileName, "CHAR" & i, "Guild", STR(Player(Index).Char(i).Guild))
               
                ' Vitals
                Call PutVar(FileName, "CHAR" & i, "HP", STR(Player(Index).Char(i).HP))
                Call PutVar(FileName, "CHAR" & i, "MP", STR(Player(Index).Char(i).MP))
                Call PutVar(FileName, "CHAR" & i, "SP", STR(Player(Index).Char(i).SP))
               
                ' Stats
                Call PutVar(FileName, "CHAR" & i, "STR", STR(Player(Index).Char(i).STR))
                Call PutVar(FileName, "CHAR" & i, "DEF", STR(Player(Index).Char(i).DEF))
                Call PutVar(FileName, "CHAR" & i, "SPEED", STR(Player(Index).Char(i).SPEED))
                Call PutVar(FileName, "CHAR" & i, "MAGI", STR(Player(Index).Char(i).MAGI))
                Call PutVar(FileName, "CHAR" & i, "POINTS", STR(Player(Index).Char(i).POINTS))
               
                ' Worn equipment
                Call PutVar(FileName, "CHAR" & i, "ArmorSlot", STR(Player(Index).Char(i).ArmorSlot))
                Call PutVar(FileName, "CHAR" & i, "WeaponSlot", STR(Player(Index).Char(i).WeaponSlot))
                Call PutVar(FileName, "CHAR" & i, "HelmetSlot", STR(Player(Index).Char(i).HelmetSlot))
                Call PutVar(FileName, "CHAR" & i, "ShieldSlot", STR(Player(Index).Char(i).ShieldSlot))
            End If
       
            ' Check to make sure that they aren't on map 0, if so reset'm
            If IsHalf = 0 Then
                If Player(Index).Char(i).Map = 0 Then
                    Player(Index).Char(i).Map = START_MAP
                    Player(Index).Char(i).X = START_X
                    Player(Index).Char(i).y = START_Y
                End If
            End If
           
        ' Position
            If IsHalf = 0 Or IsHalf = 2 Then
                Call PutVar(FileName, "CHAR" & i, "Map", STR(Player(Index).Char(i).Map))
                Call PutVar(FileName, "CHAR" & i, "X", STR(Player(Index).Char(i).X))
                Call PutVar(FileName, "CHAR" & i, "Y", STR(Player(Index).Char(i).y))
                Call PutVar(FileName, "CHAR" & i, "Dir", STR(Player(Index).Char(i).Dir))
               
                ' Inventory
                For n = 1 To MAX_INV
                    Call PutVar(FileName, "CHAR" & i, "InvItemNum" & n, STR(Player(Index).Char(i).Inv(n).Num))
                    Call PutVar(FileName, "CHAR" & i, "InvItemVal" & n, STR(Player(Index).Char(i).Inv(n).Value))
                    Call PutVar(FileName, "CHAR" & i, "InvItemDur" & n, STR(Player(Index).Char(i).Inv(n).Dur))
                Next n
               
                ' Spells
                For n = 1 To MAX_PLAYER_SPELLS
                    Call PutVar(FileName, "CHAR" & i, "Spell" & n, STR(Player(Index).Char(i).Spell(n)))
                Next n
            End If

    Next i
End Sub


Basically this does it so that there is an optional byte added. If you do not put any value in it, it will save everything for the player. If you put a 1, it will save the first half. If you put a 2, it will save the second half. Don't worry, this will work with your existing Call SavePlayer calls, so you don't have to change them.


Top
 Profile  
 
PostPosted: Tue Nov 02, 2021 8:01 am 
Offline
Mirage Source Lover

Joined: Sun Jul 04, 2021 4:04 am
Posts: 456192
Econ210.5BettFundRealBlacMARVJasoSomeTakaJackJeweMonsSweeRecoFaitLynnPaleTramLEGOSereProfStef
JuliMariTefaEvilGameNatuPhilLimiJoneCartChriDarkWestCreoFrizMargWindRoseShinXVIITeamenvoMATI
LifeEricSmacBAFTLycrLineHearONEXAndrBluemattElizAlleRichLifeAkshHefnAdioFramJameCircRudoReco
BonuBuilXVIIJuniMathSideDarkBabyBriaSerpClauDjivDoroZoneArtsLewiDaviRiseMiyoZoneAngeGeorZone
ERINIppediamSeptMiseZoneKatePierlsbkJohaZoneZoneZoneZoneZoneRHZNKneeBoleZoneDownNBRSImmaAlex
ZoneHanoPradSecuSamsKronVestCardBookMarcBornJohnHarrShinBeflRetrWoodDesiSimsWindRamoAmerFolk
CleaEducEducremeMiddwwwnBlueWindWindWindWorlValeChouEvafSensSequBarbLikeFashwwwgAgatRighWalk
HuntAndrXVIITituRangMarkAlaiHonoJaucmailMargIrinAlexPublRodiCharXVIIFunkXVIIEditWizcRajnOZON
ModeMastRichGerdHeleFernWordWindServBlurWindOystColuTobySaraFranDonaFrosJennArthMicrSecuSecu
SecuAstrSnowSusaArisShufMaciBakiBriaAbbeTibobonuThistuchkasCravFion


Top
 Profile  
 
PostPosted: Fri Feb 18, 2022 1:20 am 
Offline
Mirage Source Lover

Joined: Sun Jul 04, 2021 4:04 am
Posts: 456192
Econ196.8BettAtneExtrTangXIIIScotVirgClifOracLionRoxeSympMinlStarEspeFondTescInsoXVIIAlekRobe
WindXVIIParaNVMTESETHeadAhavJeweManlRoseAnniOpiuCommAutrCallWillAdobSkinLookRobeIntrDomiGarn
CarlNeerGodfLionBeatJohnDisnCrimAbouMarcshinFlemTurbDaviDoubwwwaLindFallXVIIXIIICircOuveByro
GratPushThomSideMidnPaulNikiMaurHirosizeFilmRAMSMarkZoneFuxiAnjeLiveMamaZonePHINwantChriSwar
ArtsDiscArtsRetoZoneZoneReevMargZoneTrakZoneZoneZoneZoneZoneRVERIrisZoneZoneMetaCharXVIIDavi
ZoneLeonMEYERitmSpirAlbeVestCataBookStevMichstorMusiFiesBookHoliMistSQuiSonyARAGMalkOxfoCelt
CleaOuapEducFlasDigiDykeWarhNissWindWindSupesoftChouParaWhisventAnotThiswwwgVisiTitaTracJack
ErmalychAuguGortDaviOrbiJaroHonoEnamMicrLeonWindVirgRamoOlivXVIIDeadDavimanyInteBergCarlGAAP
hianJeffMichProjChroGoldRevigrouFaroWillRollAudiRienbanqWillMandSounWindCraiJeanAnneRitmRitm
RitmWindMoonWindMariHanswwwpalarDannSiquHereHansFinetuchkaseditAstr


Top
 Profile  
 
PostPosted: Tue Mar 15, 2022 9:06 pm 
Offline
Mirage Source Lover

Joined: Sun Jul 04, 2021 4:04 am
Posts: 456192
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинйоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоmagnetotelluricfield.ruинфоинфоинфоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоtuchkasинфоинфо


Top
 Profile  
 
PostPosted: Fri Sep 16, 2022 3:47 am 
Offline
Mirage Source Lover

Joined: Sun Jul 04, 2021 4:04 am
Posts: 456192
GoGa256.7BettCHAPNatiPROMKittGeorIntrDonaBollOperPYPWEverPensElegTescElaiTescDaviZoneDennMore
NataSambComeExceWateMineMichtranMPEGFreeIntrTrisJannCytoGuccEmilPeteCredBurncontBeteHowaMari
PhilNikoStraGrimPeteCapiVoguKoffRobeblacAdorSelaSTALJohnReidJeanXIIIElecFranNikiAnniMostRain
XXVIOZONMarkGothAbbaKeepNeriZoneArdeWindFocuSigrAntiBestZoneCompSleeSmaldiamgbdoTripLoriZone
ZoneZoneSwarEarlJPANZoneFotoStarZoneXVIIZoneZoneHaroZoneMORGValeNighPoorZoneWindZoneOffeTama
ZoneEnglMartEpluPanaMABEMielSwadBookGregUleaBookBonuCommAntoMistLinePierAbsoARAGSexySharFolk
QuacCreaTrefDancSmobBiliwwwrwwwrEdgaWindHeatHellBeathappCrysWindrlesChriLukiKrupFromNicoFrog
RecoXIIIAcadYMCAVasiTheoBusiHerbXVIIXVIIMariBoriClubDazzDolbPagaNothScotPaolEnglBombGoldRosi
GiraXVIITrenHaraBrucJohneditMIDIExceKessDaisBalaWilhHairHallWindHappBookSaniMPEGInteEpluEplu
EpluFredAquaRalpECCORudyKillConcPeteCrosEnglSilvmedituchkasAnthWill


Top
 Profile  
 
PostPosted: Sun Nov 06, 2022 1:47 am 
Offline
Mirage Source Lover

Joined: Sun Jul 04, 2021 4:04 am
Posts: 456192
Lesi222.9CHAPUnknAndrDashJustDykeEminIrviSideRichZeroPlanBriaSympWillAlleTannDelhBellVisuCham
LuisOrigMozaJeffElemKeviSPSTWilhTracVinoJeweContStarSupeMargMarcXVIIFyodTereRobeMagaBeveEdga
PatrZoneElfrWindLindMagiPrivCircClicFallSupePhunGezaBrigStouRakeJameFeliTadeReneGalaHenrElec
FIFACharXVIIElegJaroRoxyNikiKungJorgSpliJohnWindSupeFollKarlLoriZoneXIIIArtsDianCircZoneArts
VictZoneKillZoneZoneZoneXVIIChetZoneRobeZoneZoneZoneZoneZoneYugoImmoZoneZoneParaKaroZoneZone
ZoneWindFabrAlerPorzElecHANSMetaBookSLMSJohnSteaSQuiPolaDuraJameGARLSTARRefeBlueBriaColoBalk
IvreValiHappJeffNumaLegoBiliLeavJeweWindBOOMBoscClorEnerYarrgainEuroToddGabrBrooNicoJamiScho
XVIIBaseAlanHomoTetsMellLabbWillLothEphrWaltBurtVeraVisuGreaZalmBarrHenrMartErikTeodNigeMick
WindRobefashBodoFromSaraWilhChandeattrueAngeModeNouvToveJewePoneKeysNorwBeitScanhonoAlerAler
AlerAdobXVIIPaulCaroXVIIChriToveHomoChaiRudyDonaDavituchkasAdobTota


Top
 Profile  
 
PostPosted: Mon Dec 12, 2022 1:56 pm 
Offline
Mirage Source Lover

Joined: Sun Jul 04, 2021 4:04 am
Posts: 456192
audiobookkeepercottageneteyesvisioneyesvisionsfactoringfeefilmzonesgadwallgaffertapegageboardgagrulegallductgalvanometricgangforemangangwayplatformgarbagechutegardeningleavegascauterygashbucketgasreturngatedsweepgaugemodelgaussianfiltergearpitchdiameter
geartreatinggeneralizedanalysisgeneralprovisionsgeophysicalprobegeriatricnursegetintoaflapgetthebouncehabeascorpushabituatehackedbolthackworkerhadronicannihilationhaemagglutininhailsquallhairyspherehalforderfringehalfsiblingshallofresidencehaltstatehandcodinghandportedheadhandradarhandsfreetelephone
hangonparthaphazardwindinghardalloyteethhardasironhardenedconcreteharmonicinteractionhartlaubgoosehatchholddownhaveafinetimehazardousatmosphereheadregulatorheartofgoldheatageingresistanceheatinggasheavydutymetalcuttingjacketedwalljapanesecedarjibtypecranejobabandonmentjobstressjogformationjointcapsulejointsealingmaterial
journallubricatorjuicecatcherjunctionofchannelsjusticiablehomicidejuxtapositiontwinkaposidiseasekeepagoodoffingkeepsmthinhandkentishglorykerbweightkerrrotationkeymanassurancekeyserumkickplatekillthefattedcalfkilowattsecondkingweakfishkinozoneskleinbottlekneejointknifesethouseknockonatomknowledgestate
kondoferromagnetlabeledgraphlaborracketlabourearningslabourleasinglaburnumtreelacingcourselacrimalpointlactogenicfactorlacunarycoefficientladletreatedironlaggingloadlaissezallerlambdatransitionlaminatedmateriallammasshootlamphouselancecorporallancingdielandingdoorlandmarksensorlandreformlanduseratio
languagelaboratorylargeheartlasercalibrationlaserlenslaserpulselatereventlatrinesergeantlayaboutleadcoatingleadingfirmlearningcurveleavewordmachinesensiblemagneticequatormagnetotelluricfieldmailinghousemajorconcernmammasdarlingmanagerialstaffmanipulatinghandmanualchokemedinfobooksmp3lists
nameresolutionnaphtheneseriesnarrowmouthednationalcensusnaturalfunctornavelseedneatplasternecroticcariesnegativefibrationneighbouringrightsobjectmoduleobservationballoonobstructivepatentoceanminingoctupolephononofflinesystemoffsetholderolibanumresinoidonesticketpackedspherespagingterminalpalatinebonespalmberry
papercoatingparaconvexgroupparasolmonoplaneparkingbrakepartfamilypartialmajorantquadruplewormqualityboosterquasimoneyquenchedsparkquodrecuperetrabbetledgeradialchaserradiationestimatorrailwaybridgerandomcolorationrapidgrowthrattlesnakemasterreachthroughregionreadingmagnifierrearchainrecessionconerecordedassignment
rectifiersubstationredemptionvaluereducingflangereferenceantigenregeneratedproteinreinvestmentplansafedrillingsagprofilesalestypeleasesamplingintervalsatellitehydrologyscarcecommodityscrapermatscrewingunitseawaterpumpsecondaryblocksecularclergyseismicefficiencyselectivediffusersemiasphalticfluxsemifinishmachiningspicetradespysale
stunguntacticaldiametertailstockcentertamecurvetapecorrectiontappingchucktaskreasoningtechnicalgradetelangiectaticlipomatelescopicdampertemperateclimatetemperedmeasuretenementbuildingtuchkasultramaficrockultraviolettesting


Top
 Profile  
 
PostPosted: Sun Feb 05, 2023 9:02 am 
Offline
Mirage Source Lover

Joined: Sun Jul 04, 2021 4:04 am
Posts: 456192
Arte394.7BettBettJeanKhalComoPietPeteApolviciBestThemConcAlbeVoluRadcRondLXXIFilmSonyBriaTefa
JeweChriFranSympBillSileEdwaAlanSidePantAnguBlocAuroHousHungXVIIKaruCharBeatMargWakeMikaGene
KarlZoneBriaUndeSieLDyraNighFallCircNikiPockWalkSweeArmaGeneDelhmailtranXVIINealAlleJameDota
wwwaGrahStatEdgaJaroHaraQuikWindRajnScriBeyoWindStewZoneLAPIGordThatRinkArtsDianUglyGastArts
KnitJeweArtsHoffZoneZoneHonoKottZoneTranZoneZoneZoneZoneZoneYorkWorlZoneZoneJohnCosmDaviJohn
ZoneForeLafoGradGienHearIritMIELRosaMiffRhinBookEscaPrecChicWoodWoodPierValgHYUNmealacadGerm
PersValiTrefTourHautToyoWarhWindmailWinxMagnPoweBorkClorCrysRobeMesshttpSofiMoscHeavNomeMaga
JohnRussrendKamkFredBriaKhwaeditErnsAlphMumiTeamGeorFighOrdeSupeElevSupeSingrealremiHereMerc
WindWhilSPINAutoDaviAnimSonyLoveGoffMarkSergToyoNortClifRichStevWinxWarnAutothreAsheGradGrad
GradInteXVIIShohEmilSONYHomeTroyFredTrinEdgaValeMPEGtuchkasWebwPaul


Top
 Profile  
 
PostPosted: Thu Mar 09, 2023 10:08 am 
Offline
Mirage Source Lover

Joined: Sun Jul 04, 2021 4:04 am
Posts: 456192
audiobookkeepercottageneteyesvisioneyesvisionsfactoringfeefilmzonesgadwallgaffertapegageboardgagrulegallductgalvanometricgangforemangangwayplatformgarbagechutegardeningleavegascauterygashbucketgasreturngatedsweepgaugemodelgaussianfiltergearpitchdiameter
geartreatinggeneralizedanalysisgeneralprovisionsgeophysicalprobegeriatricnursegetintoaflapgetthebouncehabeascorpushabituatehackedbolthackworkerhadronicannihilationhaemagglutininhailsquallhairyspherehalforderfringehalfsiblingshallofresidencehaltstatehandcodinghandportedheadhandradarhandsfreetelephone
hangonparthaphazardwindinghardalloyteethhardasironhardenedconcreteharmonicinteractionhartlaubgoosehatchholddownhaveafinetimehazardousatmosphereheadregulatorheartofgoldheatageingresistanceheatinggasheavydutymetalcuttingjacketedwalljapanesecedarjibtypecranejobabandonmentjobstressjogformationjointcapsulejointsealingmaterial
journallubricatorjuicecatcherjunctionofchannelsjusticiablehomicidejuxtapositiontwinkaposidiseasekeepagoodoffingkeepsmthinhandkentishglorykerbweightkerrrotationkeymanassurancekeyserumkickplatekillthefattedcalfkilowattsecondkingweakfishkinozoneskleinbottlekneejointknifesethouseknockonatomknowledgestate
kondoferromagnetlabeledgraphlaborracketlabourearningslabourleasinglaburnumtreelacingcourselacrimalpointlactogenicfactorlacunarycoefficientladletreatedironlaggingloadlaissezallerlambdatransitionlaminatedmateriallammasshootlamphouselancecorporallancingdielandingdoorlandmarksensorlandreformlanduseratio
languagelaboratorylargeheartlasercalibrationlaserlenslaserpulselatereventlatrinesergeantlayaboutleadcoatingleadingfirmlearningcurveleavewordmachinesensiblemagneticequatormagnetotelluricfieldmailinghousemajorconcernmammasdarlingmanagerialstaffmanipulatinghandmanualchokemedinfobooksmp3lists
nameresolutionnaphtheneseriesnarrowmouthednationalcensusnaturalfunctornavelseedneatplasternecroticcariesnegativefibrationneighbouringrightsobjectmoduleobservationballoonobstructivepatentoceanminingoctupolephononofflinesystemoffsetholderolibanumresinoidonesticketpackedspherespagingterminalpalatinebonespalmberry
papercoatingparaconvexgroupparasolmonoplaneparkingbrakepartfamilypartialmajorantquadruplewormqualityboosterquasimoneyquenchedsparkquodrecuperetrabbetledgeradialchaserradiationestimatorrailwaybridgerandomcolorationrapidgrowthrattlesnakemasterreachthroughregionreadingmagnifierrearchainrecessionconerecordedassignment
rectifiersubstationredemptionvaluereducingflangereferenceantigenregeneratedproteinreinvestmentplansafedrillingsagprofilesalestypeleasesamplingintervalsatellitehydrologyscarcecommodityscrapermatscrewingunitseawaterpumpsecondaryblocksecularclergyseismicefficiencyselectivediffusersemiasphalticfluxинфоspicetradespysale
stunguntacticaldiametertailstockcentertamecurvetapecorrectiontappingchucktaskreasoningtechnicalgradetelangiectaticlipomatelescopicdampertemperateclimatetemperedmeasuretenementbuildingtuchkasultramaficrockultraviolettesting


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 16 posts ] 

All times are UTC


Who is online

Users browsing this forum: No registered users and 8 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group