[SourePawn] Вопросы

Phenomen

Участник
Сообщения
27
Реакции
1
Админ тег по умолчанию выключен, как это изменить?(Только сильно не смейтесь))))
PHP:
#include <cstrike>
#include <sdktools>
#include <colors>

#define Tag_Verison   "1.6"



new tag = 0;



public OnPluginStart() 
{
	RegAdminCmd("sm_tagon", tagon, ADMFLAG_GENERIC);
	RegAdminCmd("sm_tagoff", tagoff, ADMFLAG_GENERIC);
	AddCommandListener(HookPlayerChat, "say");
	
	CreateConVar("sm_tag_version", Tag_Verison,  "Enable or disable the admin tag made by ZcaverZ", FCVAR_REPLICATED|FCVAR_SPONLY|FCVAR_PLUGIN);
}


public Plugin:myinfo = {
	name = "Admin Tag",
	author = "ZcaverZ redid Nsk!",
	description = "Admin tag in cheat",
	version = Tag_Verison,
	url = "ZcaverZ"
};


public Action:tagon(client, args) 
{
	if(tag == 0)
	{
		{
			CPrintToChat(client, "{green}[Admin Tag]{default} Вы включили тег админа!");
			tag = client;
		}
	}
}

public Action:tagoff(client, args)
{
	if(client == tag) 
	{
		CPrintToChat(client, "{green}[Admin Tag]{default} Вы выключили тег админа!");
		tag = 0;
	}
}

	
public Action:HookPlayerChat(client, const String:command[], args)
{
	if(tag == client)
	{
		decl String:szText[256];
		GetCmdArg(1, szText, sizeof(szText));
		
		if(szText[0] == '/')
		{
			return Plugin_Handled;
		}
		
		{
			CPrintToChatAllEx(client, "{green}(Admin) {teamcolor}%N: {default}%s",client, szText);
			return Plugin_Handled;
		}
	}
	return Plugin_Continue;
}
 

Phenomen

Участник
Сообщения
27
Реакции
1
DoK_1997, т.е в чате тег (Admin) у всех игроков. офигенно..

Добавлено через 32 минуты
Megalol, В твоем коде при написании sm_tagon чат у всех становится с тегом ADMIN. тебе так и надо? или надо чтобы только у админов было ADMIN ?
Конечно ток у админов!

Добавлено через 6 минут
DoK_1997, т.е в чате тег (Admin) у всех игроков. офигенно..

