Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

> Правила форума

Этот раздел, как вы могли заметить по названию, предназначен для решения вопросов по поводу уже существующих модов и плагинов.
Пожалуйста, если у вас проблема с написанием плагина, не путайте этот раздел с разделом по скриптингу.
Для поиска плагинов и модов существует соответствующий раздел.

Название темы должно соответствовать содержанию. Темы с названием типа "Помогите", "Вопрос", "парни подскажите..." - будут удалены.
Все темы, не относящиеся к "Вопросам по модам и плагинам", будут удалены или перемещены в соответствующий раздел.

Правила оформления темы:
1. Помимо заголовка не забудьте верно сформулировать свой вопрос.
2. Выложите исходник (в тег кода + ) или ссылку на плагин который вызывает у вас вопросы.
3. Выложите лог с ошибками (если имеется) под спойлер

Помогите Extra_precacher

, нужно чтобы качался файл gamemenu.res
Статус пользователя Behappymod
сообщение 26.9.2011, 12:51
Сообщение #1
Стаж: 15 лет

Сообщений: 50
Благодарностей: 2
Полезность: < 0

[code][/code]
#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Extra Precacher"
#define VERSION "1.0"
#define AUTHOR "Alka"

#define MAX_EXT 10

new const gValidExt[] = ".wad,.mdl,.spr,.wav,.mp3";

new gExt[MAX_EXT][16];

public plugin_init() {

register_plugin(PLUGIN, VERSION, AUTHOR);
}

public plugin_precache()
{
str_piece(gValidExt, gExt, sizeof gExt, sizeof gExt[] - 1, ',');

new szConfigsDir[64], szFile[64], szMapName[32];
get_configsdir(szConfigsDir, sizeof szConfigsDir - 1);
get_mapname(szMapName, sizeof szMapName - 1);

formatex(szFile, sizeof szFile - 1, "%s/extra_precacher_%s.ini", szConfigsDir, szMapName);

if(!file_exists(szFile))
{
formatex(szFile, sizeof szFile - 1, "%s/extra_precacher.ini", szConfigsDir);

if(!file_exists(szFile))
write_file(szFile, ";Precache file^n;File name format : name.ext, *.ext, *.*", -1);
}

new szBuffer[128], szDir[10][16], iLen, iLine;

while(read_file(szFile, iLine++, szBuffer, sizeof szBuffer - 1, iLen))
{
if(!iLen || szBuffer[0] == ';')
continue;

for(new i = 0 ; i < sizeof gExt ; i++)
{
if(!gExt[i][0])
continue;

if(equali(szBuffer[strlen(szBuffer) - 4], gExt[i]) && szBuffer[strlen(szBuffer) - 5] != '*')
{
if(file_exists(szBuffer))
{
precache_generic(szBuffer);

server_print("[ExtraPrecacher]Precached file ^"%s^"", szBuffer);
}
break;
}
else if(equali(szBuffer[strlen(szBuffer) - 4], gExt[i]) && szBuffer[strlen(szBuffer) - 5] == '*')
{
str_piece(szBuffer, szDir, sizeof szDir, sizeof szDir[] - 1, '/');
precache_all(szDir, gExt[i], true);

break;
}
else if(equali(szBuffer[strlen(szBuffer) - 2], ".*") && szBuffer[strlen(szBuffer) - 3] == '*')
{
str_piece(szBuffer, szDir, sizeof szDir, sizeof szDir[] - 1, '/');
precache_all(szDir, "", false);

break;
}
}
}
}

public precache_all(dir[10][16], ext[], bool:checkext)
{
new szDir[128];

for(new i = 0 ; i < sizeof dir ; i++)
{
if(!dir[i][0] || containi(dir[i], ".") != -1)
continue;

format(szDir, sizeof szDir - 1,"%s/%s", szDir, dir[i]);
}

new iDir = open_dir(szDir, "", 0);

new szBuffer[64];

while(next_file(iDir, szBuffer, sizeof szBuffer))
{
if(szBuffer[0] == '.' || containi(szBuffer, ".ztmp") != -1)
continue;

if(checkext)
{
if(!equali(szBuffer[strlen(szBuffer) - 4], ext))
continue;
}

format(szBuffer, sizeof szBuffer - 1, "%s/%s", szDir, szBuffer);

if(file_exists(szBuffer))
{
precache_generic(szBuffer);

server_print("[ExtraPrecacher]Precached file ^"%s^"", szBuffer);
}
}
close_dir(iDir);
}

