Jump to content
exatox

[Runescape 2007][Fight Caves] [Fixed]

Recommended Posts

I added some things to Toby1's code to prevent it form getting stuck after Runescape's most recent update.

I don't know how to upload a file because I'm very new with Scar but here's the code! Just copy and paste it!

Any tips/suggestions to improve the code is encouraged although I'm not sure how much time I will have with school.

 

 

Warning: Does NOT support randoms although they are very rare. A Runescape ban could result in using this bot.

 

 

 

program RS07_FightCaveFighter;
{$DEFINE RS07}
{$I MSSL\MSSL.scar}
var
 X, Y: Integer;
const
 USERNAME = '';
 PASSWORD = '';


procedure EnterCave;
begin
Wait(2000 + Random(1700));
if (FindColorTol(X, Y, 10921906, RS07_GameActionBx.X1, RS07_GameActionBx.Y1, RS07_GameActionBx.X2, RS07_GameActionBx.Y2, 5)) then
 begin
   RS07_ClickMouse(X, Y, mbLeft);
   MSSL_Wait(800 + Random(3000));

 end;
end;

begin
 MSSL_Setup;
 ClearDebug;
// RS07_SetScreenBrightness(RS07_SCREEN_BRIGHTNESS_VERY_BRIGHT);
 ColorToleranceSpeed(2);
 SetColorSpeed2Modifiers(0.28, 0.17);
repeat
 RS07_AutoRetaliate;
 MSSL_Wait(500);
// if not RS07_LoggedIn then
//   begin
//      RS07_LogIn(username, password);
//     MSSL_Wait(3000 + Random(43));
//     RS07_SetCompassDir('S'); 
 //  end;
 if RS07_LoggedIn then
   begin
     EnterCave;
     MSSL_Wait(10000 + Random(5000));
   end;
   if FindColorTol(x, y, 16711680, 81, 369, 480, 459, 2) then 

   RS07_ClickMouse(300 + Random(15), 446 + Random(7), mbLeft);
   MSSL_Wait(600 + Random(500));

 until False;
end.

 

You can change the waiting times if you know what you are doing!

1000 = 1 second

 

Enjoy! B|

Exatox's Fight Caves 1.0.scar

Edited by exatox
  • Like 1
  • Confused 1
Link to comment
Share on other sites

I don't know how to use smart. It doesn't seem to work for me! How do I set it up? Is there a good guide somewhere explaining smart? I'd love to make have a smart option for my scripts!

Edited by exatox
Link to comment
Share on other sites

EDIT: Included basic script framework.

 

I don't know how to use smart. It doesn't seem to work for me! How do I set it up? Is there a good guide somewhere explaining smart? I'd love to make have a smart option for my scripts!
Install OSI2 and MSSL, then just hit run in SCAR and wait for SMART to load the game (wait until you see login screen)

 

NOTE: SMART might bug a little sometimes, so if you see SMART with white screen for like a minute,

then close SMART and run the script again, repeat doing this until you get it loaded correctly.

 

- - - Updated - - -

 

Here is a basic script "framework" for using SMART with SCAR Divi:

 

program RS07FrameWork;

{$DEFINE RS07}
{$DEFINE SMART} // We need to define SMART, .
{$I OSI\OSI.scar} // OSI comes with SMART so its required!
{$I MSSL\MSSL.scar}

procedure ScriptTerminate;
begin
 MSSL_Unsetup;
 FreeOSI; // Unsetups OSI - Always unsetup OSI after MSSL.
end;

// procedures and functions here.

begin
 SetUpOSI; // Setups OSI, always setup is before MSSL, becomes it loads SMART!
 MSSL_Setup;
 // Custom mainloop things start from this line
end.

 

-Jani

Link to comment
Share on other sites

Script works well for the most part and I appreciate what you did for fixing it, but I'm not sure why I get this error occasionally that stops it from working;

 

[MSSL Terminate - 13/05/2013 ~ 19:46:56(:720)]: Problem with RuneScape 2007 client! Applet INACTIVE?

Stopped execution (45498419.2815 ms)

 

This only occurs with the version that was posted by exatox, Janilabo's version works extremely well. The only thing I noticed is that sometimes it gets stuck clicking constantly at the bottom of the text box but it seems infrequent, my guess would be because it clicks when it detects the blue color there? So when somebody talks it constantly clicks the bottom. Would recommend turning off public chat.

Edited by Russy
Link to comment
Share on other sites

Script works well for the most part and I appreciate what you did for fixing it, but I'm not sure why I get this error occasionally that stops it from working;

 

[MSSL Terminate - 13/05/2013 ~ 19:46:56(:720)]: Problem with RuneScape 2007 client! Applet INACTIVE?

Stopped execution (45498419.2815 ms)

 

This only occurs with the version that was posted by exatox, Janilabo's version works extremely well. The only thing I noticed is that sometimes it gets stuck clicking constantly at the bottom of the text box but it seems infrequent, my guess would be because it clicks when it detects the blue color there? So when somebody talks it constantly clicks the bottom. Would recommend turning off public chat.

Thanks for the feedback man!

 

Thinking I could fix this issue, if you send me a bitmap with that "Click here to continue" part.. :P

I need full bitmap of the client though, to get the positioning correctly (I am going to base it on bitmap finding)

 

So if you want it fixed:

When you get that "Click here to continue" option to your screen, use the script I attached (capture.scar), target the RuneScape applet (SMART or browser) with SCAR Divi's Crosshair and then run the script (capture.scar) by pressing Play.

Doing this captures the full client and it will be saved to the same folder with script (SCAR Divi => Tools => Explore => Script's Folder) as "capturedClient.bmp".

 

Simply filter out all of your personal details from that bitmap, by editing it with paint (blank out anything you don't want to keep in it for us/me) and then save.

After that, send it to me with PM or attach it here with a post. :) This way, I could add better solutions in, just to prevent clicking those texts by other people in public chat (or anything else, really).

 

-Jani

Link to comment
Share on other sites

Hmm. I don't know why its doing this for you. I'll ponder on it tonight.

In the meantime, I added in Special Attack support for those rangers using magic shorts B| .

I will try and make it more flexible, allowing other special weapons to be used later.

 

program RS07_FightCaveFighter;
{$DEFINE RS07}
{$I MSSL\MSSL.scar}
var
X, Y: Integer;
const
USERNAME = '';
PASSWORD = '';




procedure EnterCave;
begin
Wait(2000 + Random(1700));
if (FindColorTol(X, Y, 10921906, RS07_GameActionBx.X1, RS07_GameActionBx.Y1, RS07_GameActionBx.X2, RS07_GameActionBx.Y2, 5)) then
begin

RS07_ClickMouse(X, Y, mbLeft);
MSSL_Wait(800 + Random(3000));

end;
end;



procedure Special;
begin


//mage short spec
if FindColorTol(x, y, 4097340, 700, 420, 710, 430, 2) then
repeat
begin
MSSL_Wait(60000 + Random(25000));
RS07_ClickMouse(572 + Random(120), 417 + Random(11), mbLeft);
end;

until FindColorTol(x, y, 4097340, 574, 415, 710, 430, 2);




end;








begin
MSSL_Setup;
ClearDebug;
RS07_SetScreenBrightness(RS07_SCREEN_BRIGHTNESS_VERY_BRIGHT);
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.28, 0.17);
repeat
RS07_AutoRetaliate;
MSSL_Wait(500);
if not RS07_LoggedIn then
begin
RS07_LogIn(username, password);
MSSL_Wait(3000 + Random(43));
RS07_SetCompassDir('S');
end;
if RS07_LoggedIn then
begin
EnterCave;
MSSL_Wait(5000 + Random(10000));
Special;
end;

//start cave
if FindColorTol(x, y, 16711680, 81, 369, 480, 459, 2) then

RS07_ClickMouse(300 + Random(15), 446 + Random(7), mbLeft);
MSSL_Wait(600 + Random(500));

until false;

end.[/Code]

Link to comment
Share on other sites

[quote name='exatox']Hmm. I don't know why its doing this for you. I'll ponder on it tonight.
In the meantime, I added in Special Attack support for those rangers using magic shorts :cool: .
I will try and make it more flexible, allowing other special weapons to be used later.

[Code]program RS07_FightCaveFighter;
{$DEFINE RS07}
{$I MSSL\MSSL.scar}
var
X, Y: Integer;
const
USERNAME = '';
PASSWORD = '';




procedure EnterCave;
begin
Wait(2000 + Random(1700));
if (FindColorTol(X, Y, 10921906, RS07_GameActionBx.X1, RS07_GameActionBx.Y1, RS07_GameActionBx.X2, RS07_GameActionBx.Y2, 5)) then
begin

