Pawno-SAMP
Главная
Вход
Регистрация
Вторник, 15.07.2025, 23:06Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
[Урок] Добавляем рекламные щиты
UlkiorraJeezyДата: Суббота, 14.07.2012, 14:45 | Сообщение # 1
Лейтенант
Группа: Администраторы
Сообщений: 71
Репутация: 0
Статус: Offline
1.Ко всем #define:
Code
#define MAX_REKLAMA 130//Макс. количество рекламных 3D текстов  

2. Ко всем Enum
Code
enum rInfo  
{  
rOwned,  
Float:rPos_X,  
Float:rPos_Y,  
Float:rPos_Z,  
rText[1024],  
rType  
};  
new ReklamaInfo[MAX_REKLAMA][rInfo]; // Рекламаинфо  

3. В public OnGameModeInit()
после for(new h = 0; h < sizeof(SBizzInfo); h++) у кого как.

Вставим:
Code
new Float:radius;  
new buffer[256];  
LoadReklama();  
for(new r = 0; r < sizeof(ReklamaInfo); r++)  
{  
if(ReklamaInfo[r][rOwned] == 1)  
{  
if(ReklamaInfo[r][rType] == 1)  
{  
format(buffer,sizeof(buffer),"Рекламный листок:\n%s\nРекламное место [№%d]",ReklamaInfo[r][rText],r);  
radius = 50;  
}  
else  
{  
format(buffer,sizeof(buffer),"Рекламный щит:\n%s\nРекламное место [№%d]",ReklamaInfo[r][rText],r);  
radius = 150;  
}  
}  
else  
{  
if(ReklamaInfo[r][rType] == 1)  
{  
format(buffer,sizeof(buffer),"Здесь могла быть ваша реклама!\nРекламное место [№%d]\nОбращаться в SA News CNN",r);  
radius = 50;  
}  
else  
{  
format(buffer,sizeof(buffer),"Здесь могла быть ваша реклама!\nРекламное место [№%d]\nОбращаться в SA News CNN",r);  
radius = 150;  
}  
}  
rekltext[r] = Create3DTextLabel(buffer, COLOR_LIGHTBLUE, ReklamaInfo[r][rPos_X], ReklamaInfo[r][rPos_Y],ReklamaInfo[r][rPos_Z], radius, 0, 1 );  
}  

4. в public OnPropUpdate()
после while (idx < sizeof(HouseInfo))

вставим:
Code
idx = 0;
     while (idx < sizeof(ReklamaInfo))
     {
         new coordsstring[256];
         format(coordsstring, sizeof(coordsstring), "%d,%f,%f,%f,%s,%d\n",
         ReklamaInfo[idx][rOwned],
         ReklamaInfo[idx][rPos_X],
         ReklamaInfo[idx][rPos_Y],
         ReklamaInfo[idx][rPos_Z],
         ReklamaInfo[idx][rText],
         ReklamaInfo[idx][rType]);
         if(idx == 0)
         {
             file2 = fopen("reklama.cfg", io_write);
         }
         else
         {
             file2 = fopen("reklama.cfg", io_append);
         }
         fwrite(file2, coordsstring);
         idx++;
         fclose(file2);
     }  

