Ошибка при компиляции: 010 (неизвестная функция или декларация)

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
190
Реакции
16
Помог
1 раз(а)
Ошибка
//AMXXPC compile.exe
// by the AMX Mod X Dev Team


//// amx_demorecorder.sma
//
// Z:\Temp\1. ╩╬╠╧╚╦▀╥╬╨ 1.9.0\scripting\amx_demorecorder.sma(1) : error 010: in
valid function or declaration
// Z:\Temp\1. ╩╬╠╧╚╦▀╥╬╨ 1.9.0\scripting\amx_demorecorder.sma(127) : warning 233
: symbol "md5" is marked as deprecated: Use hash_string() function. Also, see Ha
sh_* constants.
//
//
// 1 Error.
// Could not locate output file compiled\amx_demorecorder.amx (compile failed).


Press enter to exit ...
Компилятор
Локальный
Amx Mod X
1.9.0
Исходный код
#include <amxmodx> 
#include <amxmisc>

new const PLAGIN[] = "Auto Demo Recorder"
new const VERSIYA[] = "2.1"
new const AVTORG[] = "F4RR3LL"

new
gpc_cvar1,
gpc_cvar2


enum ChatColor
{
CHATCOLOR_NORMAL = 1,
CHATCOLOR_GREEN,
CHATCOLOR_TEAM_COLOR,
CHATCOLOR_GREY,
CHATCOLOR_RED,
CHATCOLOR_BLUE,
}

new LOGNAME[128]
new MapName[32]

public plugin_init()
{
register_plugin(PLAGIN, VERSIYA, AVTORG)

gpc_cvar1 = register_cvar("adr_cvar1", "1")

gpc_cvar2 = register_cvar("adr_cvar2", "POV_cw/mix_1")
}

new monthyear[12]

public plugin_cfg()
{
//set_task(get_pcvar_float(gpc_cvar3), "adverd", 41, "", 0, "b")

get_mapname(MapName, sizeof MapName -1)


const LEN = 128

new logsdir[LEN]
get_localinfo("amxx_logs", logsdir, LEN -1)

new papka[LEN]
format(papka, LEN -1, "recorded_demos")

new direxists[LEN]
formatex(direxists, LEN -1, "/%s/%s", logsdir, papka)
if(!dir_exists(direxists))
mkdir(direxists)

get_time("%d-%m-%Y", monthyear, sizeof monthyear -1)

new fail[LEN]
formatex(fail, LEN -1, "%s.txt", monthyear)

formatex(LOGNAME, LEN -1, "%s/%s", direxists, fail)

if(!file_exists(LOGNAME))
write_file(LOGNAME, "")
}

public client_authorized(id)
{
client_cmd(id, "stop")
}

new bool:najalknopky[33] = { false, ... }

public client_putinserver(id)
{
if(!is_user_bot(id) && !is_user_hltv(id))
{
if(get_pcvar_num(gpc_cvar1) < 15)
set_pcvar_num(gpc_cvar1, 15)

najalknopky[id] = false

remove_task(id+500)
set_task(get_pcvar_float(gpc_cvar1), "prerecDEMO", id+500)
}
}

public checkKnopka(id)
{
id -= 500

if(!is_user_connected(id))
return

if(!najalknopky[id])
recDEMO(id, 0)
}

