V1{RU$} Дата: Воскресенье, 04.09.2011, 00:02:07 | Сообщение # 1
Группа: Пользователи
Сообщений: 6
Решил поделится с вами такой штукой:xexe: Решил почитать лички у игроков=) Такс начнем: создаем форвард: Code
forward SendPmMessage(color, string[]); затем сам паблик: public SendPmMessage(color, string[]) { for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if(ReadPm[i] ==1) { SendClientMessage(i, color, string); } } } }
Дальше мутим такую вещь:xexe: Code
new ReadPm[MAX_PLAYERS];
в паблик OnPlayerConnect Code
ReadPm[playerid] = 0;
Затем в паблик OnPlayerCommandText Code
if(strcmp(cmd, "/readpm", true) == 0 && PlayerInfo[playerid][pAdmin] >= 2) { if(IsPlayerConnected(playerid)) { if (!ReadPm[playerid]) { ReadPm[playerid] = 1; SendClientMessage(playerid, COLOR_GRAD2, " Вы читаете ЛС"); } else if (ReadPm[playerid]) { (ReadPm[playerid] = 0); SendClientMessage(playerid, COLOR_GRAD2, " Вы больше не читаете ЛС"); } } return 1; }
и дальше вставляем в вашу команду /pm или /wisper можно и в диалоги вставить если личка на диалогах=) Вот пример моей команды: Code
if(strcmp(cmd, "/wisper", true) == 0 || strcmp(cmd, "/w", true) == 0) { for(new i=0; i<MAX_PLAYERS; i++) if(IsPlayerConnected(playerid)) { if(gPlayerLogged[playerid] == 0) { SendClientMessage(playerid, COLOR_GREY, " Сначала залогинься ! "); return 1; } tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_GRAD2, " *Используй /w [id] текст "); return 1; } giveplayerid = ReturnUser(tmp); if (IsPlayerConnected(giveplayerid)) { if(giveplayerid != INVALID_PLAYER_ID) { if(HidePM[giveplayerid] > 0) { SendClientMessage(playerid, COLOR_GREY, " Игрок заблокировал ЛС ! "); return 1; } GetPlayerName(playerid, sendername, sizeof(sendername)); GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer)); if(ChatSpamStrings[playerid] >= MAX_CHAT_SPAM) {SendClientMessage(playerid, COLOR_BRIGHTRED, " Превышен лимит сообщений.");return 1;} ChatSpamStrings[playerid] ++; if(giveplayerid == playerid) { format(string, sizeof(string), " * %s разговаривает сам с собой. ", sendername); ProxDetector(5.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPL E,COLOR_PURPLE); } new length = strlen(cmdtext); while ((idx < length) && (cmdtext[idx] <= ' ')) { idx++; } new offset = idx; new result[64]; 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, "Используй: (/w)isper [id [текст]"); return 1; } format(string, sizeof(string), " *Лс от %s(ID: %d) : %s ", sendername, playerid, (result)); SendClientMessage(giveplayerid, COLOR_YELLOW, string); format(string, sizeof(string), " *Лс доставлено %s(ID: %d): %s .", giveplayer, giveplayerid, (result)); SendClientMessage(playerid, COLOR_YELLOW, string); SBizzInfo[2][sbTill] += txtcost / 2; ExtortionSBiz(2, txtcost / 2); OnPropUpdate(); format(string, sizeof(string), " *ЛС от %s к %s(ID: %d): %s .",sendername, giveplayer, giveplayerid, (result)); SendPmMessage(COLOR_LIGHTRED, string); return 1; } } else { format(string, sizeof(string), " %d не активный. ", giveplayerid); SendClientMessage(playerid, COLOR_GRAD1, string); } } return 1; }
Урок by Blood
Сообщение Решил поделится с вами такой штукой:xexe: Решил почитать лички у игроков=) Такс начнем: создаем форвард: Code
forward SendPmMessage(color, string[]); затем сам паблик: public SendPmMessage(color, string[]) { for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if(ReadPm[i] ==1) { SendClientMessage(i, color, string); } } } }
Дальше мутим такую вещь:xexe: Code
new ReadPm[MAX_PLAYERS];
в паблик OnPlayerConnect Code
ReadPm[playerid] = 0;
Затем в паблик OnPlayerCommandText Code
if(strcmp(cmd, "/readpm", true) == 0 && PlayerInfo[playerid][pAdmin] >= 2) { if(IsPlayerConnected(playerid)) { if (!ReadPm[playerid]) { ReadPm[playerid] = 1; SendClientMessage(playerid, COLOR_GRAD2, " Вы читаете ЛС"); } else if (ReadPm[playerid]) { (ReadPm[playerid] = 0); SendClientMessage(playerid, COLOR_GRAD2, " Вы больше не читаете ЛС"); } } return 1; }
и дальше вставляем в вашу команду /pm или /wisper можно и в диалоги вставить если личка на диалогах=) Вот пример моей команды: Code
if(strcmp(cmd, "/wisper", true) == 0 || strcmp(cmd, "/w", true) == 0) { for(new i=0; i<MAX_PLAYERS; i++) if(IsPlayerConnected(playerid)) { if(gPlayerLogged[playerid] == 0) { SendClientMessage(playerid, COLOR_GREY, " Сначала залогинься ! "); return 1; } tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_GRAD2, " *Используй /w [id] текст "); return 1; } giveplayerid = ReturnUser(tmp); if (IsPlayerConnected(giveplayerid)) { if(giveplayerid != INVALID_PLAYER_ID) { if(HidePM[giveplayerid] > 0) { SendClientMessage(playerid, COLOR_GREY, " Игрок заблокировал ЛС ! "); return 1; } GetPlayerName(playerid, sendername, sizeof(sendername)); GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer)); if(ChatSpamStrings[playerid] >= MAX_CHAT_SPAM) {SendClientMessage(playerid, COLOR_BRIGHTRED, " Превышен лимит сообщений.");return 1;} ChatSpamStrings[playerid] ++; if(giveplayerid == playerid) { format(string, sizeof(string), " * %s разговаривает сам с собой. ", sendername); ProxDetector(5.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPL E,COLOR_PURPLE); } new length = strlen(cmdtext); while ((idx < length) && (cmdtext[idx] <= ' ')) { idx++; } new offset = idx; new result[64]; 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, "Используй: (/w)isper [id [текст]"); return 1; } format(string, sizeof(string), " *Лс от %s(ID: %d) : %s ", sendername, playerid, (result)); SendClientMessage(giveplayerid, COLOR_YELLOW, string); format(string, sizeof(string), " *Лс доставлено %s(ID: %d): %s .", giveplayer, giveplayerid, (result)); SendClientMessage(playerid, COLOR_YELLOW, string); SBizzInfo[2][sbTill] += txtcost / 2; ExtortionSBiz(2, txtcost / 2); OnPropUpdate(); format(string, sizeof(string), " *ЛС от %s к %s(ID: %d): %s .",sendername, giveplayer, giveplayerid, (result)); SendPmMessage(COLOR_LIGHTRED, string); return 1; } } else { format(string, sizeof(string), " %d не активный. ", giveplayerid); SendClientMessage(playerid, COLOR_GRAD1, string); } } return 1; }
Урок by Blood Автор - V1{RU$} Дата добавления - 04.09.2011 в 00:02:07
Александр Дата: Воскресенье, 04.09.2011, 12:03:35 | Сообщение # 2
Группа: Пользователи
Сообщений: 298
Ребята вы хотя бы копируйте нормально За это + поставлю, мне пригодиться
Dimka_71rus,[east_side]_trane,и конечноже Я... Запомните этих великих флудеров, офтоперов, и просто самых самых :D
Сообщение Ребята вы хотя бы копируйте нормально За это + поставлю, мне пригодиться Автор - Александр Дата добавления - 04.09.2011 в 12:03:35
Сообщение Александр , Dimka_71rus , вы 2 задрали в темах флудить..специально для вас в разделе "Сайт и форум" создал тему!Автор - admin Дата добавления - 04.09.2011 в 23:09:44