Hushang
Участник
- Сообщения
- 134
- Реакции
- 26
Не получается у меня переписать данный плагин под випку, может кто нибудь помочь?
Модуль плагина - [Shop] Jetpack
Модуль плагина - [Shop] Jetpack
Самой простой пример:Как нужно создать модуль для vip что нужно скачать что бы самому создавать модули
То-есть вот модули, берёш найболее подходящий, и редактируешь внутренности (переименовать не забудь)Посмотреть вложение 46477
Сообщения автоматически склеены:
блин не понял как нужно
Сообщения автоматически склеены:
напиши конкретнее не понимаю как нужно делать
А какой надо?Ссылка на другие мануалы - не работает. Я про "Как привязать любой плагин к VIP плагину.".
какой именно show damage? может уже есть версия под вип для негоВообще, просто попробовать поиграться с этим. Мол, интерес возник, а вот манула нет.
Ну как, хотелось попробовать "show damage" привязать к Vip.
Где-то я уже это видел, но щас не могу найти.
Ссылка на другие мануалы - не работает. Я про "Как привязать любой плагин к VIP плагину.".
Понято, буду знать. И кстати, я не заметил, там снизу под основным мануалом - был краткий про привязку.
funcenum ItemSelectCallback
{
Action:public(iClient, const String:sFeatureName[], VIP_ToggleState:OldStatus, &VIP_ToggleState:NewStatus), // Используется когда тип ф-и TOGGLABLE
bool:public(iClient, const String:sFeatureName[]) // Используется когда тип ф-и SELECTABLE
};
можно обновление, не найдено iClient и пишет что чтото устарело StringRe: Создание модулей
Хотелось бы рассказать как привязать любой плагин к VIP плагину.
Зачем это нужно? Ну например добавить VIP-игроку иммунитет от чего-то.
И так, начнем. Подключаем библиотеку:
PHP:#include <vip_core>
Далее решаем хотим мы это сделать для всех VIP-игроков или же тем, кому выдан доступ.
Если для всех то достаточно проверки:
PHP:if(VIP_IsClientVIP(iClient)) { // Это VIP-игрок }
Если же только по доступу то:
PHP:static const String:g_sFeature[] = "MyFunc"; // Уникальное имя ф-и public VIP_OnVIPLoaded() { VIP_RegisterFeature(g_sFeature, BOOL, HIDE); // Если пишем BOOL то в параметрах 1/0 // HIDE значит что ф-я скрыта, она не будет показана у игрока в меню, её нельзя отключить и не нужно добавлять в перевод. // Если HIDE не писать то ф-ю можно будет вкл/выкл и нужно добавить фразу в перевод. }
А дальше просто в нужном месте проверяем:
PHP:if(VIP_IsClientVIP(iClient) && VIP_IsClientFeatureUse(iClient, g_sFeature)) { // Это VIP-игрок и он имеет доступ к ф-и. }
public void OnClientDisconnect(int iClient)
{
if(!IsFakeClient(iClient))
{
//...
}
}
public void OnClientDisconnect(int iClient)
{
if(VIP_IsClientVIP(iClient) && VIP_IsClientFeatureUse(iClient, VIP_FEATURE))
{
//...
}
}
Можно попробовать так:Извините за тупой вопрос
Как определить, что отключился вип-игрок с используемой привилегией?
Работает:public void OnClientDisconnect(int iClient) { if(!IsFakeClient(iClient)) { //... } }
Не работает:public void OnClientDisconnect(int iClient) { if(VIP_IsClientVIP(iClient) && VIP_IsClientFeatureUse(iClient, VIP_FEATURE)) { //... } }
Целесообразно ли делать через VIP_OnVIPClientRemoved -> !IsClientInGame?
#define g_sFeature "VIP FEATURE"
public void OnPluginStart()
{
HookEvent("player_disconnect", Event_PlayerDisconnectPre, EventHookMode_Pre);
}
public Action Event_PlayerDisconnect(Event event, const char[] name, bool dontBroadcast)
{
int client = GetClientOfUserId(GetEventInt(event, "userid"));
if(!IsFakeClient(client) && VIP_IsClientVIP(client) && VIP_GetClientFeatureStatus(client, g_sFeature) ==ENABLED) {
// У игрока включена функция
}
}