Вопросы

Caracal2222
Свой человек

@Cawfee Здравствуйте. Не могли бы помочь? Взял с Аризоны крмп команду на увольнение гос.служащих, она доступна лишь Правительству и ФСБ, подогнал в другой серв крмп, и при вводе /demoute пишет что она доступна лишь ФСБ и Правительству. 

Даже ставил != вместо == в строке if(PI[playerid][pMember] == TEAM_FBI || PI[playerid][pMember] == TEAM_MERIA) return SendClientMessage(playerid,COLOR_RED, "Доступно только ФСБ и Правительству!");

 

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

 

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

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

Вынес ваш вопрос и все его обсуждения в отдельную тему.

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


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

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

  • 0
Cawfee
Великий Гуру

@Caracal2222, следующей строкой вы назначаете игрока руководителем организации:

PI[неважно][pLeader] = PI[неважно][pMember] = fractionid;

А снимаете следующей строкой:

PI[неважно][pMember] = 0;

Не замечаете, что вы устанавливаете две переменные, а сбрасываете одну? И после этого удивляетесь, что вы по-прежнему числитесь в организации.

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


Ссылка на сообщение
  • 0
Cawfee
Великий Гуру

@Caracal2222, мы решаем проблему с командой demoute, а не с обработчиками диалогов, связанных с выдачей прав лидера.

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


Ссылка на сообщение
  • 0
Caracal2222
Свой человек

@Cawfee Да это так, но вы просто писали скинуть диалоги, я и думал что еще речь об этом пока что. Я не знаю что там должно быть, если бы я писал мод то мб и знал какие там используются, говорил что я команду взял просто и переделал под свой, поменяв лишь переменные на те что используются у меня. Дабы избавиться от ошибок.  Что тогда делать, раз не та строчка

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

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


Ссылка на сообщение
  • 0
Cawfee
Великий Гуру

@Caracal2222, я нигде не говорил этого:

  В 6/17/2023 в 15:00, Caracal2222 сказал:

раз не та строчка

Читать далее...  

 

Я сказал следующее:

  В 6/17/2023 в 14:53, Cawfee сказал:

вы устанавливаете две переменные, а сбрасываете одну

Читать далее...  

 

При выдаче прав лидера вы записываете значение новой организации в две переменные (pLeader и pMember), а при увольнении из организации аннулируете только pMember. Как насчет того, чтобы аннулировать pLeader?

Уточню. pMember содержит информацию о том, в какой организации состоит игрок, а pLeader - информацию о том, в какой организации игрок является лидером. При назначении игрока лидером организации в pMember и pLeader вы фактически занесли значение номера фракции. При увольнении игрока через demoute вы сбросили только значение pMember, но не тронули pLeader. В итоге игрок так и остался лидером организации. Именно эту ситуацию вы и описали здесь:

  Цитата

на деле игрок остается в дпс, пока его через setleader не снимут 

Читать далее...  

 

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


Ссылка на сообщение
  • 0
Caracal2222
Свой человек

@Cawfee ЧТо тогда нужно подправить ? Или добавить к Member - pLeader ? 

@Cawfee PI[playerid][pMember]  && PI[playerid][pLeader] !=0 тип того или что

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


Ссылка на сообщение
  • 0
Cawfee
Великий Гуру

@Caracal2222, я уже сказал, что нужно сделать. Глагол аннулировать предполагает присвоить значение 0.

 

  В 6/17/2023 в 15:09, Cawfee сказал:

Как насчет того, чтобы аннулировать pLeader?

Читать далее...  

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


Ссылка на сообщение
  • 0
Caracal2222
Свой человек

@Cawfee Добавить получается тоже самое, но вместо pMember - pLeader и также значение 0 ?

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

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


Ссылка на сообщение
  • 0
Cawfee
Великий Гуру

@Caracal2222,

  В 6/17/2023 в 15:18, Caracal2222 сказал:

вместо pMember - pLeader

Читать далее...  

 

Если вы вместо pMember напишете pLeader, тогда игрок не будет лидером организации, но будет состоять в организации как обычный сотрудник. Вам нужно аннулировать и pMember, и pLeader.

 