Добавлено через 32 минуты
Megalol, В твоем коде при написании sm_tagon чат у всех становится с тегом ADMIN. тебе так и надо? или надо чтобы только у админов было ADMIN ?
Ты не прав!
PHP:
public OnPluginStart() 
{
    RegAdminCmd("sm_tagon", tagon, ADMFLAG_GENERIC);
 
Последнее редактирование:

Phenomen

Участник
Сообщения
27
Реакции
1
Мне нужно переделать плагин, чтобы когда админ зашел, ему не нужно было писать !tagon , т.е тег уже должен работать.

Добавлено через 3 минуты
Если совсем не шаришь нечего говорить что я не прав. Я проверил у себя на сервере. Может видео еще записать?
Согласен что не очень разбираюсь в плагинах,но я тоже проверил на сервере и у меня писать !tagon может ток админ!
 
Последнее редактирование:

Phenomen

Участник
Сообщения
27
Реакции
1
Нужно еще
PHP:
(Наблюдатель){green}(Admin) {teamcolor}%N:.......
 

(admiral)

Участник
Сообщения
69
Реакции
8
Обьясните, пожалуйста, что я не так сделал? Почему квар не создается? При компиляции никаких ошибок нет.
PHP:
#pragma semicolon 1
#include <sourcemod>

new bool:swarm = false;
new Handle:g_gamemod;

public OnPlaginStart()
{
	g_gamemod = CreateConVar("zr_mod_chance", "0");
	HookConVarChange(g_gamemod, cvar_changed);
}
public OnConfigsExecuted()
{
	if (swarm == true) LoadGameConfigFile ("sourcemod/zombiereloaded/swarm.post");
}
public cvar_changed(Handle:convar, String:oldValue[], String:newValue[])
{
	swarm = false;
	new gamemodint = GetConVarInt(g_gamemod);
	new chance = GetRandomInt(1, gamemodint);
	if (chance == 1) LoadGameConfigFile ("sourcemod/zombiereloaded/nemesis");
	else if (chance == 2) LoadGameConfigFile ("sourcemod/zombiereloaded/survivor");
	else if (chance == 3)
	{
		LoadGameConfigFile ("sourcemod/zombiereloaded/swarm");
		swarm = true;
	}
}
 

(admiral)

Участник
Сообщения
69
Реакции
8
Я немного не понимаю, для чего нужна эта функция. Объясни, пожалуйста.
 

The Night Fury

Участник
Сообщения
1,300
Реакции
1,395
(admiral),
AutoExec Config => Auto Exec Config => Automaticaly execute configuration, что переводится как "автоматически выполнить конфигурацию" или "автоматическое выполнение конфигурации".
Она позволяет выполнить предустановленные настройки из отдельного файла, не из server.cfg.
 

(admiral)

Участник
Сообщения
69
Реакции
8
Вот, вроде так? Как я понимаю, в папке cfg/sourcemod должен создаваться файл gamemod.cfg, в котором должен прописаться квар? Но такой файл не создается, и при написании в консоль сервера zr_mod_chance пишет unknown command.
PHP:
#pragma semicolon 1
#include <sourcemod>

new bool:swarm = false;
new Handle:g_gamemod;

public OnPlaginStart()
{
	g_gamemod = CreateConVar("zr_mod_chance", "0");
	AutoExecConfig(true, "gamemod");
	HookConVarChange(g_gamemod, cvar_changed);
}
public OnConfigsExecuted()
{
	if (swarm == true) LoadGameConfigFile ("sourcemod/zombiereloaded/swarm.post");
}
public cvar_changed(Handle:convar, String:oldValue[], String:newValue[])
{
	swarm = false;
	new gamemodint = GetConVarInt(g_gamemod);
	new chance = GetRandomInt(1, gamemodint);
	if (chance == 1) LoadGameConfigFile ("sourcemod/zombiereloaded/nemesis");
	else if (chance == 2) LoadGameConfigFile ("sourcemod/zombiereloaded/survivor");
	else if (chance == 3)
	{
		LoadGameConfigFile ("sourcemod/zombiereloaded/swarm");
		swarm = true;
	}
}
 

(admiral)

Участник
Сообщения
69
Реакции
8
Изменил все, как ты сказал, только не стал убирать HookConVarChange(g_gamemod, cvar_changed); Все осталось так же.
А насчет обработчика действия, то я не знаю, что это)) Можно поподробнее?
 

(admiral)

Участник
Сообщения
69
Реакции
8
А по-другому можно отловить изменение квара и выполнить тот код?
 

(admiral)

Участник
Сообщения
69
Реакции
8
Убрал хук на изменение квара и сделал выполнение кода при OnMapStart, но при написании zr_mod_chance в консоль сервера все равно пишет unknown command. Получается, я неправильно создал квар? А как его тогда правильно создать?
 

KorDen

Atra esterní ono thelduin!
Сообщения
2,142
Реакции
1,424
Убрал хук на изменение квара и сделал выполнение кода при OnMapStart, но при написании zr_mod_chance в консоль сервера все равно пишет unknown command. Получается, я неправильно создал квар? А как его тогда правильно создать?

Квар нужно создавать в OnPluginStart
 

(admiral)

Участник
Сообщения
69
Реакции
8
Извините, пожалуйста))) Ошибка была очень глупой, я написал OnPlaginStart вместо OnPluginStart))
 

