• Страница 1 из 1
  • 1
Создание двухуровневых команд
fenix05Дата: Воскресенье, 24.03.2013, 17:16 | Сообщение # 1
.::Offline::.
Гангстер
Сообщений: 151
[ 62 ]
Награды: 4

Статус отсутствует
Для примера сделаем команду создания машины по её id.


    [1]
    Ко всем new:
    Код
    new Cars[MAX_PLAYERS];

    Эта переменная будет хранит созданную машину.

    [2]
    В public OnPlayerCommandText:
    Код
    new idx; // Для хранения параметра команды.
    new cmd[256]; // Для хранения всего текста команды.
    cmd = strtok(cmdtext, idx); // определяем пробел между командой и параметром


    [3]
    Далее здесь же:
    Код
    if(strcmp(cmd, "/cars", true) == 0) // сама команда
      {
       new tmp[256]; // для хранения текста после пробела
       tmp = strtok(cmdtext, idx); // определяем пробел между командой и
    параметром
       if(!strlen(tmp)) // если введена команда без параметра
       {
        SendClientMessage(playerid, 0xFFFFFFAA, "Введите: /cars [id машины]");
        return 1;
       }
       new idCar = strval(tmp); // записываем параметр в переменную, в нашем случае это id кара
       /* Далее указываем действия */
       new Float:ax,Float:ay,Float:az,Float:az_angle;
       GetPlayerPos(playerid, ax, ay, az);//Узнаём координаты игрока, и записываем эти данные в переменные ax,ay,az;
       GetPlayerFacingAngle(playerid, az_angle);//Узнаём угол поворота игрока
       DestroyVehicle(Cars[playerid]);//Убиваем машину
       Cars[playerid] = CreateVehicle(idCar, ax, ay, az, az_angle, -1, -1, 60000);//создаём машину
       PutPlayerInVehicle(playerid, Cars[playerid], 0);//сажаем игрока в машину
       return 1;
      }

    [4]
    Если ошибки с strtok, то в конец мода добавьте:
    Код
    strtok(const string[], &index)
    {
    new length = strlen(string);
    while ((index < length) && (string[index] <= ' '))
    {
    index++;
    }
    new offset = index;
    new result[20];
    while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
    {
    result[index - offset] = string[index];
    index++;
    }
    result[index - offset] = EOS;
    return result;
    }




Alien Brickman [vk.com/alien_brickman]Обложка:
 
  • Страница 1 из 1
  • 1
Поиск:


Copyright www.SAMP-TEAM.com (c) 2009-2024
Правила использования материалов сайта

При копировании материалов из нашего сайта
ссылка на www.SAMP-TEAM.com обязательна!
Нарушители правил будут строго наказаны!

Хостинг от uCoz   
Для корректного просмотра мы рекомендуем Вам использовать браузер Google Chrome.
Яндекс.Метрика
Яндекс.Метрика