beer
Участник
- Сообщения
- 4
- Реакции
- 0
- Операционная система
- Linux
- Текст ошибки
-
нет ошибки
- Список мета-модулей
-
[01] SourceMod (1.10.0.6392) by AlliedModders LLC
[02] CS Tools (1.10.0.6392) by AlliedModders LLC
[03] SDK Tools (1.10.0.6392) by AlliedModders LLC
[04] SDK Hooks (1.10.0.6392) by AlliedModders LLC
- Список плагинов SM
-
01 "Admin Help" (1.10.0.6392) by AlliedModders LLC
02 "Admin Menu" (1.10.0.6392) by AlliedModders LLC
03 "Basic Commands" (1.9.0.5909) by AlliedModders LLC
04 "Sound Commands" (1.10.0.6392) by AlliedModders LLC
- Список расширений SM
-
[01] Automatic Updater (1.10.0.6392): Updates SourceMod gamedata files
[02] Webternet (1.10.0.6392): Extension for interacting with URLs
[03] CS Tools (1.10.0.6392): CS extended functionality
[04] BinTools (1.10.0.6392): Low-level C/C++ Calling API
[05] SDK Tools (1.10.0.6392): Source SDK Tools
[06] Top Menus (1.10.0.6392): Creates sorted nested menus
[07] SDK Hooks (1.10.0.6392): Source SDK Hooks
[08] Client Preferences (1.10.0.6392): Saves client preference settings
[09] SQLite (1.10.0.6392): SQLite Driver
[10] MySQL-DBI (1.10.0.6392): MySQL driver implementation for DBI
Доброе утро. Хочу исправить не большую ошибку. Что когда игрок подключается к сервер и не выбирает команду afk обычно, то его кидает в игру.
Команд к сожалению не нашел,. С плагинов почти подходит один.
[CS:GO] Auto join team on connect Оригинал
Но он работает рандомна кидает туда где меньше, а хотелось чтобы кидал только в спектри, а потом игрок сам выбирал команду нажав "M"
Кому не трудно подправте код
Команд к сожалению не нашел,. С плагинов почти подходит один.
[CS:GO] Auto join team on connect Оригинал
Но он работает рандомна кидает туда где меньше, а хотелось чтобы кидал только в спектри, а потом игрок сам выбирал команду нажав "M"
Кому не трудно подправте код

C-подобный:
#include <sourcemod>
#include <cstrike>
#include <sdktools>
new Handle: Team
public Plugin:myinfo = {
name = "Auto Join On Connect",
author = "Divin!",
description = "Based on players number with bug fixed",
version = "1.0",
url = "http://wtfcs.com/forum"
}
public OnPluginStart( ) {
Team = CreateConVar( "sm_join_team", "1", "Do not edit this" )
AddCommandListener(SelectTeam, "jointeam");
HookEvent( "player_connect_full", Event_OnFullConnect, EventHookMode_Post )
}
public Event_OnFullConnect( Handle:event, const String:name[ ], bool:dontBroadcast ) {
new client = GetClientOfUserId( GetEventInt( event, "userid" ) )
if( client != 0 && IsClientInGame( client ) && !IsFakeClient( client ) ) {
CreateTimer( 0.5, AssignTeam, client )
}
}
public Action: AssignTeam( Handle: timer, any: client ) {
if( IsClientInGame( client ) ) {
int iCvar = GetConVarInt( Team )
switch( iCvar ) {
case 0 : {
return Plugin_Handled
}
case 1 : {
new iRed, iBlue;
for(new i = 1; i <= MaxClients; i++)
{
if(!IsClientInGame(i))
continue;
new iTeam = GetClientTeam(i);
if(iTeam == CS_TEAM_T)
iRed++;
else if(iTeam == CS_TEAM_CT)
iBlue++;
}
if( iRed > iBlue )
{
ChangeClientTeam( client, 3 )
}
else
if( iRed < iBlue )
{
ChangeClientTeam( client, 2 )
}
else
if( iRed == iBlue )
{
ChangeClientTeam( client, 2 )
}
CS_RespawnPlayer(client);
}
case 2 : {
ChangeClientTeam( client, 2 )
}
case 3 : {
ChangeClientTeam( client, 3 )
}
}
}
return Plugin_Continue
}
public Action:SelectTeam(client, const String:command[], args)
{
if (client && args)
{
decl String:team[2];
GetCmdArg(1, team, sizeof(team));
switch (StringToInt(team))
{
case CS_TEAM_SPECTATOR: ChangeClientTeam(client, CS_TEAM_SPECTATOR);
case CS_TEAM_T: {
new iRed, iBlue;
for(new i = 1; i <= MaxClients; i++)
{
if(!IsClientInGame(i))
continue;
new iTeam = GetClientTeam(i);
if(iTeam == CS_TEAM_T)
iRed++;
else if(iTeam == CS_TEAM_CT)
iBlue++;
}
if( iRed < iBlue )
{
ForcePlayerSuicide(client);
ChangeClientTeam( client, 2 )
}
else
if( iRed == iBlue )
{
ForcePlayerSuicide(client);
ChangeClientTeam( client, 2 )
}
}
case CS_TEAM_CT: {
new iRed, iBlue;
for(new i = 1; i <= MaxClients; i++)
{
if(!IsClientInGame(i))
continue;
new iTeam = GetClientTeam(i);
if(iTeam == CS_TEAM_T)
iRed++;
else if(iTeam == CS_TEAM_CT)
iBlue++;
}
if( iRed > iBlue )
{
ForcePlayerSuicide(client);
ChangeClientTeam( client, 3 )
}
else
if( iRed == iBlue )
{
ForcePlayerSuicide(client);
ChangeClientTeam( client, 3 )
}
}
}
}
return Plugin_Continue;
}