Death Stats, say /me |
Здравствуйте, гость Вход | Регистрация
Наши новости:
|
|
|
Death Stats, say /me |
user.gameover.user
|
8.11.2014, 3:33
Сообщение
|
|
|
Отдельный плагин для работы всем известных команд в чат /me /hp
death_stats.sma Код #include <amxmodx> #include <WPMGPrintChatColor> #define CHAT_PREFIX "STAT" #define is_player(%0) (32 >= %0 >= 1) new const g_szHIT_NAMES[][] = { "Тело", "Голова", "Грудь", "Живот", "Л. рука", "П. рука", "Л. нога", "П. нога" } enum _:DATA { DMGCOUNT, DMGVALUE, ATT_ID, ATT_NAME[32], ATT_HP, ATT_AR, ATT_WPN[32], ATT_DIST } new g_eDMG[33][DATA]; new g_iHITS[33][8]; public plugin_init() { register_plugin("STATS", "1", "brown_dev"); register_event("Damage", "EVENT_Damage", "b", "2!0", "4!0"); // was before 3=0 bullet dmg only register_event("HLTV", "event_HLTV", "a", "1=0", "2=0"); register_clcmd("say /me", "ShowME"); register_clcmd("say /hp", "ShowHP"); register_clcmd("say_team /me", "ShowME"); register_clcmd("say_team /hp", "ShowHP"); } public EVENT_Damage(id) { static at, wpn, body; at = get_user_attacker(id, wpn, body) if( !is_player(at) || !is_user_connected(at) ) return; g_eDMG[at][DMGCOUNT] ++; g_eDMG[at][DMGVALUE] += read_data(2); g_iHITS[at][body] ++; //instead DeathMsg Event if( is_user_connected(id) && !is_user_alive(id) ) { static vOr[3], aOr[3]; get_user_origin(id, vOr); get_user_origin(at, aOr); get_user_name(at, g_eDMG[id][ATT_NAME], 31); get_weaponname(wpn, g_eDMG[id][ATT_WPN], 31); replace(g_eDMG[id][ATT_WPN], 31, "weapon_", ""); ucfirst(g_eDMG[id][ATT_WPN]); g_eDMG[id][ATT_ID] = at; g_eDMG[id][ATT_HP] = get_user_health(at); g_eDMG[id][ATT_AR] = get_user_armor(at); g_eDMG[id][ATT_DIST] = get_distance(vOr, aOr); //can do it with engine, but why? } } public event_HLTV() { for ( new i = 1; i < 33; i ++ ) { g_eDMG[i][DMGCOUNT] = g_eDMG[i][DMGVALUE] = g_eDMG[i][ATT_HP] = g_eDMG[i][ATT_DIST] = g_eDMG[i][ATT_ID] = g_eDMG[i][ATT_AR] = g_eDMG[i][ATT_NAME][0] = g_eDMG[i][ATT_WPN][0] = 0; g_iHITS[i][1] = g_iHITS[i][2] = g_iHITS[i][3] = g_iHITS[i][4] = g_iHITS[i][5] = g_iHITS[i][6] = g_iHITS[i][7] = 0; } } public ShowME(id) { if( is_user_alive(id) ) { PrintChatColor(id, _, "^4[%s]^1 Доступно только для мертвых.", CHAT_PREFIX); return; } if( !g_eDMG[id][DMGCOUNT] ) { PrintChatColor(id, _, "^4[%s]^1^1 Данные обнулены.", CHAT_PREFIX); return; } new szBuffer[128]; get_hits(id, szBuffer, 127) PrintChatColor(id, _, "^4[%s]^1 Результат: ^3%d ^1попаданий, ^3%d ^1урона.", CHAT_PREFIX, g_eDMG[id][DMGCOUNT], g_eDMG[id][DMGVALUE]); PrintChatColor(id, _, "^4[%s]^1 Части тела: %s", CHAT_PREFIX, szBuffer); } public ShowHP(id) { if( !g_eDMG[id][ATT_ID] ) { PrintChatColor(id, _, "^4[%s]^1 Данные обнулены.", CHAT_PREFIX); return; } new szBuffer[128]; get_hits(g_eDMG[id][ATT_ID], szBuffer, 127); PrintChatColor(id, _, "^4[%s]^1 Убийца: ^3%s ^1Оружие: ^3%s ^1Расст: ^3%d ^1(^3%d ^1HP | ^3%d ^1AR)", CHAT_PREFIX, g_eDMG[id][ATT_NAME], g_eDMG[id][ATT_WPN], g_eDMG[id][ATT_DIST], g_eDMG[id][ATT_HP], g_eDMG[id][ATT_AR]); PrintChatColor(id, _, "^4[%s]^1 Части тела: %s", CHAT_PREFIX, szBuffer) } get_hits(id, buffer[], len) { for ( new hit = 1; hit < 8; hit ++ ) { if(g_iHITS[id][hit]) { format(buffer, len, "%s ^1%s ^3%d", buffer, g_szHIT_NAMES[hit], g_iHITS[id][hit]) } } } /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1049\\ f0\\ fs16 \n\\ par } */ /me показывает только мертвому игроку Нужен был для сервера со статистикой GameMe Плагин предоставляется как есть,без доработок, ошибок не обнаружено ![]()
addons.rar ( 8,06 килобайт )
Кол-во скачиваний: 107
Отредактировал: user.gameover.user, - 8.11.2014, 12:49
|
Поблагодарили 2 раз
|
|
![]() ![]() |