Доступ к готовым решениям

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

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

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

Мануал Сохранение Skype/[B]контакте/Instagram в статистику

DedPool

Начинающий
Пользователь
Регистрация
25 Фев 2018
Сообщения
26
Лучшие ответы
0
Репутация
4
Доброго времени суток.

Решил создать мануал по статистике,хоть он и бесполезный,но может кому и пригодится.
Заключается он в следующем,что при вводе Skype/Bконтакте/Instagram,всё сохранится в статистку.
Делать буду на примере своего мода,по этому данные и загрузку меняйте на свои.

Для начала объявим переменные :
PHP:
enum player_data
{
	pSkype[20],
	pBkontakte[20],
	pInstagram[20]
}
new pData[MAX_PLAYERS][player_data];
Теперь в public LoadPlayerAccount добавим загрузку этих данных :
PHP:
cache_get_field_content(0, "Skype", pData[playerid][pSkype], MySQL, 64);
cache_get_field_content(0, "Bkontakte", pData[playerid][pBkontakte], MySQL, 64);
cache_get_field_content(0, "Instagram", pData[playerid][pInstagram], MySQL, 64);
Теперь в public OnPlayerRegister :
PHP:
pData[playerid][pSkype] = 0;
pData[playerid][pBkontakte] = 0;
pData[playerid][pInstagram] = 0;
Далее в stock SavePlayer :
PHP:
format(str_q, sizeof str_q, "`Skype` = '%s',", pData[playerid][pSkype]), strcat(save_query, str_q);
format(str_q, sizeof str_q, "`Bkontakte` = '%s',", pData[playerid][pBkontakte]), strcat(save_query, str_q);
format(str_q, sizeof str_q, "`Instagram` = '%s',", pData[playerid][pInstagram]), strcat(save_query, str_q);
Теперь Сделаем Команду и Диалоги

Идём в public OnPlayerCommandText и добавляем следующее:
PHP:
if(strcmp(cmd, "/test", true) == 0){
new String[256];
strins(String,"Указать Skype\n",strlen(String));
strins(String,"Указать Instagram\n",strlen(String));
strins(String,"Указать [B]контакте\n",strlen(String));
ShowPlayerDialog(playerid,1605,DIALOG_STYLE_LIST,"Указать Данные",String,"Ок", "");
return 1;
}
Далее в public OnDialogResponse создадим диалоги:
PHP:
if(dialogid == 1605){
if(response){
if(listitem == 0){
new String[256];
strins(String,"Здесь вы можете указать ваш Skype\n",strlen(String));
ShowPlayerDialog(playerid,3777,DIALOG_STYLE_INPUT,"Skype",String,"Сохранить", "");}
if(listitem == 1){
new String[256];
strins(String,"Здесь вы можете указать ваш Вконтакте\n",strlen(String));
ShowPlayerDialog(playerid,3778,DIALOG_STYLE_INPUT,"Вконтакте",String,"Сохранить", "");}
if(listitem == 2){
new String[256];
strins(String,"Здесь вы можете указать ваш Instagram\n",strlen(String));
ShowPlayerDialog(playerid,3779,DIALOG_STYLE_INPUT,"Instagram",String,"Сохранить", "");}}}
Далее в этом же паблике,добавляем диалоги для сохранения
PHP:
if(dialogid == 3778){
if(!response) return SendClientMessage(playerid, -1, "Вы отказались");
if(!strlen(inputtext)) return SendClientMessage(playerid,COLOR_RED, " Вы не написали сообщение");
if(strlen(inputtext) > 50) return SendClientMessage(playerid,COLOR_RED, "Слишком длинное сообщение");
format(pData[playerid][pBkontakte], 32, inputtext);
SendClientMessage(playerid, -1, "[~ Аккаут ~] Ваш VK успешно сохранен");
return 1;}

if(dialogid == 3779){
if(!response) return SendClientMessage(playerid, -1, "Вы отказались");
if(!strlen(inputtext)) return SendClientMessage(playerid,COLOR_RED, " Вы не написали сообщение");
if(strlen(inputtext) > 50) return SendClientMessage(playerid,COLOR_RED, "Слишком длинное сообщение");
format(pData[playerid][pInstagram], 32, inputtext);
SendClientMessage(playerid, -1, "[~ Аккаут ~] Ваш Instagram успешно сохранен");
return 1;}

if(dialogid == 3777){
if(!response) return SendClientMessage(playerid, -1, "Вы отказались");
if(!strlen(inputtext)) return SendClientMessage(playerid,COLOR_RED, " Вы не написали сообщение");
if(strlen(inputtext) > 50) return SendClientMessage(playerid,COLOR_RED, "Слишком длинное сообщение");
format(pData[playerid][pSkype], 32, inputtext);
SendClientMessage(playerid, -1, "[~ Аккаут ~] Ваш Skype успешно сохранен");
return 1;}
Ну и последнее,идём в ShowStats и добавляем :

Это добавляем сразу после stock ShowStats(playerid,targetid){
PHP:
new bInsta[20];
if(pData[playerid][pInstagram] == 0){ bInsta = "Не указан"; }
else if(pData[playerid][pInstagram] == pData[playerid][pInstagram]){
format(bInsta,sizeof(bInsta), "%s", pData[playerid][pInstagram]);}

new bVK[40];
if(pData[playerid][pBkontakte] == 0){ bVK = "Не указан"; }
else if(pData[playerid][pBkontakte] == pData[playerid][pBkontakte]){
format(bVK,sizeof(bVK), "%s", pData[playerid][pBkontakte]);}

new bSkype[40];
if(pData[playerid][pSkype] == 0){ bSkype = "Не указан"; }
else if(pData[playerid][pSkype] == pData[playerid][pSkype]){
format(bSkype,sizeof(bSkype), "%s", pData[playerid][pSkype]);}
Ну и ниже этого добавим уже информацию :
PHP:
format(str,sizeof(str),"{ffffff}Skype: {FFFF00}%s\n",bSkype);
strcat(sctring,str);
format(str,sizeof(str),"{ffffff}Instagram: {FFFF00}%s\n",bInsta);
strcat(sctring,str);
format(str,sizeof(str),"{ffffff}[B]контакте: {FFFF00}%s\n",bVK);
strcat(sctring,str);
В базу данных добавим следующее:

PHP:
CREATE TABLE IF NOT EXISTS `accounts` (
`Skype` varchar(64) NOT NULL,
`Bkontakte` varchar(42) NOT NULL,
`Instagram` varchar(50) NOT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=42 ;
На этом я хотел бы закончить.
Не нужно строго судить,как писал выше : Может кому и пригодится


Будут вопросы,пишите в Skype :pro100maloi55(НЕ РЕКЛАМА)
 
Сверху Снизу