Quote (Енрико)
дай в личку или сюда. Посмотреть код
особо ничего, дам- сюда хай народ юзает).
Видел на Крим Лайфе icq систему. Подумал - а мож попробывать? вот что поучилось =)) не судите строго =))
И так, ICQ v.1.0 Для Мода "The GodFather"
Авторы: Fus1 & SLiM © 2010 год.
Начнем.
Нам потребуется:
- Мозг - 1 штука
- Руки прямые - 2 штуки
- Клавиатура - 1 штука
- Мыщь - 1 штука
- Знания в павно - хотябы какие нибудь
- Павно - 1 штука
- Ваш мод - 1 штука
Ко всем new
[pwn]new OnlineIcq[MAX_PLAYERS];[/pwn]
В enum pInfo добавляем такое:
[pwn]
pICQ,
pICQC1,
pICQC2,
pICQC3,
pICQRegist,[/pwn]
Далее.
Идем в public OnPlayerConnect и пищим там где нибудь такое:
[pwn]
PlayerInfo[playerid][pICQ] = 0;
PlayerInfo[playerid][pICQC1] = 0;
PlayerInfo[playerid][pICQC2] = 0;
PlayerInfo[playerid][pICQC3] = 0;
PlayerInfo[playerid][pICQRegist] = 0;
OnlineIcq[playerid] = 1;[/pwn]
Далее.
Идем в public OnPlayerRegister и пищим там такое:
[pwn]
//=======================[ICQ Система. 1)Номер 5)Зарегана или нет 2)3)4)Номера в памяти пока без имен===============
format(var, 32, "ICQ Numb=%d\n",PlayerInfo[playerid][pICQ]);fwrite(hFile, var);
format(var, 32, "ICQ Cont1=%d\n",PlayerInfo[playerid][pICQC1]);fwrite(hFile, var);
format(var, 32, "ICQ Cont2=%d\n",PlayerInfo[playerid][pICQC2]);fwrite(hFile, var);
format(var, 32, "ICQ Cont3=%d\n",PlayerInfo[playerid][pICQC3]);fwrite(hFile, var);
format(var, 32, "ICQ Regist=%d\n",PlayerInfo[playerid][pICQRegist]);fwrite(hFile, var);[/pwn]
Идем в public OnPlayerUpdate и пищим там такое:
[pwn]
//=======================[ICQ Система. 1)Номер 5)Зарегана или нет 2)3)4)Номера в памяти пока без имен===============
format(var, 32, "ICQ Numb=%d\n",PlayerInfo[playerid][pICQ]);fwrite(hFile, var);
format(var, 32, "ICQ Cont1=%d\n",PlayerInfo[playerid][pICQC1]);fwrite(hFile, var);
format(var, 32, "ICQ Cont2=%d\n",PlayerInfo[playerid][pICQC2]);fwrite(hFile, var);
format(var, 32, "ICQ Cont3=%d\n",PlayerInfo[playerid][pICQC3]);fwrite(hFile, var);
format(var, 32, "ICQ Regist=%d\n",PlayerInfo[playerid][pICQRegist]);fwrite(hFile, var);[/pwn]
Идем в public OnPlayerLogin и пищим там такое:
[pwn]
//=======================[ICQ Система. 1)Номер 5)Зарегана или нет 2)3)4)Номера в памяти пока без имен===============
if( strcmp( key , "ICQ Numb" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pICQ] = strval( val ); }
if( strcmp( key , "ICQ Cont1" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pICQC1] = strval( val ); }
if( strcmp( key , "ICQ Cont2" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pICQC2] = strval( val ); }
if( strcmp( key , "ICQ Cont3" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pICQC3] = strval( val ); }
if( strcmp( key , "ICQ Regist" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pICQRegist] = strval( val ); }[/pwn]
Так. Все вроде записали. Теперь основные команды.
[pwn]
//=================================[ICQ Система. Выдача - рандомо - 9 значные номера.]==========================
if(strcmp(cmd, "/icq", true) == 0)//Вкл и выкл аськи
{
if(IsPlayerConnected(playerid))
{
if (!OnlineIcq[playerid])
{
OnlineIcq[playerid] = 1;
SendClientMessage(playerid, 0xFF00FF, "Вы выключили ICQ!");
}
else if (OnlineIcq[playerid])
{
OnlineIcq[playerid] = 0;
SendClientMessage(playerid, 0x0FF0FF, "Вы включили ICQ!");
GivePlayerMoney(playerid, -10);
format(string, sizeof(string), "~r~$-10");
GameTextForPlayer(playerid, string, 5000, 1);
}
}
return 1;
}
if(strcmp(cmd, "/icqdel", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pICQRegist] == 1)
{
new x_nr[256];
x_nr = strtok(cmdtext, idx);
if(!strlen(x_nr)) {
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /icqdel [№]");
SendClientMessage(playerid, COLOR_WHITE, "№: 1, 2, 3.");
return 1;
}
if(strcmp(x_nr,"1",true) == 0)
{
format(string, sizeof(string), "* Вы Удалили Контакт Под Номером 1.");
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
PlayerInfo[playerid][pICQC1]=0;
OnPlayerUpdate(playerid);
}
else if(strcmp(x_nr,"2",true) == 0)
{
format(string, sizeof(string), "* Вы Удалили Контакт Под Номером 2.");
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
PlayerInfo[playerid][pICQC2]=0;
OnPlayerUpdate(playerid);
}
else if(strcmp(x_nr,"3",true) == 0)
{
format(string, sizeof(string), "* Вы Удалили Контакт Под Номером 3.");
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
PlayerInfo[playerid][pICQC3]=0;
OnPlayerUpdate(playerid);
}
else
{
SendClientMessage(playerid, COLOR_GREY, " .Вы я забыл текст !");
return 1;
}
}
}
return 1;
}
if (strcmp(cmd, "/icq_search", true) == 0)//Ищем по ид - аську
{
if(IsPlayerConnected(playerid))
{
if (PlayerInfo[playerid][pICQRegist] == 1)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD1, " Используйте: /icq search [playerid/PartOfName]");
return 1;
}
//giveplayerid = strval(tmp);
giveplayerid = ReturnUser(tmp);
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
GetPlayerName(giveplayerid, sendername, sizeof(sendername));
format(string, 256, " Ник: %s, ICQ: %d, Состояние: [Онлайн].",sendername,PlayerInfo[giveplayerid][pICQ]);
SendClientMessage(playerid, COLOR_GRAD1, string);
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, " Пользователь [Оффлайн] !");
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, " У вас нет ICQ!");
}
}
return 1;
}
if(strcmp(cmd, "/icqadd", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pICQRegist])
{
new x_nr[256];
x_nr = strtok(cmdtext, idx);
if(!strlen(x_nr)) {
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /icqadd [name] [playerid/PartOfName]");
SendClientMessage(playerid, COLOR_WHITE, "Available names: 1, 2, 3.");
return 1;
}
if(strcmp(x_nr,"1",true) == 0)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /icqadd 1 [playerid/PartOfName]");
return 1;
}
giveplayerid = ReturnUser(tmp);
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
PlayerInfo[playerid][pICQC1] = PlayerInfo[giveplayerid][pICQ];
format(string, sizeof(string), "* Пользователь %s, Номер ICQ: %d. Добавлен.", giveplayer,PlayerInfo[giveplayerid][pICQ] );
SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, " .Этого игрока нету на сервере !");
return 1;
}
}
else if(strcmp(x_nr,"2",true) == 0)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /icqadd 2 [playerid/PartOfName]");
return 1;
}
giveplayerid = ReturnUser(tmp);
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
PlayerInfo[playerid][pICQC2] = PlayerInfo[giveplayerid][pICQ];
format(string, sizeof(string), "* Пользователь %s, Номер ICQ: %d. Добавлен.", giveplayer,PlayerInfo[giveplayerid][pICQ] );
SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, " .Этого игрока нету на сервере !");
return 1;
}
}
else if(strcmp(x_nr,"3",true) == 0)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /icqadd 3 [playerid/PartOfName]");
return 1;
}
giveplayerid = ReturnUser(tmp);
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
PlayerInfo[playerid][pICQC3] = PlayerInfo[giveplayerid][pICQ];
format(string, sizeof(string), "* Пользователь %s, Номер ICQ: %d. Добавлен.", giveplayer,PlayerInfo[giveplayerid][pICQ] );
SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, " .Этого игрока нету на сервере !");
return 1;
}
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, " У вас нету ICQ !");
return 1;
}
}
return 1;
}
if(strcmp(cmd, "/icqm", true) == 0 || strcmp(cmd, "/icqm", true) == 0)//Сообщения (Переделанная /w ) чтобы отправить пишемм не UIN а простой id
{
if(IsPlayerConnected(playerid))
{
if(gPlayerLogged[playerid] == 0)
{
SendClientMessage(playerid, COLOR_GREY, " Сначала войдите в игру ! ");
return 1;
}
if(PlayerInfo[playerid][pICQ] == 0) return SendClientMessage(playerid, COLOR_GRAD2, "У вас на телефоне нету ICQ программы.");
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, " Используйте: /icqm [id игрока/часть ника] [сообщение] ");
return 1;
}
giveplayerid = ReturnUser(tmp);
if (IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
GetPlayerName(playerid, sendername, sizeof(sendername));
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
if(giveplayerid == playerid)
{
format(string, sizeof(string), " * %s флудит в аське. ", sendername);
ProxDetector(5.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,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, " Используйте: /icqm [id игрока/часть ника] [сообщение]");
return 1;
}
if(OnlineIcq[giveplayerid] == 1) return SendClientMessage(playerid, COLOR_GREY, "У Этого контакта выключена ICQ.!");
{
format(string, sizeof(string), "[ICQ] %s [ID: %d] Cообщение: %s [UIN:%d]", sendername, playerid, (result),PlayerInfo[playerid][pICQ]);
SendClientMessage(giveplayerid, COLOR_YELLOW, string);
format(string, sizeof(string), "[ICQ] Сообщение доставлено %s [ID: %d][UIN:%d]. ", giveplayer, giveplayerid,PlayerInfo[giveplayerid][pICQ]);
SendClientMessage(playerid, COLOR_YELLOW, string);
GivePlayerMoney(playerid,-10);
GameTextForPlayer(playerid,"~r~-10$",5000,1);
return 1;
}
}
}
else
{
format(string, sizeof(string), " %d Оффлайн. ", giveplayerid);
SendClientMessage(playerid, COLOR_GRAD1, string);
}
}
return 1;
}
if(strcmp(cmd, "/icq_cont", true) == 0)//Команда для Просмотра контактов
{
if(IsPlayerConnected(playerid))
{
format(string, sizeof(string), "* Вы Посматрели список Ваших Контактов.");
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
new con1 = PlayerInfo[playerid][pICQC1];
new con2 = PlayerInfo[playerid][pICQC2];
new con3 = PlayerInfo[playerid][pICQC3];
format(string, sizeof(string), "* Контакт №1: %d.",con1);
SendClientMessage(playerid, COLOR_YELLOW, string);
format(string, sizeof(string), "* Контакт №2: %d.",con2);
SendClientMessage(playerid, COLOR_YELLOW, string);
format(string, sizeof(string), "* Контакт №3: %d.",con3);
SendClientMessage(playerid, COLOR_YELLOW, string);
OnPlayerUpdate(playerid);//ICQ + сохранение
}
return 1;
}
if(strcmp(cmd, "/icqhelp", true) == 0)//Помощь
{
if(IsPlayerConnected(playerid))
{
format(string, sizeof(string), "**** ICQ помощь ****.");
SendClientMessage(playerid, COLOR_YELLOW2, string);
format(string, sizeof(string), "* /icq_cont - список контактов.");
SendClientMessage(playerid, COLOR_YELLOW2, string);
format(string, sizeof(string), "* /icq_c1 [id],/icq_c2 [id],/icq_c3 [id] - добавлеие указанного ид в контакты (Макс. 3 контакта)");
SendClientMessage(playerid, COLOR_YELLOW2, string);
format(string, sizeof(string), "* /icqm [id] [текст] - написать сообщение (-10$).");
SendClientMessage(playerid, COLOR_YELLOW2, string);
format(string, sizeof(string), "* /icqdel- Удаление Указанного Контакта. ");
SendClientMessage(playerid, COLOR_YELLOW2, string);
}
return 1;
}
[/pwn]
Так терь для полноценной сис-мы мы идет в команду /buy. и добавляем туда
[pwn] else if (item == 13 && GetPlayerMoney(playerid) > 300) // 300 цена аси 13 значит ид придмета
{
if(PlayerInfo[playerid][pICQRegist] == 1) { return SendClientMessage(playerid,COLOR_YELLOW," У вас уже есть UIN.");}
if (GetPlayerMoney(playerid) > 300)
{
format(string, sizeof(string), "~r~-$300");
GameTextForPlayer(playerid, string, 5000, 1);
GivePlayerMoney(playerid,-300);
PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
new randICQ = 10000000 + random(899999999);//ICQ номерок выдаеться рандомо.Как и сейчас - он состоит из 9 знаков.
PlayerInfo[playerid][pICQ] = randICQ;
new ICQnumb = PlayerInfo[playerid][pICQ];
format(string, sizeof(string), "* Вы получили зарегистрировались в сети ICQ.\nВаш новый UIN:%d",ICQnumb);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
PlayerInfo[playerid][pICQRegist] = 1;
OnPlayerUpdate(playerid);//рега ICQ + сохранение
format(string, sizeof(string), " Вы установили на телефон ICQ программу.");
SendClientMessage(playerid, COLOR_GRAD4, string);
SendClientMessage(playerid, COLOR_WHITE, "Введите /icqhelp для того чтобы посмотреть команды ICQ");
}
else SendClientMessage(playerid, COLOR_WHITE, "У вас нету нужной суммы.");
return 1;
}[/pwn]
Ну и для красоты.
Идем в public ShowStats.
и пишим так такое:
[pwn]
new ICQ = PlayerInfo[playerid][pICQ];
И теперь в удобную вам строку пишим такое:
Даю пример строки - главное черным и жирным
format(coordsstring, sizeof(coordsstring), "Наркота:[%d] Маты:[%d] Болезнь:[%s] Маффия: [%s] Ранг: [%s] ICQ: [%d]", drugs,mats,dtext,ttext,rtext,ICQ);
SendClientMessage(playerid, COLOR_GRAD5,coordsstring);
Главное тут:
ICQ: [%d] и ICQ[/pwn]
Вроде все - что забыл - напишу.
Если будут баги - пишите.
Удачи © Слим
Добавлено (03.02.2010, 19:01)
---------------------------------------------
Код - бред - знаю