ко всем new
new PlayerDelo[MAX_PLAYERS]; new PlayerDeloStr[MAX_PLAYERS];
в public OnPlayerConnect вставляем это
PlayerDelo[playerid]=999; PlayerDeloStr[playerid]=0;
в public onplayercommandtext
if (strcmp(cmd, "/delo", true) == 0) { if(IsPlayerConnected(playerid)) { if(PlayerInfo[playerid][pMember]==1||PlayerInfo[playerid][pLeader]==1) { if (!PlayerToPoint(3.0, playerid, 234.6752,77.2745,1005.0391)) //if (PlayerToPoint(3, playerid,255.3,77.4,1003.6) || PlayerToPoint(3,playerid,-1616.1294,681.1594,7.1875) || PlayerInfo[playerid][pLocal] != 255 || PlayerToPoint(3,playerid, 2745.4392,-2453.8701,13.8623)) { SendClientMessage(playerid, COLOR_GRAD2, " Вы не в департаменте полиции!"); return 1; } tmp = strtok(cmdtext, idx); if(!strlen(tmp)){ SendClientMessage(playerid, COLOR_GRAD1, "USAGE: /delo [playerid] [действие]"); return 1; } new pl = strval(tmp); tmp = strtok(cmdtext, idx); if(!strlen(tmp)){ SendClientMessage(playerid, COLOR_GRAD1, "USAGE: /delo [playerid] [действие]"); SendClientMessage(playerid, COLOR_GRAD1, "* Действия: открыть / записать / удалить"); return 1; } new nam[32]; GetPlayerName(pl, nam, 32); format(string, 256, "%s.delo", nam); if(strcmp(tmp, "открыть", true)==0) { new str[5][128]; new strii[666]; if(fexist(string)) { new File:f = fopen(string, io_read); if(f) { fread(f, strii); } fclose(f); new ln = strlen(strii); if(ln<=125) { strmid(str[0], strii, 0, ln); } if(ln<=250) { strmid(str[0], strii, 0, 125); strmid(str[1], strii, 125, ln); } if(ln<=375) { strmid(str[0], strii, 0, 125); strmid(str[2], strii, 125, 250); strmid(str[3], strii, 250, ln); } if(ln<=500) { strmid(str[0], strii, 0, 125); strmid(str[3], strii, 125, 250); strmid(str[3], strii, 250, 375); strmid(str[4], strii, 375, ln); } if(ln<=615) { strmid(str[0], strii, 0, 125); strmid(str[4], strii, 125, 250); strmid(str[3], strii, 250, 375); strmid(str[4], strii, 375, 500); strmid(str[4], strii, 500, ln); } format(string, 256, "________ Дело %s ________", nam); SendClientMessage(playerid, COLOR_WHITE, string); format(string, 256, "%s", str[0]); SendClientMessage(playerid, COLOR_WHITE, string); format(string, 256, "* %s", str[1]); SendClientMessage(playerid, COLOR_WHITE, string); format(string, 256, "* %s", str[2]); SendClientMessage(playerid, COLOR_WHITE, string); format(string, 256, "* %s", str[3]); SendClientMessage(playerid, COLOR_WHITE, string); format(string, 256, "* %s", str[4]); SendClientMessage(playerid, COLOR_WHITE, string); format(string, 256, "__________________________________"); SendClientMessage(playerid, COLOR_WHITE, string); } else { SendClientMessage(playerid, COLOR_GRAD1, " Дело не найдено."); return 1; } } else if(strcmp(tmp, "записать", true)==0) { if(fexist(string)) { SendClientMessage(playerid, COLOR_GRAD1, " Дело уже существует, вы будите до записывать его..."); } PlayerDelo[playerid]=pl; SendClientMessage(playerid, COLOR_GRAD1, " Для записи используйте /delow [запись] "); } else if(strcmp(tmp, "удалить", true)==0) { if(!fexist(string)) { SendClientMessage(playerid, COLOR_GRAD1, " Дело не существует."); return 1; } fremove(string); SendClientMessage(playerid, COLOR_GRAD1, " Дело удалено... "); PlayerDelo[playerid]=0; PlayerDeloStr[playerid]=0; } } else { SendClientMessage(playerid, COLOR_GRAD1, " Вы не коп "); } } return 1; } if (strcmp(cmd, "/delow", true) == 0) { if(IsPlayerConnected(playerid)) { if(PlayerInfo[playerid][pMember]==1 || PlayerInfo[playerid][pLeader]==1 && PlayerDelo[playerid]!=999) { //if (PlayerToPoint(3, playerid,255.3,77.4,1003.6) || PlayerToPoint(3,playerid,-1616.1294,681.1594,7.1875) || PlayerInfo[playerid][pLocal] != 255 || PlayerToPoint(3,playerid, 2745.4392,-2453.8701,13.8623)) if (!PlayerToPoint(3.0, playerid, 236.3610,71.7131,1005.0391)) { SendClientMessage(playerid, COLOR_GRAD2, " Вы не в отделении полиции!"); return 1; } new length = strlen(cmdtext); while ((idx < length) && (cmdtext[idx] <= ' ')) { idx++; } new offset = idx; new result[666]; while ((idx < length) && ((idx - offset) < (sizeof(result) - 1))) { result[idx - offset] = cmdtext[idx]; idx++; } result[idx - offset] = EOS; if(!strlen(result)) { SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /delow [запись]"); return 1; } new namee[32]; new stri[256]; GetPlayerName(PlayerDelo[playerid], namee, 32); format(string, 256, "%s.delo", namee); if(!fexist(string)) { new File:f = fopen(string, io_write); format(stri, 1024, "* %s", result); fwrite(f, stri); fclose(f); PlayerDelo[playerid]=999; } else { new File:f = fopen(string, io_append); format(stri, 1024, " %s", result); fwrite(f, stri); fclose(f); PlayerDelo[playerid]=999; } SendClientMessage(playerid, COLOR_GRAD1, " Строка записана "); } else { SendClientMessage(playerid, COLOR_GRAD1, " Вы не коп "); } } return 1; }
в public OnGameModeInit
Create3DTextLabel(" /delo ",COLOR_YELLOW,233.1805,76.0081,1005.0391,40.0,0,1); Create3DTextLabel(" /delow ",COLOR_YELLOW,236.3729,71.3999,1005.0391,40.0,0,1);
и
CreatePickup(1239,23,233.1805,76.0081,1005.0391);//delo CreatePickup(1239,23,236.3729,71.3999,1005.0391);//delow
Работает без ошибок варнингов на модах GF!
Сообщение отредактировал Alessandro Giordano: 25 января 2012 - 06:45
Причина редактирования: Поправил название