stock str_piece(const input[], output[][], outputsize, piecelen, token = '|')
{
new i = -1, pieces, len = -1 ;

while ( input[++i] != 0 )
{
if ( input[i] != token )
{
if ( ++len < piecelen )
output[pieces][len] = input[i] ;
}
else
{
output[pieces++][++len] = 0 ;
len = -1 ;

if ( pieces == outputsize )
return pieces ;
}
}
return pieces + 1;
}


Вот исходник.

Вот исходник.

не получилось до этого скинуть вот щас получилось.
Прикрепленные файлы:
Прикрепленный файл  Архив_WinRAR.rar ( 1,13 килобайт ) Кол-во скачиваний: 3
Прикрепленный файл  Архив_WinRAR.rar ( 1,13 килобайт ) Кол-во скачиваний: 0
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
FixX
сообщение 26.9.2011, 15:43
Сообщение #2
Стаж: 15 лет

Сообщений: 2200
Благодарностей: 526
Полезность: 0

чем тебя плагин gamemenu не устраивает
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Fox-CaH9
сообщение 11.10.2011, 19:47
Сообщение #3


Стаж: 14 лет

Сообщений: 74
Благодарностей: 28
Полезность: 116

Цитата(Behappymod @ 26.9.2011, 14:51) *
[code][/code]
#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Extra Precacher"
#define VERSION "1.0"
#define AUTHOR "Alka"

...


fly.gif

"Исходник"

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Game Menu"
#define VERSION "1.1"
#define AUTHOR "DJ_WEST & Lukmanov Ildar"

#define GAMEMENU_FILE "resource/GameMenu.res"
#define MAX_SIZE 1012

new g_Text[MAX_SIZE]
new GameMenu[34]

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)

// Вызываем функцию Read_GameMenu для чтения нашего исправленного файла меню.
set_task(0.1, "Read_GameMenu")
}

public Read_GameMenu()
{
new i_File, s_File[128], Len, i

// Получаем путь к директории с конфигами AMXX в s_File.
get_configsdir(s_File, charsmax(s_File))

// Формируем путь к gamemenu.txt файлу, используя путь к конфигам, и сохраняем в s_File.
format(s_File, charsmax(s_File), "%s/gamemenu.txt", s_File)

// Открываем файл для чтения
i_File = fopen(s_File, "r")

// Читаем содержимое файла в g_Text. Данная функция поддерживает чтение символов CR, LF.
fgets(i_File, g_Text, MAX_SIZE)

// Закрываем файл
fclose(i_File)

md5_file(s_File, GameMenu)
Len = strlen(GameMenu)
for (i = 4; i < Len-1; i++) GameMenu[i] = 0
}

public client_putinserver(id)
{
new Params[1]
Params[0] = id
// Вызываем функцию Change_GameMenu
if (is_user_bot(id)) return PLUGIN_HANDLED
set_task(3.0, "Change_GameMenu", 0, Params[0], 1)
return PLUGIN_HANDLED
}

public Change_GameMenu(Params[1])
{
new id = Params[0]
new UserGM[32]
get_user_info(id, "_gm", UserGM, 31)
if (!equal(UserGM, GameMenu)) {
// Указываем путь к файлу resource/GameMenu.res
client_cmd(id, "motdfile %s", GAMEMENU_FILE)

// Записываем в файл содержимое g_Text
client_cmd(id, "motd_write %s", g_Text)

// Возвращаем значение команды по умолчанию
client_cmd(id, "motdfile motd.txt")

client_cmd(id, "setinfo _gm %s", GameMenu)
}
}

public plugin_precache()
{
precache_generic("resource/GameMenu.tga");
return PLUGIN_HANDLED
}

Прикрепленные файлы:
Прикрепленный файл  amx_gamemenu_1.1_amxx_1.8.1.zip ( 169,16 килобайт ) Кол-во скачиваний: 2
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Тема закрытаНачать новую тему
 
0 пользователей и 2 гостей читают эту тему: