Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

 Страниц (7): « 1 [2] 3 4 5 6 7 »   

> Описание: Упаковка нужных файлов в ресурсы exe. Изображения, данные и т.д.
Kibor
Отправлено: 11 Марта, 2015 - 11:59:03
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




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

гг(для просмотра ссылки Вам необходимо авторизоваться)
распаковывайте в темп.
tempfolder() - возвращает string.. путь к временной папке.

если оч хочется трите потом их вписав в них какую то ерунду.
 
 Top
yo1
Отправлено: 11 Марта, 2015 - 12:14:27
Post Id



Пользователь
Участник


Покинул форум
Сообщений всего: 110
Дата рег-ции: Окт. 2014  
Репутация: 0




Т.е. подгружать картинку из темпа будет шустрее? Чем например держать её в таком виде:
CODE:
Image_1[0][0]=5265282; Image_1[1][0]=5265282; Image_1[2][0]=5265282;
Image_1[0][1]=6054030; Image_1[1][1]=6054030; Image_1[2][1]=6054030;
Image_1[0][2]=4607362; Image_1[1][2]=4607362; Image_1[2][2]=4607362;
Image_1[0][3]=3686015; Image_1[1][3]=3686015; Image_1[2][3]=3686015;
Image_1[0][4]=2897277; Image_1[1][4]=2897277; Image_1[2][4]=2897277;
Image_1[0][5]=1121401; Image_1[1][5]=1121401; Image_1[2][5]=1121401;
Image_1[0][6]=1384585; Image_1[1][6]=1384585; Image_1[2][6]=1384585;
Image_1[0][7]=1582484; Image_1[1][7]=1582484; Image_1[2][7]=1582484;
Image_1[0][8]=2043042; Image_1[1][8]=2043042; Image_1[2][8]=2043042;
Image_1[0][9]=2634914; Image_1[1][9]=2634914; Image_1[2][9]=2634914;
 
 Top
Kibor
Отправлено: 11 Марта, 2015 - 12:21:54
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




 yo1 пишет:
Т.е. подгружать картинку из темпа будет шустрее? Чем например держать её в таком виде:

??????

ну не ресурсы ж игры десяти гигабатной грузите...
))
разницы по времени не увидите...
ну сделаю наверно функцию загрузки с ресурса.. только в массив char. а там сами обрабатывайте... думаю будет дольше
 
 Top
yo1
Отправлено: 11 Марта, 2015 - 12:48:15
Post Id



Пользователь
Участник


Покинул форум
Сообщений всего: 110
Дата рег-ции: Окт. 2014  
Репутация: 0




 Kibor пишет:
??????

Об этом я писал.
Т.к. возможности проверить нет, поэтому и интересуюсь, в какой случае скрипт будет быстрее работать.
1) если в самом коде будут храниться ~10 картинок (ссылка выше)
2) картинки будут подтягиваться из темпа
 
 Top
Kibor
Отправлено: 11 Марта, 2015 - 16:25:29
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




Если очень надо, добавил функцию resource

можно загрузить файл с ресурса в массив char без распаковки
 Цитата:
char buf[1000000];
resource(#buf[0], "C:\images.bmp"); //загружает в массив buf с ресурса файл обозначенный "C:\images.bmp" в блоке RESOURCE
RESOURCE
{
"C:\images.bmp" ;
}

Возвращает количество загруженных байт.

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

для этого можно использовать этот скрипт
 Цитата:
//создать папку C:\images и скинуть в нее все bmp
//создать в этой папке папку image_res (C:\images\image_res). в ней бут конвертованные файлы
string pyt="C:\images\";
string file_bmp[1000];
int kol, n;


kol=dir(pyt, #file_bmp[0], "file", "bmp");//узнаем все bmp
for (n=0; n<kol; n++)//перечислить все bmp и конверт их
{
if (bmpt()==-1){messagebox (ошибочка.); goto er;}
}
er:;

function bmpt()
{
int ImageS[500][500];
int x, y, x1, y1;
char byt[4];
if (loadimage (#ImageS[0][0], pyt+file_bmp[n])<1)return -1;
x=imagewidth(#ImageS[0][0]);
y=imageheight(#ImageS[0][0]);

if (fopen (pyt+"image_res\"+file_bmp[n]+"t", "wb")!=0)
{
codhex(x, #byt[0]);//Конвертируем число int 4 байт x в HEX (ширина)
fwriteb(byt[0]);fwriteb(byt[1]);fwriteb(byt[2]);fwriteb(byt[3]);
codhex(y, #byt[0]);//Конвертируем число int 4 байт y в HEX (высота)
fwriteb(byt[0]);fwriteb(byt[1]);fwriteb(byt[2]);fwriteb(byt[3]);
for (y1=0; y1<y; y1++)
{
for (x1=0; x1<x; x1++)
{
codhex(ImageS[x1][y1], #byt[0]);//Конвертируем число int 4 байт ImageS[x1][y1] в HEX (цвет)
fwriteb(byt[0]);
fwriteb(byt[1]);
fwriteb(byt[2]);
fwriteb(byt[3]);
}
}
fclose();
}
return 0;
}


потом поместить в ресурсы файла с папки C:\images\image_res с расширением bmpt

с ресурса использовать с помощью resource так
CODE:
int image[500][500];
int i5[500][500];
loadimage_res(#image[0][0], "C:\images\image_res\image0.bmpt");
loadimage_res(#i5[0][0], "C:\images\image_res\5.bmpt");



function loadimage_res(int #images[0][0], string pyt);
{
char buf[1000000];
int sezbuf;
int n, x, y, x1, y1;
sezbuf=resource(#buf[0], pyt);
n=0; x=codhexi(#buf[n], 4);//перевести HEX код 4 байт с целое число int x
n=4; y=codhexi(#buf[n], 4);//перевести HEX код 4 байт с целое число int x
n=8;
for (y1=0; y1<y; y1++)
{
for (x1=0; x1<x; x1++)
{
images[x1][y1]=codhexi(#buf[n], 4);//перевести HEX код 4 байт с целое число int image[x1][y1]
n=n+4;
}
}
for (x1=0; x1<=x; x1++)images[x1][y]=-1;//забить границу -1 в целое число int ImageS[x1][y1]
for (y1=0; y1<=y; y1++)images[x][y1]=-1;//забить границу -1 в целое число int ImageS[x1][y1]
}

RESOURCE
{
"C:\images\image_res\image0.bmpt";
"C:\images\image_res\5.bmpt" ;
}
 
 Top
Skycrew
Отправлено: 11 Марта, 2015 - 19:53:57
Post Id



Пользователь
Мастер


Покинул форум
Сообщений всего: 123
Дата рег-ции: Июль 2014  
Репутация: 0




А можно сделать так? Задаем файлы на загрузку в RESOURCE и в скрипте вызываем их функцией "loadimageRes" (или как-то так) и все по аналогии загрузки картинок с диска, только в данном случае картинки берутся прямо из запакованного exe-шника.
 
 Top
Kibor
Отправлено: 11 Марта, 2015 - 20:35:53
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




 Skycrew пишет:
А можно сделать так? Задаем файлы на загрузку в RESOURCE и в скрипте вызываем их функцией "loadimageRes" (или как-то так) и все по аналогии загрузки картинок с диска, только в данном случае картинки берутся прямо из запакованного exe-шника.

сделаю будет можно. пока не.

сделал проще.. и меньше размер файла..

для создания файла прогнать этот скрипт
 Цитата:
//создать папку C:\images и скинуть в нее все bmp
//создать в этой папке папку image_res (C:\images\image_res). в ней бут конвертованные файлы
string pyt="C:\images\";
string file_bmp[1000];
int kol, n;


kol=dir(pyt, #file_bmp[0], "file", "bmp");//узнаем все bmp
for (n=0; n<kol; n++)//перечислить все bmp и конверт их
{
if (bmpt()==-1){messagebox (ошибочка.); goto er;}
}
er:;

function bmpt()
{
int ImageS[500][500];
int x, y, x1, y1;
char byt[4];
if (loadimage (#ImageS[0][0], pyt+file_bmp[n])<1)return -1;
x=imagewidth(#ImageS[0][0]);
y=imageheight(#ImageS[0][0]);

if (fopen (pyt+"image_res\"+file_bmp[n]+"t", "wb")!=0)
{
codhex(x, #byt[0]);//Конвертируем число int 4 байт x в HEX (ширина)
fwriteb(byt[0]);fwriteb(byt[1]);fwriteb(byt[2]);fwriteb(byt[3]);
codhex(y, #byt[0]);//Конвертируем число int 4 байт y в HEX (высота)
fwriteb(byt[0]);fwriteb(byt[1]);fwriteb(byt[2]);fwriteb(byt[3]);
for (y1=0; y1<y; y1++)
{
for (x1=0; x1<x; x1++)
{
fwriteb(formatic(rvalue(ImageS[x1][y1])));
fwriteb(formatic(gvalue(ImageS[x1][y1])));
fwriteb(formatic(bvalue(ImageS[x1][y1])));
}
}
fclose();
}
return 0;
}


использовать так
 Цитата:
int image[500][500];
int i5[500][500];
loadimage_res(#image[0][0], "C:\images\image_res\image0.bmpt");
loadimage_res(#i5[0][0], "C:\images\image_res\5.bmpt");



function loadimage_res(int #images[0][0], string pyt);
{
char buf[1000000];
int sezbuf;
int n, x, y, x1, y1;
sezbuf=resource(#buf[0], pyt);
n=0; x=codhexi(#buf[n], 4);//перевести HEX код 4 байт с целое число int x
n=4; y=codhexi(#buf[n], 4);//перевести HEX код 4 байт с целое число int x
n=8;
for (y1=0; y1<y; y1++)
{
for (x1=0; x1<x; x1++)
{
images[x1][y1]=rgb(formatci(buf[n]), formatci(buf[n+1]), formatci(buf[n+2]));
n=n+3;
}
}
for (x1=0; x1<=x; x1++)images[x1][y]=-1;//забить границу -1 в целое число int ImageS[x1][y1]
for (y1=0; y1<=y; y1++)images[x][y1]=-1;//забить границу -1 в целое число int ImageS[x1][y1]
}

RESOURCE
{
"C:\images\image_res\image0.bmpt" ;
"C:\images\image_res\5.bmpt" ;
}
 
 Top
Kibor
Отправлено: 12 Марта, 2015 - 02:20:19
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




Для теста распаковки в папку темп можно скачать этот файл
http://kibor-bot.com/files/test_RESOURCE.rar
В нем 41 рисунок и 1 аудио файл.

распаковка в папку темп этих файлов, загрузка в loadimage и включение музыки занимает менее 50 мсек... с пере сохранением, saveimage в папку программы уже после загрузки loadimage 80 мсек..
говорить о каких то задержках не приходится..

код программы
 Цитата:
int zv_vbor[41][40];
int karta1[6][6];
int radiaciya[15][12];
int skil_s1[30][18];
int skil_s2[30][18];
int skil_s3[30][18];
int skil_s4[30][18];
int karta[25][32];
int skil[38][38];
int gru[15][8];
int rem[13][9];
int xp_moi[2][4];
int xp_moi_inv[2][4];
int koord_ch[11][12][12];
int porti[9][9];
int kart_open[20][11];
int baza[7][7];
int baza1[7][7];
int baza2[7][7];
int soedi[53][7];
int fishka[16][13];
int port_beg[4][11];
int porti[9][9];
int knt[7][7];
int targ[7][29][11];
int teleportir[67][8];

string temp_fold;
string path_fold=pathfolder();

int tim=gettime();

unpack("C:\images\0.bmp", temp_fold+"0.bmp", 1);
unpack("C:\images\1.bmp", temp_fold+"1.bmp", 1);
unpack("C:\images\2.bmp", temp_fold+"2.bmp", 1);
unpack("C:\images\3.bmp", temp_fold+"3.bmp", 1);
unpack("C:\images\4.bmp", temp_fold+"4.bmp", 1);
unpack("C:\images\5.bmp", temp_fold+"5.bmp", 1);
unpack("C:\images\6.bmp", temp_fold+"6.bmp", 1);
unpack("C:\images\7.bmp", temp_fold+"7.bmp", 1);
unpack("C:\images\8.bmp", temp_fold+"8.bmp", 1);
unpack("C:\images\9.bmp", temp_fold+"9.bmp", 1);
unpack("C:\images\10.bmp", temp_fold+"10.bmp", 1);
unpack("C:\images\baza.bmp", temp_fold+"baza.bmp", 1);
unpack("C:\images\baza1.bmp", temp_fold+"baza1.bmp", 1);
unpack("C:\images\baza2.bmp", temp_fold+"baza2.bmp", 1);
unpack("C:\images\fishka.bmp", temp_fold+"fishka.bmp", 1);
unpack("C:\images\gru.bmp", temp_fold+"gru.bmp", 1);
unpack("C:\images\karta.bmp", temp_fold+"karta.bmp", 1);
unpack("C:\images\karta1.bmp", temp_fold+"karta1.bmp", 1);
unpack("C:\images\kart_open.bmp", temp_fold+"kart_open.bmp", 1);
unpack("C:\images\knt.bmp", temp_fold+"knt.bmp", 1);
unpack("C:\images\porti.bmp", temp_fold+"porti.bmp", 1);
unpack("C:\images\port_beg.bmp", temp_fold+"port_beg.bmp", 1);
unpack("C:\images\radiaciya.bmp", temp_fold+"radiaciya.bmp", 1);
unpack("C:\images\rem.bmp", temp_fold+"rem.bmp", 1);
unpack("C:\images\skil.bmp", temp_fold+"skil.bmp", 1);
unpack("C:\images\skil_s1.bmp", temp_fold+"skil_s1.bmp", 1);
unpack("C:\images\skil_s2.bmp", temp_fold+"skil_s2.bmp", 1);
unpack("C:\images\skil_s3.bmp", temp_fold+"skil_s3.bmp", 1);
unpack("C:\images\skil_s4.bmp", temp_fold+"skil_s4.bmp", 1);
unpack("C:\images\soedi.bmp", temp_fold+"soedi.bmp", 1);
unpack("C:\images\targ1.bmp", temp_fold+"targ1.bmp", 1);
unpack("C:\images\targ2.bmp", temp_fold+"targ2.bmp", 1);
unpack("C:\images\targ3.bmp", temp_fold+"targ3.bmp", 1);
unpack("C:\images\targ4.bmp", temp_fold+"targ4.bmp", 1);
unpack("C:\images\targ5.bmp", temp_fold+"targ5.bmp", 1);
unpack("C:\images\targ6.bmp", temp_fold+"targ6.bmp", 1);
unpack("C:\images\targ7.bmp", temp_fold+"targ7.bmp", 1);
unpack("C:\images\teleportir.bmp", temp_fold+"teleportir.bmp", 1);
unpack("C:\images\xp_moi.bmp", temp_fold+"xp_moi.bmp", 1);
unpack("C:\images\xp_moi_inv.bmp", temp_fold+"xp_moi_inv.bmp", 1);
unpack("C:\images\zv_vbor.bmp", temp_fold+"zv_vbor.bmp", 1);

loadimage(#koord_ch[0][0][0], temp_fold+"0.bmp");
loadimage(#koord_ch[1][0][0], temp_fold+"1.bmp");
loadimage(#koord_ch[2][0][0], temp_fold+"2.bmp");
loadimage(#koord_ch[3][0][0], temp_fold+"3.bmp");
loadimage(#koord_ch[4][0][0], temp_fold+"4.bmp");
loadimage(#koord_ch[5][0][0], temp_fold+"5.bmp");
loadimage(#koord_ch[6][0][0], temp_fold+"6.bmp");
loadimage(#koord_ch[7][0][0], temp_fold+"7.bmp");
loadimage(#koord_ch[8][0][0], temp_fold+"8.bmp");
loadimage(#koord_ch[9][0][0], temp_fold+"9.bmp");
loadimage(#koord_ch[10][0][0], temp_fold+"10.bmp");
loadimage(#baza[0][0], temp_fold+"baza.bmp");
loadimage(#baza1[0][0], temp_fold+"baza1.bmp");
loadimage(#baza2[0][0], temp_fold+"baza2.bmp");
loadimage(#fishka[0][0], temp_fold+"fishka.bmp");
loadimage(#gru[0][0], temp_fold+"gru.bmp");
loadimage(#karta[0][0], temp_fold+"karta.bmp");
loadimage(#karta1[0][0], temp_fold+"karta1.bmp");
loadimage(#kart_open[0][0], temp_fold+"kart_open.bmp");
loadimage(#knt[0][0], temp_fold+"knt.bmp");
loadimage(#porti[0][0], temp_fold+"porti.bmp");
loadimage(#port_beg[0][0], temp_fold+"port_beg.bmp");
loadimage(#radiaciya[0][0], temp_fold+"radiaciya.bmp");
loadimage(#rem[0][0], temp_fold+"rem.bmp");
loadimage(#skil[0][0], temp_fold+"skil.bmp");
loadimage(#skil_s1[0][0], temp_fold+"skil_s1.bmp");
loadimage(#skil_s2[0][0], temp_fold+"skil_s2.bmp");
loadimage(#skil_s3[0][0], temp_fold+"skil_s3.bmp");
loadimage(#skil_s4[0][0], temp_fold+"skil_s4.bmp");
loadimage(#soedi[0][0], temp_fold+"soedi.bmp");
loadimage(#targ[0][0][0], temp_fold+"targ1.bmp");
loadimage(#targ[1][0][0], temp_fold+"targ2.bmp");
loadimage(#targ[2][0][0], temp_fold+"targ3.bmp");
loadimage(#targ[3][0][0], temp_fold+"targ4.bmp");
loadimage(#targ[4][0][0], temp_fold+"targ5.bmp");
loadimage(#targ[5][0][0], temp_fold+"targ6.bmp");
loadimage(#targ[6][0][0], temp_fold+"targ7.bmp");
loadimage(#teleportir[0][0], temp_fold+"teleportir.bmp");
loadimage(#xp_moi[0][0], temp_fold+"xp_moi.bmp");
loadimage(#xp_moi_inv[0][0], temp_fold+"xp_moi_inv.bmp");
loadimage(#zv_vbor[0][0], temp_fold+"zv_vbor.bmp");


if (getcontrol(CHECK_0)==1)
{
saveimage(#koord_ch[0][0][0], path_fold+"0.bmp");
saveimage(#koord_ch[1][0][0], path_fold+"1.bmp");
saveimage(#koord_ch[10][0][0], path_fold+"10.bmp");
saveimage(#koord_ch[2][0][0], path_fold+"2.bmp");
saveimage(#koord_ch[3][0][0], path_fold+"3.bmp");
saveimage(#koord_ch[4][0][0], path_fold+"4.bmp");
saveimage(#koord_ch[5][0][0], path_fold+"5.bmp");
saveimage(#koord_ch[6][0][0], path_fold+"6.bmp");
saveimage(#koord_ch[7][0][0], path_fold+"7.bmp");
saveimage(#koord_ch[8][0][0], path_fold+"8.bmp");
saveimage(#koord_ch[9][0][0], path_fold+"9.bmp");
saveimage(#baza[0][0], path_fold+"baza.bmp");
saveimage(#baza1[0][0], path_fold+"baza1.bmp");
saveimage(#baza2[0][0], path_fold+"baza2.bmp");
saveimage(#fishka[0][0], path_fold+"fishka.bmp");
saveimage(#gru[0][0], path_fold+"gru.bmp");
saveimage(#karta[0][0], path_fold+"karta.bmp");
saveimage(#karta1[0][0], path_fold+"karta1.bmp");
saveimage(#kart_open[0][0], path_fold+"kart_open.bmp");
saveimage(#knt[0][0], path_fold+"knt.bmp");
saveimage(#porti[0][0], path_fold+"porti.bmp");
saveimage(#port_beg[0][0], path_fold+"port_beg.bmp");
saveimage(#radiaciya[0][0], path_fold+"radiaciya.bmp");
saveimage(#rem[0][0], path_fold+"rem.bmp");
saveimage(#skil[0][0], path_fold+"skil.bmp");
saveimage(#skil_s1[0][0], path_fold+"skil_s1.bmp");
saveimage(#skil_s2[0][0], path_fold+"skil_s2.bmp");
saveimage(#skil_s3[0][0], path_fold+"skil_s3.bmp");
saveimage(#skil_s4[0][0], path_fold+"skil_s4.bmp");
saveimage(#soedi[0][0], path_fold+"soedi.bmp");
saveimage(#targ[0][0][0], path_fold+"targ1.bmp");
saveimage(#targ[1][0][0], path_fold+"targ2.bmp");
saveimage(#targ[2][0][0], path_fold+"targ3.bmp");
saveimage(#targ[3][0][0], path_fold+"targ4.bmp");
saveimage(#targ[4][0][0], path_fold+"targ5.bmp");
saveimage(#targ[5][0][0], path_fold+"targ6.bmp");
saveimage(#targ[6][0][0], path_fold+"targ7.bmp");
saveimage(#teleportir[0][0], path_fold+"teleportir.bmp");
saveimage(#xp_moi[0][0], path_fold+"xp_moi.bmp");
saveimage(#xp_moi_inv[0][0], path_fold+"xp_moi_inv.bmp");
saveimage(#zv_vbor[0][0], path_fold+"zv_vbor.bmp");
messagebox ("Распаковка в папку темп и загрузка loadimage всех рисунков и пересохранение их заняло "+format(gettime()-tim)+" мсек.");
}
else messagebox ("Распаковка в папку темп и загрузка loadimage всех рисунков заняло "+format(gettime()-tim)+" мсек.");

RESOURCE
{
"C:\images\0.bmp";
"C:\images\1.bmp";
"C:\images\10.bmp";
"C:\images\2.bmp";
"C:\images\3.bmp";
"C:\images\4.bmp";
"C:\images\5.bmp";
"C:\images\6.bmp";
"C:\images\7.bmp";
"C:\images\8.bmp";
"C:\images\9.bmp";
"C:\images\baza.bmp";
"C:\images\baza1.bmp";
"C:\images\baza2.bmp";
"C:\images\fishka.bmp";
"C:\images\gru.bmp";
"C:\images\karta.bmp";
"C:\images\karta1.bmp";
"C:\images\kart_open.bmp";
"C:\images\knt.bmp";
"C:\images\porti.bmp";
"C:\images\port_beg.bmp";
"C:\images\radiaciya.bmp";
"C:\images\rem.bmp";
"C:\images\skil.bmp";
"C:\images\skil_s1.bmp";
"C:\images\skil_s2.bmp";
"C:\images\skil_s3.bmp";
"C:\images\skil_s4.bmp";
"C:\images\soedi.bmp";
"C:\images\targ1.bmp";
"C:\images\targ2.bmp";
"C:\images\targ3.bmp";
"C:\images\targ4.bmp";
"C:\images\targ5.bmp";
"C:\images\targ6.bmp";
"C:\images\targ7.bmp";
"C:\images\teleportir.bmp";
"C:\images\xp_moi.bmp";
"C:\images\xp_moi_inv.bmp";
"C:\images\zv_vbor.bmp";
"C:\club.wav";
}

INITDIALOG
{
temp_fold=tempfolder();
unpack("C:\club.wav", temp_fold+"club.wav", 1);
sound (temp_fold+"club.wav", 1);
}

CREATE_INTERFACE
{
DIALOG "тест unpack" 437 100
BUTTONSCRIPT "Запустить" 15 41 400 25
CHECK_0 0 "После распаковки и загрузки пересохранить в папку программы" 10 10 355 18
}
 
 Top
Skycrew
Отправлено: 12 Марта, 2015 - 10:32:09
Post Id



Пользователь
Мастер


Покинул форум
Сообщений всего: 123
Дата рег-ции: Июль 2014  
Репутация: 0




Спасибо! Будем это дело юзать.
 
 Top
rastaman
Отправлено: 25 Декабря, 2016 - 16:13:25
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 16
Дата рег-ции: Дек. 2016  
Репутация: 0




а можно снять видосик как это все делается? Закатив глазки
 
 Top
Страниц (7): « 1 [2] 3 4 5 6 7 »
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« О программе Кибор »


Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by