Вопросы

Баг с командой /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;
}

 

 

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

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

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

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

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


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

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

  • 0

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

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


Ссылка на сообщение
  • 0
1 минуту назад, Nekit_Krut18 сказал:

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

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

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

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


Ссылка на сообщение
  • 0
46 минут назад, Nekit_Krut18 сказал:

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

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

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

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

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

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


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

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

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

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


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

@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;
		}

 

 

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


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

В чем проблема? Код вроде не че?

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


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

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

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


Ссылка на сообщение
  • 0
7 часов назад, 20th century сказал:

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

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

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


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

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

 

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


Ссылка на сообщение
  • 0
20 часов назад, Rich_Hen сказал:

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

 

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

Отредактировано пользователем Nekit_Krut18
Причина: Подправил.

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


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

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

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

    • Узбек
      От Узбек
      Всем добрый вечер ребят! 
      Я начинающий, сегодня я вам сливаю команду 2(шт) на технические работы
      Ловите 
       
    • nazpol9
      От nazpol9
      Привет всем.

      У меня имеется мод для самп сервера и VPS с Ubuntu, на котором я пытаюсь его запустить.

      В чем суть проблемы: при запуске samp03svr, сервер запускается, но на версии 0.3.DL R-1. Когда я пытаюсь запустить этот же мод локально на Windows, сервер работает на версии 0.3.7 и я могу зайти на него без клиента 0.3.DL.

      Для решения этой проблемы я уже пробовал заменять инклуды и исполнительные файлы теми, что есть в архивах на официальном сайте сампа, перекомпилировал мод, и ничего не изменилось.
       
      #include <a_samp> #include <a_mysql> #include <foreach> #include <Pawn.RakNet> #include <streamer> #include <sscanf2> #include <float2> #include <crashdetect> #include <fmt> #include <a_http> #include <Pawn.CMD> #include <Pawn.Regex> #include <requests> #include <callbacks> #include <MD5> #include <mxdate> #include <TOTP> #include <gvar> #include <md-sort> #include <nex-ac> #include <weapon-config> #include <discord-connector> #include <3DTryg> #include <textdraw-streamer>  
      plugins crashdetect.so streamer.so textdraw-streamer.so sscanf.so pawnraknet.so pawncmd.so mysql.so requests.so profiler.so pawnregex.so TOTP.so gvar.so discord-connector.so

      Если у кого-то будут какие-либо догадки, прошу ими поделиться, если понадобится больше информации - я постараюсь её предоставить.