В теме 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 пользователей онлайн

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

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

    • Дебилойд
      От Дебилойд
      Здравствуйте!
      Мы ищем талантливого 3D-моделлера в команду нашего CRMP-проекта!
      Что нужно будет делать:
      Моделировать и адаптировать автомобили.
      Создавать и настраивать скины (модели персонажей).
      Большим плюсом будет:
      Умение создавать качественные и оптимизированные интерьеры.
      Если вы хотите стать частью нашей команды и развивать проект вместе с нами, пишите в ЛС. Ждем ваши портфолио!
    • LORDIKUS
      От LORDIKUS
      Уважаемые участники форума - всех приветствую, кто перешел в беседу моей темы обсуждения. В настоящее время у меня зарождается огромное желание и мысль создать собственный CR:MP проект, но столкнулся с единственной проблемой - с отсутствием команды людей, у которых будет искреннее желание ежедневно вкладывать свой труд на разработку проекта. Особого опыта в скриптинге, маппинге, дизайне или в моделировании у меня не имеется, поэтому такой критерий как опыт в определенной сфере для желающих вступить в команду я не рассматриваю. Так как проект не открыт и находится на начальной стадии создания, мое сотрудничество выстраивается на некоммерческой основе (без выплаты за проделанную работу и труд), однако я не собираюсь отрицать высокую ценность вложенного командой труд — труд, особенно на первой стадии разработки я рассматриваю превыше всего. После открытия проекта в зависимости от коммерции и чистой прибыли каждый участник будет получать настоящую выплату, однако это также может убить еще значительное время. Мне нужна команда, которая проявит искренний интерес в создании общего между командой CR:MP проекта, пожертвует свое время, а также вложит собственный труд благодаря заработанным навыкам. Если вас заинтересовала данная тема обсуждения, пожалуйста, свяжитесь со мной по любым возможным и удобным для вас контактам связи ниже. Спасибо всем, кто зашел в мою беседу!

      🔗 Спец. Связь:
      — DISCORD: https://discord.com/users/1452715348196589691 (перейти по ссылке и добавить в друзья) ИЛИ _shin833_ (ввести никнейм и отправить запрос дружбы)
      — VK: https://vk.com/shin833
      — TG: https://t.me/s_hin833
    • Korochansky
      От Korochansky
      Настало время объявить о скором выпуске первого релиза среды разработки под названием Spawn.

      В настоящее время программа находится на заключительных этапах доработки кода и локализации интерфейса.
      Таким образом, в течение следующей недели будет выпущена быстрая и современная среда разработки, обладающая следующими возможностями (о которых я расскажу сейчас, а о других — позже):
       
      Полнофункциональный локальный Git: 
      Индексирование, фиксации, индикаторы состояния и мягкий/жесткий сброс до любой точки сохранения одним щелчком мыши. Разрабатывайте свой игровой сервер, не боясь его сломать.
      Новички могут рассматривать это как историю кодовой базы вашего сервера (что и есть на самом деле).
       
      Чистый UTF-8 (без BOM): 
      Полный отказ от устаревшей кодировки Windows-1251 (CP1251) для абсолютной стабильности и идеальной совместимости с Git.
      Реализация поддержки CP1251 привела бы к нестабильному поведению программы и ухудшила бы пользовательский опыт.
       
      История изменений строк: Редактор выделяет измененные строки в реальном времени в полях рядом с номерами строк. Это позволяет мгновенно видеть границы изменений, внесенных с момента открытия файла.
       
      Сопоставление и выделение фигурных скобок: мгновенное выделение открывающих и закрывающих фигурных скобок для быстрой навигации по структуре кода и защиты от ошибок компиляции.
       
      Интеграция с SAMPCTL: готовая к использованию автоматизация процессов. Сборка, запуск сервера и менеджер зависимостей (управление библиотеками и плагинами) работают напрямую из интерфейса редактора.
       
      И многое другое...
       
      И самое главное: проект будет с открытым исходным кодом под лицензией GPLv3!
      Следите за новостями о выпуске в репозитории: https://github.com/daniilkorochansky/spawn
    • KodBi
      От KodBi
      шапка
      по одиночке работают
      нужны оба