public recDEMO(id, mode)
{
static nickname[32], ip[16], stim[35]
get_user_name(id, nickname, sizeof nickname -1)
get_user_ip(id, ip, sizeof ip -1, 1)
get_user_authid(id, stim, sizeof stim -1)

if(mode == 1)
{
najalknopky[id] = false

remove_task(id+500)

log_to_file(LOGNAME, "[Player: %s][SteamID: %s - IP: %s] [Demoname: Player was kicked]", nickname, stim, ip)

server_cmd("kick #%d You can't game at this server, without recording demo.", get_user_userid(id))

return
}

najalknopky[id] = true

static hostname[64], vremia[9], hash[34], demoname[350], neyznavod[32]

get_cvar_string("hostname", hostname, sizeof hostname -1)
get_time("%H:%M:%S", vremia, sizeof vremia -1)
get_pcvar_string(gpc_cvar2, neyznavod, sizeof neyznavod -1)
md5(demoname, hash);


formatex(demoname, sizeof demoname -1, "%s_%s_%s_%s_%s_%s_%s_MD5-%s.dem", neyznavod, hostname, nickname, ip, MapName, vremia, monthyear, hash)
while(replace(demoname, sizeof demoname -1, "/", "-")) {}
while(replace(demoname, sizeof demoname -1, "\", "-")) {}
while(replace(demoname, sizeof demoname -1, ":", "-")) {}
while(replace(demoname, sizeof demoname -1, "*", "-")) {}
while(replace(demoname, sizeof demoname -1, "?", "-")) {}
while(replace(demoname, sizeof demoname -1, "<", "-")) {}
while(replace(demoname, sizeof demoname -1, ">", "-")) {}
while(replace(demoname, sizeof demoname -1, "|", "-")) {}
while(replace(demoname, sizeof demoname -1, " ", "_")) {}

client_cmd(id, "stop;wait;wait;record ^"%s.a^"", demoname)

set_hudmessage(255, 0, 0, 0.02, 0.18, 0, 6.0, 5.0)
show_hudmessage(id, "Началась записи POV-demo!^n^n%s", demoname)

if(equal(stim, "VALVE_ID_LAN")
|| equal(stim, "VALVE_ID_PENDING")
|| equal(stim, "STEAM_666:88:666")
|| equal(stim, "WWW.DARKTOWER.SU")
|| equal(stim, "STEAM_ID_PENDING")
|| equal(stim, "STEAM_ID_LAN") )
stim = "UNKNOWN"

log_to_file(LOGNAME, "[Player: %s][SteamID: %s - IP: %s] [Demoname: %s]", nickname, stim, ip, demoname)
}
Всем привет.
Редактировал плагин, удалил лишние функции.
Были другие ошибки, разобрался, сейчас вот одна ошибка и предупреждение.
В чем дело, как решить ошибку?
Предупреждение пытался поменять на: hash_string(message, Hash_Md5, hash, charsmax(hash));
Не вышло. Fatal error было.
Но так как не силен в скриптинге, то бросил затею, вернул назад md5.

P.S. Во вложении исходник до редактирования и удаления лишнего.
 

Вложения

Сообщения
1,175
Реакции
2,144
Помог
57 раз(а)
ncux0Zz,
Предупреждение пытался поменять на: hash_string(message, Hash_Md5, hash, charsmax(hash));
Так откуда вы взяли message? В функции recDEMO() оно нигде не объявляется как бы. Должно быть:
Код:
-md5(demoname, hash)
+hash_string(demoname, Hash_Md5, hash, charsmax(hash))
И уверены ли вы, что хеширование у вас выполняется в правильном порядке относительно остальной логики? Там же demoname[] объявляется как статик, далее вы его хешируете, и далее идёт formatex() + replace(). Т.е. хешируется первый раз пустой буфер, а далее буфер, заполненный с предыдущего раза. Может конечно так и должно быть (или это вообще не важно), я если честно даже не понимаю, зачем там вообще хеширование нужно.
 
Сообщения
190
Реакции
16
Помог
1 раз(а)
alexei1s, я это знаю давно, я постоянно там смотрю ошибки, но мне нужна помощь в решении.
BlackSignature, вы правы, он хэшируется в начале, после идет запись и хэш сумма меняется.
Другими словами я "параноик" :) в лог пишется название демо у каждого игрока, где как раз указана хэш сумма. Я по ней сверяю название демо, соответствует или нет. Да и плагин не я писал, я просто под себя редактирую.
4 Фев 2019
BlackSignature, исправил, теперь предупреждения нет.
Но ошибка осталась:
amx_demorecorder.sma(1) : error 010: in valid function or declaration
из-за нее не компилируется плагин.
Тут не совсем понятно в каком месте ошибка.
4 Фев 2019
эм... вообще Юмора не понял.
Создал отдельно файл, скопировал все в него, и он скомпилировался нормально и без ошибок. :dntknw:
ЧТА ???
 
Сообщения
48
Реакции
151
Вероятно, с кодировкой были проблемы и в начале был символ, который, конечно же, непонятен компилятору.
 
Сообщения
1,175
Реакции
2,144
Помог
57 раз(а)
ncux0Zz, Всё равно не понимаю, зачем хеш, если вы его не заносите в лог-файл. Вроде как, у вас и так параметры, подставляющиеся в имя демо, дают гарантии уникальности этого самого имени.
 
Сообщения
190
Реакции
16
Помог
1 раз(а)
BlackSignature, тоже верно, но гвоорю, плагин не я писал и там уже было с md5 сделано.
Сейчас протестирую плагин, кажется он не пишет демки теперь.
Еще беда в том, что выскакивает сообщение в ХАД, и быстро пропадает. То есть на доли секунды. Как сделать чтобы нормально отображало?
 
Сообщения
2,810
Реакции
1,658
Помог
75 раз(а)
Еще беда в том, что выскакивает сообщение в ХАД, и быстро пропадает. То есть на доли секунды. Как сделать чтобы нормально отображало?
этот вопрос не относится к теме " проблемы с компилированием"
 
Статус
В этой теме нельзя размещать новые ответы.

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу