Цитата (sk.tm_radik)
Всем привет, сегодня я вам покажу как сделать систему репутации для фракций.
Идею взял с сервера Orio [N]RPG.
Автор кода я(sk.tm_radik).
Я сделаю лишь основу. Прибавление и убавление репутации сделаете сами. Так как я не знаю где вы хотите сделать это. Я лишь покажу пример как прибавлять и отнимать репутацию.
Важно:
1) В папке scriptfiles не забудьте создать файл Gangstat.ini
2) Переменные заменяйте на свои.
Этапы:
1. В начало мода, ко всем new вставляем:
Код
new RepaVagos; // Репа фракции Вагос
new RepaCoronos; // Репа фракции Коронос
2. В public OnGameModeExit() вставляем:
Код
SaveRepa(); // Сохранение репутации
3. В public OnGameModeInit() вставляем:
Код
LoadRepa(); // Загрузка репутации
4. В паблик команд, ну тоесть где ваши команды. У меня допустим это public OnPlayerCommandText. Данная команду нужна для просмотра репутации фракций.
Код
if(strcmp(cmd, "/gangstat", true) == 0)
{
new gg[128]; new banda[500];
format(gg,sizeof(gg),"\n{ffffff}Репутация банды Los Santos Vagos: {03c03c}%d\n\n",RepaVagos);
strcat(banda,gg);
format(gg,sizeof(gg),"\n{ffffff}Репутация банды EI Coronos: {03c03c}%d\n\n",RepaCoronos);
strcat(banda,gg);
format(gg,sizeof(gg),"Репутации фракций");
ShowPlayerDialog(playerid,333,DIALOG_STYLE_MSGBOX,gg,banda,"Закрыть","");
return 1;
}
5.В конец мода вставляем:
Код
stock LoadRepa()
{
new arrCoords[2][64];
new strFromFile2[256];
new File: file = fopen("Gangstat.ini", io_read);
if(file)
{
fread(file, strFromFile2);
split(strFromFile2, arrCoords, '|');
RepaVagos = strval(arrCoords[0]);
RepaCoronos = strval(arrCoords[1]);
fclose(file);
}
return true;
}
stock SaveRepa()
{
new coordsstring[256];
format(coordsstring, sizeof(coordsstring), "%d|%d",RepaVagos,RepaCoronos);
new File: file2 = fopen("Gangstat.ini", io_write); // Подобие %d|%d|%d|%d делать по такому принципу
fwrite(file2, coordsstring);
fclose(file2);
return true;
}
6. Теперь самог главное здесь я вам покажу как прибавлять и убавлять репутацию у фракций.
1) Ну вот допустим у меня в моде есть паблик PayDay. Если лидер получит зарплату то фракция также получить репутацию. Смотрим ниже код.
Код
if(PlayerInfo [i][pLeader]== 1) // Проверка на фракцию
{
RepaVagos += 5; // Прибавляем репу
SaveRepa(); // Сохраняем репу
SendClientMessage(i,0x5FE075AA, "Ваша фракции получила +5 репы.");
}
if(PlayerInfo [pLeader]== 2) // Проверку на фракцию
{
RepaCoronos += 5; // Прибавляем репу
SaveRepa(); // Сохраняем репу
SendClientMessage(i,0x5FE075AA, "Ваша фракции получила +5 репы.");
}[/i]
2) Ну а вот теперь я покажу как убавлять репутацию. Ну вот допустим у меня если лидер умрет то фракцию получить -1 репы.
Код
if(PlayerInfo [playerid][pLeader]== 1) // Проверку на фракцию
{
RepaVagos -= 1; // Отнимаем репу
SaveRepa(); // Сохраняем репу
SendClientMessage(playerid, COLOR_WHITE, "-1 Репы вашей фраке!");
}
if(PlayerInfo [playerid][pLeader]== 2) // Проверку на фракцию
{
RepaCoronos -= 1; // Отнимаем репу
SaveRepa(); // Сохраняем репу
SendClientMessage(playerid, COLOR_WHITE, "-1 Репы вашей фраке!");
}
7. Скрин команды /gangstat. Скриншот взят с моего сервера. У меня сделано для 4 фракций. А тут мы сделали для 2.
Автор:[/i] sk.tm_radik