UlkiorraJeezy | Дата: Суббота, 14.07.2012, 14:45 | Сообщение # 1 |
 Лейтенант
Группа: Администраторы
Сообщений: 71
Статус: 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)
|
|
| |