Вопросы

phizlfs
Освоившийся

@Sleash, В прошлой теме вы мне подсказали код с загрузкой аксессуаров на персонаже.
При компиляции выдаёт ошибку: 
 

  открыть спойлер

 

Насколько я понял, ошибку вызывает эта строчка (p.s: если её убрать, то код спокойно компилируется): 
 

switch(type)
    {
        case ITEM_TYPE_SKIN:
        {
            if(GetPlayerSkin(playerid) == itemid)
                return 1;

            SetPlayerSkin(playerid, itemid);
        }
        case ITEM_TYPE_ACS: return UseAcs(plaeyrid, itemid); // ЭТА СТРОЧКА
        {
            switch(itemid)
            {
                case 193191931819317:
                {
                    if(IsPlayerAttachedObjectSlotUsed(playerid, 5))
                    {
                        RemovePlayerAttachedObject(playerid, 5);
                        SendClientMessage(playerid,COLOR_LIGHTBLUE,"Вы сняли аксессуар!");
                    }

Как это починить? подскажите, пожалуйста

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


Ссылка на сообщение

4 ответа на этот вопрос

  • 0
𝙡𝙖𝙨𝙩 𝙚𝙢𝙥𝙚𝙧𝙤𝙧.
Создатель WayDev
case ITEM_TYPE_ACS: return UseAcs(plaeyrid, itemid); // ЭТА СТРОЧКА
{

У кейса уже есть действие. 
Либо удалите строчку "return UseAcs(plaeyrid, itemid);", либо все то, что идет ниже, начиная с фигурной скобки.

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


Ссылка на сообщение
  • 0
Sleash
Завсегдатый

@phizlfs 
1) Добавьте сток TakeAcs:
 

stock TakeAcs(playerid, index) {
    if(!pUsedAcs[playerid][index]) return false;
    pUsedAcs[playerid][index] = 0;
    RemovePlayerAttachedObject(playerid, index);
    SendClientMessage(playerid,COLOR_LIGHTBLUE,"Вы сняли аксессуар!");
}

Измените сток UseAcs:
 

stock UseAcs(playerid, itemid, onspawn = 0) {
    new index = GetAttachIDX(itemid); 
    if(index == ATTACH_IDX_NONE && onspawn) return false
    if(index == ATTACH_IDX_NONE && !onspawn) return SendClientMessage(playerid, -1"Неизвестный аксессуар"); 
    if(pUsedAcs[playerid][index]) TakeAcs(playerid, index);
    pUsedAcs[playerid][index] = itemid; 
    #define AcsAttach(%0) SetPlayerAttachedObject(playerid,index,itemid,%0)
    switch(itemid) {
        case 19317: AcsAttach(10.114000,-0.122000,-0.0529994.199994,119.299995,-4.7000010.688000,1.000000,0.696000);
    }
    return 1
}

3) Уберите код под фигурными скобками в case ITEM_TYPE_ACS:

switch(type)
    {
        case ITEM_TYPE_SKIN:
        {
            if(GetPlayerSkin(playerid) == itemid)
                return 1;

            SetPlayerSkin(playerid, itemid);
        }
        case ITEM_TYPE_ACS: return UseAcs(playerid, itemid);
        // тут была моя опечатка, вместо playerid я написал plaeyrid 
        // всё что ниже под {} (Слово удалено системой) не надо
        /*{
            switch(itemid)
            {
                case 19319, 19318, 19317:
                {
                    if(IsPlayerAttachedObjectSlotUsed(playerid, 5))
                    {
                        RemovePlayerAttachedObject(playerid, 5);
                        SendClientMessage(playerid,COLOR_LIGHTBLUE,"Вы сняли аксессуар!");
                    }
                    //...
                }
                //...
            }
            //...
        }*/

А вообще я зря Вам в прошлой теме посоветовал попытаться разобраться в моём коде
Не примите за оскорбление - но вам бы сначала разобраться в основах Pawn, ибо пихать код под кавычками после return'a не говорит о профессиональности 

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


Ссылка на сообщение
  • 0
phizlfs
Освоившийся

@Sleash, Добавил всё в точности как у вас, вписал сохранение в дисконнект и создал таблицу в базе с аккаунтами UsedAcs (так же пробовал с varchar 128, вместо text)

В базу ничего не сохраняет, а при попытке снять аксессуар ничего не происходит, просто возвращает "вы сняли аксессуар". 

Что касается сохранения, может быть я таблицу создал не правильную, а вот со вторым предположений нет.

 

 

cvsJWGgUAGg.jpg

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

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


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

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

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

    • watson
      От watson
      Привет всем!

      Выкладываю рабочий инструмент, который лично писал под задачи для крупных бонусных проектов. От меня недавно произошла доработка - теперь при записи маршрута сохраняются все сообщения, которые вы пишете в чат.
       
      Как это работает Запуск записи:
      Вводите /route с названием скрипта (или биндите на клавишу) — скрипт начинает фиксировать всё ваше передвижение (onfoot/incar/aim пакеты) и любые ваши сообщения в чат. Завершение:
      Ещё раз /route с названием скрипта или /stop — сохраняется маршрут вместе с чатом в файл формата .rt в папке MoonLoader/rakbotRoutes. Воспроизведение:
      Через команду !play <название> в консоли RakSamp LITE — бот воспроизводит маршрут один в один с вашими действиями, повторяет весь ввод, а так-же отправляет в чат все сохранённые сообщения (имитация через Enter). Поддержка цикла:
      Можно включить повтор маршрута (!loop), пока не надоест. Что важно в коде
      Запись всех синк-пакетов (движения, анимации, aim и т.д.):
      Пакеты по движению (onfoot/incar/aim) записываются подробно — никакой халтуры, каждое значение (позиция, кватернион, скорость, анимации, флаги и т.д.) фиксируется для полной копии.  

       
      Запись сообщений чата по индексам
      Каждое сообщение, которое отправляется в чат во время записи маршрута, сохраняется в отдельную таблицу с текущим индексом (counter). То есть при воспроизведении бот знает, на каком этапе какой текст нужно “цитировать” в чат.  

       
      Воспроизведение маршрута и чата
      На каждом этапе воспроизведения проверяется, было ли сообщение в этот момент — если да, оно “отправляется” как будто в оригинале, без задержек и рассинхрона. Пакеты проигрываются по индексу — как только доходит до конца, скрипт сам решает, останавливать ли выполнение или запускать по кругу (если включен loop).  

       
      Формат сохранения
      Файл маршрута содержит не только действия, но и отдельную секцию [chat], что позволяет воспроизвести всё как было, а не только беготню.  

       
       
      Если кому-то реально нужна автоматизация для бонусных серверов и не только как например фейковые игроки и вам важна последовательность действий и чата — этот инструмент сэкономит часы времени. Всё написано максимально просто для внедрения.

      P.S. Если есть определённые проблемы, вопросы или даже идеи для доработки — пишите.
      Desktop.zip
    • gooding
      От gooding
      Всем здравствуйте, уважаемые читатели. Я много времени потратил на доработку данного игрового мода, чтобы его выставить на форум.
      Лог доработок можно посмотреть внизу, а скриншоты игрового мода внизу и верху.