KorDen

Atra esterní ono thelduin!
Сообщения
2,142
Реакции
1,424
public OnMapEnd()
{
}
не забыл? В нём можешь ничего не писать, но отдельно друг от друга они не применяются.

Что это за бред? Откуда? Такого никогда не было, все прекрасно применяется по отдельности
 

Phenomen

Участник
Сообщения
27
Реакции
1
Воть
PHP:
#include <sourcemod> 
#include <cstrike> 
#include <colors> 

public OnPluginStart() 
{ 
	AddCommandListener(Command_Say, "say");
	AddCommandListener(Command_SayTeam, "say_team");
} 

public Action:Command_Say(client, const String:command[], args) 
{ 
    if(!client || !IsClientInGame(client)) 
        return Plugin_Continue; 
     
    if(GetUserAdmin(client) != INVALID_ADMIN_ID) 
    { 
        decl String:sText[192]; 
        GetCmdArgString(sText, sizeof(sText)); 
         
        new startidx; 
        if(sText[strlen(sText)-1] == '"') 
        { 
            sText[strlen(sText)-1] = '\0'; 
            startidx = 1; 
        } 
         
        decl String:sBuffer[256]; 
         
        switch(GetClientTeam(client)) 
        { 
            case CS_TEAM_SPECTATOR: 
                Format(sBuffer, sizeof(sBuffer), "{default} {green}(ADMIN) {teamcolor}%N{default}: %s", client, sText[startidx]); 
            case CS_TEAM_T: 
                Format(sBuffer, sizeof(sBuffer), "{default} {green}(ADMIN) {teamcolor}%N{default}: %s", client, sText[startidx]); 
            case CS_TEAM_CT: 
                Format(sBuffer, sizeof(sBuffer), "{default} {green}(ADMIN) {teamcolor}%N{default}: %s", client, sText[startidx]); 
        } 
         
        CPrintToChatAllEx(client, "%s", sBuffer); 
         
        return Plugin_Handled; 
    } 
     
    return Plugin_Continue; 
}

public Action:Command_SayTeam(client, const String:command[], args) 
{ 
    if(!client || !IsClientInGame(client)) 
        return Plugin_Continue; 
     
    if(GetUserAdmin(client) != INVALID_ADMIN_ID) 
    { 
        decl String:sText[192]; 
        GetCmdArgString(sText, sizeof(sText)); 
         
        new startidx; 
        if(sText[strlen(sText)-1] == '"') 
        { 
            sText[strlen(sText)-1] = '\0'; 
            startidx = 1; 
        } 
         
        decl String:sBuffer[256]; 
         
        switch(GetClientTeam(client)) 
        { 
            case CS_TEAM_SPECTATOR: 
                Format(sBuffer, sizeof(sBuffer), "{default}(Spectator) {green}(ADMIN) {teamcolor}%N{default}: %s", client, sText[startidx]); 
            case CS_TEAM_T: 
                Format(sBuffer, sizeof(sBuffer), "{default}(Terrorist) {green}(ADMIN) {teamcolor}%N{default}: %s", client, sText[startidx]); 
            case CS_TEAM_CT: 
                Format(sBuffer, sizeof(sBuffer), "{default}(Counter-Terrorist) {green}(ADMIN) {teamcolor}%N{default}: %s", client, sText[startidx]); 
        } 
         
        CPrintToChatEx(client, client, "%s", sBuffer); 
         
        return Plugin_Handled; 
    } 
     
    return Plugin_Continue; 
}

Большое спасибо:)
А можно добавить функцию вкл/выкл ?Ну чтобы любой админ мог себе вкл или выкл Тег.
 

The End Is Near...

Russian Roulette
Сообщения
874
Реакции
691
О, боже боже боже, ты так и не изменил.. Как админу писать в командный чат?
 
Сверху Снизу