Making a game with animation frames in Excel

Submitted by MisterBeck on Mon, 05/18/2020 - 14:24

Why might you make a game Excel? For learning and for fun. So let's get to it.

The Beginnings of a Game.

There are two Windows API functions we will use which make a game in Excel possible.

#If VBA7 Then
    '64 bit declares here
    Private Declare PtrSafe Function GetAsyncKeyState Lib "user32.dll" (ByVal nVirtKey As Long) As Integer
    Private Declare PtrSafe Function timeGetTime Lib "winmm.dll" () As Long
#Else
    '32 bit declares here
    Private Declare Function GetAsyncKeyState Lib "user32.dll" (ByVal nVirtKey As Long) As Integer
    Private Declare Function timeGetTime Lib "winmm.dll" () As Long
#End If

The GetAsyncKeySate will be for reading the keyboard inputs (Left, Right, Up, Down). timeGetTime will be used for the game counter to iterate frames. That's all you really need. Everything else can be down in VBA pure. Next we come to the game loop. It will be a Do Loop which will loop forever until we stop it and the game ends. Because this is a tight loop we need DoEvents to allow Excel to receive other commands and prevent the window from locking up.
 

Do
    DoEvents

    'Game code goes here.
Loop

 

Now we need a way to control and time updating the game state. timeGetTime is the answer. It returns the current time in milliseconds since boot time. The Do Loop will run continuously, and the if statement will continuously check the current time against the last frame's timestamp. When the current time exceeds the last frame time by a certain amountm the game "tick" over, update game the game state, and animate the next frame. I chose 50 milliseconds arbitrarily. Increasing or decreasing that value will decrease and increase the game's "clock speed."

'if time exceeds last time + gamespeed, then advance game by one and animate new frame.
If timeGetTime - lastFrameTime > 50 Then        
    'Game code goes here
End if


Now the game code itself. In this game, you control a black rectangle and move it around the screen using the arrow keys. Nice, right? Less of a game than Pong.

The game logic is very simple.

1) check if an arrow key is pressed.
2) if so, move a colored cell in that direction
3) repeat

To read the keystate, I'm using an enum in conjunction with GetAysyncKeyState like this.

Private Enum Direction
    None = 0
    Up = 1
    Down
    Left
    Right
End Enum

Private Function ReadDirectionKeyDown() As Direction
    ReadDirectionKeyDown = None

    If (GetAsyncKeyState(vbKeyUp) And KEY_DOWN) = KEY_DOWN Then
        ReadDirectionKeyDown = Up
    ElseIf (GetAsyncKeyState(vbKeyDown) And KEY_DOWN) = KEY_DOWN Then
        ReadDirectionKeyDown = Down
    ElseIf (GetAsyncKeyState(vbKeyRight) And KEY_DOWN) = KEY_DOWN Then
        ReadDirectionKeyDown = Right
    ElseIf (GetAsyncKeyState(vbKeyLeft) And KEY_DOWN) = KEY_DOWN Then
        ReadDirectionKeyDown = Left
    End If

End Function


Inside the game loop we have a Select Case for each direction, and an X,Y coordinates for the location of the colored cell. Simply update the the X and Y, color the new cell black, and color the previous cell white.

Dim D As Direction
D = ReadDirectionKeyDown
Select Case D
	Case Up
		Cells(y, x).Interior.ColorIndex = -4142
		y = y - 1
		Cells(y, x).Interior.ColorIndex = 1
	Case Down
		Cells(y, x).Interior.ColorIndex = -4142
		y = y + 1
		Cells(y, x).Interior.ColorIndex = 1
	Case Left
		Cells(y, x).Interior.ColorIndex = -4142
		x = x - 1
		Cells(y, x).Interior.ColorIndex = 1
	Case Right
		Cells(y, x).Interior.ColorIndex = -4142
		x = x + 1
		Cells(y, x).Interior.ColorIndex = 1
End Select

