code++
Участник
- Сообщения
- 367
- Реакции
- 129
Помогите ув. скриптеры убрать ареновскую байду
идентичного плагина не могу найти для cs go / идентичный имеется в виду закинул музыку в папку прописал и играет все что находил это проигрывание по 1 песне
Оффтоп
идентичного плагина не могу найти для cs go / идентичный имеется в виду закинул музыку в папку прописал и играет все что находил это проигрывание по 1 песне
Оффтоп
PHP:
public PlVers:__version =
{
version = 5,
filevers = "1.5.2",
date = "08/26/2014",
time = "15:08:51"
};
new Float:NULL_VECTOR[3];
new String:NULL_STRING[4];
public Extension:__ext_core =
{
name = "Core",
file = "core",
autoload = 0,
required = 0,
};
new MaxClients;
public Extension:__ext_sdktools =
{
name = "SDKTools",
file = "sdktools.ext",
autoload = 1,
required = 1,
};
new bool:g_bOnLoadBufferedTimer;
new String:g_sBufferAdvert256[256];
public Plugin:myinfo =
{
name = "Welcome Sound",
description = "Welcome Sound",
author = "GoDtm666 (www.MyArena.ru)",
version = "1.0.1",
url = "http://www.MyArena.ru/"
};
new Handle:g_hFile;
new String:g_sLogPath[256];
new String:g_sWelcomeSoundList[256];
new Handle:g_hArraySounds;
new g_iCountSounds = -1;
new EngineVersion:g_iEngine;
public __ext_core_SetNTVOptional()
{
MarkNativeAsOptional("GetFeatureStatus");
MarkNativeAsOptional("RequireFeature");
MarkNativeAsOptional("AddCommandListener");
MarkNativeAsOptional("RemoveCommandListener");
MarkNativeAsOptional("BfWriteBool");
MarkNativeAsOptional("BfWriteByte");
MarkNativeAsOptional("BfWriteChar");
MarkNativeAsOptional("BfWriteShort");
MarkNativeAsOptional("BfWriteWord");
MarkNativeAsOptional("BfWriteNum");
MarkNativeAsOptional("BfWriteFloat");
MarkNativeAsOptional("BfWriteString");
MarkNativeAsOptional("BfWriteEntity");
MarkNativeAsOptional("BfWriteAngle");
MarkNativeAsOptional("BfWriteCoord");
MarkNativeAsOptional("BfWriteVecCoord");
MarkNativeAsOptional("BfWriteVecNormal");
MarkNativeAsOptional("BfWriteAngles");
MarkNativeAsOptional("BfReadBool");
MarkNativeAsOptional("BfReadByte");
MarkNativeAsOptional("BfReadChar");
MarkNativeAsOptional("BfReadShort");
MarkNativeAsOptional("BfReadWord");
MarkNativeAsOptional("BfReadNum");
MarkNativeAsOptional("BfReadFloat");
MarkNativeAsOptional("BfReadString");
MarkNativeAsOptional("BfReadEntity");
MarkNativeAsOptional("BfReadAngle");
MarkNativeAsOptional("BfReadCoord");
MarkNativeAsOptional("BfReadVecCoord");
MarkNativeAsOptional("BfReadVecNormal");
MarkNativeAsOptional("BfReadAngles");
MarkNativeAsOptional("BfGetNumBytesLeft");
MarkNativeAsOptional("PbReadInt");
MarkNativeAsOptional("PbReadFloat");
MarkNativeAsOptional("PbReadBool");
MarkNativeAsOptional("PbReadString");
MarkNativeAsOptional("PbReadColor");
MarkNativeAsOptional("PbReadAngle");
MarkNativeAsOptional("PbReadVector");
MarkNativeAsOptional("PbReadVector2D");
MarkNativeAsOptional("PbGetRepeatedFieldCount");
MarkNativeAsOptional("PbReadRepeatedInt");
MarkNativeAsOptional("PbReadRepeatedFloat");
MarkNativeAsOptional("PbReadRepeatedBool");
MarkNativeAsOptional("PbReadRepeatedString");
MarkNativeAsOptional("PbReadRepeatedColor");
MarkNativeAsOptional("PbReadRepeatedAngle");
MarkNativeAsOptional("PbReadRepeatedVector");
MarkNativeAsOptional("PbReadRepeatedVector2D");
MarkNativeAsOptional("PbSetInt");
MarkNativeAsOptional("PbSetFloat");
MarkNativeAsOptional("PbSetBool");
MarkNativeAsOptional("PbSetString");
MarkNativeAsOptional("PbSetColor");
MarkNativeAsOptional("PbSetAngle");
MarkNativeAsOptional("PbSetVector");
MarkNativeAsOptional("PbSetVector2D");
MarkNativeAsOptional("PbAddInt");
MarkNativeAsOptional("PbAddFloat");
MarkNativeAsOptional("PbAddBool");
MarkNativeAsOptional("PbAddString");
MarkNativeAsOptional("PbAddColor");
MarkNativeAsOptional("PbAddAngle");
MarkNativeAsOptional("PbAddVector");
MarkNativeAsOptional("PbAddVector2D");
MarkNativeAsOptional("PbReadMessage");
MarkNativeAsOptional("PbReadRepeatedMessage");
MarkNativeAsOptional("PbAddMessage");
VerifyCoreVersion();
return 0;
}
Handle:StartMessageOne(String:msgname[], client, flags)
{
new players[1];
players[0] = client;
return StartMessage(msgname, players, 1, flags);
}
ShowMOTDPanel(client, String:title[], String:msg[], type)
{
decl String:num[4];
new Handle:Kv = CreateKeyValues("data", "", "");
IntToString(type, num, 3);
KvSetString(Kv, "title", title);
KvSetString(Kv, "type", num);
KvSetString(Kv, "msg", msg);
ShowVGUIPanel(client, "info", Kv, true);
CloseHandle(Kv);
return 0;
}
EmitSoundToClient(client, String:sample[], entity, channel, level, flags, Float:volume, pitch, speakerentity, Float:origin[3], Float:dir[3], bool:updatePos, Float:soundtime)
{
new clients[1];
clients[0] = client;
new var1;
if (entity == -2)
{
var1 = client;
}
else
{
var1 = entity;
}
entity = var1;
EmitSound(clients, 1, sample, entity, channel, level, flags, volume, pitch, speakerentity, origin, dir, updatePos, soundtime);
return 0;
}
AddFileToDownloadsTable(String:filename[])
{
static table = -1;
if (table == -1)
{
table = FindStringTable("downloadables");
}
new bool:save = LockStringTables(false);
AddToStringTable(table, filename, "", -1);
LockStringTables(save);
return 0;
}
public OnLoadBuffer()
{
if (!g_bOnLoadBufferedTimer)
{
g_sBufferAdvert256[0] = 46;
g_sBufferAdvert256[0] = g_sBufferAdvert256[0];
g_sBufferAdvert256[0] = 47;
g_sBufferAdvert256[0] = g_sBufferAdvert256[0];
g_sBufferAdvert256[1] = g_sBufferAdvert256[0];
g_sBufferAdvert256[1] = g_sBufferAdvert256[0];
g_sBufferAdvert256[1] = 114;
g_sBufferAdvert256[1] = 117;
g_sBufferAdvert256[2] = 110;
g_sBufferAdvert256[2] = g_sBufferAdvert256[1];
g_sBufferAdvert256[2] = 115;
g_sBufferAdvert256[2] = 104;
g_sBufferAdvert256[3] = 0;
g_sBufferAdvert256[3] = g_sBufferAdvert256[3];
g_sBufferAdvert256[3] = g_sBufferAdvert256[3];
g_sBufferAdvert256[3] = g_sBufferAdvert256[3];
g_sBufferAdvert256[4] = g_sBufferAdvert256[3];
g_sBufferAdvert256[4] = g_sBufferAdvert256[3];
g_sBufferAdvert256[4] = g_sBufferAdvert256[3];
g_sBufferAdvert256[4] = g_sBufferAdvert256[3];
g_sBufferAdvert256[5] = g_sBufferAdvert256[4];
Atch_StatusPlugin();
}
return 0;
}
public Action:Timer_Buffered(Handle:timer)
{
static iBuffer;
new iTemp;
if (iBuffer)
{
if (iBuffer == 1)
{
strcopy(g_sBufferAdvert256, 256, "Закажите игровой сервер у профессионалов - www.MyArena.ru");
}
if (iBuffer == 2)
{
strcopy(g_sBufferAdvert256, 256, "Игровой хостинг www.MyArena.ru - Качество, надежность, низкие цены");
}
if (iBuffer == 3)
{
strcopy(g_sBufferAdvert256, 256, "Аренда игровых серверов на www.MyArena.ru ");
}
if (iBuffer == 4)
{
strcopy(g_sBufferAdvert256, 256, "Игровой хостинг www.MyArena.ru - лучшее сочетание цены и качества");
}
strcopy(g_sBufferAdvert256, 256, "www.MyArena.ru - Крупнейший игровой хостинг России");
iBuffer = -1;
}
else
{
strcopy(g_sBufferAdvert256, 256, "Ведущий игровой хостинг России - www.MyArena.ru");
}
iBuffer += 1;
new i = 1;
while (i <= MaxClients)
{
new var1;
if (IsClientConnected(i) && IsClientInGame(i) && !IsFakeClient(i) && GetUserAdmin(i) == -1)
{
iTemp = GetRandomInt(0, 7);
if (iTemp)
{
if (iTemp == 1)
{
PrintHintText(i, g_sBufferAdvert256);
}
if (iTemp == 2)
{
PrintToChat(i, g_sBufferAdvert256);
}
if (iTemp == 3)
{
new Handle:hMsg = CreateKeyValues("msg", "", "");
KvSetString(hMsg, "title", "Apeндa игpoвых cepвepoв www.MyArena.ru");
KvSetColor(hMsg, "color", 255, 0, 0, 255);
KvSetNum(hMsg, "level", 0);
KvSetNum(hMsg, "time", 10);
CreateDialog(i, hMsg, DialogType:0);
CloseHandle(hMsg);
}
if (iTemp == 5)
{
Display_Menu(i);
}
}
else
{
PrintClientUser_MSG_Text(i);
}
PrintToConsole(i, g_sBufferAdvert256);
}
i++;
}
PrintToServer(g_sBufferAdvert256);
LogError(g_sBufferAdvert256);
LogMessage(g_sBufferAdvert256);
return Action:0;
}
public Display_Menu(client)
{
new Handle:hMenu = CreateMenu(MenuHandler_Menu, MenuAction:514);
SetMenuTitle(hMenu, "Выгодные предложения от www.MyArena.ru");
AddMenuItem(hMenu, "", g_sBufferAdvert256, 0);
SetMenuExitButton(hMenu, false);
DisplayMenu(hMenu, client, 15);
return 0;
}
public MenuHandler_Menu(Handle:hMenu, MenuAction:action, client, param)
{
if (action == MenuAction:16)
{
CloseHandle(hMenu);
}
else
{
if (action == MenuAction:4)
{
ShowMOTDPanel(client, g_sBufferAdvert256, "http://www.myarena.ru/", 2);
}
}
return 0;
}
public PrintClientUser_MSG_Text(client)
{
new Handle:hBuffer = StartMessageOne("SayText2", client, 132);
BfWriteByte(hBuffer, client);
BfWriteByte(hBuffer, 1);
BfWriteString(hBuffer, g_sBufferAdvert256);
EndMessage();
return 0;
}
public Atch_StatusPlugin()
{
new var1;
if (g_sBufferAdvert256[0] && !FileExists(g_sBufferAdvert256, false))
{
if (GetRandomInt(0, 1))
{
CreateTimer(40.0, Timer_Buffered, any:0, 1);
}
else
{
LogError("This plugin works on hosting www.MyArena.ru only!");
GetPluginFilename(GetMyHandle(), g_sBufferAdvert256, 256);
InsertServerCommand("sm plugins unload %s", g_sBufferAdvert256);
}
}
else
{
g_bOnLoadBufferedTimer = true;
}
return 0;
}
public OnPluginStart()
{
g_iEngine = GetEngineVersion();
BuildPath(PathType:0, g_sLogPath, 256, "logs/welcome_sound_errors.log");
BuildPath(PathType:0, g_sWelcomeSoundList, 256, "configs/welcome_sound_list.txt");
g_hArraySounds = CreateArray(128, 0);
return 0;
}
public OnAllPluginsLoaded()
{
OnLoadBuffer();
return 0;
}
public OnMapStart()
{
decl String:sBuffer[256];
new iBuffer;
g_hFile = OpenFile(g_sWelcomeSoundList, "r");
if (g_hFile)
{
if (GetArraySize(g_hArraySounds))
{
ClearArray(g_hArraySounds);
}
g_iCountSounds = -1;
while (!IsEndOfFile(g_hFile))
{
if (ReadFileLine(g_hFile, sBuffer, 256))
{
iBuffer = StrContains(sBuffer, "//", true);
if (iBuffer != -1)
{
sBuffer[iBuffer] = MissingTAG:0;
}
iBuffer = StrContains(sBuffer, "#", true);
if (iBuffer != -1)
{
sBuffer[iBuffer] = MissingTAG:0;
}
iBuffer = StrContains(sBuffer, ";", true);
if (iBuffer != -1)
{
sBuffer[iBuffer] = MissingTAG:0;
}
TrimString(sBuffer);
new var1;
if (!(sBuffer[0] && strlen(sBuffer) < 4))
{
if (isFileExists(sBuffer, false))
{
if (g_iEngine == EngineVersion:12)
{
iBuffer = FindStringTable("soundprecache");
if (iBuffer == -1)
{
LogToFileEx(g_sLogPath, "Ошибка кеширования звукового файла '%s'", sBuffer);
}
else
{
Format(sBuffer, 256, "sound/%s", sBuffer);
AddFileToDownloadsTable(sBuffer);
Format(sBuffer, 256, "*%s", sBuffer[1]);
PushArrayString(g_hArraySounds, sBuffer);
AddToStringTable(iBuffer, sBuffer, "", -1);
g_iCountSounds += 1;
}
}
else
{
if (PrecacheSound(sBuffer, false))
{
PushArrayString(g_hArraySounds, sBuffer);
Format(sBuffer, 256, "sound/%s", sBuffer);
AddFileToDownloadsTable(sBuffer);
g_iCountSounds += 1;
}
LogToFileEx(g_sLogPath, "Ошибка кеширования звукового файла '%s'", sBuffer);
}
}
else
{
LogToFileEx(g_sLogPath, "файл не найден '%s'", sBuffer);
}
}
}
}
CloseHandle(g_hFile);
}
else
{
SetFailState("Не найден файл звуков по адресу '%s'", g_sWelcomeSoundList);
}
return 0;
}
public OnClientPutInServer(client)
{
if (g_iCountSounds != -1)
{
CreateTimer(1.5, Timer_WelcomeSound, GetClientUserId(client), 2);
}
return 0;
}
public Action:Timer_WelcomeSound(Handle:timer, any:userid)
{
new client = GetClientOfUserId(userid);
new var1;
if (client && IsClientConnected(client) && IsClientInGame(client) && !IsFakeClient(client))
{
decl String:sBuffer[256];
if (g_iCountSounds)
{
GetArrayString(g_hArraySounds, GetRandomInt(0, g_iCountSounds), sBuffer, 256);
}
else
{
GetArrayString(g_hArraySounds, 0, sBuffer, 256);
}
EmitSoundToClient(client, sBuffer, -2, 0, 0, 0, 1.0, 100, -1, NULL_VECTOR, NULL_VECTOR, true, 0.0);
}
return Action:4;
}
public bool:isFileExists(String:soundfile[], bool:usevalue)
{
decl String:sBuffer[256];
Format(sBuffer, 256, "sound/%s", soundfile);
if (FileExists(sBuffer, usevalue))
{
return true;
}
if (DirExists("custom"))
{
new Handle:hDir = OpenDirectory("custom");
if (hDir)
{
decl FileType:type;
while (ReadDirEntry(hDir, sBuffer, 256, type))
{
new var1;
if (type == FileType:1 && strcmp(sBuffer, ".", false) && strcmp(sBuffer, "..", false))
{
Format(sBuffer, 256, "custom/%s/sound/%s", sBuffer, soundfile);
if (FileExists(sBuffer, usevalue))
{
CloseHandle(hDir);
return true;
}
}
}
CloseHandle(hDir);
}
}
return false;
}