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

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

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

    • Андрей Лазарев
      От Андрей Лазарев
      ROSTOV-HOST.RU - Современный Хостинг Игровых Серверов по невероятно низким ценам и удобной панелью управления 

      — Защита от DDoS-атак 
      — Бесплатная техническая поддержка 
      — Доступ в панель управления и личный кабинет 
      — Переустановка игрового сервера в любое время суток 
      — Редактирование конфигурационных файлов игрового сервера 
      — FTP доступ к файлам игрового сервера 
      — Мониторинг процессов 
      — Изменение количества слотов игрового сервера 
      — Система управления счетами и оплаты услуг 
      — Локальная MySQL база данных 
      — Автоустановка модов
      — Смена (версии / игры) сразу в панели управления


      Цены: с помесячной оплатой
      — GTA: SAMP              - 1слот / 0.40копп.
      — GTA: CRMP              - 1слот / 0.40копп.
      — GTA: MTA                 - 1слот / 0.80копп.
      — GTA: United MP       - 1слот / 0.80копп.
      — MineCraft: PE           - 1слот / 3.00копп.
      — MineCraft                  - 1слот / 5.00копп.
      — Counter Strike 1.6    - 1слот / 4.00копп.
       
      Цены: плати один раз пользуйся до скончания веков
      — 1 200 руб / SA:MP 0.3е/ CR:MP 0.3е/ МТА /    500 слотов
      — 1 800 руб / SA:MP 0.3.7/ CR:MP 0.3.7/ МТА /    1000 слотов
       

      Сайт: https://rostov-host.ru
      Группа в VK: https://vk.com/rostov_host
       
       
    • 9at0z
      От 9at0z
      Flatgame.ru - Хостинг игровых серверов. Gta SAMP: 0.50коп/слот Gta СRMP: 0.50коп/слот MTA: 0.50коп/слот Minecraft: 5руб/слот Counter Stire 1.6: 7руб/слот Все сервера с автоусновкой модов, которые есть доступны. Обширная панель управления сервером. Тестовый периуд 3 дня. И очень много чего интересного!

    • FanVan
      От FanVan

       
      Дешевый хостинг серверов SAMP, CRMP, Minecraft: Java & Bedrock Edition
       
      Помогаем запуститься начинающим проектам без больших вложений.
      Сделаем так, чтобы твои затраты на хостинг уменьшились без потери качества.
       
      Размещаем серверы в Хельсинках, Финляндия на процессоре частотой до 4.8 ГГц и NVMe диске.
      У нас нет красивого сайта, покупка услуг производится через бота в ЛС группы, а управление сервером -- посредством панели Pterodactyl.
      Мы не ограничиваем тебя слотами: все тарифы -- это маленькие компьютеры, ты волен сам устанавливать максимальное количество игроков, без повышения стоимости.
       
      К нам обращаются, когда хостинг начинает съедать большую часть бюджета из-за того, что хостер захотел выпендриться и добавил бесполезный функционал. Но лучше обратиться еще в начале, чтобы уменьшить затраты на хостинг и вложить как можно больше в рекламу.
       
      Никто не идеален, ничто не идеально: мы не можем помочь
      если у тебя высоконагруженный проект если тебе требуется защита от DDOS если тебе нужен пинг -1 если тебе важна автоустановка модов  
      Но ты можешь написать нам в тех. поддержку и, возможно, мы подберем более мощный тариф на отдельном сервере персонально для тебя по цене ниже, чем у других.
       
      Мы стремимся сделать создание сервера доступным каждому. Если остались вопросы или хочешь протестировать оборудование, напиши нам в ЛС группы.