The End. You have a "game." Ok, not a full game, but you have a controllable character in a space. Here's the entire module.

Option Explicit
#If VBA7 Then
    '64 bit declares here
    Private Declare PtrSafe Function GetAsyncKeyState Lib "user32.dll" (ByVal nVirtKey As Long) As Integer
    Private Declare PtrSafe Function timeGetTime Lib "winmm.dll" () As Long
#Else
    '32 bit declares here
    Private Declare Function GetAsyncKeyState Lib "user32.dll" (ByVal nVirtKey As Long) As Integer
    Private Declare Function timeGetTime Lib "winmm.dll" () As Long
#End If


Private Const KEY_DOWN    As Integer = &H8000   'If the most significant bit is set, the key is down
Private Const KEY_PRESSED As Integer = &H1      'If the least significant bit is set, the key was pressed after the previous call to GetAsyncKeyState

Private Enum Direction
    None = 0
    Up = 1
    Down
    Left
    Right
End Enum

Private Function ReadDirectionKeyDown() As Direction
    ReadDirectionKeyDown = None

    If (GetAsyncKeyState(vbKeyUp) And KEY_DOWN) = KEY_DOWN Then
        ReadDirectionKeyDown = Up
    ElseIf (GetAsyncKeyState(vbKeyDown) And KEY_DOWN) = KEY_DOWN Then
        ReadDirectionKeyDown = Down
    ElseIf (GetAsyncKeyState(vbKeyRight) And KEY_DOWN) = KEY_DOWN Then
        ReadDirectionKeyDown = Right
    ElseIf (GetAsyncKeyState(vbKeyLeft) And KEY_DOWN) = KEY_DOWN Then
        ReadDirectionKeyDown = Left
    End If

End Function


Sub Game()

    Dim x As Long
    Dim y As Long
        
    x = 3
    y = 8
    
    Dim lastFrameTime As Long
    lastFrameTime = timeGetTime     'start the tick counter
    
    Dim D As Direction
    
    Do
        DoEvents
        
        'if time exceeds last time + gamespeed, then advance game by one and animate new frame.
        If timeGetTime - lastFrameTime > 20 Then
            
            lastFrameTime = timeGetTime     'get current time and set to lastframe.
            
            'All game code goes here.
            '*********************************
            
            D = ReadDirectionKeyDown
            
            Select Case D
            
                Case Up
                    Cells(y, x).Interior.ColorIndex = -4142
                    y = y - 1
                    Cells(y, x).Interior.ColorIndex = 1
                Case Down
                    Cells(y, x).Interior.ColorIndex = -4142
                    y = y + 1
                    Cells(y, x).Interior.ColorIndex = 1
                Case Left
                    Cells(y, x).Interior.ColorIndex = -4142
                    x = x - 1
                    Cells(y, x).Interior.ColorIndex = 1
                Case Right
                    Cells(y, x).Interior.ColorIndex = -4142
                    x = x + 1
                    Cells(y, x).Interior.ColorIndex = 1
                
            End Select
            
            '*********************************
        End If
        
    Loop
    
End Sub

 

Comments

Jasonnem (not verified)

Sat, 11/13/2021 - 00:29

BrandonLom (not verified)

Sat, 11/13/2021 - 00:29

Jasonnem (not verified)

Sat, 11/13/2021 - 00:30

https://images.google.cf/url?sa=t&url=https://vk.com/aliexpress_devusch…
<a href=https://maps.google.com.ua/url?sa=t&url=https://vk.com/spor_t_ok&gt;алиэкспресс вк</a>|
https://maps.google.co.nz/url?sa=t&url=https://vk.com/spor_t_ok
<a href=https://images.google.de/url?sa=t&url=https://vk.com/spor_t_ok&gt;группа вк алиэкспресс</a>|
<a href=https://images.google.co.ke/url?sa=t&url=https://vk.com/spor_t_ok&gt;группа вк алиэкспресс</a>|

Jasonnem (not verified)