PI[id][pMember] = 0;
PI[id][pLeader] = 0;

 

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


Ссылка на сообщение
  • 0
Caracal2222
Свой человек

@Cawfee Ну я и имел ввиду это. Сделал так и теперь все ровно. Но вот пока не перезайдет или не переспавнишь игрока (spawn 1 к примеру), костюм не пропадет с игрока,так и будет в дпс форме 

@Cawfee И все же текст почему выводится лишь тому кого увольняют, использовав ее выходит так,буд-то бы игрок(лидер) сам себя уволил. Прописал от имени Dima к примеру и на ак Pasha пришло в чате Pasha выгнал вас из организации с причиной и чуть ниже Вы выгнали Pasha с причиной 

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

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


Ссылка на сообщение
  • 0
Cawfee
Великий Гуру

@Caracal2222 , я вам уже ответил насчет одежды.

 

  Цитата

а почему одежда должна была измениться, если это не заложено в логике данной команды?

Читать далее...  


Если вы добавите функцию изменения одежды игрока, тогда она и изменится. Изменить можно через SetPlayerSkin.

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


Ссылка на сообщение
  • 0
Cawfee
Великий Гуру

@Caracal2222, тогда жду от вас следующую информацию.

  1. Код команды из вашего мода (возьмите и скопируйте из мода, а не ссылайтесь на сообщения выше).
  2. Идентификатор аккаунта с именем Dima.
  3. Идентификатор аккаунта с именем Pasha.
  4. С какими параметрами вы вводите команду и на каком аккаунте.

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


Ссылка на сообщение
  • 0
Caracal2222
Свой человек

@Cawfee Вот что есть на данный момент, я добавил SetSkin при увольнении. 

2.Дима имеет например id на сервере 0, а Паша имеет id 1

От лица Dima (0 id) ввожу в чате /demoute 1 (Pasha) Причина 1(к примеру), после идет сообщение на аккаунт с ID 1 (Pasha)  о том что Pasha  выгнал вас из организации, ниже тоже самое но уже Вы выгнали Pasha. Хотя должно писаться так на аккаунте с ID 1 (Pasha): Dima выгнал вас из организации. Причина. А на ID 0 (Dima): Вы выгнали Pasha.Причина 

