Question

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

Баг с командой /changeskin. Можно сменить только на 1 скин и больше не как.

Сама команда:

 

Спойлер

CMD:changeskin(playerid, params[])
{
    if(StartRabWork(playerid) && !GetPVarInt(playerid,"StartRabWork")) return SendClientMessage(playerid,COLOR_WHITE,""cError"Вы не начали рабочий день!");
    switch(PlayerInfo[playerid][pMember])
    {
    case 1,15,16,17: if(PlayerInfo[playerid][pRank] < 14) return SendClientMessage(playerid,COLOR_WHITE,""cError"Вам не доступна данная команда");
    case 2,4,5,10,7: if(PlayerInfo[playerid][pRank] < 9) return SendClientMessage(playerid,COLOR_WHITE, ""cError"Вам недоступна данная команда");
    case 3,11,13,14,9,8: if(PlayerInfo[playerid][pRank] < 9) return SendClientMessage(playerid,COLOR_WHITE,""cError"Вам не доступна данная команда");
    case 6: if(PlayerInfo[playerid][pRank] < 5) return SendClientMessage(playerid,COLOR_WHITE,""cError"Вам не доступна данная команда");
    case 12: if(PlayerInfo[playerid][pRank] < 12) return SendClientMessage(playerid,COLOR_WHITE,""cError"Вам не доступна данная команда");
    default: return SendClientMessage(playerid,COLOR_WHITE,""cError"Вам не доступна данная команда");
    }
    if(sscanf(params,"d",params[0])) return SendClientMessage(playerid, COLOR_WHITE, ""good"Используйте /changeskin [id]");
    if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid, COLOR_WHITE, ""cError"Игрок оффлайн!");
    if(PlayerInfo[playerid][pMember] != PlayerInfo[params[0]][pMember]) return SendClientMessage(playerid, COLOR_WHITE, ""cError"Данный игрок не в вашей фракции!");
    new fractionid = PlayerInfo[playerid][pMember]-1;
    new mes[256];
    for(new i;i<20;i++)
    {
        new skinid = ChangeSkin[fractionid];
        if(!skinid) break;
        if(!i) format(mes,sizeof(mes),"Скин %d [%d]",i+1,skinid);
        else format(mes,sizeof(mes),"%s\nСкин %d [%d]",mes,i+1,skinid);
    }
    SetPVarInt(playerid,"actinplayerid",params[0]);
    SetPVarInt(params[0], "pOfferFractionid", PlayerInfo[params[0]][pMember]);
    ShowPlayerDialog(playerid,1145,2,PlayerInfo[params[0]][pNames],mes,"Принять","");
    return 1;
}

 

 

Edited by odosenok

Заметка от Cawfee , создано

3.2. Код больше 10 строк брать еще и под спойлер. Как это сделать рассказано в разделе "FAQ"

Устное предупреждение.

Share this post


Link to post

10 answers to this question

  • 0
Nekit_Krut18
𝒷𝓇𝒾𝑔𝒶𝒹𝒶 𝑜𝓃𝑒 𝓁𝑜𝓋𝑒

@Banana Могли-бы вы лучше сформулировать вашу проблему. И возьмите код под цитату.!

Share this post


Link to post
  • 0
Banana
Освоившийся
1 минуту назад, Nekit_Krut18 сказал:

@Banana Могли-бы вы лучше сформулировать вашу проблему. И возьмите код под цитату.!

Лидер/Зам - могут сменить скин только на 1 а в меню смены их много.

Лидер допустим хочет сменить скин игроку на 102 и там есть 101,102 и тот что выше в меню на нёго меняет а вот на 102 уже не сменит.

Share this post


Link to post
  • 0
Banana
Освоившийся
46 минут назад, Nekit_Krut18 сказал:

@Banana Могли-бы вы лучше сформулировать вашу проблему. И возьмите код под цитату.!

Всё окей? Если надо ещё скинуть что то скину.

Заметка от Cawfee , создано

3.6. Запрещено поднимать (апать) свою тему чаще, чем 1 раз в 24 часа. 

Устное предупреждение.

Share this post


Link to post
  • 0
20th century
Постоянный

Покажите case 1145 (воспользуйтесь поиском по коду (CTRL + F), либо найдите вручную в функции OnDialogResponse).

Код под спойлер и в тему.

Share this post


