В теме 9 сообщений

RASTAMAN
Великий Гуру

покажу вам мануал по созданию команды /zapiska, с помощью который вы можете создать записку на автомобиль. Например - "Срочно продам авто.Тел: 1-23-45-67-89" и у вас на заднем окне машины будет написано объявление

ко всем new

new Text3D:Numbertext[MAX_VEHICLES]; 

ко всем цветам

#define COLOR_ZAO 0x4592DEAA  

в enum ainfo

aTextCar

Спойлер

 //------ [ /zapiska ] --- записка на авто --------//
    if (strcmp(cmd, "/zapiska", true) == 0)
    {
        new text_car[256];
        if(IsPlayerConnected(playerid))
        {
        if(PlayerInfo[playerid][pTextCar]==1)
            {
                 SendClientMessage(playerid, COLOR_LIGHTRED, "На авто уже есть записка!");
                  return 1;
               }
            new cari = GetPlayerVehicleID(playerid);
            {
                new length = strlen(cmdtext);
                while ((idx < length) && (cmdtext[idx] <= ' '))
                {
                    idx++;
                }
                new offset = idx;
                new result[64];
                while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
                {
                    result[idx - offset] = cmdtext[idx];
                    idx++;
                }
                result[idx - offset] = EOS;
                if(!strlen(result))
                {
                    SendClientMessage(playerid, COLOR_ZAO, "Пропишите: /zapiska [text]");
                    return 1;
                }
                PlayerInfo[playerid][pTextCar]=1;
                SendClientMessage(playerid,COLOR_ZAO, "Вы оставили записку на авто!");
                format(text_car,sizeof(text_car),"Сообщение: %s\n Отправитель: %s", result,sendername);
                Numbertext[cari] = Create3DTextLabel(text_car,COLOR_ZAO,0.0,0.0,0.0,15.0,0);
                Attach3DTextLabelToVehicle(Numbertext[cari],cari,0.0,0.0,1.0);
                OnPlayerUpdate(playerid);
            }
        }
        return 1;
    }

 

Спойлер

   //------ Удалить записку
    if(strcmp(cmd, "/delzapiska", true) == 0)
    {
        if(IsPlayerConnected(playerid))
        {
            new cari = GetPlayerVehicleID(playerid);
            PlayerInfo[playerid][pTextCar]=0;
            SendClientMessage(playerid,COLOR_ZAO, "Вы убрали записку с авто!");
            Delete3DTextLabel(Numbertext[cari]);
        }
           return 1;
    }   

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Skiffi
Активный