RS07_ClickMouse(X, Y, mbLeft);
MSSL_Wait(800 + Random(3000));

end;
end;



procedure Special;
begin


//mage short spec
if FindColorTol(x, y, 4097340, 700, 420, 710, 430, 2) then
repeat
begin
MSSL_Wait(60000 + Random(25000));
RS07_ClickMouse(572 + Random(120), 417 + Random(11), mbLeft);
end;

until FindColorTol(x, y, 4097340, 574, 415, 710, 430, 2);




end;








begin
MSSL_Setup;
ClearDebug;
RS07_SetScreenBrightness(RS07_SCREEN_BRIGHTNESS_VERY_BRIGHT);
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.28, 0.17);
repeat
RS07_AutoRetaliate;
MSSL_Wait(500);
if not RS07_LoggedIn then
begin
RS07_LogIn(username, password);
MSSL_Wait(3000 + Random(43));
RS07_SetCompassDir('S');
end;
if RS07_LoggedIn then
begin
EnterCave;
MSSL_Wait(5000 + Random(10000));
Special;
end;

//start cave
if FindColorTol(x, y, 16711680, 81, 369, 480, 459, 2) then

RS07_ClickMouse(300 + Random(15), 446 + Random(7), mbLeft);
MSSL_Wait(600 + Random(500));

until false;

end.[/Code][/QUOTE]Glad to see you are progressing, exatox! :p

Fixed standards, added in support for SMART (uses OSI), tweaked colorfinding (now only the cave part is based on CTS2, just like it should?):

[code]program RS07_FightCaveFighter;

{$DEFINE RS07}
{$DEFINE SMART}
{$I OSI\OSI.scar}
{$I MSSL\MSSL.scar}

const
USERNAME = '';
PASSWORD = '';

procedure ScriptTerminate;
begin
MSSL_Unsetup;
FreeOSI;
end;

procedure EnterCave;
var
x, y: Integer;
begin
if FindColorTol(x, y, 16711680, 81, 369, 480, 459, 2) then //start cave
begin
RS07_ClickMouse(300 + Random(15), 446 + Random(7), mbLeft);
MSSL_Wait(600 + Random(500));
end;
Wait(2000 + Random(1700));
if (MSSL_FindColorTolCS(x, y, 10921906, RS07_GameActionBx.X1, RS07_GameActionBx.Y1, RS07_GameActionBx.X2, RS07_GameActionBx.Y2, 5, MSSL_ColorSettings2(2, 0.28, 0.17))) then
begin
RS07_ClickMouse(x, y, mbLeft);
MSSL_Wait(800 + Random(3000));
end;
end;

procedure Special;
var
x, y: Integer;
begin
//mage short spec
if FindColorTol(x, y, 4097340, 700, 420, 710, 430, 2) then
repeat
MSSL_Wait(60000 + Random(25000));
RS07_ClickMouse((572 + Random(120)), (417 + Random(11)), mbLeft);
until FindColorTol(x, y, 4097340, 574, 415, 710, 430, 2);
end;

begin
SetUpOSI;
MSSL_Setup;
ClearDebug;
RS07_SetScreenBrightness(RS07_SCREEN_BRIGHTNESS_VERY_BRIGHT);
repeat
RS07_AutoRetaliate;
MSSL_Wait(500);
case RS07_LoggedIn of
True:
begin
EnterCave;
MSSL_Wait(5000 + Random(10000));
Special;
end;
False:
begin
RS07_LogIn(USERNAME, PASSWORD);
MSSL_Wait(3000 + Random(43));
RS07_SetCompassDir('S');
end;
end;
until False;
end.[/code]

