Так как многие хотят себе в моды паспорт - то вот он вам. Писал на забитую говном всяким голову. Начнем.
Нам потребуется:
- Мозг - 1 штука
- Руки прямые - 2 штуки
- Клавиатура - 1 штука
- Мыщь - 1 штука
- Знания в павно - хотябы какие нибудь
- Павно - 1 штука
- Ваш мод - хоть 1013018391 штук
В enum pInfo добавляем такое:
[pwn]
pPasport,
pPasport1,
pPasportGot,[/pwn]
Далее.
Идем в public OnPlayerConnect и пищим там где нибудь такое:
[pwn]
PlayerInfo[playerid][pPasport] = 0;[/pwn]
Далее.
Идем в public OnPlayerRegister и пищим там такое:
[pwn]
format(var, 32, "Passport=%d\n",PlayerInfo[playerid][pPasport]);fwrite(hFile, var);
format(var, 32, "Passport Have=%d\n",PlayerInfo[playerid][pPasport1]);fwrite(hFile, var);
format(var, 32, "Passport Got=%d\n",PlayerInfo[playerid][pPasportGot]);fwrite(hFile, var);[/pwn]
Идем в public OnPlayerUpdate и пищим там такое:
[pwn]
format(var, 32, "Passport=%d\n",PlayerInfo[playerid][pPasport]);fwrite(hFile, var);
format(var, 32, "Passport Have=%d\n",PlayerInfo[playerid][pPasport1]);fwrite(hFile, var);
format(var, 32, "Passport Got=%d\n",PlayerInfo[playerid][pPasportGot]);fwrite(hFile, var);[/pwn]
Идем в public OnPlayerLogin и пищим там такое:
[pwn]
if( strcmp( key , "Passport" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pPasport] = strval( val ); }
if( strcmp( key , "Passport Have" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pPasport1] = strval( val ); }
if( strcmp( key , "Passport Got" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pPasportGot] = strval( val ); }[/pwn]
Так. Все вроде записали. Теперь команда получения.
[pwn]
if(strcmp(cmd, "/getpass", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pPasportGot]==1) {return SendClientMessage(playerid,COLOR_LIGHTBLUE,"У вас уже есть пасспорт");}
{
if(IsPlayerInRangeOfPoint(playerid,5.0,363.0847,173.7168,1008.3828))
{
new randpas = 10000 + random(89999);//minimum 10000 max 99999 Даем паспорт Рандомо номер его. Все деаед ваш мод
PlayerInfo[playerid][pPasport] = randpas;
new pasnumb = PlayerInfo[playerid][pPasport];
format(string, sizeof(string), "* Вы получили Паспорт.Его номер:%d",pasnumb);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
PlayerInfo[playerid][pPasport1]=1;
PlayerInfo[playerid][pPasportGot]=1;
OnPlayerUpdate(playerid);//выдача паспорта и сразу автосохранение
}
else
{
SendClientMessage(playerid, COLOR_YELLOW, " Чтобы Получить пасспорт оправляйтесь в Мерию.");
}
}
}
return 1;
}[/pwn]
Команда показывания паспорта.
[pwn]
if(strcmp(cmd,"/showpasport",true)==0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_WHITE, " Использование: /showpasport [ид/чать ника]");
return 1;
}
giveplayerid = ReturnUser(tmp);
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
if (ProxDetectorS(8.0, playerid, giveplayerid))
{
//if(giveplayerid == playerid) { SendClientMessage(playerid, COLOR_GREY, " Ты не можешь показать паспорт себе!"); return 1; }
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
new pasport = PlayerInfo[playerid][pPasport];
format(string, sizeof(string), "|__________ Паспорт %s __________|", sendername);
SendClientMessage(giveplayerid, COLOR_WHITE, string);
format(string, sizeof(string), " Паспорт зарегистирован на игрока %s.", sendername);
SendClientMessage(giveplayerid, COLOR_GREY, string);
format(string, sizeof(string), " Номер паспорта: %d", pasport);
SendClientMessage(giveplayerid, COLOR_GREY, string);
format(string, sizeof(string), "|__________ Подпись %s __________|", sendername);
SendClientMessage(giveplayerid, COLOR_WHITE, string);
format(string, sizeof(string), "* %s показал вам свой паспорт.", sendername);
SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "* Ты показал свой паспорт игроку %s.", giveplayer);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
}
else
{
SendClientMessage(playerid, COLOR_GREY, " Этот игрок не рядом с тобой.");
return 1;
}
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, " Этого игрока нет на сервере.");
return 1;
}
}
return 1;
}[/pwn]
И терь для копов (да бы они забирали паспорт).
Ищем /take и куда нибудь там пихаем такое.
[pwn]
else if(strcmp(x_nr,"pasport",true) == 0)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, " Используйте: /take pasport [id/Name]");
return 1;
}
giveplayerid = ReturnUser(tmp);
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
if (ProxDetectorS(5.0, playerid, giveplayerid))
{
GetPlayerName(playerid,sendername,sizeof(sendername));
GetPlayerName(giveplayerid,giveplayer,sizeof(giveplayer));
format(string, sizeof(string), "* Вы забрали паспорт у игрока %ы.", giveplayer);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "* Полицейский %s забрал ваш паспорт. Вы были уволены с работы.", sendername);
SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
PlayerInfo[giveplayerid][pPasportGot] = 0;
PlayerInfo[giveplayerid][pPasport] = 0;
PlayerInfo[giveplayerid][pPasport1] = 0;
PlayerInfo[giveplayerid][pJob] = 0;
}
else
{
SendClientMessage(playerid, COLOR_GREY, " Этот игрок далеко !");
return 1;
}
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, " Игрока нету на сервере !");
return 1;
}
}[/pwn]
И для завершения этой какашки.
Идем в команду /join.
В ней ищим:
Самое ее начало.
[pwn]
if(strcmp(cmd, "/join", true) == 0)
{
if(IsPlayerConnected(playerid))
{[/pwn]
и после этого добавляем:
[pwn]
if(PlayerInfo[playerid][pPasport1] == 0) {return SendClientMessage(playerid, COLOR_GREY, " У вас нету пасспорта.Чтобы получить его введите - /getpass");}[/pwn]
Получится такое:
[pwn]
if(strcmp(cmd, "/join", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pPasport1] == 0) {return SendClientMessage(playerid, COLOR_GREY, " У вас нету пасспорта.Чтобы получить его введите - /getpass");}
и тут уж все остальное. И по моему в конце (самом низу), надо всунуть }. (проверьте) [/pwn]
Ну и для красоты.
Идем в public ShowStats.
и пишим так такое:
[pwn]
new pasport = PlayerInfo[targetid][pPasport];[/pwn]
И теперь в удобную вам строку пишим такое:
[pwn]
Даю пример строки - главное черным и жирным
format(coordsstring, sizeof(coordsstring), "Наркота:[%d] Маты:[%d] Болезнь:[%s] Маффия: [%s] Ранг: [%s] Номер Пасспорта: [%d]", drugs,mats,dtext,ttext,rtext,pasport);
SendClientMessage(playerid, COLOR_GRAD5,coordsstring);
Главное тут:
Номер Пасспорта: [%d] и pasport
[/pwn]
И для красоты.
В OnGameModeInit
[pwn]
Create3DTextLabel("СДЕСЬ МОЖНО ПОЛУЧИТЬ ПАСПОРТ!\nВВЕДИТЕ /getpass ЧТОБЫ ПОЛУЧИТЬ ЕГО",0x008080FF,363.0847,173.7168,1008.3828,20.0,0);[/pwn]
Вроде все - что забыл - напишу
Чтобы получить паспорт - приходим в Мерию а там все поймете.
Если будут баги - пишите. У мя все работало (писал то я )
З.Ы. Если у вас инклуды не 0.3 - то паспорта вам не видать.
Удачи © Слим