Pawno-SAMP
Главная
Вход
Регистрация
Вторник, 15.07.2025, 14:59Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
[Урок] Создаем РП рейтинг ( Samp-Rp 100% )
UlkiorraJeezyДата: Суббота, 14.07.2012, 12:37 | Сообщение # 1
Лейтенант
Группа: Администраторы
Сообщений: 71
Репутация: 0
Статус: Offline
Приступим.
Вырезал из Samp-Rp.

1. В enum pInfo
Code
pRp,

2. В public OnPlayerConnect(playerid)
Code
PlayerInfo[playerid][pRp] = 0;  

3. В public OnPlayerRegister(playerid, password[])
Code
format(var, 32, "Rp=%d\n",PlayerInfo[playerid][pRp]);fwrite(hFile, var);  

4. Далее в public OnPlayerUpdateSG(playerid)
Code
format(var, 32, "Rp=%d\n",PlayerInfo[playerid][pRp]);fwrite(hFile, var);

5. В public OnPlayerLogin(playerid,password[]) вставляем
Code
if( strcmp( key , "Rp" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pRp] = strval( val ); }  

6. Далее в команду /setstat вставляем:
Code
case 30: // 30 - замените на своё
{
PlayerInfo[giveplayerid][pRp] = amount;
format(string, sizeof(string), "Рейтинг %d ", amount);
}

7. Далее в команду /mute вставляем
Code
PlayerInfo[playa][pRp] -=2; // [playa] - можете изменить на своё  

8. Далее в команду /ban вставляем
Code
PlayerInfo[giveplayerid][pRp] -=20; // [giveplayerid] - можете изменить на своё  

9. Далее в команду /warn вставляем
Code
PlayerInfo[giveplayerid][pRp] -=10; // [giveplayerid] - можете изменить на своё  

10. Далее в команду /kick вставляем
Code
PlayerInfo[giveplayerid][pRp] -=5;  

11. Добавляем команды в public OnPlayerCommandText(playerid, cmdtext[])
Code
if(strcmp(cmd, "/getrpr", true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext,idx);
if(!strlen(tmp))
{
SendClientMessage(playerid,COLOR_WHITE,"{00FFFF}Ваш текущий РП рейтинг: %d. Оставшееся количество очков для голосования: %d");
SendClientMessage(playerid,COLOR_WHITE,"Введите: /getrpr [playerid] если хотите узнать рейтинг другого игрока");
return 1;
}
giveplayerid = ReturnUser(tmp);
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
format(string, sizeof(string), "{00FFFF}Текущий РП рейтинг %s: %d",giveplayer,PlayerInfo[giveplayerid][pRp]);
SendClientMessage(playerid,COLOR_BLUE,string);
}
return 1;
}

if(strcmp(cmd, "/setrpr", true) == 0)
     {
         if(IsPlayerConnected(playerid))
         {
         if(!strlen(tmp))
          {
             tmp = strtok(cmdtext, idx);
             if(!strlen(tmp))
            {
                         SendClientMessage(playerid, COLOR_WHITE, "Введите: /setrpr [playerid] [очки -5 - +5] [причина]");
                         return 1;
                 }
               giveplayerid = ReturnUser(tmp);
             if(IsPlayerConnected(giveplayerid))
             {
                 if(giveplayerid != INVALID_PLAYER_ID)
                 {
                     tmp = strtok(cmdtext, idx);
                     if(!strlen(tmp))
                     {
                     SendClientMessage(playerid, COLOR_WHITE, "Введите: /setrpr [playerid] [очки -5 - +5] [причина]");
                         return 1;
                     }
                             if(giveplayerid == playerid)
                 {
                 SendClientMessage(playerid, COLOR_GRAD1, "Нельзя изменять рейтинг самому себе!");
                         return 1;
                 }
                         new amount;
                     amount = strval(tmp);
                     if(PlayerInfo[giveplayerid][pLevel] < amount)
                 {
                 SendClientMessage(playerid, COLOR_WHITE, "Уровень игрока ниже указанного вами рейтинга");
                         return 1;
                 }
               /*if(PlayerInfo[giveplayerid][pRp] > PlayerInfo[playerid][pRp])
                 {
                 SendClientMessage(playerid, COLOR_WHITE, "У данного игрока рейтинг выше Вашего");
                         return 1;
                 }*/
                 if(PlayerInfo[playerid][pRp] < -1)
                 {
                 SendClientMessage(playerid, COLOR_GRAD1, "Вы не можете голосовать, ваш рейтинг слишком мал");
                         return 1;
                 }
                 if(golosov[playerid] >= 5)
                 {
                 SendClientMessage(playerid, COLOR_GRAD1, "Вы уже голосовали больше 5 раз");
                         return 1;
                 }
                 PlayerInfo[giveplayerid][pRp] += amount;
                 format(string, sizeof(string), "Голос: %d", amount);
                 SendClientMessage(playerid, COLOR_GRAD1, string);
                 GetPlayerName(playerid, sendername, sizeof(sendername));
                 golosov[playerid] +=1;
                 format(string, sizeof(string), "%s проголосовал за ваш рейтинг. Голос: %d",sendername,amount);
                 SendClientMessage(giveplayerid, COLOR_YELLOW2, string);
             }
         }
         }
         }
         return 1;

     }


Если правильно вставите коды,все работает 100%
 
  • Страница 1 из 1
  • 1
Поиск:


Пожертвования на развитие сайта. Yandex: 410011459268530 © 2025
Создать бесплатный сайт с uCoz