Although, I still recommend playing around with the version that I posted here before (post #2), because it wont click objects with same colors, as it checks those matching objects first with mouse and then if uptext matches with our object (cave) it performs the action (click). So it's a lot safer to use.
Link to comment
Share on other sites

Hey, good job on fixing that problem when RS updated if you want i'll add it to the thread I made(and give you credits of course), so, again, goodjob! P.S what was RS's update out of curiousity (what made it become stuck) :P ?

Link to comment
Share on other sites

Toby, I'm not completely sure what stopped it from working, but I sure as heck wasn't going to get 80 defense on my own! I believe RS made it necessary to press "click here to continue" to start the caves. Also, to prevent form getting stuck, the player has to start in the middle to keep the NPC from getting stuck. If the player isn't dying around/at wave 7, the chances of NPC Tok-Xil(126) leading your character to a corner to get stuck are very high. As my defense level is increasing I wear less armor :P This doesn't seem to affect xp/h

 

Janilabo, I still have no clue how to set up smart or how it works. Any chance you can point me to a good thread/guide? :eek:

Edited by exatox
Link to comment
Share on other sites

Now that the fight caves have a timer for every time you can go in, this method of XP is now drastically lessened. Although not a bad form of XP, I think there are better methods. I was wondering if somebody would be able to make those options viable, for example; the white knights in Falador. Setting a spawn point to that exact spot is perfect because you won't need food or any items, just fight until you die. Now this one may be a little bit more difficult, but I was wondering about a pest control script. I know this may be better suited for a different thread, but since this one seems active and has good script-writers so I figured I'd just post it here.

Link to comment
Share on other sites

Now that the fight caves have a timer for every time you can go in, this method of XP is now drastically lessened. Although not a bad form of XP, I think there are better methods. I was wondering if somebody would be able to make those options viable, for example; the white knights in Falador. Setting a spawn point to that exact spot is perfect because you won't need food or any items, just fight until you die. Now this one may be a little bit more difficult, but I was wondering about a pest control script. I know this may be better suited for a different thread, but since this one seems active and has good script-writers so I figured I'd just post it here.

 

I like the falador castle idea, although you would become prone to random events :\

Link to comment
Share on other sites

I like the falador castle idea, although you would become prone to random events :\
True, but I'm getting random events a lot now because of the fight cave timer as well. Not sure what else could be done.

 

Edit: Just came up with a pretty good idea, I think people will like it.

How about after dying in the fight caves, the script logs you out for "X" amount of an input time? This will reduce the random event chance greatly and will keep you getting XP.

Edited by Russy
Link to comment
Share on other sites

True, but I'm getting random events a lot now because of the fight cave timer as well. Not sure what else could be done.

 

Edit: Just came up with a pretty good idea, I think people will like it.

How about after dying in the fight caves, the script logs you out for "X" amount of an input time? This will reduce the random event chance greatly and will keep you getting XP.

 

I think this would seem pretty obvious to Jagex that it is a macro if it logs out EVERY time after dying in the fight pits, however, if you're willing to try add it I will try and help you (code wise) :P

Link to comment
Share on other sites

オンライン カジノは、プレイヤーが自宅にいながらにしてポーカー、ルーレット、ブラックジャック、スロットなどのギャンブル ゲームを楽しむ機会を提供する仮想プラットフォームです。 オンラインカジノは、アクセスのしやすさ、ゲームの種類の多さ、そして大金を獲得する機会があるため、年々人気が高まっています。

オンラインカジノの主な利点は、利便性とアクセスしやすさです。 プレイヤーは、通常のカジノの営業時間に制限されず、いつでもゲームを楽しむことができます。 必要なのは、インターネットにアクセスできるデバイスと、カジノのウェブサイトにアクセスできることだけです。 これにより、プレイヤーは従来のカジノによくありがちなストレスや緊張を感じることなく、快適な環境でプレイすることができます。

オンラインカジノのもう1つの利点は、ゲームの選択肢が豊富なことです。 ユーザーは、それぞれ独自のルールと勝利の機会を提供する何百もの異なるゲームから選択できます。 技術革新のおかげで、オンライン ゲームのグラフィックとサウンドは高品質になり、プレイヤーは興奮と情熱の雰囲気に浸ることができます。

さまざまなゲームに加えて、オンライン カジノはプレーヤーにさまざまなボーナスやプロモーションも提供します。 これらは、スロットのフリースピン、プレイのための追加のお金、または貴重な賞品が得られる特別なトーナメントなどです。 このようなボーナスにより、勝利の可能性が高まり、ゲームがさらに楽しくなります。

もちろん、オンラインカジノでのプレイにはリスクがあります。 ギャンブルには依存性がある可能性があるため、自分の感情を監視し、支出をコントロールすることが重要であることを覚えておくことが重要です。 カジノはまた、責任あるゲーミングをサポートし、自己排除や賭け金制限の機会を提供します ポルノハブ 動画ダウンロード

全体として、オンライン カジノはギャンブル愛好家にとって便利でエキサイティングなエンターテイメントを提供します。 幅広いゲーム、ボーナスの選択肢があり、いつでもプレイできるため、世界中のプレイヤーの間で人気が高まっています。 ただし、責任あるゲームと、ゲームが単なる楽しみと娯楽の源であるように自分の行動を制御する能力について覚えておくことが重要です。
Link to comment
Share on other sites

Выбор отеля это один из самых важных аспектов планирования поездки. Комфортабельное и безопасное место для отдыха может значительно повлиять на воспоминания от путешествия. Вот несколько советов, помогающие вам выбрать хороший отель.

1. Определите свои приоритеты

До этого чем начать поиск отеля, подумайте про то, что для вас принципиально. Желаете ли вы:

- Близость к туристским достопримечательностям?
- Наличие бассейна либо спа?
- Хранение багажа и трансфер из аэропорта?
- Доступ к публичному транспорту?
- Дополнительные услуги, такие как завтрак или безвозмездный Wi-Fi?

Запишите свои ценности, чтобы потом легче было ориентироваться среди предложений.

2. Изучите отзывы

Номером один в списке надежных способов оценить качество отеля являются отзывы предыдущих гостей. Платформы как TripAdvisor, либо Гугл Maps предоставляют много информации о реальном состоянии отелей. Обратите внимание не только на количество звезд, но и на персональные отзывы. Читайте как положительные, так и отрицательные комменты, чтобы получить полное представление об отеле.

3. Проверьте расположение

Расположение отеля может значительно повлиять на вашу поездку. Выберите район, который комфортен для ваших планов, будь то экскурсии, шопинг или вечерние прогулки. Используйте игра в карты и приложения, чтобы осознать, какие достопримечательности находятся рядом и как удобно добираться до них.

4. Сравните цены

Не стоит соглашаться на 1-ое попавшееся предложение. Используйте разные платформы для сравнения цен и проверьте специальные предложения или скидки. Часто фиксированное распределение через официальные сайты отелей может дать дополнительные преимущества, в том числе безвозмездный завтрак либо улучшение номера.

5. Уточните условия отмены

До бронирования главно ознакомиться с условиями отмены. Иногда неожиданные происшествия могут вынудить вас изменить планы, и наличие гибких критерий аннулирования готов стать решающим фактором в момент выбора отеля.

6. Обратите внимание на услуги

Разные гостиницы Отели Новочебоксарск предлагают разные услуги. Удостоверьтесь, что вас интересуют все нужные удобства, в том числе бесплатный Wi-Fi, парковка, работающий круглые сутки ресепшен, трансфер в аэропорт и так далее Также проверьте наличие дополнительных услуг, таких как фитнес-зал или ресторан, если они для вас важны.

7. Учитывайте звезды и рейтинг

Хотя количество звезд не всегда является показателем качества, оно может помочь вам не растеряться в категориях отелей. Однако не забывайте, что в разных странах стандарты различаются. Поэтому превосходнее ориентироваться не только на звезды, да и на реальные отзывы.

8. Общайтесь с персоналом

Перед поездкой можно связаться с отелем и задать интересующие вас вопросы. Это окажет вам помощь оценить уровень сервиса и воспитанности персонала, но также выяснить, сумеет ли отель удовлетворить ваши запросы.

Напоследок

Выбор хорошего отеля это ключевой момент для успешного путешествия. Проводя время на исследование и тщательное планирование, у вас есть возможность найти идеальное место для отдыха, которое сделает ваше путешествие комфортным и запоминающимся. Не побаивайтесь спрашивать различаться предложения это сбережет для вас деньги и время, а также обеспечит хороший отдых.
Link to comment
Share on other sites

Sports Betting: A Comprehensive Guide

Sports betting has become a global phenomenon, captivating millions of enthusiasts with its blend of excitement, strategy, and the potential for financial gain. This article aims to provide a comprehensive overview of sports betting, exploring its history, popular types, strategies, and the legal landscape.

A Brief History

Sports betting dates back to ancient civilizations, where wagers were placed on events such as chariot races and gladiatorial contests. Over the centuries, the practice evolved, encompassing a wide range of sports and becoming a formalized industry in the modern era. Today, sports betting is a multi-billion-dollar industry with a substantial presence both online and offline.

Types of Sports Bets

There are several types of bets that one can place on sports events, including:

1. Moneyline Bets: The simplest form of betting where you pick the winner of a game or match.
2. Point Spread Bets: This bet involves predicting the margin of victory.
3. Over/Under Bets: Also known as totals, these bets are placed on the total number of points scored by both teams combined.
4. Prop Bets: These are bets on specific outcomes within a game, such as the first team to score.
5. Futures Bets: Bets placed on events that will happen in the future, like who will win the championship at the end of the season.

Strategies for Successful Betting

Successful sports betting requires more than just luck. Here are some strategies to consider:

1. Research and Analysis: Study the teams, players, and historical performance data https://www.dnnsoftware.com/activity-feed/my-profile/userid/3215474
2. Bankroll Management: Set a budget and stick to it, avoiding the temptation to chase losses.
3. Understanding Odds: Learn how to read and understand betting odds to make informed decisions.
4. Shop for the Best Lines: Different sportsbooks offer different odds and payouts, so shop around for the best deals.

The Legal Landscape

The legality of sports betting varies around the world. In some countries, it is fully legalized and regulated, while in others, it is either restricted or outright banned. The advent of online sportsbooks has also added a layer of complexity, as bettors can now place wagers from pretty much anywhere, often bypassing local regulations.

Conclusion

Sports betting continues to grow in popularity, attracting a diverse audience from casual fans to hardcore enthusiasts. With the right approach, including diligent research and disciplined bankroll management, it can be both an exciting and rewarding venture. However, it's essential to understand the risks involved and to always gamble responsibly.
Link to comment
Share on other sites

Как найти аудиопоздравления на телефон: полезные советы

Праздничные деньки и особые события в прекрасной жизни отличная возможность изумить своих близких оригинальным поздравлением. Ежели вы хотите отправить аудиопоздравление на телефон, но не знаете, с чего же стоит начать, эта статья поможет вам отыскать подходящие решения.

1. Поиск готовых аудиопоздравлений

Существует огромное количество ресурсов, где можно отыскать готовые аудиопоздравления:
- Веб-сайты специальные сайты и онлайн-дневники делают отличное предложение коллекции аудиопоздравлений на разные удачный поводы: деньки рождения, anniversaries, Новый год и прочие празднички. Воспользуйтесь запросами в поисковике, в том числе аудиопоздравления скачать или аудиопоздравления на телефон.
- Приложения многие мобильные приложения для сотворения поздравлений делают отличное предложение встроенные аудиофайлы. Попытайтесь установить прибавленья, такие как "Пожелания" или "Картинки и пожеланья".

2. Запись собственного аудиопоздравления

Если вы желаете добавить личный штришок, запишите пожеланье сами:
- Телефон используйте приложение для записи звука (встроенное в телефон либо сторонние прибавленья). Просто нажмите на запись, произнесите пожелание и сохраните файл.
- Редактирование при помощи приложений для редактирования звука (например, Audacity либо GarageBand) вы можете добавить музыку, эффекты либо улучшить качество записи.

3. Отправка аудиопоздравления

После того как вы нашли либо записали аудиопоздравление, вам необходимо выслать его:
- ММС вы сможете отправить аудиофайл через MMS. Просто выберите файл и отправьте его, как обычное известие.
- Мессенджеры воспользуйтесь популярными прибавленьями, такими как WhatsApp, Viber либо Telegram, чтоб выслать аудиозапись. Всегда есть возможность прибавленья текста и эмодзи, чтоб сделать пожелание более выразительным.
- Email если нужно отправить длинный https://audiosms.ru/ файл, используйте электронную почту. Прикрепите аудиофайл к извещению и отправьте его адресату.

4. Использование социальных сетей

Если вы хотите сделать пожеланье более общественным, опубликуйте его в нужных страницах в социальных сетях:
- Instagram Stories или Facebook загрузите аудиофайл или добавьте его в видео, которое можно оформить с помощью благовидных фонов и фильтров.
- VK вы можете сделать пост с аудиозаписью и поделиться им с друзьями или в сообществах.

Заключение

Аудиопоздравления это хороший способ удивить и порадовать близких. Выбор готовых аудиофайлов, создание собственного пожелания либо внедрение мессенджеров и социальных сетей это все поможет вам найти безупречный метод поздравить собственных приятелей и родных. Не побаивайтесь проявлять креативность, и ваш подарок станет незабываемым!
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
  • Create New...