Прости пожалуйста, что открывает эту скобку?..

            new cari = GetPlayerVehicleID(playerid);
            {

В данном случае это вообще не нужно

        if(IsPlayerConnected(playerid))
        {

Много лишнего кода

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Skiffi
Активный

Я тут немного переписал.
Все что нужно для работы "записки" две команды, не более.
Само создание записки:

Спойлер

if(strcmp(cmd, "/zapiska", true) == 0) {
    new
        string[144],
        carID = GetPlayerVehicleID(playerid),
        Text3D:textID,
        playerName[MAX_PLAYER_NAME];
        
    if(GetPVarInt(playerid,"CarText") > 0)
        return SendClientMessage(playerid,-1,!"На авто уже есть записка!");
     
     tmp = strtok(cmdtext, idx);
     
    if(!strlen(result))
        return SendClientMessage(playerid,-1,!"Пропишите: /zapiska [text]");
        
    GetPlayerName(playerid, playerName, sizeof(playerName));
    
      format(string,sizeof(string),!"Сообщение: %s\n Отправитель: %s",tmp,playerName);
      textID = Create3DTextLabel(string,-1,0.0,0.0,0.0,15.0,0);
      Attach3DTextLabelToVehicle(textID,carID,0.0,0.0,1.0);
      
      SetPVarInt(playerid,"CarText",textID);
      
    return SendClientMessage(playerid,-1,!"Вы оставили записку на авто!");
}

 

И ее удаление:

Спойлер

if(strcmp(cmd, "/delzapiska", true) == 0) {
    Delete3DTextLabel(GetPVarInt(playerid,"CarText"));
    DeletePVar(playerid,"CarText");
    
    return SendClientMessage(playerid,-1,!"Вы убрали записку с авто!");
}

 


Уважаемый автор, перед копированием команды на форум смотрите на дату ее создания (26 ноябрь 2011), приводите ее в порядок.

Отредактировано пользователем Skiffi

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
RASTAMAN
Великий Гуру

@Skiffi ты прости меня тоже пожалуйста...а зачем ты ее переписал??никтож не просил.....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Skiffi
Активный

@RASTAMAN , Скучно. И как по моему мнению, древний код не должен выкладываться на форумы, а если выкладывается то в усовершенствованном виде.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
CMD:zapiska(playerid, params[])
    new
        string[144],
        carID = GetPlayerVehicleID(playerid),
        Text3D:textID,
        playerName[MAX_PLAYER_NAME];
        
    if(GetPVarInt(playerid,"CarText") > 0)
        return SendClientMessage(playerid,-1,!"На авто уже есть записка!");
     
	if(sscanf(params, "s[32]", params[0])) 
      	return SendClientMessage(playerid, -1, !"Используйте: /zapiska [text]");
        
    GetPlayerName(playerid, playerName, sizeof(playerName));
    
      format(string,sizeof(string),!"Сообщение: %s\n Отправитель: %s",params[0],playerName);
      textID = Create3DTextLabel(string,-1,0.0,0.0,0.0,15.0,0);
      Attach3DTextLabelToVehicle(textID,carID,0.0,0.0,1.0);
      
      SetPVarInt(playerid,"CarText",textID);
      
    return SendClientMessage(playerid,-1,!"Вы оставили записку на авто!");
}

И вторая команда соответственно: 
 

CMD:delzapiska(playerid) {
    Delete3DTextLabel(GetPVarInt(playerid,"CarText"));
    DeletePVar(playerid,"CarText");
    
    return SendClientMessage(playerid,-1,!"Вы убрали записку с авто!");
}

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Новичок

@Skiffi любой код должен выкладываться

Отредактировано пользователем Daniil Roslyakov

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Закрыто от оффтопа. Если у пользователей возникнут вопросы и / или ошибки по поводу данной темы, создавайте новую в разделе "Вопросы по скриптингу". 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • Helados
      От Helados
      Короче, мы протестировали наш GTA на другом хостинге — голосовой чат там работает, всё включается нормально. Также проверили на другом хостинге с нашим игровым модом — voice chat тоже работает.
      Но на нашем личном хостинге, который мы купили на OVH и установили панель, не получается запустить голосовой чат. Похоже, проблема связана с портами. После перезапуска сервер почему-то случайным образом выбирает порты сам и мы не можем это исправить.
      Если кто-то знает человека, который может помочь разобраться с этой проблемой, буду благодарен.
    • тимормо
      От тимормо
      Копия Diamond RP (основа State 99)
      Скачать файл Мод DIAMOND RP (ver. 1.0)
      Основа: State 99
      Автор мода: #TomSnow
      Вопросы/Баги: https://vk.com/etalon_dev
       
      Приветствую всех! На связи #TomSnow
       
      Я принял решение начать поэтапную разработку и восстановление легендарного мода Diamond RolePlay образца 2015–2017 годов, взяв за основу мод State 99 (оригинальная основа DRP).
       
      Каждая новая версия разрабатываемого мода будет публиковаться в открытом доступе для всех участников и подписчиков сообщества (https://vk.com/etalon_dev). Это позволит вам не только следить за процессом разработки, но и принимать непосредственное участие в развитии проекта: тестировать обновления, находить баги, сообщать о недоработках и помогать делать мод максимально качественным и стабильным.
       
      Если вам интересна данная тематика и вы хотите наблюдать за ходом разработки, подписывайтесь на нашу группу ВКонтакте (https://vk.com/etalon_dev) и ожидайте публикацию версий проекта.
       
      Спасибо всем за поддержку! Впереди нас ждёт много интересной работы и возвращение атмосферы классического Diamond RolePlay. 
       
      Информация о моде:
       
      Версия MySQL R 39-6
      Античит Nex-AC (Доработанный)
      Стример Streamer Plugin v2.9.4
      Командный процессор Pawn CMD
       
      Список обновлений мода
       
       
      Добавил тимормо Добавлено 07/15/26 Категория Моды Автор #TomSnow  
    • тимормо
      От тимормо
      Мод DIAMOND RP (ver. 1.0)
      Основа: State 99
      Автор мода: #TomSnow
      Вопросы/Баги: https://vk.com/etalon_dev
       
      Приветствую всех! На связи #TomSnow
       
      Я принял решение начать поэтапную разработку и восстановление легендарного мода Diamond RolePlay образца 2015–2017 годов, взяв за основу мод State 99 (оригинальная основа DRP).
       
      Каждая новая версия разрабатываемого мода будет публиковаться в открытом доступе для всех участников и подписчиков сообщества (https://vk.com/etalon_dev). Это позволит вам не только следить за процессом разработки, но и принимать непосредственное участие в развитии проекта: тестировать обновления, находить баги, сообщать о недоработках и помогать делать мод максимально качественным и стабильным.
       
      Если вам интересна данная тематика и вы хотите наблюдать за ходом разработки, подписывайтесь на нашу группу ВКонтакте (https://vk.com/etalon_dev) и ожидайте публикацию версий проекта.
       
      Спасибо всем за поддержку! Впереди нас ждёт много интересной работы и возвращение атмосферы классического Diamond RolePlay. 
       
      Информация о моде:
       
      Версия MySQL R 39-6
      Античит Nex-AC (Доработанный)
      Стример Streamer Plugin v2.9.4
      Командный процессор Pawn CMD
       
      Список обновлений мода