Link to post
  • 0
Nekit_Krut18
𝒷𝓇𝒾𝑔𝒶𝒹𝒶 𝑜𝓃𝑒 𝓁𝑜𝓋𝑒

@20th century  Тут вроде норм, тк скин выдается для гос орг, а для к примеру балласам, неа. Ну скин меняется (видно по поведению персонажа), но остаётся стандартный все время. Хотя в массиве их 4, и в диалог выводятся тоже 4.

 

Спойлер

case 1145:
		{
			if(!response) return DeletePVar(playerid, "actinplayerid");
			new actplayerid = GetPVarInt(playerid,"actinplayerid");
			new fractionid = GetPVarInt(actplayerid, "pOfferFractionid");
			if(PlayerInfo[playerid][pMember] != fractionid) return SendClientMessage(playerid,CGRAY,""cError"#002");
			new skinid = ChangeSkin[fractionid-1][listitem];
			PlayerInfo[actplayerid][pModel] = skinid;
			SetPlayerSkin(actplayerid,PlayerInfo[actplayerid][pModel]);
			UpdatePlayerData(actplayerid,"pModel",PlayerInfo[actplayerid][pModel]);
			SendClientMessagef(actplayerid, CINFO, "Лидер/Заместитель %s сменил вам фракционный скин!",PlayerInfo[playerid][pNames]);
			DeletePVar(actplayerid, "pOfferFractionid");
			DeletePVar(playerid, "actinplayerid");
			return 1;
		}

 

 

Share this post


Link to post
  • 0
20th century
Постоянный

"..скин меняется, видно по поведению персонажа.."
По какому поведению?
В итоге проблема в чем: работает только первая строка в диалоге, или смена не работает еще и для банд?

Share this post


Link to post
  • 0
Banana
Освоившийся
7 часов назад, 20th century сказал:

"..скин меняется, видно по поведению персонажа.."
По какому поведению?
В итоге проблема в чем: работает только первая строка в диалоге, или смена не работает еще и для банд?

Смотри у госс-ников скин меняется а у банд нет. Тип пишет лидер сменил вам скин и не фига

Share this post


Link to post
  • 0
Nekit_Krut18
𝒷𝓇𝒾𝑔𝒶𝒹𝒶 𝑜𝓃𝑒 𝓁𝑜𝓋𝑒
20 часов назад, Rich_Hen сказал:

@Banana , возможно ИД скинов для банд не прописаны, проверь.

 

Я же сказал выше, что есть массив из 4 скинов, и в диалоге они отображаются.

Edited by Nekit_Krut18
Причина: Подправил.

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

    • gooding
      By gooding


      Скачать файл PAR RP | Уникальный мод без багов
      Всем здравствуйте, уважаемые читатели. Я много времени потратил на доработку данного игрового мода, чтобы его выставить на форум.
      Лог доработок можно посмотреть внизу, а скриншоты игрового мода внизу и верху.
       
       

      Добавил gooding Добавлено 20.11.2024 Категория Моды Автор GOODING (Я)  
    • gooding
      By gooding
      Всем здравствуйте, уважаемые читатели. Я много времени потратил на доработку данного игрового мода, чтобы его выставить на форум.
      Лог доработок можно посмотреть внизу, а скриншоты игрового мода внизу и верху.
       
       

    • Kalinin
      By Kalinin
      1. Набираю команду для создания CRMP сервера.
      2. Вакансии  которые свободны. Связь через TG @kalinin_sql
      Нам нужны;
      1.Кодеры
      2.Маперы
      3.СММ
      Так-же дружная работа. По поводу зарплаты будем обговаривать все лично в беседе ТГ
       
    • whccompany
      By whccompany
      Rostov Role Play | Rostov RP | CRMP Mobile Project объявляет набор людей в свою команду: Нам требуются:
       
      1. Маппера:
      Сдельная оплата труда от 250 до 3000 рублей/ за 1 работу
       
      2. Специалист по Text Draw:
      Сдельная оплата труда от 400 до 3500 рублей/ за одну работу
       
      3. Pawn разработчик:
      Заработная плата от 10 000 рублей/месяц
       
      4. Программист для создания лаунчера и сайта UCP с автодонатом:
      Заработная плата от 10 000 рублей/месяц
       
      Контакты для связи:
       
      ВКонтакте
       
      Telegram