Sziasztok.Az lenne a kérdésem hogy ez miért nem működik?
#include <amxmod>
#include <amxmisc>
#define MAX_EMOTICONS 50
new const g_szSymbol[MAX_EMOTICONS][16];
new const g_szSprite[MAX_EMOTICONS][32];
new g_iSpirteIndex[MAX_EMOTICONS];
new g_iNum;
public plugin_init() {
register_plugin("Emoticons Displayer", "1.1", "Alka");
register_clcmd("say", "clcmdSay");
}
public plugin_precache()
{
new szConfigDir[32], szFile[64];
get_localinfo("amx_configdir", szConfigDir, charsmax(szConfigDir));
if(!szConfigDir[0])
build_path(szFile, charsmax(szFile), "$configdir/emoticons.ini");
else
formatex(szFile, charsmax(szFile), "%s/emoticons.ini", szConfigDir);
if(!file_exists(szFile))
return;
const iBufferLen = (sizeof(g_szSymbol[]) + sizeof(g_szSprite[]))
new szBuffer[iBufferLen], iLen, iLine;
while(g_iNum < MAX_EMOTICONS && read_file(szFile, iLine++, szBuffer, charsmax(szBuffer), iLen))
{
if(!iLen || szBuffer[0] == ';' || szBuffer[0] == '#' || szBuffer[0] == '/')
continue;
if(parse(szBuffer, g_szSymbol[g_iNum], charsmax(g_szSymbol[]), g_szSprite[g_iNum], charsmax(g_szSprite[])) < 2) continue;
g_iSpirteIndex[g_iNum] = precache_model(g_szSprite[g_iNum]);
g_iNum++;
}
}
public clcmdSay(id)
{
if(!is_user_alive(id))
return;
static szArgs[128];
read_args(szArgs, charsmax(szArgs));
for(new i = 0 ; i < sizeof(g_szSymbol) ; i++)
{
if(!g_szSymbol[i][0])
continue;
if(containi(szArgs, g_szSymbol[i]) != -1)
{
util_p_killattachment(id);
util_p_attach(id, g_iSpirteIndex[i], 5);
}
}
}
util_p_killattachment(index)
{
/*if(!is_user_connected(index))
return;*/
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_KILLPLAYERATTACHMENTS);
write_byte(index);
message_end();
}
util_p_attach(index, iSprite, iHoldTime)
{
/*if(!is_user_connected(index))
return;*/
message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
write_byte(TE_PLAYERATTACHMENT);
write_byte(index);
write_coord(60);
write_short(iSprite);
write_short(iHoldTime * 10);
message_end();
}
Configs mappában lévő fájl tartalma:
Kód:
; Displayed emoticons configuration file.
; File location: $moddir/addons/amx/config/emoticons.ini
; To use with "Emoticons Displayer" plugin.
; Usage format:
; "emoticon text" "emoticon sprite" (from $moddir) -> Example: See default settings below
; Note:
; The maximum list of emoticons is limited to 50.
; Edit then recompile the plugin to modify this value (if needed).
; Add your emoticons texts and their sprites below.
":)" "sprites/emoticons/1.spr"
":(" "sprites/emoticons/2.spr"
";)" "sprites/emoticons/3.spr"
":D" "sprites/emoticons/4.spr"
":-?" "sprites/emoticons/5.spr"
":X" "sprites/emoticons/6.spr"
":P" "sprites/emoticons/7.spr"
":*" "sprites/emoticons/8.spr"
":O" "sprites/emoticons/9.spr"
"X(" "sprites/emoticons/10.spr"
"b-)" "sprites/emoticons/11.spr"
":S" "sprites/emoticons/12.spr"
">:)" "sprites/emoticons/13.spr"
":((" "sprites/emoticons/14.spr"
":))" "sprites/emoticons/15.spr"
":|" "sprites/emoticons/16.spr"
"/:)" "sprites/emoticons/17.spr"
"=))" "sprites/emoticons/18.spr"
":-&" "sprites/emoticons/19.spr"
":O)" "sprites/emoticons/20.spr"
">:P" "sprites/emoticons/21.spr"
":E" "sprites/emoticons/22.spr"
":>" "sprites/emoticons/23.spr"
Lefut de mikor berakom semmit nem csinál :S