Здраствуйте, сейчас я вам расскажу как сделать систему рекламы, а именно рекламных щитов и рекламных листков.
Ко всем #define:
Code
#define MAX_REKLAMA 130// Макс. количество рекламных 3D текстов
Ко всем new:
Code
new Text3D:rekltext[130];//130 символов для рекламы
Перед enum bInfo вставляем:
Code
enum rInfo { rOwned, // листок или щит свободен или нет // ниже позиции Float:rPos_X, Float:rPos_Y, Float:rPos_Z, rText[1024], // текст rType // тип (1 - щит, 2 - листок) }; new ReklamaInfo[MAX_REKLAMA][rInfo];
Перед public LoadSBizz() вставляем:
Code
forward LoadReklama(); public LoadReklama() { new arrCoords[6][64]; new strFromFile2[256]; new File: file = fopen("reklama.cfg", io_read); new idx; if(file) { while (idx < sizeof(ReklamaInfo)) { fread(file, strFromFile2); split(strFromFile2, arrCoords, ','); ReklamaInfo[idx][rOwned] = strval(arrCoords[0]); ReklamaInfo[idx][rPos_X] = floatstr(arrCoords[1]); ReklamaInfo[idx][rPos_Y] = floatstr(arrCoords[2]); ReklamaInfo[idx][rPos_Z] = floatstr(arrCoords[3]); strmid(ReklamaInfo[idx][rText], arrCoords[4], 0, strlen(arrCoords[4]), 255); ReklamaInfo[idx][rType] = strval(arrCoords[5]); idx++; } fclose(file); print("Система рекламных щитов успешно загружена!"); printf("Загружено рекламных щитов: %d",idx); } return 1; }
В public OnGameModeInit():
Code
new Float:radius; new buffer[256]; for(new r = 0; r < sizeof(ReklamaInfo); r++) { if(ReklamaInfo[r][rOwned] == 1) { if(ReklamaInfo[r][rType] == 1) { format(buffer,sizeof(buffer),"Рекламный листок:\n%s",ReklamaInfo[r][rText]); radius = 50; } else { format(buffer,sizeof(buffer),"Рекламный щит:\n%s",ReklamaInfo[r][rText]); radius = 150; } } else { if(ReklamaInfo[r][rType] == 1) { format(buffer,sizeof(buffer),"Здесь могла быть ваша реклама!\nРекламное место [№%d]\nОбращаться в LS News или SF News",r); radius = 50; } else { format(buffer,sizeof(buffer),"Здесь могла быть ваша реклама!\nРекламное место [№%d]\nОбращаться в LS News или SF News",r); radius = 150; } } rekltext[r] = CreateDynamic3DTextLabel(buffer, COLOR_LIGHTBLUE, ReklamaInfo[r][rPos_X], ReklamaInfo[r][rPos_Y], ReklamaInfo[r][rPos_Z], radius, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, 0, 0, -1, radius); // я использую стример by Incognito }