Приветствую Вас Гость | RSS

Все для SA-MP

Воскресенье, 29.06.2025, 16:38
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Система репутации для фракций
Подполковник

massa Администраторы

Сообщения:
145
Симпатия:
1
Цитата (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


ТРЕБУЮТСЯ МОДЕРАТОРЫ НА ФОРУМ!

 
  • Страница 1 из 1
  • 1
Поиск: