Сортируeм кланы

FantOzer

Участник
Сообщения
30
Реакции
2
Ищу плагин для SM или Eventscript сортирующий кланы, эти за Т а эти за КТ
или клан против всех.
 

FantOzer

Участник
Сообщения
30
Реакции
2
Не, TeamSwitch это немного другое..
к примеру ситуация, когда на сервере много игроков из какого то клана и пяткой стучат себя в грудь что всех перебьют, дай только им возможность.. только за одну команду их определи..
Вручную одного туда, другого сюда... уснуть можно
а так-бы раз, как в это плагине

ссылку вставить не удалось..

Clansort


Перекидывает всех игроков с определенным клан тагом за одну из команд.

Команды:
amx_clanct - <clan tag> Клан за конторов
amx_clant - <clan tag> За терров

( 5,44 килобайт )
и готово

Чем не устраивает этот плагин? тем что от под AMX.
 

duxa

Участник
Сообщения
7
Реакции
8
Что-то в этом духе...
PHP:
#pragma semicolon 1

#include <sourcemod>
#include <cstrike>

#define PLUGIN_VERSION	"0.0.1"	
#define DEBUG

public Plugin:myinfo = 
{
	name = "ClanSort",
	author = "duxa",
	description = "",
	version = PLUGIN_VERSION,
	url = ""
}

public OnPluginStart()
{	
	CreateConVar("sm_cs_version", PLUGIN_VERSION, _, FCVAR_PLUGIN|FCVAR_SPONLY|FCVAR_REPLICATED|FCVAR_NOTIFY);
	
	RegAdminCmd("sm_clansort", Clan, ADMFLAG_GENERIC, "sm_clansort <clan tag> <t | ct>");
}

public Action:Clan(client, args)
{
	decl String:buffer[32];
	decl String:buffer2[5];
	
	if(args < 2)
	{
		ReplyToCommand(client, "[ClanSort] Usage: sm_clansort <clan tag> <t | ct>");
		return Plugin_Handled;
	}
	
	GetCmdArg(1, buffer, sizeof(buffer));
	GetCmdArg(2, buffer2, sizeof(buffer2));
	
	new team;
	
	if(StrEqual(buffer2, "t", false))
	{
		team = 2;
	} else
	if(StrEqual(buffer2, "ct", false))
	{
		team = 3;
	} else
	{	
		ReplyToCommand(client, "[ClanSort] Team not found");
		return Plugin_Handled;
	}
	
	new String:ClanTag[MAXPLAYERS+1][32];
	
	for (new i = 1; i <= MaxClients; i++) 
	{
		if (!IsClientInGame(i) || IsFakeClient(i)) 
		{
			continue;
		}
		CS_GetClientClanTag(i, ClanTag[client], sizeof(ClanTag[]));
		#if defined DEBUG
		PrintToServer("Tag(%d) = '%s'", i, ClanTag[client]);
		#endif
		
		if(StrEqual(buffer, ClanTag[client]))
		{
			#if defined DEBUG
			PrintToServer("Team Switched");
			#endif
			CS_SwitchTeam(i, team);
		}
	}
	return Plugin_Handled;
}
 

FantOzer

Участник
Сообщения
30
Реакции
2
Не компилится, выдает две ошибки.. к сожалению я не силен в этом, что-бы исправить..
 

BMW M6

Участник
Сообщения
1,217
Реакции
534
FantOzer, тогда к нашим гениям иди :)
 

S1deX

Скриптер ;)
Сообщения
129
Реакции
204
Что-то в этом духе...
PHP:
#pragma semicolon 1

#include <sourcemod>
#include <cstrike>

#define PLUGIN_VERSION	"0.0.1"	
#define DEBUG

public Plugin:myinfo = 
{
	name = "ClanSort",
	author = "duxa",
	description = "",
	version = PLUGIN_VERSION,
	url = ""
}

public OnPluginStart()
{	
	CreateConVar("sm_cs_version", PLUGIN_VERSION, _, FCVAR_PLUGIN|FCVAR_SPONLY|FCVAR_REPLICATED|FCVAR_NOTIFY);
	
	RegAdminCmd("sm_clansort", Clan, ADMFLAG_GENERIC, "sm_clansort <clan tag> <t | ct>");
}

public Action:Clan(client, args)
{
	decl String:buffer[32];
	decl String:buffer2[5];
	
	if(args < 2)
	{
		ReplyToCommand(client, "[ClanSort] Usage: sm_clansort <clan tag> <t | ct>");
		return Plugin_Handled;
	}
	
	GetCmdArg(1, buffer, sizeof(buffer));
	GetCmdArg(2, buffer2, sizeof(buffer2));
	
	new team;
	
	if(StrEqual(buffer2, "t", false))
	{
		team = 2;
	} else
	if(StrEqual(buffer2, "ct", false))
	{
		team = 3;
	} else
	{	
		ReplyToCommand(client, "[ClanSort] Team not found");
		return Plugin_Handled;
	}
	
	new String:ClanTag[MAXPLAYERS+1][32];
	
	for (new i = 1; i <= MaxClients; i++) 
	{
		if (!IsClientInGame(i) || IsFakeClient(i)) 
		{
			continue;
		}
		CS_GetClientClanTag(i, ClanTag[client], sizeof(ClanTag[]));
		#if defined DEBUG
		PrintToServer("Tag(%d) = '%s'", i, ClanTag[client]);
		#endif
		
		if(StrEqual(buffer, ClanTag[client]))
		{
			#if defined DEBUG
			PrintToServer("Team Switched");
			#endif
			CS_SwitchTeam(i, team);
		}
	}
	return Plugin_Handled;
}
Зачем создавать такой огромный двумерный массив? Нельзя обойтись одной строкой-буфером?
 

duxa

Участник
Сообщения
7
Реакции
8
Зачем создавать такой огромный двумерный массив? Нельзя обойтись одной строкой-буфером?
Действительно, не рационально вышло. Учту.
PHP:
//Some crazy code
	decl String:szClanTag[32];
	
	for (new i = 1; i <= MaxClients; i++) 
	{
		if (!IsClientInGame(i) || IsFakeClient(i)) 
		{
			continue;
		}
		CS_GetClientClanTag(i, szClanTag, sizeof(szClanTag));
		
		if(StrEqual(buffer, szClanTag))
		{
			CS_SwitchTeam(i, team);
		}
	}
//Some crazy code
в момент запуска пишет CS_GetClientClanTag was not found
SourceMod 1.4.* ?
 
Сверху Снизу