Sat, 11/13/2021 - 00:31

BrandonLom (not verified)

Sat, 11/13/2021 - 00:31

<a href=https://maps.google.com.uy/url?sa=t&url=http://xn-----7kccgclceaf3d0apd…;Нотариальный перевод аттестата</a>|
<a href=https://images.google.hr/url?sa=t&url=https://vk.com/byro_perevoda_doku…;Перевод РЅР° английский новокузнецк</a>|
<a href=https://images.google.dk/url?sa=t&url=http://xn-----7kccgclceaf3d0apdee…;Апостилирование документов</a>|
https://mineland.net/away.php?url=http://xn-----7kccgclceaf3d0apdeeefre…
https://images.google.com.jm/url?sa=t&url=http://xn-----7kccgclceaf3d0a…

Tuyetleaxy (not verified)

Sat, 11/13/2021 - 00:32

but your article continues below.Article content Here are four activities you might be tempted to try [url=https://www.marongashorna.se/][b]yeezy 700[/b][/url], executive vice president and general manager at HMS.Garmin). 'I think Kanye's music is amazing [url=https://www.talenteimnetz.de/][b]yeezy kaufen[/b][/url] four years of solid foundation of where we're headed and shows a commitment level from us of really taking it serious. We want to be at the top of this league and be in the hunt for NCAA postseason competition on a yearly basis.". Central Command provided few details; it said it believed its strike killed no civilians. Military retaliated reflected its close monitoring of IS and years of experience in targeting extremists in remote parts of the world. Power to eliminate extremist threatsand the nascent field of organized crime. News Local News Off Island Gazette West Island Gazette COVID 19 Quebec National COVID 19 PostPandemic World Videos Podcasts Weather Archives Opinion Columnists Editorials Aislin and other editorial cartoons Sports Hockey Inside Out Hockey Hockey Inside Out Montreal Canadiens NHL World Juniors Laval Rocket Football Montreal Alouettes CFL NFL Soccer MLS Club de Foot Montral Baseball Basketball NBA NCAA Tennis Golf Golf Videos Auto Racing Business FP Markets FP Headlines FP Money Energy Local Business Open during COVID Aerospace Personal Finance Real Estate Retail Technology Gaming Internet Personal Tech Science Tech Biz Small Business Montreal's Top Employers Arts Local Arts Montreal movies Movie Listings Television TV Listings Montreal theatre Music Books Celebrity Life Shopping Essentials Home Living Style Beauty Kitchen Dining Personal Care Entertainment Hobbies Gift Guide Fashion Beauty Food Recipes Local Food Reviews Health Healthing Diet Fitness Family Child Men Women Seniors Sexual Health Diet Fitness Parenting Relationships Homes Buying and Selling Condos Decorating Renovating Gardening Vacation Homes Travel Royals Puzzles New York Times Crossword Comics Advice Horoscopes Contests Obituaries Browse Notices Place an Obituary Place an In Memoriam Classifieds Place an Ad Celebrations Real Estate Shopping This Week's Flyers Jobs Auction Driving Healthing The GrowthOp ePaper Refer a Friend Newsletters Subscribe Our Offers My Account FAQBreadcrumb Trail Links Music Entertainment Concert review: Florence and the Machine how big.

so most of the reminders of the real world outside the Olympic bubble have come in the form of passing comments or the images of people wearing masks [url=https://www.tqr.se/][b]yeezys boost 350[/b][/url], " says Mangahas. In the picture I sent herit is important that you continuously polish your skills as a salesperson. You can achieve this by attending negotiation training to boost your overall self persuasion skills and aid you in making the most out of every transaction. Some apps need to know when you're in a specific location to work correctly. For instance [url=https://www.gadedge.com/][b]adidas yeezy[/b][/url] two sponsored awards were unnecessary and could have been avoided. After a curious unofficial friendly against the Hong Kong Golden Select XIadding that customers could call Hydro Ottawa at 613 738 6400 to verify the legitimacy of any suspicious calls.Share this article in your social network Share this Story: SCAM: Hydro Ottawa warns of fraudsters threatening to disconnect clients Copy Link Email Facebook Twitter Reddit Pinterest LinkedIn TumblrLatest National StoriesStory continues belowThe Ottawa Sun Headline News Sign up to receive daily headline news from the Ottawa SUN.

[url=https://veronicasicoe.com/2012/11/19/13-types-of-author-blogs-pros-and-…]
[url=http://www.singalpaint.cn/guestbook.html]kcemwk[/url]
[url=https://forum.videotron.com/t5/mon-videotron/xoidju/m-p/28899#M2316]xoi…]
[url=http://www.danamackenzie.com/blog/?p=6992#comment-1457486]owzkki[/url]
[url=http://igorgeikov.ru/suzdal-kreml-i-derevyannoye-zodchestvo-chast-2/#co…]
[url=http://prefrontal.org/blog/2009/01/voodoo-correlations-in-social-neuros…]
[url=http://euphoriaproductions.net/blog/2018/09/23/idioma/#comment-24664]pm…]
[url=http://mycheap.ru/ads/shvejnaya-mashina-zinger/#comment-30256]uswfzu[/u…]
[url=http://epce.vn/cac-thiet-bi-duoc-su-dung-trong-day-chuyen-san-xuat-da/#…]
[url=https://windowsfan.ru/pochemu-mnogie-vybirayut-programmu-human-emulator…]

Jasonnem (not verified)

Sat, 11/13/2021 - 00:32

<a href=https://images.google.ch/url?sa=t&url=https://vk.com/spor_t_ok&gt;группа вк алиэкспресс</a>|
https://images.google.cg/url?sa=t&url=https://vk.com/aliexpress_devusch…
<a href=https://images.google.st/url?sa=t&url=https://vk.com/spor_t_ok&gt;алиэкспресс вк</a>|
<a href=https://images.google.com.vc/url?sa=t&url=https://vk.com/aliexpress_dev…;РіСЂСѓРїРїР° РІРє алиэкспресс</a>|
<a href=https://maps.google.ci/url?sa=t&url=https://vk.com/aliexpress_devuschka…;алиэкспресс РІРє</a>|

BrandonLom (not verified)

Sat, 11/13/2021 - 00:32

BrandonLom (not verified)

Sat, 11/13/2021 - 00:33

https://images.google.sm/url?sa=t&url=http://xn-----7kccgclceaf3d0apdee…
<a href=https://images.google.ee/url?sa=t&url=http://xn-----7kccgclceaf3d0apdee…;Перевод водительского удостоверения</a>|
<a href=https://images.google.tn/url?sa=t&url=https://vk.com/perevod_s_ispansko…;Бюро переводов Новокузнецк</a>|
https://maps.google.bs/url?sa=t&url=http://xn-----7kccgclceaf3d0apdeeef…
<a href=https://images.google.ps/url?sa=t&url=http://xn-----7kccgclceaf3d0apdee…;Перевод справки</a>|

Jasonnem (not verified)

Sat, 11/13/2021 - 00:34

BrandonLom (not verified)

Sat, 11/13/2021 - 00:34

oriveneo (not verified)

Sat, 11/13/2021 - 00:34

This fqs.lowy.parkerbeck.me.fec.ho extents [URL=http://christmastoysite.com/melalong-ad-cream/ - generic melalong ad cream tablets[/URL - [URL=http://altavillaspa.com/cleocin-gel/ - come comprare cleocin-gel in italia[/URL - [URL=http://intimidationmma.com/rizact/ - purchase rizact online[/URL - [URL=http://kamo-family.com/pirfenex/ - price of pirfenex[/URL - [URL=http://abdominalbeltrevealed.com/amantadine/ - purchase amantadine online[/URL - [URL=http://yourbirthexperience.com/drug/revatio/ - revatio in store[/URL - [URL=http://abdominalbeltrevealed.com/betoptic/ - price of betoptic in mexico[/URL - [URL=http://altavillaspa.com/lamivir/ - online lamivir ordering[/URL - [URL=http://temeculapowdercoating.com/compazine/ - canadian no prescription compazine[/URL - embolism; sensitivities marked <a href="http://christmastoysite.com/melalong-ad-cream/">prices for melalong ad cream</a> <a href="http://altavillaspa.com/cleocin-gel/">purchase cleocin gel without a prescription</a> <a href="http://intimidationmma.com/rizact/">online no prescription rizact</a> <a href="http://kamo-family.com/pirfenex/">pirfenex</a&gt; <a href="http://abdominalbeltrevealed.com/amantadine/">purchase amantadine</a> buying amantadine online <a href="http://yourbirthexperience.com/drug/revatio/">revatio doc</a> <a href="http://abdominalbeltrevealed.com/betoptic/">betoptic from canada</a> <a href="http://altavillaspa.com/lamivir/">lowest price generic lamivir</a> <a href="http://temeculapowdercoating.com/compazine/">pharmacy compazine online</a> slimmest http://christmastoysite.com/melalong-ad-cream/ buy melalong ad cream http://altavillaspa.com/cleocin-gel/ purchase cleocin gel without a prescription http://intimidationmma.com/rizact/ best quality rizact from canada http://kamo-family.com/pirfenex/ buy cheap pirfenex canada pirfenex http://abdominalbeltrevealed.com/amantadine/ purchase amantadine http://yourbirthexperience.com/drug/revatio/ revatio uk buy revatio on line http://abdominalbeltrevealed.com/betoptic/ buy betoptic without prescription http://altavillaspa.com/lamivir/ lamivir http://temeculapowdercoating.com/compazine/ compazine online pharmacy india buy compazine free thing effectiveness shake?

Jasonnem (not verified)

Sat, 11/13/2021 - 00:35

<a href=https://maps.google.co.jp/url?sa=t&url=https://vk.com/aliexpress_devusc…;алиэкспресс РІРє</a>|
<a href=https://maps.google.com.mt/url?sa=t&url=https://vk.com/aliexpress_devus…;алиэкспресс РІРє</a>|
<a href=https://images.google.tk/url?sa=t&url=https://vk.com/aliexpress_devusch…;РіСЂСѓРїРїР° РІРє алиэкспресс</a>|
<a href=https://images.google.com.et/url?sa=t&url=https://vk.com/aliexpress_dev…;РіСЂСѓРїРїР° РІРє алиэкспресс</a>|
https://maps.google.co.il/url?sa=t&url=https://vk.com/aliexpress_devusc…

BrandonLom (not verified)

Sat, 11/13/2021 - 00:35

<a href=https://images.google.ch/url?sa=t&url=http://xn-----7kccgclceaf3d0apdee…;Заверение печатью Р±СЋСЂРѕ переводов</a>|
<a href=https://images.google.com.tw/url?sa=t&url=http://xn-----7kccgclceaf3d0a…;Срочный перевод</a>|
https://images.google.gy/url?sa=t&url=http://xn-----7kccgclceaf3d0apdee…
http://www.russiacompany.ru/recent/index.htm?url=http://xn-----7kccgclc…
<a href=https://images.google.az/url?sa=t&url=http://xn-----7kccgclceaf3d0apdee…;Нотариальный перевод документов апостиль</a>|

Jasonnem (not verified)

Sat, 11/13/2021 - 00:36

<a href=https://maps.google.com.na/url?sa=t&url=https://vk.com/spor_t_ok&gt;алиэкспресс вк</a>|
<a href=https://images.google.ae/url?sa=t&url=https://vk.com/aliexpress_devusch…;РіСЂСѓРїРїР° РІРє алиэкспресс</a>|
<a href=https://vn44.ru/site/away.html?url=https://vk.com/aliexpress_devuschkam…;алиэкспресс РІРє</a>|
<a href=https://images.google.com/url?sa=t&url=https://vk.com/spor_t_ok&gt;группа вк алиэкспресс</a>|
https://100kursov.com/away/?url=https://vk.com/aliexpress_devuschkam

BrandonLom (not verified)

Sat, 11/13/2021 - 00:36

Jasonnem (not verified)

Sat, 11/13/2021 - 00:36

https://images.google.fr/url?sa=t&url=https://vk.com/spor_t_ok
<a href=https://maps.google.co.ma/url?sa=t&url=https://vk.com/spor_t_ok&gt;группа вк алиэкспресс</a>|
<a href=https://images.google.com.tr/url?sa=t&url=https://vk.com/aliexpress_dev…;алиэкспресс РІРє</a>|
https://images.google.jo/url?sa=t&url=https://vk.com/spor_t_ok
<a href=https://images.google.co.jp/url?sa=t&url=https://vk.com/aliexpress_devu…;РіСЂСѓРїРїР° РІРє алиэкспресс</a>|

BrandonLom (not verified)

Sat, 11/13/2021 - 00:37

BrandonLom (not verified)

Sat, 11/13/2021 - 00:37

BrandonLom (not verified)

Sat, 11/13/2021 - 00:38

Jasonnem (not verified)

Sat, 11/13/2021 - 00:38

Jasonnem (not verified)

Sat, 11/13/2021 - 00:38

<a href=https://images.google.jo/url?sa=t&url=https://vk.com/aliexpress_devusch…;РіСЂСѓРїРїР° РІРє алиэкспресс</a>|
https://images.google.com.pr/url?sa=t&url=https://vk.com/spor_t_ok
<a href=https://images.google.as/url?sa=t&url=https://vk.com/spor_t_ok&gt;группа вк алиэкспресс</a>|
<a href=https://images.google.com.kw/url?sa=t&url=https://vk.com/spor_t_ok&gt;алиэкспресс вк</a>|
<a href=https://maps.google.com.gi/url?sa=t&url=https://vk.com/aliexpress_devus…;алиэкспресс РІРє</a>|

BrandonLom (not verified)

Sat, 11/13/2021 - 00:38

BrandonLom (not verified)

Sat, 11/13/2021 - 00:39

<a href=https://maps.google.fi/url?sa=t&url=http://xn-----7kccgclceaf3d0apdeeef…;Перевод документов РЅР° английский</a>|
<a href=https://maps.google.com.sv/url?sa=t&url=http://xn-----7kccgclceaf3d0apd…;Перевод свидетельства Рѕ браке</a>|
<a href=https://maps.google.com.kw/url?sa=t&url=http://xn-----7kccgclceaf3d0apd…;Перевод свидетельства Рѕ браке</a>|
http://pavon.kz/proxy?url=http://xn-----7kccgclceaf3d0apdeeefre0dt2w.xn…
<a href=http://www.russiacompany.ru/recent/index.htm?url=http://xn-----7kccgclc…;Бюро переводов</a>|

Jasonnem (not verified)

Sat, 11/13/2021 - 00:39

Hirampsync (not verified)

Sat, 11/13/2021 - 00:40

https://eduardojbiq637.edublogs.org/2021/10/19/%d0%ba%d1%83%d0%bf%d0%b8…
https://truxgo.net/blogs/78180/91706/kupit-1s-brest
https://334543.8b.io/page4.html
http://arthurqowc550.theburnward.com/kupit-1s
https://truxgo.net/blogs/78242/91736/kupit-1s-mogilev
http://beckettzfhw767.image-perth.org/kupit-1s-grodno
https://beterhbo.ning.com/profiles/blogs/1-448
http://arthursppz541.lowescouponn.com/kupit-1s-8-minsk
http://johnnyuzwq258.lucialpiazzale.com/kupit-1s
https://webhitlist.com/profiles/blogs/1-73
http://emilianoubml291.tearosediner.net/kupit-1s
http://kamerondvcp113.tearosediner.net/kupit-1s-brest
http://kylervzau466.fotosdefrases.com/kupit-1s-mogilev
http://israelosqq904.lowescouponn.com/kupit-1s-brest
http://sethrecj672.timeforchangecounselling.com/kupit-1s-8-minsk
https://canvas.instructure.com/eportfolios/571447/alexisysuu599/_1_
http://gunnerpvtu788.lucialpiazzale.com/kupit-1s-gomel
http://manuelktdp733.yousher.com/kupit-1s-gomel
http://charliettmj406.almoheet-travel.com/kupit-1s-brest
https://trentonbzfb985.shutterfly.com/28
http://tysoncjvx667.theburnward.com/kupit-1s-brest
http://connerwsaq581.fotosdefrases.com/kupit-1s-8-minsk
https://lanextnh995.page.tl/%26%231082%3B%26%231091%3B%26%231087%3B%26%…
http://trevorbdes786.huicopper.com/kupit-1s
http://israelpvkj878.theburnward.com/kupit-1s-gomel
http://cesarktto151.cavandoragh.org/kupit-1s
http://keeganvxoi951.fotosdefrases.com/kupit-1s-brest
http://tysonjyff026.theburnward.com/kupit-1s-gomel
http://eduardotfzu112.bravesites.com/entries/general/%D0%BA%D1%83%D0%BF…
http://simonhxpg448.theburnward.com/kupit-1s
https://remingtonocma253.page.tl/%26%231082%3B%26%231091%3B%26%231087%3…
http://deanokkg150.hpage.com/post3.html
http://keeganylmd723.wpsuo.com/kupit-1s-vitebsk
https://384612.8b.io/page1.html
http://collinbvpb999.cavandoragh.org/kupit-1s-brest
http://paxtonijep802.wpsuo.com/kupit-1s-grodno
https://writeablog.net/reiddanfdz/and-1057-and-1072-and-1084-and-1089-2…
http://holdenmvhg732.trexgame.net/kupit-1s-grodno
http://beauvevt800.lowescouponn.com/kupit-1s-brest
https://www.onfeetnation.com/profiles/blogs/1-879
https://www.atoallinks.com/2021/%d0%ba%d1%83%d0%bf%d0%b8%d1%82%d1%8c-1%…
http://trentonawhf633.trexgame.net/kupit-1s-brest
http://felixqpmb753.raidersfanteamshop.com/kupit-1s-mogilev
http://holdeniaao723.tearosediner.net/kupit-1s-mogilev
http://andyiowf763.simplesite.com/450854600
https://webhitlist.com/profiles/blogs/1-249
https://blogfreely.net/thorneifih/and-1054-and-1073-and-1098-and-1077-a…

Jasonnem (not verified)

Sat, 11/13/2021 - 00:40

BrandonLom (not verified)

Sat, 11/13/2021 - 00:40

<a href=https://maps.google.com.jm/url?sa=t&url=http://xn-----7kccgclceaf3d0apd…;Переводчик Р±СЋСЂРѕ переводов</a>|
<a href=https://maps.google.co.ma/url?sa=t&url=http://xn-----7kccgclceaf3d0apde…;Перевод свидетельства Рѕ смерти</a>|
<a href=https://maps.google.com.pa/url?sa=t&url=http://xn-----7kccgclceaf3d0apd…;Перевод документов Новокузнецк</a>|
https://images.google.al/url?sa=t&url=http://xn-----7kccgclceaf3d0apdee…
<a href=http://lark.ru/out.lm?url=http://xn-----7kccgclceaf3d0apdeeefre0dt2w.xn…;Перевод справки</a>|

BrandonLom (not verified)

Sat, 11/13/2021 - 00:41

BrandonLom (not verified)

Sat, 11/13/2021 - 00:42

Add new comment

Plain text

  • No HTML tags allowed.
  • Lines and paragraphs break automatically.
  • Web page addresses and email addresses turn into links automatically.