[X - POLICE] CLAN FORUM Воскресенье, 27.07.2025, 16:43
Главная страница | Регистрация | Вход Приветствую Вас Прохожий | RSS
 
  • Страница 1 из 1
  • 1
Архив - только для чтения
FAQ по скриптостроительству для GTA:SA Server'а
[X-POL]BUDU_KRATOK[TL]Дата: Понедельник, 10.09.2007, 17:57 | Сообщение # 1
Лидер Клана
Группа: Верховный Главнокомандующий
Сообщений: 307
Репутация: 8
Статус: Offline
Итак, я решил написать что-то типа FAQа по скриптостроительству.
Для начала надо выбрать, что Вы хотите - DM (DeadMatch) RPG или ещё что-нибудь. Самому писать скрипт с нуля не имеет смысла, можно перевести и дополнить уже существующие скрипты.
Возьмём DM Mod. Просмотреть его можно в папке gamemods файл lvdm

Это СТАНДАРТНЫЙ мод, находится в папке gamemodes.
Допустим, мы хотим, чтобы можно было запирать машины, т.к. в этой версии мода этого делать нельзя. Пока нельзя =)

В разделе OnePlayerCommand после всех комманд (в моем случае это команда и описание /givecash пишем:

Code
   
   if (IsPlayerConnected(giveplayerid)) {
    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    playermoney = GetPlayerMoney(playerid);
    if (moneys > 0 && playermoney >= moneys) {
     GivePlayerMoney(playerid, (0 - moneys));
     GivePlayerMoney(giveplayerid, moneys);
     format(string, sizeof(string), "_=Вы передали %s(player: %d), $%d.", giveplayer,giveplayerid, moneys);
     SendClientMessage(playerid, COLOR_YELLOW, string);
     format(string, sizeof(string), "_=Вы передали $%d from %s(player: %d).", moneys, sendername, playerid);
     SendClientMessage(giveplayerid, COLOR_YELLOW, string);
     printf("%s(playerid:%d) передал(а) %d to %s(playerid:%d)",sendername, playerid, moneys, giveplayer, giveplayerid);
    }
    else {
     SendClientMessage(playerid, COLOR_YELLOW, "_=Проблема с передачей");
    }
   }
   else {
     format(string, sizeof(string), "%d - неактивный игрок", giveplayerid);
     SendClientMessage(playerid, COLOR_YELLOW, string);
    }
   return 1;
   }
      if (strcmp(cmdtext, "/lock", true)==0)
   {
    if(IsPlayerInAnyVehicle(playerid))
    {
     new State=GetPlayerState(playerid);
     if(State!=PLAYER_STATE_DRIVER)
     {
      SendClientMessage(playerid,0xFFFF00AA,","-=Вы можете только отпирать двери как водитель=-");
      return 1;
     }
     new i;
     for(i=0;i<MAX_PLAYERS;i++)
     {
      if(i != playerid)
      {
       SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid),i, 0, 1);
      }
     }
     SendClientMessage(playerid, 0xFFFF00AA, ""-=Машина закрыта!=-");
        new Float:pX, Float:pY, Float:pZ;
     GetPlayerPos(playerid,pX,pY,pZ);
     PlayerPlaySound(playerid,1056,pX,pY,pZ);
    }
    else
    {
     SendClientMessage(playerid, 0xFFFF00AA, "-=Вы не в машине!=-");
    }
   return 1;
   }

if (strcmp(cmdtext, "/unlock", true)==0)
  {
   if(IsPlayerInAnyVehicle(playerid))
   {
    new State=GetPlayerState(playerid);
    if(State!=PLAYER_STATE_DRIVER)
    {
     SendClientMessage(playerid,0xFFFF00AA,"-=Вы можете только отпирать двери как водитель=-");
     return 1;
    }
    new i;
    for(i=0;i<MAX_PLAYERS;i++)
    {
     SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid),i, 0, 0);
    }
    SendClientMessage(playerid, 0xFFFF00AA, "-=Машина открыта!=-");
    new Float:pX, Float:pY, Float:pZ;
    GetPlayerPos(playerid,pX,pY,pZ);
    PlayerPlaySound(playerid,1057,pX,pY,pZ);
   }
   else
   {
    SendClientMessage(playerid, 0xFFFF00AA, "-=Вы не в машине!=-");
   }
  return 1;
  }

Как видете команду /givecash я перевел на русский. GTA:SA Server не понимает русского и поэтому надо вставлять перед началом фразы любой символ. У меня это "-=". В случае с
Code
format(string, sizeof(string), "%d - неактивный игрок", giveplayerid);
Пробел ставить не нужно, т.к. уже есть символ - %d - это айди игрока.
Спрашивайте, отвечу!
Команды в англ. версии брал с сайьа www.sa-mp.com на Форуме.

Добавлено (10.09.2007, 17:57)
---------------------------------------------
В коде ошибки с отступами, так что если кому надо код - обращайтесь в асю!


С уважением Глава Внешней Разведки Секретной Полиции (ГВРСП)




"Кристаллическая решетка на следующий год, когда было лунное затмение и сгорел древний храм Афины в Афинах (при эфоре Питии и афинском архонте Каллии), развивает неопределенный интеграл, не говоря уже о том, что рок-н-ролл мертв. Хорус изменяем."
www.yandex.ru - Генератор рефератов

Сообщение отредактировал [X-POL]BUDU_KRATOK[TL] - Понедельник, 10.09.2007, 17:59
 
  • Страница 1 из 1
  • 1
Поиск:

Copyright MyCorp © 2006   Disagn by BUDU_KRATOK (logo "X-POLICE") and UCOZ
Rambler's Top100offsite.ruРейтинг@Mail.ru