5. И команды, в public commandText
Code
if(strcmp(cmd, "/rekldel", true) == 0)
{  
if(IsPlayerConnected(playerid))  
{  
if(PlayerInfo[playerid][pLeader] == 9 || PlayerInfo[playerid][pMember] == 9)  
{  
if(PlayerInfo[playerid][pRank] < 4 && PlayerInfo[playerid][pLeader] != 9)  
{  
SendClientMessage(playerid,COLOR_GREY,"Команда будет доступна вам с 4 ранга!");  
return 1;  
}  
tmp = strtok(cmdtext, idx);  
if(!strlen(tmp))  
{  
SendClientMessage(playerid, COLOR_GRAD2, "Подсказка: /deladvertising [номер площадки]");  
return 1;  
}  
new id = strval(tmp);  
new buffer[1024];  
ReklamaInfo[id][rOwned] = 0;  
if(ReklamaInfo[id][rType] == 1)  
{  
format(buffer,sizeof(buffer),"Здесь могла быть ваша реклама!\nРекламное место [№%d]\nОбращаться в SA News CNN",id);  
}  
else  
{  
format(buffer,sizeof(buffer),"Здесь могла быть ваша реклама!\nРекламное место [№%d]\nОбращаться в SA News CNN",id);  
}  
Update3DTextLabelText(rekltext[id],COLOR_LIGHTBLUE,buffer);  
format(string,sizeof(string),"Вы успешно удалили рекламу №%d",id);  
SendClientMessage(playerid,COLOR_YELLOW,string);  
OnPropUpdate();  
}  
}  
return 1;  
}  
if(strcmp(cmd, "/reklnew", true) == 0)  
{  
if (PlayerInfo[playerid][pLeader] == 9 || PlayerInfo[playerid][pMember] == 9)  
{  
if(PlayerInfo[playerid][pRank] < 4 && PlayerInfo[playerid][pLeader] != 9)  
{  
SendClientMessage(playerid,COLOR_GREY,"Вам нужен хотя-бы 4ый ранг чтобы использовать эту команду!");  
return 1;  
}  
tmp = strtok(cmdtext, idx);  
if(!strlen(tmp))  
{  
SendClientMessage(playerid, COLOR_SYSTEM, "Подсказка: /newadvertising [Номер рекламного места] [Текст]");  
return 1;  
}  
new id = strval(tmp);  
new length = strlen(cmdtext);  
while ((idx < length) && (cmdtext[idx] <= ' '))  
{  
idx++;  
}  
new offset = idx;  
new result[1024];  
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))  
{  
result[idx - offset] = cmdtext[idx];  
idx++;  
}  
result[idx - offset] = EOS;  
if(!strlen(tmp))  
{  
SendClientMessage(playerid, COLOR_SYSTEM, "Подсказка: /newadvertising [Номер рекламного места] [Текст]");  
return 1;  
}  
spaceGroupsToSpaces(result);  
trimSideSpaces(result);  
new word[256],Index;while(Index < strlen(result)) { // проверка сообщения на рекламу серверов и ее вырезание  
word = strtok(result,Index);  
if(Adv(word)==1||ZP(word)||U(word)||T(word)||MY1(word)||MY2(word)||MY3(word)||MY4(word)||MY5(word)||MY6(word)||N(word)||P(word)||V(word )||R(word)||PL(word)||ZV(word)||I(word)||ST(word)||DL(word)||RE(word)||VOC(word)||A(word)||NO(word)||TCZ(word)||BOP(word)){  
new i=strfind(result,word),j=i+strlen(word)-1; result[i++]='[';  
while(i<j) {result[i]='|';i++;}  
result[j]=']';  
SendClientMessage(playerid,COLOR_RED,"Реклама чужих ресурсов запрещена на сервере!");  
SendClientMessage(playerid,COLOR_RED,"Администрация была оповещена о вашей рекламе!");  
}  
}  
if(strfind( result , "," , true ) == -1)  
{  
new buffer[1024];  
strmid(ReklamaInfo[id][rText], (result), 0, strlen((result)), 128);  
ReklamaInfo[id][rOwned] = 1;  
if(ReklamaInfo[id][rType] == 1)  
{  
format(buffer,sizeof(buffer),"Рекламный листок:\n%s",ReklamaInfo[id][rText]);  
}  
if(ReklamaInfo[id][rType] == 2)  
{  
format(buffer,sizeof(buffer),"Рекламный щит:\n%s",ReklamaInfo[id][rText]);  
}  
Update3DTextLabelText(rekltext[id],COLOR_LIGHTBLUE,buffer);  
format(string, sizeof(string), "Вы добавили новую рекламу: [%s][Место:%d]",(result),id);  
OnPropUpdate();  
SendClientMessage(playerid, COLOR_YELLOW, string);  
}  
return 1;  
}  
else  
{  
SendClientMessage(playerid,COLOR_GREY,"Вы не сотрудник CNN!");  
return 1;  
}  
}  

6. В конец мода ставим
Code

forward LoadReklama();  
public LoadReklama(){  
new arrCoords[6][1024];  
new strFromFile2[256];  
new File: file = fopen("reklama.cfg", io_read);  
if (file)  
{  
new idx;  
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);  
}  
return 1;  
}  
stock MY1(word[])  
{  
if(strlen(word)>22) return 0;  
if(strfind(word," .", true)==-1) return 0;  

new ip[5][256],index;  
ip[0] = strtok(word,index,'.');  
ip[1] = strtok(word,index,'.');  
ip[2] = strtok(word,index,'.');  
if(strfind(word,":",true)>0){  
ip[3] = strtok(word,index,':');  
if(strfind(word,",",true)>0) ip[4] = strtok(word,index,',');else ip[4] = strtok(word,index);  
} else {  
if(strfind(word,",",true)==strlen(word)) ip[3] = strtok(word,index,',');else ip[3] = strtok(word,index);  
valstr(ip[4],0);  
}  
if(!IsNumeric(ip[0])||!IsNumeric(ip[1])||!IsNumeric(ip[2])||!IsNumeric(ip[3])||!IsNumeric(ip[4])  
||!strlen(ip[0])||!strlen(ip[1])||!strlen(ip[2])||!strlen(ip[3])||!strlen(ip[4])  
||(strval(ip[0])==192&&strval(ip[1])==168)  
||(strval(ip[0])==172&&strval(ip[1])>=16&&strval(ip[1])<=31)  
||strval(ip[0])==10||(strval(ip[0])==127&&strval(ip[1])==0&&strval(ip[2])==0&&strval(ip[3])==1)) return 0;  
return 1;  
}  
stock MY2(word[])  
{  
if(strlen(word)>22) return 0;  
if(strfind(word,". ", true)==-1) return 0;  

new ip[5][256],index;  
ip[0] = strtok(word,index,'.');  
ip[1] = strtok(word,index,'.');  
ip[2] = strtok(word,index,'.');  
if(strfind(word,":",true)>0){  
ip[3] = strtok(word,index,':');  
if(strfind(word,",",true)>0) ip[4] = strtok(word,index,',');else ip[4] = strtok(word,index);  
} else {  
if(strfind(word,",",true)==strlen(word)) ip[3] = strtok(word,index,',');else ip[3] = strtok(word,index);  
valstr(ip[4],0);  
}  
if(!IsNumeric(ip[0])||!IsNumeric(ip[1])||!IsNumeric(ip[2])||!IsNumeric(ip[3])||!IsNumeric(ip[4])  
||!strlen(ip[0])||!strlen(ip[1])||!strlen(ip[2])||!strlen(ip[3])||!strlen(ip[4])  
||(strval(ip[0])==192&&strval(ip[1])==168)  
||(strval(ip[0])==172&&strval(ip[1])>=16&&strval(ip[1])<=31)  
||strval(ip[0])==10||(strval(ip[0])==127&&strval(ip[1])==0&&strval(ip[2])==0&&strval(ip[3])==1)) return 0;  
return 1;  
}  

stock MY3(word[])  
{  
if(strlen(word)>22) return 0;  
if(strfind(word," . ", true)==-1) return 0;  

new ip[5][256],index;  
ip[0] = strtok(word,index,'.');  
ip[1] = strtok(word,index,'.');  
ip[2] = strtok(word,index,'.');  
if(strfind(word,":",true)>0){  
ip[3] = strtok(word,index,':');  
if(strfind(word,",",true)>0) ip[4] = strtok(word,index,',');else ip[4] = strtok(word,index);  
} else {  
if(strfind(word,",",true)==strlen(word)) ip[3] = strtok(word,index,',');else ip[3] = strtok(word,index);  
valstr(ip[4],0);  
}  
if(!IsNumeric(ip[0])||!IsNumeric(ip[1])||!IsNumeric(ip[2])||!IsNumeric(ip[3])||!IsNumeric(ip[4])  
||!strlen(ip[0])||!strlen(ip[1])||!strlen(ip[2])||!strlen(ip[3])||!strlen(ip[4])  
||(strval(ip[0])==192&&strval(ip[1])==168)  
||(strval(ip[0])==172&&strval(ip[1])>=16&&strval(ip[1])<=31)  
||strval(ip[0])==10||(strval(ip[0])==127&&strval(ip[1])==0&&strval(ip[2])==0&&strval(ip[3])==1)) return 0;  
return 1;  
}  
stock MY4(word[])  
{  
if(strlen(word)>22) return 0;  
if(strfind(word," : ", true)==-1) return 0;  

new ip[5][256],index;  
ip[0] = strtok(word,index,'.');  
ip[1] = strtok(word,index,'.');  
ip[2] = strtok(word,index,'.');  
if(strfind(word,":",true)>0){  
ip[3] = strtok(word,index,':');  
if(strfind(word,",",true)>0) ip[4] = strtok(word,index,',');else ip[4] = strtok(word,index);  
} else {  
if(strfind(word,",",true)==strlen(word)) ip[3] = strtok(word,index,',');else ip[3] = strtok(word,index);  
valstr(ip[4],0);  
}  
if(!IsNumeric(ip[0])||!IsNumeric(ip[1])||!IsNumeric(ip[2])||!IsNumeric(ip[3])||!IsNumeric(ip[4])  
||!strlen(ip[0])||!strlen(ip[1])||!strlen(ip[2])||!strlen(ip[3])||!strlen(ip[4])  
||(strval(ip[0])==192&&strval(ip[1])==168)  
||(strval(ip[0])==172&&strval(ip[1])>=16&&strval(ip[1])<=31)  
||strval(ip[0])==10||(strval(ip[0])==127&&strval(ip[1])==0&&strval(ip[2])==0&&strval(ip[3])==1)) return 0;  
return 1;  
}  
stock MY5(word[])  
{  
if(strlen(word)>22) return 0;  
if(strfind(word,": ", true)==-1) return 0;  

new ip[5][256],index;  
ip[0] = strtok(word,index,'.');  
ip[1] = strtok(word,index,'.');  
ip[2] = strtok(word,index,'.');  
if(strfind(word,":",true)>0){  
ip[3] = strtok(word,index,':');  
if(strfind(word,",",true)>0) ip[4] = strtok(word,index,',');else ip[4] = strtok(word,index);  
} else {  
if(strfind(word,",",true)==strlen(word)) ip[3] = strtok(word,index,',');else ip[3] = strtok(word,index);  
valstr(ip[4],0);  
}  
if(!IsNumeric(ip[0])||!IsNumeric(ip[1])||!IsNumeric(ip[2])||!IsNumeric(ip[3])||!IsNumeric(ip[4])  
||!strlen(ip[0])||!strlen(ip[1])||!strlen(ip[2])||!strlen(ip[3])||!strlen(ip[4])  
||(strval(ip[0])==192&&strval(ip[1])==168)  
||(strval(ip[0])==172&&strval(ip[1])>=16&&strval(ip[1])<=31)  
||strval(ip[0])==10||(strval(ip[0])==127&&strval(ip[1])==0&&strval(ip[2])==0&&strval(ip[3])==1)) return 0;  
return 1;  
}  
stock MY6(word[])  
{  
if(strlen(word)>22) return 0;  
if(strfind(word," :", true)==-1) return 0;  

new ip[5][256],index;  
ip[0] = strtok(word,index,'.');  
ip[1] = strtok(word,index,'.');  
ip[2] = strtok(word,index,'.');  
if(strfind(word,":",true)>0){  
ip[3] = strtok(word,index,':');  
if(strfind(word,",",true)>0) ip[4] = strtok(word,index,',');else ip[4] = strtok(word,index);  
} else {  
if(strfind(word,",",true)==strlen(word)) ip[3] = strtok(word,index,',');else ip[3] = strtok(word,index);  
valstr(ip[4],0);  
}  
if(!IsNumeric(ip[0])||!IsNumeric(ip[1])||!IsNumeric(ip[2])||!IsNumeric(ip[3])||!IsNumeric(ip[4])  
||!strlen(ip[0])||!strlen(ip[1])||!strlen(ip[2])||!strlen(ip[3])||!strlen(ip[4])  
||(strval(ip[0])==192&&strval(ip[1])==168)  
||(strval(ip[0])==172&&strval(ip[1])>=16&&strval(ip[1])<=31)  
||strval(ip[0])==10||(strval(ip[0])==127&&strval(ip[1])==0&&strval(ip[2])==0&&strval(ip[3])==1)) return 0;  
return 1;  
}


http://rghost.ru/22307361 - суем в sf (scriptfiles)
 
danilasarДата: Пятница, 27.05.2016, 12:36 | Сообщение # 2
Рядовой
Группа: Пользователи
Сообщений: 6
Репутация: 0
Статус: Offline
Ну хотя бы что-нибудь может нормально сделать!
 
  • Страница 1 из 1
  • 1
Поиск:


Пожертвования на развитие сайта. Yandex: 410011459268530 © 2025
Создать бесплатный сайт с uCoz