CMD:demoute(playerid, params[])
{
    if(PI[playerid][pMember] != TEAM_FBI && PI[playerid][pMember] != TEAM_MERIA) return SendClientMessage(playerid,COLOR_RED, "Доступно только ФСБ и Правительству!");
    if(PI[playerid][pRank] < 3return SendClientMessage(playerid,COLOR_RED, "Ваш ранг слишком мал");
    //if(PlayerInfo[playerid][pLeader] == 0) return SendClientMessage(playerid,COLOR_RED, "Отказано в доступе! (Доступно только лидеру)");
    new id,string[200],reason[100];
    if(sscanf(params,"us[100]",playerid,reason)) return SendClientMessage(playerid,COLOR_RED, "Используйте: /demoute [id] [причина]");
    if(!IsPlayerConnected(id) || !PlayerLogged[id]) return false;
    if(!ProxDetectorS(5.0, playerid, 1)) return SendClientMessage(playerid,COLOR_RED, "Вы далеко от игрока!");
    //if(playerid == playerid) return SendClientMessage(playerid,COLOR_RED, "Вы можете уволить только гос.служащих!");
    /*if(PI[id][pLeader] > 0 ) return SendClientMessage(playerid,COLOR_RED, "Вы не можете уволить лидера");*/
    if(IsACop(playerid))
    {
        if(IsPlayerAttachedObjectSlotUsed(playerid, 8))RemovePlayerAttachedObject(playerid, 7);
    }
    PI[playerid][pMember] = 0;
    PI[playerid][pLeader] = 0;
    PI[playerid][pDCTime]=0;
    SendClientMessage(playerid,COLOR_WHITE,">> {FF6347} Местом спавна автоматически назначен ЖД Вокзал. Изменить место спавна >> /setspawn!");
    PI[playerid][pRank] = 0;
    UpdatePlayerData(playerid, "Rank", PI[playerid][pRank]);
    pSportZal[playerid]=0;
    TeamDuty[playerid] = false;
    format(string,sizeof(string),"{FFFFFF}%s выгнал вас из организации.\nПричина: %s",GetName(playerid), reason);
    SendClientMessage(playerid,COLOR_LIGHTBLUE,string);
    format(string,sizeof(string),"Вы выгнали %s. Причина: %s",GetName(playerid), reason);
    SendClientMessage(playerid,COLOR_LIGHTBLUE,string);
    //format(string,sizeof(string),"[D]%s[%d] Уволил %s, Причина: %s",GetName(playerid),playerid,GetName(playerid), reason);
    SetPlayerColor(playerid,0xFDFCFC15);
    ResetPlayerWeaponsAC(playerid);
    SetPlayerArmour(playerid, 0);
    SetPlayerSkin(playerid, 299);
    return true;
}

 

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

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


Ссылка на сообщение
  • 0
Cawfee
Великий Гуру

@Caracal2222, во всех командах, приведенных выше, вывод текста осуществлялся следующим образом:

format(string,sizeof(string),"{FFFFFF}%s выгнал вас из организации.\nПричина: %s",GetName(playerid), reason);
SendClientMessage(id,COLOR_LIGHTBLUE,string);
format(string,sizeof(string),"Вы выгнали %s. Причина: %s",GetName(id), reason);
SendClientMessage(playerid,COLOR_LIGHTBLUE,string);

Вы же сделали это следующим образом, никому не сообщив, и теперь требуете здесь объяснений, почему у вас не работает.

format(string,sizeof(string),"{FFFFFF}%s выгнал вас из организации.\nПричина: %s",GetName(playerid), reason);
SendClientMessage(playerid,COLOR_LIGHTBLUE,string);
format(string,sizeof(string),"Вы выгнали %s. Причина: %s",GetName(playerid), reason);
SendClientMessage(playerid,COLOR_LIGHTBLUE,string);

 

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


Ссылка на сообщение
  • 0
Caracal2222
Свой человек

@Cawfee То что выше, где id указано у меня не работает. Тк такого нет с ID в самом моде, используется playerid соответственно я поменял на playerid,во вторых с этими изменениями (playerid) я и кидал 

@Cawfee Щас попробую вернуть исходное  с ID значениями  format(string,sizeof(string),"{FFFFFF}%s выгнал вас из организации.\nПричина: %s",GetName(playerid), reason); SendClientMessage(id,COLOR_LIGHTBLUE,string); format(string,sizeof(string),"Вы выгнали %s. Причина: %s",GetName(id), reason); SendClientMessage(playerid,COLOR_LIGHTBLUE,string);

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

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


Ссылка на сообщение
  • 0
Cawfee
Великий Гуру

@Caracal2222, ну, конечно, вы убрали ото всюду переменную id, а теперь говорите, что ее нет. @Sleash изначально вам дал полностью рабочий код, который вы испортили везде, где только можно, и теперь ждете, что это заработает.

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


Ссылка на сообщение
  • 0
Caracal2222
Свой человек

@Cawfee Все может быть. Вернул исход 

format(string,sizeof(string),"{FFFFFF}%s выгнал вас из организации.\nПричина: %s",GetName(playerid), reason);
SendClientMessage(id,COLOR_LIGHTBLUE,string);
format(string,sizeof(string),"Вы выгнали %s. Причина: %s",GetName(id), reason);
SendClientMessage(playerid,COLOR_LIGHTBLUE,string);

Теперь от лица Dima(0 id) идет так в чате: Дима выгнал вас из организации, а на ID 1 (Pash) высвечивается в чате: Вы выгнали Dima 

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


Ссылка на сообщение
  • 0
Caracal2222
Свой человек

@Cawfee Настроил как надо, куча времени убил. Теперь надпись Уволил и Вы уволили появляется так как положено. Есть другой вопрос, хоть и нельзя новый вопрос в старом задавать, но все же, у меня при регистрации выдаются автоматом все лицензии(водительские, воздушные и тд), я уже не знаю что еще делать, но я нашел pLic там где указано 1 вместо 0, заменил на 0 и они все равно выдаются во время регистрации ака, как отключить можно ?

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


Ссылка на сообщение
  • 0
Cawfee
Великий Гуру

@Caracal2222, отключить можно путем нахождения фрагмента кода, связанного с выдачей лицензий, и его изменения. Где у вас этот фрагмент и как он выглядит я не знаю. Если не найдете в коде, смотрите в базе данных (возможно, лицензии вписаны как значение по умолчанию).

 

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


Ссылка на сообщение
  • 0
Caracal2222
Свой человек

@Cawfee Хорошо, попробую поискать. А с sampvoice помочь сможете ? По нему я другой вопрос открыл 

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


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

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

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

    • tgfoscar
      От tgfoscar
      Требуется свободное владение C++. Античит, новый способ добавления техники на сервер, совместимость с CEF и возможность добавления полезных функций. За дополнительной информацией обращайтесь к wayne_gm в Discord.
    • enotplaysupptor
      От enotplaysupptor
      Основа для мода Samp для начинающих
      Скачать файл ╔══════════════════════════════════════════════════╗
      ║               Test-RolePlay v0.1           ║
      ║       Современная основа для SA-MP серверов      ║
      ╚══════════════════════════════════════════════════╝
      ✦ О ПРОЕКТЕ:
         Добро пожаловать в Test-RolePlay - мод с нуля, 
         созданный как универсальная основа для SA-MP проектов.
         Проект был создан для тех кто не знает с чего начать и начинающих разработчиков
         Версия: T-RP v0.1 [Актуальная]
      ✦ ОСНОВНЫЕ ПЛАГИНЫ:
         ▸ CrashDetect    - отладка ошибок
         ▸ MySQL R41+     - работа с базой данных
         ▸ Pawn.CMD       - система команд
         ▸ Pawn.Regex     - регулярные выражения
         ▸ SKY            - улучшенные игровые функции
         ▸ sscanf2        - парсинг параметров
         ▸ Streamer       - динамические объекты
         ▸ TOTP           - двухфакторная аутентификация
      ✦ КЛЮЧЕВЫЕ СИСТЕМЫ:
         ┌──────────────────────────────────────────────┐
         │ 🔹 Умная регистрация/авторизация:            │
         │    - Хеширование паролей                     │
         │    - Привязка Email                          │
         │    - Выбор пола и расы персонажа             │
         ├──────────────────────────────────────────────┤
         │ 🔹 Командная система:                        │
         │    - Полный набор РП-команд                  │
         │    - Расширенные админ-команды               │
         ├──────────────────────────────────────────────┤
         │ 🔹 Игровое меню:                             │
         │    - Персональная статистика                 │
         │    - Настройки аккаунта                      │
         │    - Система жалоб и вопросов                │
         ├──────────────────────────────────────────────┤
         │ 🔹 Дополнительные системы:                   │
         │    - АФК-режим с автоматическим детектом      │
         │    - Интегрированный античит (Nex-AC)        │
         └──────────────────────────────────────────────┘
      ✦ ПЛАНЫ РАЗРАБОТКИ:
         » Добавление новых игровых систем
         » Оптимизация существующего кода
         » Расширение возможностей для администраторов
         » Улучшение пользовательского интерфейса
      Если увижу что вы хотите что бы я продолжил разработку данного мода пишите или можете проявиться большую активность










      Добавил enotplaysupptor Добавлено 09.07.2025 Категория Моды Автор Я  
    • Nekit2019
      От Nekit2019
      Добрый день, имеется сервер в CRMP 0.3е (старичок, знаю, решил поностальгировать) . меняю погоду через ркон, но она скипается через пару минут на нулевую! Не пойму от чего, скриптом отдельно на погоду нет. Пожскажите, может в gamemod0 или где еще и куда прописать можно погоду? либо чтоб менялась сама, либо статическую. Вставлял из инета код в гейммод на рандомную погоду через пол часа с уведомлениями - результат такой же, меняется на 1-20 ,но сама сбрасывается на 0 через минуту.