помощь в написание статистики
| |
Jon4ik
|
Дата: Четверг, 07.05.2015, 14:14:42 | Сообщение # 1 |
|
Сообщений: 278
Репутация: 7 [ +/- ]
|
|
Всем привет. как узнать сколько игрок сделал выстрелов,сколько попаданий и точность попаданий(в живот,левая рука, правая рука, левая нога, правая нога)
|
|
| |
_R1KO_
|
Дата: Четверг, 07.05.2015, 17:27:34 | Сообщение # 2 |
|
Сообщений: 200
Репутация: 30 [ +/- ]
|
|
https://wiki.alliedmods.net/Counter-Strike:_Source_Events#player_hurt
hitgroup это часть тела, не помню уже какие там цифры, проверь.
точность это количество выстрелов/кол-во попаданий
|
|
| |
dron216
|
Дата: Четверг, 07.05.2015, 17:33:22 | Сообщение # 3 |
|
Сообщений: 151
Репутация: 18 [ +/- ]
|
|
А вот части тела) Код #define HITGROUP_GENERIC 0 #define HITGROUP_HEAD 1 #define HITGROUP_CHEST 2 #define HITGROUP_STOMACH 3 #define HITGROUP_LEFTARM 4 #define HITGROUP_RIGHTARM 5 #define HITGROUP_LEFTLEG 6 #define HITGROUP_RIGHTLEG 7
Сообщение отредактировал dron216 - Четверг, 07.05.2015, 17:33:55 |
|
| |
Jon4ik
|
Дата: Четверг, 07.05.2015, 18:09:55 | Сообщение # 4 |
|
Сообщений: 278
Репутация: 7 [ +/- ]
|
|
Спс
а как получить кол-во выстрелов через weapon_fire?
|
|
| |
_R1KO_
|
Дата: Четверг, 07.05.2015, 20:28:34 | Сообщение # 5 |
|
Сообщений: 200
Репутация: 30 [ +/- ]
|
|
Код hookevent("weapon_fire", weapon_fire);
weapon_fire(..) shots[client]++;
|
|
| |
Jon4ik
|
Дата: Пятница, 08.05.2015, 20:12:32 | Сообщение # 6 |
|
Сообщений: 278
Репутация: 7 [ +/- ]
|
|
я немного по другому сделал уже)
public Action:Event_weapon_fire(Handle:event, const String:name[], bool:dontBroadcast) { new client = GetClientOfUserId(GetEventInt(event, "userid")); new weapon = GetEntPropEnt(client, Prop_Send, "m_hActiveWeapon");
if(weapon != GetPlayerWeaponSlot(client, 2)) { }
Добавлено (08.05.2015, 20:12:32) --------------------------------------------- возникла 1 проблема
когда добавляю больше 17 полей то игрока не заносит в бд
public OnClientPutInServer(client) { GetClientAuthString(client, SteamBuffer, sizeof(SteamBuffer)); Format(SQLQuery, sizeof(SQLQuery), "SELECT COUNT(*) FROM `stats` WHERE steam='%s'", SteamBuffer); SQL_TQuery(h_Database,CheckJoinedPlayer, SQLQuery, client, DBPrio_High); }
сама проверка
public CheckJoinedPlayer(Handle:owner, Handle:HQuery, const String:error[], any:client) { while (SQL_FetchRow(HQuery)) { new count = SQL_FetchInt(HQuery, 0); if(count == 0) { decl String:CName[45]; GetClientName(client, CName, sizeof(CName)); GetClientAuthString(client, SteamBuffer, sizeof(SteamBuffer)); Format(SQLQuery, sizeof(SQLQuery), "INSERT INTO `stats` VALUES ('','%s', '1000', '%s', '0','0','0','0','0','0','0','0','0','0','0','0','0','0')", CName, SteamBuffer); SQL_TQuery(h_Database, nkCreateNewPlayer, SQLQuery,_,DBPrio_High); } } }
Сообщение отредактировал Jon4ik - Пятница, 08.05.2015, 21:44:34 |
|
| |
SourceSamil
|
Дата: Суббота, 09.05.2015, 04:40:50 | Сообщение # 7 |
|
Сообщений: 237
Репутация: [ +/- ]
|
|
А ты думаешь в bd нет ограничения в колонках?!ОоДобавлено (09.05.2015, 04:40:50) --------------------------------------------- Почитай sm wiki И api
|
|
| |
Jon4ik
|
Дата: Суббота, 09.05.2015, 08:40:32 | Сообщение # 8 |
|
Сообщений: 278
Репутация: 7 [ +/- ]
|
|
SourceSamil, в rankme 60 колонок и норм же
из мануалов по mysql я нашел только это http://world-source.ru/forum/100-2751-1
Сообщение отредактировал Jon4ik - Суббота, 09.05.2015, 08:46:51 |
|
| |
_R1KO_
|
Дата: Суббота, 09.05.2015, 13:37:00 | Сообщение # 9 |
|
Сообщений: 200
Репутация: 30 [ +/- ]
|
|
Цитата Jon4ik ( ) когда добавляю больше 17 полей то игрока не заносит в бд Думаю не в этом дело, выведи в лог запрос добавления игрока, создания таблицы и ошибки если есть. Потом скинешь сюда.
|
|
| |
Jon4ik
|
Дата: Суббота, 09.05.2015, 14:09:50 | Сообщение # 10 |
|
Сообщений: 278
Репутация: 7 [ +/- ]
|
|
_R1KO_, ошибок по идеи быть не должно
если 16 полей то все норм меня добавляет бд, но если ещё 1 поле добавить то все не добавляет в бд)
|
|
| |
_R1KO_
|
Дата: Суббота, 09.05.2015, 15:59:21 | Сообщение # 11 |
|
Сообщений: 200
Репутация: 30 [ +/- ]
|
|
может в самом этом поле проблема. Буффера может перестать хватать.
|
|
| |
Jon4ik
|
Дата: Суббота, 09.05.2015, 17:23:28 | Сообщение # 12 |
|
Сообщений: 278
Репутация: 7 [ +/- ]
|
|
хм а rankme почему тогда нормально работает?
его запрос:
new String:g_sSqlInsert[] = "INSERT INTO `%s` VALUES (NULL,'%s','%s','%s','%d','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0 ','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0');";
Format(query,sizeof(query),g_sSqlInsert ,g_sSQLTable,g_aClientSteam[client],sEscapeName,g_aClientIp[client],g_PointsStart); SQL_TQuery(g_hStatsDb,SQL_NothingCallback,query,_,DBPrio_High);
|
|
| |
Scarface_slv
|
Дата: Суббота, 09.05.2015, 18:32:30 | Сообщение # 13 |
|
Сообщений: 737
Репутация: 61 [ +/- ]
|
|
А зачем здесь while (SQL_FetchRow(HQuery)) ? Если нужно проверить есть стим в базе или нет то вроде так if (!SQL_FetchRow(HQuery)) вернет false если нет стима в базе И еще не добавляет возможно потому что SQLQuery - как я понял это строка для запроса. Может ее нужно увеличить в размере?
Сообщение отредактировал Scarface_slv - Суббота, 09.05.2015, 18:52:18 |
|
| |
_R1KO_
|
Дата: Суббота, 09.05.2015, 20:30:42 | Сообщение # 14 |
|
Сообщений: 200
Репутация: 30 [ +/- ]
|
|
query какой длины?
|
|
| |
Jon4ik
|
Дата: Суббота, 09.05.2015, 20:52:10 | Сообщение # 15 |
|
Сообщений: 278
Репутация: 7 [ +/- ]
|
|
Scarface_slv, черт точно =) теперь все работает
|
|
| |
|