Question

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

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

Спойлер

C:\Users\phuzl\Desktop\îñíîâà\gamemodes\edit.pwn(1659) : error 017: undefined symbol "plaeyrid"
C:\Users\phuzl\Desktop\îñíîâà\gamemodes\edit.pwn(1660) : error 002: only a single statement (or expression) can follow each "case"
C:\Users\phuzl\Desktop\îñíîâà\gamemodes\edit.pwn(2604) : warning 209: function "UseInventoryItem" should return a value
C:\Users\phuzl\Desktop\îñíîâà\gamemodes\edit.pwn(2605) : error 010: invalid function or declaration
C:\Users\phuzl\Desktop\îñíîâà\gamemodes\edit.pwn(2607) : error 010: invalid function or declaration
C:\Users\phuzl\Desktop\îñíîâà\gamemodes\edit.pwn(2609) : error 010: invalid function or declaration
C:\Users\phuzl\Desktop\îñíîâà\gamemodes\edit.pwn(2612) : error 010: invalid function or declaration
C:\Users\phuzl\Desktop\îñíîâà\gamemodes\edit.pwn(2616) : error 021: symbol already defined: "SendClientMessage"
C:\Users\phuzl\Desktop\îñíîâà\gamemodes\edit.pwn(2617) : error 010: invalid function or declaration
C:\Users\phuzl\Desktop\îñíîâà\gamemodes\edit.pwn(2619) : error 010: invalid function or declaration
C:\Users\phuzl\Desktop\îñíîâà\gamemodes\edit.pwn(2621) : error 021: symbol already defined: "rc_car_pos"
C:\Users\phuzl\Desktop\îñíîâà\gamemodes\edit.pwn(2626) : error 021: symbol already defined: "SendClientMessage"
C:\Users\phuzl\Desktop\îñíîâà\gamemodes\edit.pwn(2627) : error 010: invalid function or declaration
C:\Users\phuzl\Desktop\îñíîâà\gamemodes\edit.pwn(2629) : error 010: invalid function or declaration
C:\Users\phuzl\Desktop\îñíîâà\gamemodes\edit.pwn(2631) : error 021: symbol already defined: "rc_car_pos"
C:\Users\phuzl\Desktop\îñíîâà\gamemodes\edit.pwn(2636) : error 021: symbol already defined: "SendClientMessage"
C:\Users\phuzl\Desktop\îñíîâà\gamemodes\edit.pwn(2637) : error 010: invalid function or declaration
C:\Users\phuzl\Desktop\îñíîâà\gamemodes\edit.pwn(2639) : error 010: invalid function or declaration
C:\Users\phuzl\Desktop\îñíîâà\gamemodes\edit.pwn(2641) : error 021: symbol already defined: "rc_car_pos"
C:\Users\phuzl\Desktop\îñíîâà\gamemodes\edit.pwn(2646) : error 021: symbol already defined: "SendClientMessage"
C:\Users\phuzl\Desktop\îñíîâà\gamemodes\edit.pwn(2647) : error 010: invalid function or declaration
C:\Users\phuzl\Desktop\îñíîâà\gamemodes\edit.pwn(2651) : error 010: invalid function or declaration
C:\Users\phuzl\Desktop\îñíîâà\gamemodes\edit.pwn(2653) : error 010: invalid function or declaration
C:\Users\phuzl\Desktop\îñíîâà\gamemodes\edit.pwn(2655) : error 010: invalid function or declaration
C:\Users\phuzl\Desktop\îñíîâà\gamemodes\edit.pwn(2657) : error 010: invalid function or declaration
C:\Users\phuzl\Desktop\îñíîâà\gamemodes\edit.pwn(2660) : error 054: unmatched closing brace ("}")
C:\Users\phuzl\Desktop\îñíîâà\gamemodes\edit.pwn(2661) : error 010: invalid function or declaration

 

Насколько я понял, ошибку вызывает эта строчка (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,"Вы сняли аксессуар!");
                    }

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

Share this post


Link to post

4 answers to this question

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

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

Share this post


Link to post
  • 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 не говорит о профессиональности 

Share this post


Link to post
  • 0
phizlfs
Освоившийся

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

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

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

 

 

cvsJWGgUAGg.jpg

Edited by phizlfs

Share this post


Link to post
Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • ВасилийСталин
      By ВасилийСталин
      VERDICT PROJECT - V:ACE
       
      Соревновательный проект на платформе SA-MP, вдохновлённый духом Counter-Strike: тактические перестрелки, честный рейтинг и ванильное PVP.
      В разработке, не используются ресурсы, из открытых источников. Всё строится с нуля, собственный игровой мод, полностью кастомный интерфейс и игровой лаунчер.
      Что мы разрабатываем:
       
      - Рейтинговый режим с подбором по ELO. Равные соперники, честные матчи, путь от новичка до вершины таблицы.
      - Полностью кастомный интерфейс (CEF): меню, лобби, магазин и статистика такого уровня, какого на SA-MP почти не встретишь.
      - Легионеры - уникальные оперативники с индивидуальным дизайном и редкостью, открываются через боевой пропуск или чёрные ячейки (кейсы).
      - Скины на оружие и кейсы - коллекционная система в духе CS. -> В активной разработке
      - Киберспортивные команды: теги, ростеры, матчи команда против команды.
      - Тренировка аима, система рангов, ежедневные награды и не только.
       
      Продуманный баланс и внимание к деталям ванильного сражения - то, ради чего мы за это взялись.
      Проект уже на серьёзной стадии разработки. Мы открываем сообщество раньше официального анонса, чтобы первые скриншоты, новости и дата старта достались тем, кто был с нами с самого начала. Мы всегда рады открытой критике, или советам - сделаем игру лучше для всех!
      Подписывайтесь, чтобы не пропустить официальное заявление о запуске и первые материалы проекта.
       
      Группа VK: https://vk.ru/verdictcs
      Официальная почта: verdictproject@mail.ru
    • Kevin_McCarthy
      By Kevin_McCarthy
      🔒 ОТКРЫТИЕ НАБОРА НА ЗАКРЫТОЕ БЕТА-ТЕСТИРОВАНИЕ (ЗБТ)!
      Друзья! Мы выходим на самый ответственный этап разработки Brilliant RP. Проект уже практически готов к полноценному запуску, но перед тем как открыть двери для всех игроков, нам нужно тщательно проверить каждую систему, каждую работу и каждую строчку кода.
      Именно поэтому мы объявляем о старте Закрытого Бета-Тестирования!
      🏆 ТОП-3 ТЕСТЕРА ПОЛУЧАТ КРУТЫЕ ПРИЗЫ!
      Мы высоко ценим время и вклад каждого участника. Тестеры, которые проявят наибольшую активность, найдут больше всего уникальных багов и подробно опишут их в нашей Google-форме, получат ценные награды:
      🥇 1 МЕСТО: 3000 рублей на кошелек, 100.000$ игровой валюты, и Diamond VIP на 30 дней
      🥈 2 МЕСТО: 2000 рублей на кошелек, 75.000$ игровой валюты, и Diamond VIP на 30 дней
      🥉 3 МЕСТО: 1000 рублей на кошелек, 50.000$ игровой валюты, и Diamond VIP на 30 дней
      📝 Как стать участником ЗБТ?
      Заполни заявку на участие: 👉 https://vk.ru/gtasamp_brilliantrp
      Дождись одобрения.
    • OOLOAIS
      By OOLOAIS
      Ищу скрипт для самп/crmp который может скопировать акссесуары с аризоны/родины пж помогите