Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

[Урок]Рекламный Щит

Статус
В этой теме нельзя размещать новые ответы.

Den_Wilson

Умник
PHP:
Ко всем #define:
#define MAX_REKLAMA 130//Макс. количество рекламных 3D текстов
Ко всем enum:
PHP:
enum rInfo 
{ 
rOwned, 
Float:rPos_X, 
Float:rPos_Y, 
Float:rPos_Z, 
rText[1024], 
rType 
}; 
new ReklamaInfo[MAX_REKLAMA][rInfo]; // Рекламаинфо
В public OnGameModeInit()
после for(new h = 0; h < sizeof(SBizzInfo); h++) у кого как.

Вставим:
PHP:
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 ); 
}
в public OnPropUpdate()
после while (idx < sizeof(HouseInfo))

вставим:
PHP:
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);
	}
И сами команды:
PHP:
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; 
} 
}
в конец мода
//===============================реклама========================================
PHP:
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; 
}
Засунуть в scriptfiles
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу