Native error 265929

Одна из конфигураций на базе SQL при входе дает ошибку
   Ruslanb

25.05.18 — 00:16

Одна из конфигураций на базе SQL при входе начала выдавать следующую ошибку:

Ошибка СУБД:

Microsoft SQL Server Native Client 11.0: The transaction log for database ‘Base_Name’ is full due to ‘LOG_BACKUP’.

HRESULT=80040E14, SQLSrvr: SQLSTATE=42000, state=2, Severity=11, native=9002, line=1

   PR

1 — 25.05.18 — 00:19

Так так, очень интересно. А ты?

   Ruslanb

2 — 25.05.18 — 00:28

(1) Попытался урезать лог транзакций через SQL server, но вышла и там ошибка:

Backup, file manipulation operations (such as ALTER DATABASE ADD FILE) and encryption changes on a database must be serialized. Reissue the statement after the current backup or file manipulation operation is completed. (Microsoft SQL Server, Error: 3023)

   PR

3 — 25.05.18 — 00:33

(2) Очень интересно. Что думаешь делать?

   Ruslanb

4 — 25.05.18 — 00:33

(1) Тоже самое если делать это с помощью запроса:

Msg 3023, Level 16, State 2, Line 2

Backup, file manipulation operations (such as ALTER DATABASE ADD FILE) and encryption changes on a database must be serialized. Reissue the statement after the current backup or file manipulation operation is completed.

Msg 5069, Level 16, State 1, Line 2

ALTER DATABASE statement failed.

Msg 8985, Level 16, State 1, Line 3

Could not locate file ‘acc_main’ for database ‘Base_Name’ in sys.database_files. The file either does not exist, or was dropped.

   Ruslanb

5 — 25.05.18 — 00:34

(3) У Вас есть какие то идеи?

   PR

6 — 25.05.18 — 00:38

(5) Я уж думал не спросишь

Скуль перегружать пробовал?

   Ruslanb

7 — 25.05.18 — 00:43

(6) Перезагружал SQL server agent, но не помогло

   PR

8 — 25.05.18 — 00:45

(7) Причем здесь агент, просто скуль перегружал?

   PR

9 — 25.05.18 — 00:45

У базы стоит модель Full или Simple?

   Ruslanb

10 — 25.05.18 — 00:48

(8) Сейчас попробую. (9) Модль Фулл пытался сделать Симпл, но выдает ошибку которую я написал выше

   Ruslanb

11 — 25.05.18 — 00:59

(8) Кажись заработало! Ввел две команды net stop mssqlserver и net start mssqlserver и база запустилась! Спасибо большое)

   StanislavPrihodko

12 — 25.05.18 — 08:17

Отлично

   Apokalipsec

13 — 25.05.18 — 08:24

база в фулле, шел бекап лога транзакций, ты убил сервер во время этого процесса — четко, могешь.

Теперь попробуй всё таки снять бекап лога транзакций и снять/увеличить ограничение по максимальному размеру лога транзакций.

Если тебе не нужен лог транзакций — переведи базы в simple.

   Apokalipsec

14 — 25.05.18 — 08:27

Роман, а как часто тебя заказчики бьют за советы как в (6) не разбирающимся разработчикам?

   PR

15 — 25.05.18 — 09:57

(14) У меня такого не бывает, я базы сразу в Simple перевожу

Можно привести хоть один пример, где в 1С может пригодиться Full?

   PR

16 — 25.05.18 — 10:00

(14) Про бэкап речь зашла только после (0), а в (0) речь не о бэкапе, а о переполнении  лога

   пипец котенку

17 — 25.05.18 — 10:31

>>Можно привести хоть один пример, где в 1С может пригодиться Full?

ЛОЛ, да везде, где заказчики не готовы терять данные за период от предыдущего полного бэкапа до сбоя.

   PR

18 — 25.05.18 — 11:20

(17) Ты про ситуацию, когда клиент реально готов восстанавливать все максимально полно и ежечасные инкрементные бекапы по необъяснимой причине ему так же не подходят

А я про реальность

И в моей реальности полный бекап плюс ежечасные инкрементные полностью закрывают потребность в бекапах

В этом случае Full только жрет место и все

   пипец котенку

19 — 25.05.18 — 11:32

(18)

>>ежечасные инкрементные бекапы по необъяснимой причине ему так же не подходят

не по необъяснимой, а по причине что он готов потерять макс. 15 минут — именно такой интервал можно ставить для бэкапа лога, для дифф. бэкапа в конце дня у тебя дифф бэкап просто не будет успевать делаться за это время

>>В этом случае Full только жрет место и все

Ты просто не умеешь настраивать бэкап лога. Твои ежечасные диф. бэкапы точно так же жрут место, по сравнению с бэкапами лога.

Насчет инкрементного, как ты говоришь, бэкапа (на самом деле он называется дифференциальный) — у него есть серьезный подводный камень — сделанный админом или сторонними средствами полный бэкап делает невалидной всю цепочку твоих бэкапов.

   пипец котенку

20 — 25.05.18 — 11:34

>>А я про реальность

Ты живешь в какой-то своей реальности, в моей реальности все продакшн базы в фулл модели.

   PR

21 — 25.05.18 — 12:07

(19) В общем, я не понял, в чем проблема полных бекапов + дифференциальных, в случае ручного восстановления этого более чем достаточно

   пипец котенку

22 — 25.05.18 — 12:14

(21) Печенюшка, с таким уровнем понимания тебя нельзя до баз больше 15 Мб допускать, бгг

   Мыш

23 — 25.05.18 — 12:40

(19) > Насчет инкрементного, как ты говоришь, бэкапа (на самом деле он называется дифференциальный) — у него есть серьезный подводный камень — сделанный админом или сторонними средствами полный бэкап делает невалидной всю цепочку твоих бэкапов

COPY ONLY спасает, но кто про него вспоминает )

   PR

24 — 25.05.18 — 13:51

(22) Ой, Миша, дурачок, я и не признал тебя сразу, сорян :))

  

X Leshiy

25 — 25.05.18 — 14:12

(17) >>ЛОЛ, да везде, где заказчики не готовы терять данные за период от предыдущего полного бэкапа до сбоя.

Раз заказчик такой нежный, пусть строит репликацию)))

  • #1

Valve отредактировала карты = сломали (в очередной раз) сервера сообщества
Сменились сигнатуры и тем самым сервера ушли в постоянный краш (см 1.10)

[MaZa] [HotGuard] — Failed Offset 1
[SM] Unable to load extension «hotguard.ext»:
[SDKTOOLS] Sigscan for WriteBaselines failed
[SDKTOOLS] Failed to find WriteBaselines signature — stringtable error workaround disabled.
[AntiDLL] Sigscan for Signature failed
[SM] Unable to load extension «AntiDLL.ext»: Failed to create interceptor
[SM] Failed to load plugin «hotguard.smx»: Unable to load plugin (bad header).
[SM] Unable to load plugin «AntiDLL.smx»: Required extension «AntiDLL» file(«AntiDLL.ext») not running
[SM] Exception reported: Failed to get engine poiters. Data: 0, 0, F0D92D44, F0E311CC.
[SM] Blaming: block_print_garbage_messages.smx
[SM] Call stack trace:
[SM] [0] SetFailState
[SM] [1] Line 48, d:SourcePawn1.10block_print_garbage_messages.sp::OnPluginStart
[SM] Unable to load plugin «block_print_garbage_messages.smx»: Error detected in plugin startup (see error logs)
[SM] Unable to load plugin «CrashPlayer_AntiDLL.smx»: Required extension «AntiDLL» file(«AntiDLL.ext») not running
[SM] Exception reported: Can’t get offset for «CBaseServer::RejectConnection».
[SM] Blaming: server_redirect.smx
[SM] Call stack trace:
[SM] [0] SetFailState
[SM] [1] Line 9, server_redirect/redirect.sp::SetupSDKCalls
[SM] [2] Line 198, C:UsersartDesktopaddonsёsourcemodscriptingserver_redirect.sp::OnPluginStart
[SM] Unable to load plugin «server_redirect.smx»: Error detected in plugin startup (see error logs)
[SM] Exception reported: Failed to load CBaseServer::IsExclusiveToLobbyConnections signature from gamedata
[SM] Blaming: nolobbyreservation.smx
[SM] Call stack trace:
[SM] [0] SetFailState
[SM] [1] Line 87, nolobbyreservation.sp::OnPluginStart
[SM] Unable to load plugin «nolobbyreservation.smx»: Error detected in plugin startup (see error logs)

Послетали сигнатуры
CBaseServer::RejectConnection
CBaseServer::IsExclusiveToLobby

upd: Если хотите до сих пор использовать см 1.10 linux — скачивайте архив с см 1.11 6928, оттуда переносите все файлы из папки addons/sourcemod/gamedata/ с заменой. (остальные файлы из других папок не трогайте)
Под остальные плагины исправления — ищите файлы с фиксом сигнатур в соответствующих темах.

Последнее редактирование: Суббота в 10:30

  • #661

Сервер работает минут 10-15 и крашится. Отключил папку plugins и запустил без плагинов и не крашит. Сейчас сижу перебираю, какой из плагинов крашит его.

  • #662

@j1ton, все скрипты скомпилируй под обнову, у меня всё работает, только вип шприцы не робят, жду обнову

Последнее редактирование: Суббота в 14:43

  • #663

у кого нибудь крашит при смене карты? или только у меня, все обновлено… без единой ошибки

Сообщения автоматически склеены: Суббота в 14:41

@j1ton, все скрипты скомпилируй под обнову, у меня всё работает, только вип шприцы не робят, жду обнову
upd: серв падает спустя минут 10 онлайна, ошибка чтения errors_log, не знаю в чём трабл

gamedatу обнови и все.

Последнее редактирование: Суббота в 14:41

  • #664

у кого нибудь крашит при смене карты? или только у меня, все обновлено… без единой ошибки

Сообщения автоматически склеены: Суббота в 14:41

gamedatу обнови и все.

мне не помогла обнова gamedata, у меня проблема в каком-то плагине видимо, вот сижу ищу

  • #665

у кого нибудь крашит при смене карты? или только у меня, все обновлено… без единой ошибки

Сообщения автоматически склеены: Суббота в 14:41

gamedatу обнови и все.

так же. При компиляции пишет ошибки в синтаксисе.

  • #666

У меня sourcemod 1.11 сервер отлично работает, только проблема с плагином shop_skins.smx (не выключаются скины) и с плагином res.smx (не проигрывается музыка)
Приложу свои gamedata и extensions, (не нужное вам, удалите) попробуйте.
» Не забудьте в /addons/sourcemod/configs/core.cfg «DisableAutoUpdate» поставить на «yes» «

  • gamedata.zip

    135.7 КБ

    · Просмотры: 24

  • extensions.zip

    22.1 МБ

    · Просмотры: 24

  • #667

L 02/04/2023 - 15:11:04: Info (map "de_mirage") (file "/home/server26921/game/csgo/addons/sourcemod/logs/errors_20230204.log")
L 02/04/2023 - 15:11:04: [SM] Exception reported: Failed to create native "BaseComm_IsClientGagged", name is probably already in use
L 02/04/2023 - 15:11:04: [SM] Blaming: basecomm.smx
L 02/04/2023 - 15:11:04: [SM] Call stack trace:
L 02/04/2023 - 15:11:04: [SM]   [0] CreateNative
L 02/04/2023 - 15:11:04: [SM]   [1] Line 71, /home/builds/sourcemod/debian9-1.11/build/plugins/basecomm.sp::AskPluginLoad2
L 02/04/2023 - 15:11:04: [SM] Failed to load plugin "basecomm.smx": unexpected error 23 in AskPluginLoad callback.
L 02/04/2023 - 15:11:04: [AntiDLL] Sigscan for Signature failed
L 02/04/2023 - 15:11:04: [SM] Unable to load extension "AntiDLL.ext": Failed to create interceptor
L 02/04/2023 - 15:11:04: [Discord/DropsSummoner_discord.smx] At address g_pDropForAllPlayersPatch received not what we expected, drop for all players will be unavailable.
L 02/04/2023 - 15:11:04: [SM] Exception reported: [System Panel] [Users Chat DataBase] Failed to connection SP_users in databased.cfg
L 02/04/2023 - 15:11:04: [SM] Blaming: users_chat.smx
L 02/04/2023 - 15:11:04: [SM] Call stack trace:
L 02/04/2023 - 15:11:04: [SM]   [0] SetFailState
L 02/04/2023 - 15:11:04: [SM]   [1] Line 39, c:UsersauthtDesktopplugins-syspaneladdonssourcemodscriptingusers_chat.sp::Connection_BD
L 02/04/2023 - 15:11:04: [SM]   [2] Line 31, c:UsersauthtDesktopplugins-syspaneladdonssourcemodscriptingusers_chat.sp::OnPluginStart
L 02/04/2023 - 15:11:04: [SM] Unable to load plugin "users_chat.smx": Error detected in plugin startup (see error logs)
L 02/04/2023 - 15:11:04: [SM] Exception reported: [MA] Database failure: Could not find Database conf "materialadmin"
L 02/04/2023 - 15:11:04: [SM] Blaming: admin/materialadmin.smx
L 02/04/2023 - 15:11:04: [SM] Call stack trace:
L 02/04/2023 - 15:11:04: [SM]   [0] SetFailState
L 02/04/2023 - 15:11:04: [SM]   [1] Line 44, materialadmin/database.sp::ConnectBd
L 02/04/2023 - 15:11:04: [SM]   [2] Line 16, materialadmin/database.sp::MAConnectDB
L 02/04/2023 - 15:11:04: [SM]   [3] Line 286, materialadmin.sp::OnPluginStart
L 02/04/2023 - 15:11:04: [SM] Unable to load plugin "admin/materialadmin.smx": Error detected in plugin startup (see error logs)
L 02/04/2023 - 15:11:04: [SM] Unable to load plugin "admin/ma_mutenotification.smx": Could not find required plugin "materialadmin"
L 02/04/2023 - 15:11:04: [SM] Exception reported: [Clans] No database configuration in databases.cfg!
L 02/04/2023 - 15:11:04: [SM] Blaming: clans/clans.smx
L 02/04/2023 - 15:11:04: [SM] Call stack trace:
L 02/04/2023 - 15:11:04: [SM]   [0] SetFailState
L 02/04/2023 - 15:11:04: [SM]   [1] Line 11, clans/database.sp::ConnectToDatabase
L 02/04/2023 - 15:11:04: [SM]   [2] Line 240, A:ssmodscriptingclans.sp::OnPluginStart
L 02/04/2023 - 15:11:04: [SM] Unable to load plugin "clans/clans.smx": Error detected in plugin startup (see error logs)
L 02/04/2023 - 15:11:04: [SM] Unable to load plugin "clans/clan_createall.smx": Native "Clans_GetClientTimeToCreateClan" was not found
L 02/04/2023 - 15:11:04: [SM] Unable to load plugin "clans/clans_coinsbykill.smx": Native "Clans_AreClansLoaded" was not found
L 02/04/2023 - 15:11:04: [SM] Exception reported: [CustomPlayerArms] - Не удалось получить адрес s_playerViewmodelArmConfigs
L 02/04/2023 - 15:11:04: [SM] Blaming: CustomPlayerArms.smx
L 02/04/2023 - 15:11:04: [SM] Call stack trace:
L 02/04/2023 - 15:11:04: [SM]   [0] SetFailState
L 02/04/2023 - 15:11:04: [SM]   [1] Line 38, C:UsersanakaineDesktopxxxCustomPlayerArms.sp::OnPluginStart
L 02/04/2023 - 15:11:04: [SM] Unable to load plugin "CustomPlayerArms.smx": Error detected in plugin startup (see error logs)
L 02/04/2023 - 15:11:04: [SM] Exception reported: [System Panel] [Users Visits DataBase] Failed to connection SP_users in databased.cfg
L 02/04/2023 - 15:11:04: [SM] Blaming: users_visits.smx
L 02/04/2023 - 15:11:04: [SM] Call stack trace:
L 02/04/2023 - 15:11:04: [SM]   [0] SetFailState
L 02/04/2023 - 15:11:04: [SM]   [1] Line 28, c:UsersauthtDesktopplugins-syspaneladdonssourcemodscriptingusers_visits.sp::Connection_BD
L 02/04/2023 - 15:11:04: [SM]   [2] Line 23, c:UsersauthtDesktopplugins-syspaneladdonssourcemodscriptingusers_visits.sp::OnPluginStart
L 02/04/2023 - 15:11:04: [SM] Unable to load plugin "users_visits.smx": Error detected in plugin startup (see error logs)
L 02/04/2023 - 15:11:05: [SM] Unable to load plugin "vip/vip_clancreate.smx": Native "Clans_SetCreatePerm" was not found
L 02/04/2023 - 15:11:05: [SM] Unable to load plugin "Admins.smx": Could not find required plugin "materialadmin"
L 02/04/2023 - 15:11:05: [SM] Exception reported: [System Panel] [Users DataBase] Failed to connection SP_users in databased.cfg
L 02/04/2023 - 15:11:05: [SM] Blaming: users.smx
L 02/04/2023 - 15:11:05: [SM] Call stack trace:
L 02/04/2023 - 15:11:05: [SM]   [0] SetFailState
L 02/04/2023 - 15:11:05: [SM]   [1] Line 44, c:UsersauthtDesktopplugins-syspaneladdonssourcemodscriptingusers.sp::Connection_BD
L 02/04/2023 - 15:11:05: [SM]   [2] Line 21, c:UsersauthtDesktopplugins-syspaneladdonssourcemodscriptingusers.sp::OnPluginStart
L 02/04/2023 - 15:11:05: [SM] Unable to load plugin "users.smx": Error detected in plugin startup (see error logs)

есть фиксы этих плагинов?

  • #668

У меня sourcemod 1.11 сервер отлично работает, только проблема с плагином shop_skins.smx (не выключаются скины) и с плагином res.smx (не проигрывается музыка)
Приложу свои gamedata и extensions, (не нужное вам, удалите) попробуйте.
» Не забудьте в /addons/sourcemod/configs/core.cfg «DisableAutoUpdate» поставить на «yes» »

включаю сервер и при запуске он включается но в консоле пишет Could not establish connection to Steam servers.

  • #669

Тоже замечаю краши, но пока понять не могу из за какого плагина…

  • #670

L 02/04/2023 - 15:29:43: [STVM] Sigscan for CHLTVServer::BroadcastLocalChat failed
L 02/04/2023 - 15:29:43: [STVM] CHLTVServer::BroadcastLocalChat detour could not be initialized.
L 02/04/2023 - 15:29:43: [STVM] Sigscan for CHLTVDemoRecorder::StartRecording failed
L 02/04/2023 - 15:29:43: [STVM] CHLTVDemoRecorder::StartRecording detour could not be initialized.
L 02/04/2023 - 15:29:43: [STVM] Sigscan for CHLTVDemoRecorder::StopRecording failed
L 02/04/2023 - 15:29:43: [STVM] CHLTVDemoRecorder::StopRecording detour could not be initialized.
L 02/04/2023 - 15:29:43: [STVM] Failed to get CHLTVServer::m_DemoRecorder offset.

gamedata sourcetvmanager.

  • #671

Тоже замечаю краши, но пока понять не могу из за какого плагина…

Попробуй выключить всё, что связано со скинами(shop, ws, vip)

У меня к примеру после оф. Фикса не стартовал сервер с ws о фени.

И осталась одна ошибка:

[CSTRIKE] [CStrike] Failed to locate NET_SendPacket signature.

Решил попробовать перейти на 1.12 но без изменений, ошибка так и осталась.
Можете подсказать, что это и как решить? Буду очень благодарен

  • #672

L 02/04/2023 - 15:29:43: [STVM] Sigscan for CHLTVServer::BroadcastLocalChat failed
L 02/04/2023 - 15:29:43: [STVM] CHLTVServer::BroadcastLocalChat detour could not be initialized.
L 02/04/2023 - 15:29:43: [STVM] Sigscan for CHLTVDemoRecorder::StartRecording failed
L 02/04/2023 - 15:29:43: [STVM] CHLTVDemoRecorder::StartRecording detour could not be initialized.
L 02/04/2023 - 15:29:43: [STVM] Sigscan for CHLTVDemoRecorder::StopRecording failed
L 02/04/2023 - 15:29:43: [STVM] CHLTVDemoRecorder::StopRecording detour could not be initialized.
L 02/04/2023 - 15:29:43: [STVM] Failed to get CHLTVServer::m_DemoRecorder offset.

gamedata sourcetvmanager.

Решение.

  • sourcetvmanager.games.txt

    12.5 КБ

    · Просмотры: 14

  • #673

есть какие ни будь рабочие gamedata и extensions на 1.11 то уже все перепробовал нечего не хочет запускаться

  • #674

есть какие ни будь рабочие gamedata и extensions на 1.11 то уже все перепробовал нечего не хочет запускаться

листай тему, тут всё скидывали.
У меня всё запускается и всё работает, но вот проблема в том что у меня сервер онли мираж, и почему он меняет карту на рандомную и сервер крашится.

  • #675

листай тему, тут всё скидывали.
У меня всё запускается и всё работает, но вот проблема в том что у меня сервер онли мираж, и почему он меняет карту на рандомную и сервер крашится.

те которые кидали не работают

  • #676

Есть у кого сошка феникса под 1.11?

  • #677

кинте пожалуйста basecomm.smx рабочий

  • #678

Есть у кого сошка феникса под 1.11?

На 1.11 нет сошки, если не ошибаюсь

  • #680

у кого то было что тоже не робит AntiDLL?

Unable to load plugin "AntiDLL.smx": Required extension "AntiDLL" file("AntiDLL.ext") not running

Модераторы: Subb98, liFe iS GoOD

  • Список форумов AMX Mod X Скриптинг

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела «Болтовня».
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

  • Ответить с цитатой

Run time error 10: native error (native «SQL_ThreadQuery»)

Вот с такой ошибкой встретился

Код: Выделить всё
L 08/11/2016 - 21:57:15: [MySQL] Invalid info tuple handle: 0
L 08/11/2016 - 21:57:15: [AMXX] Displaying debug trace (plugin "deathrun_money.amxx")
L 08/11/2016 - 21:57:15: [AMXX] Run time error 10: native error (native "SQL_ThreadQuery")
L 08/11/2016 - 21:57:15: [AMXX]    [0] deathrun_money.sma::Load_MySql (line 93)
L 08/11/2016 - 21:57:15: [AMXX]    [1] deathrun_money.sma::client_putinserver (line 154)
Код: Выделить всё
#include <amxmodx>
#include <fakemeta>
#include <cstrike>
#include <sqlx>

#define PLUGIN "Save Money SQL"
#define VERSION "1.0"
#define AUTHOR "Grim"

// Ur Mysql Information

new Host[]     = ""
new User[]    = ""
new Pass[]     = ""
new Db[]     = ""new Handle:g_SqlTuple
new g_Error
[512]
new giMaxPlayers

public plugin_init

() 
{
    register_plugin(PLUGIN, VERSION, AUTHOR)    register_event("HLTV", "EventNewRound", "a", "1=0", "2=0")
    
    set_task
(1.0, "MySql_Init") // set a task to activate the mysql_init
    giMaxPlayers = get_maxplayers()
}
public EventNewRound() 
{
    new iPlayers[32], iPlayersNum, iPlayer

        get_players

( iPlayers, iPlayersNum, "h" )    // skip HLTV
    for ( new i; i < giMaxPlayers; i++ ) 
    
{
        iPlayer = iPlayers[i]
        const m_boolsKilled = 222
        const m_bNotReceivingMoneyNextRound 
= (1<<16)
        set_pdata_int( iPlayer, m_boolsKilled, m_boolsKilled | m_bNotReceivingMoneyNextRound )
    }
}
public MySql_Init()
{
    // we tell the API that this is the information we want to connect to,
    // just not yet. basically it's like storing it in global variables
    g_SqlTuple = SQL_MakeDbTuple(Host,User,Pass,Db)
   
    
// ok, we're ready to connect
    new ErrorCode,Handle:SqlConnection = SQL_Connect(g_SqlTuple,ErrorCode,g_Error,charsmax(g_Error))
    if(SqlConnection == Empty_Handle)
        // stop the plugin with an error message
        set_fail_state(g_Error)
       
    new Handle
:Queries
    
// we must now prepare some random queries
    Queries = SQL_PrepareQuery(SqlConnection,"CREATE TABLE IF NOT EXISTS money_save (steamid varchar(32),money INT(11))")    if(!SQL_Execute(Queries))
    {
        // if there were any problems
        SQL_QueryError(Queries,g_Error,charsmax(g_Error))
        set_fail_state(g_Error)
       
    
}
    
    
// close the handle
    SQL_FreeHandle(Queries)
   
    
// you free everything with SQL_FreeHandle
    SQL_FreeHandle(SqlConnection)   
}public plugin_end()
{
    // free the tuple - note that this does not close the connection,
    // since it wasn't connected in the first place
    SQL_FreeHandle(g_SqlTuple)
}
public Load_MySql(id)
{
    new szSteamId[32], szTemp[512]
    get_user_authid(id, szSteamId, charsmax(szSteamId))
    
    new Data
[1]
    Data[0] = id//we will now select from the table `money_save` where the steamid match
    format(szTemp,charsmax(szTemp),"SELECT * FROM `money_save` WHERE (`money_save`.`steamid` = '%s')", szSteamId)
    SQL_ThreadQuery(g_SqlTuple,"register_client",szTemp,Data,1)
}
public register_client(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
{
    if(FailState == TQUERY_CONNECT_FAILED)
    {
        log_amx("Load - Could not connect to SQL database.  [%d] %s", Errcode, Error)
    }
    else if(FailState == TQUERY_QUERY_FAILED)
    {
        log_amx("Load Query failed. [%d] %s", Errcode, Error)
    }    new id
    id 
= Data[0]
    
    if
(SQL_NumResults(Query) < 1) 
    
{
        //.if there are no results found
        
        new szSteamId
[32]
        get_user_authid(id, szSteamId, charsmax(szSteamId)) // get user's steamid
        
        
//  if its still pending we can't do anything with it
        if (equal(szSteamId,"ID_PENDING"))
            return PLUGIN_HANDLED

                    new szTemp

[512]
        
        
// now we will insturt the values into our table.
        format(szTemp,charsmax(szTemp),"INSERT INTO `money_save` ( `steamid` , `money`)VALUES ('%s','0');",szSteamId)
        SQL_ThreadQuery(g_SqlTuple,"IgnoreHandle",szTemp)
    } 
    else
    
{
        cs_set_user_money ( id, SQL_ReadResult(Query, 1) )                
    
}
    
    return PLUGIN_HANDLED
}public Save_MySql(id)
{
    new szSteamId[32], szTemp[512]
    get_user_authid(id, szSteamId, charsmax(szSteamId))
    
    
// Here we will update the user hes information in the database where the steamid matches.
    format(szTemp,charsmax(szTemp),"UPDATE `money_save` SET `money` = '%i' WHERE `money_save`.`steamid` = '%s';",cs_get_user_money(id), szSteamId)
    SQL_ThreadQuery(g_SqlTuple,"IgnoreHandle",szTemp)
}
public IgnoreHandle(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
{
    SQL_FreeHandle(Query)
    
    return PLUGIN_HANDLED
}public client_putinserver(id)
{
    Load_MySql(id)
}
public client_disconnect(id)
{
    Save_MySql(id)
}

Последний раз редактировалось liFe iS GoOD 12 авг 2016, 01:05, всего редактировалось 1 раз.

Причина: Для отладочной информации используется тег [code]

Аватара пользователя

Dirijer

 
Сообщения: 42
Зарегистрирован: 21 окт 2014, 21:23
Благодарил (а): 13 раз.
Поблагодарили: 1 раз.
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Team Fortress II
Left 4 Dead

  • Ответить с цитатой

Re: Run time error 10: native error (native «SQL_ThreadQuery

Сообщение Mistrick » 11 авг 2016, 23:09

Игрок подключается в промежуток пока не произошла инициализация mysql.

Аватара пользователя

Mistrick

Скриптер
 
Сообщения: 2937
Зарегистрирован: 04 ноя 2012, 18:15
Благодарил (а): 43 раз.
Поблагодарили: 1239 раз.
Языки программирования: PAWN
С/С++(few above zero)


  • Ответить с цитатой

Re: Run time error 10: native error (native «SQL_ThreadQuery

Сообщение Dirijer » 11 авг 2016, 23:53

Mistrick писал(а):Игрок подключается в промежуток пока не произошла инициализация mysql.

Если сделаю set_task ( 0.01… Будет плохо?

Добавлено спустя 33 минуты 17 секунд:
Сделал set_task ( 0.01 и криво работать начало, то захожу деньги не даёт, то не сохраняет, подскажите как сделать инициализацию mysql нормально

Добавлено спустя 7 минут 12 секунд:
/del я тугой

Аватара пользователя

Dirijer

 
Сообщения: 42
Зарегистрирован: 21 окт 2014, 21:23
Благодарил (а): 13 раз.
Поблагодарили: 1 раз.
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Team Fortress II
Left 4 Dead

  • Ответить с цитатой

Re: Run time error 10: native error (native «SQL_ThreadQuery

Сообщение L4D2 » 11 авг 2016, 23:56

все там верно, зачем менять ?

Dirijer,
Ты хоть напиши, что исправил. А то у других потом вопросы вот так вот возникнут.

Аватара пользователя

L4D2

 
Сообщения: 792
Зарегистрирован: 25 июн 2011, 19:26
Благодарил (а): 240 раз.
Поблагодарили: 100 раз.
Языки программирования: Counter-Strike 1.6

  • Ответить с цитатой

Re: Run time error 10: native error (native «SQL_ThreadQuery

Сообщение Dirijer » 12 авг 2016, 00:00

L4D2 писал(а):

все там верно, зачем менять ?

Dirijer,
Ты хоть напиши, что исправил. А то у других потом вопросы вот так вот возникнут.

Неа, проблема осталась :(

Аватара пользователя

Dirijer

 
Сообщения: 42
Зарегистрирован: 21 окт 2014, 21:23
Благодарил (а): 13 раз.
Поблагодарили: 1 раз.
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Team Fortress II
Left 4 Dead

  • Ответить с цитатой

Re: Run time error 10: native error (native «SQL_ThreadQuery

Сообщение L4D2 » 12 авг 2016, 00:21

Dirijer,
пробуй,

Код: Выделить всё
#include <amxmodx>
#include <fakemeta>
#include <cstrike>
#include <sqlx>

#define PLUGIN "Save Money SQL"
#define VERSION "1.0"
#define AUTHOR "Grim"

// Ur Mysql Information

new Host[]     = ""
new User[]    = ""
new Pass[]     = ""
new Db[]     = ""new Handle:g_SqlTuple
new g_Error
[512]
new giMaxPlayers
new query
[512]public plugin_init() 
{
    register_plugin(PLUGIN, VERSION, AUTHOR)    register_event("HLTV", "EventNewRound", "a", "1=0", "2=0")
    
    set_task
(1.0, "MySql_Init") // set a task to activate the mysql_init
    giMaxPlayers = get_maxplayers()
}
public EventNewRound() 
{
    new iPlayers[32], iPlayersNum, iPlayer

        get_players

( iPlayers, iPlayersNum, "h" )    // skip HLTV
    for ( new i; i < giMaxPlayers; i++ ) 
    
{
        iPlayer = iPlayers[i]
        const m_boolsKilled = 222
        const m_bNotReceivingMoneyNextRound 
= (1<<16)
        set_pdata_int( iPlayer, m_boolsKilled, m_boolsKilled | m_bNotReceivingMoneyNextRound )
    }
}
public MySql_Init()
{
    // we tell the API that this is the information we want to connect to,
    // just not yet. basically it's like storing it in global variables
    g_SqlTuple = SQL_MakeDbTuple(Host, User, Pass, Db)
   
    
// ok, we're ready to connect
    new ErrorCode,Handle:SqlConnection = SQL_Connect(g_SqlTuple,ErrorCode,g_Error,charsmax(g_Error))
    if(SqlConnection == Empty_Handle)
        // stop the plugin with an error message
        set_fail_state(g_Error)
       
    new Handle
:Queries
    
// we must now prepare some random queries
    Queries = SQL_PrepareQuery(SqlConnection,"CREATE TABLE IF NOT EXISTS money_save (steamid varchar(32),money INT(11))")    if(!SQL_Execute(Queries))
    {
        // if there were any problems
        SQL_QueryError(Queries,g_Error,charsmax(g_Error))
        set_fail_state(g_Error)
       
    
}
    
    SQL_ThreadQuery
(g_SqlTuple, "register_client", query)
}
public plugin_end()
{
    // free the tuple - note that this does not close the connection,
    // since it wasn't connected in the first place
    SQL_FreeHandle(g_SqlTuple)
}
public Load_MySql(id)
{
    new szSteamId[32], szTemp[512]
    get_user_authid(id, szSteamId, charsmax(szSteamId))
    
    new Data
[1]
    Data[0] = id//we will now select from the table `money_save` where the steamid match
    format(szTemp,charsmax(szTemp),"SELECT * FROM `money_save` WHERE (`money_save`.`steamid` = '%s')", szSteamId)
    SQL_ThreadQuery(g_SqlTuple,"register_client",szTemp,Data,1)
}
public register_client(FailState,Handle:Query,Error[],Errcode,Data[],DataSize) {
    if(FailState == TQUERY_CONNECT_FAILED)
        log_amx("Load - Could not connect to SQL database.  [%d] %s", Errcode, Error)
    else if(FailState == TQUERY_QUERY_FAILED)
        log_amx("Load Query failed. [%d] %s", Errcode, Error)    new id
    id 
= Data[0]
    
    if
(SQL_NumResults(Query) < 1) 
    
{
        //.if there are no results found
        
        new szSteamId
[32]
        get_user_authid(id, szSteamId, charsmax(szSteamId)) // get user's steamid
        
        
//  if its still pending we can't do anything with it
        if (equal(szSteamId,"ID_PENDING"))
            return PLUGIN_HANDLED

                    new szTemp

[512]
        
        
// now we will insturt the values into our table.
        format(szTemp,charsmax(szTemp),"INSERT INTO `money_save` ( `steamid` , `money`)VALUES ('%s','0');",szSteamId)
        SQL_ThreadQuery(g_SqlTuple,"IgnoreHandle",szTemp)
    } 
    else
    
{
        cs_set_user_money ( id, SQL_ReadResult(Query, 1) )                
    
}
    
    return PLUGIN_HANDLED
}public Save_MySql(id)
{
    new szSteamId[32], szTemp[512]
    get_user_authid(id, szSteamId, charsmax(szSteamId))
    
    
// Here we will update the user hes information in the database where the steamid matches.
    format(szTemp,charsmax(szTemp),"UPDATE `money_save` SET `money` = '%i' WHERE `money_save`.`steamid` = '%s';",cs_get_user_money(id), szSteamId)
    SQL_ThreadQuery(g_SqlTuple,"IgnoreHandle",szTemp)
}
public IgnoreHandle(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
{
    SQL_FreeHandle(Query)
    
    return PLUGIN_HANDLED
}public client_putinserver(id)
{
    Load_MySql(id)
}
public client_disconnect(id)
{
    Save_MySql(id)
}

Не даю гарантию.

Аватара пользователя

L4D2

 
Сообщения: 792
Зарегистрирован: 25 июн 2011, 19:26
Благодарил (а): 240 раз.
Поблагодарили: 100 раз.
Языки программирования: Counter-Strike 1.6

  • Ответить с цитатой

Re: Run time error 10: native error (native «SQL_ThreadQuery

Сообщение Dirijer » 12 авг 2016, 00:38

L4D2 писал(а):Dirijer,
пробуй,

Код: Выделить всё
#include <amxmodx>
#include <fakemeta>
#include <cstrike>
#include <sqlx>

#define PLUGIN "Save Money SQL"
#define VERSION "1.0"
#define AUTHOR "Grim"

// Ur Mysql Information

new Host[]     = ""
new User[]    = ""
new Pass[]     = ""
new Db[]     = ""new Handle:g_SqlTuple
new g_Error
[512]
new giMaxPlayers
new query
[512]public plugin_init() 
{
    register_plugin(PLUGIN, VERSION, AUTHOR)    register_event("HLTV", "EventNewRound", "a", "1=0", "2=0")
    
    set_task
(1.0, "MySql_Init") // set a task to activate the mysql_init
    giMaxPlayers = get_maxplayers()
}
public EventNewRound() 
{
    new iPlayers[32], iPlayersNum, iPlayer

        get_players

( iPlayers, iPlayersNum, "h" )    // skip HLTV
    for ( new i; i < giMaxPlayers; i++ ) 
    
{
        iPlayer = iPlayers[i]
        const m_boolsKilled = 222
        const m_bNotReceivingMoneyNextRound 
= (1<<16)
        set_pdata_int( iPlayer, m_boolsKilled, m_boolsKilled | m_bNotReceivingMoneyNextRound )
    }
}
public MySql_Init()
{
    // we tell the API that this is the information we want to connect to,
    // just not yet. basically it's like storing it in global variables
    g_SqlTuple = SQL_MakeDbTuple(Host, User, Pass, Db)
   
    
// ok, we're ready to connect
    new ErrorCode,Handle:SqlConnection = SQL_Connect(g_SqlTuple,ErrorCode,g_Error,charsmax(g_Error))
    if(SqlConnection == Empty_Handle)
        // stop the plugin with an error message
        set_fail_state(g_Error)
       
    new Handle
:Queries
    
// we must now prepare some random queries
    Queries = SQL_PrepareQuery(SqlConnection,"CREATE TABLE IF NOT EXISTS money_save (steamid varchar(32),money INT(11))")    if(!SQL_Execute(Queries))
    {
        // if there were any problems
        SQL_QueryError(Queries,g_Error,charsmax(g_Error))
        set_fail_state(g_Error)
       
    
}
    
    SQL_ThreadQuery
(g_SqlTuple, "register_client", query)
}
public plugin_end()
{
    // free the tuple - note that this does not close the connection,
    // since it wasn't connected in the first place
    SQL_FreeHandle(g_SqlTuple)
}
public Load_MySql(id)
{
    new szSteamId[32], szTemp[512]
    get_user_authid(id, szSteamId, charsmax(szSteamId))
    
    new Data
[1]
    Data[0] = id//we will now select from the table `money_save` where the steamid match
    format(szTemp,charsmax(szTemp),"SELECT * FROM `money_save` WHERE (`money_save`.`steamid` = '%s')", szSteamId)
    SQL_ThreadQuery(g_SqlTuple,"register_client",szTemp,Data,1)
}
public register_client(FailState,Handle:Query,Error[],Errcode,Data[],DataSize) {
    if(FailState == TQUERY_CONNECT_FAILED)
        log_amx("Load - Could not connect to SQL database.  [%d] %s", Errcode, Error)
    else if(FailState == TQUERY_QUERY_FAILED)
        log_amx("Load Query failed. [%d] %s", Errcode, Error)    new id
    id 
= Data[0]
    
    if
(SQL_NumResults(Query) < 1) 
    
{
        //.if there are no results found
        
        new szSteamId
[32]
        get_user_authid(id, szSteamId, charsmax(szSteamId)) // get user's steamid
        
        
//  if its still pending we can't do anything with it
        if (equal(szSteamId,"ID_PENDING"))
            return PLUGIN_HANDLED

                    new szTemp

[512]
        
        
// now we will insturt the values into our table.
        format(szTemp,charsmax(szTemp),"INSERT INTO `money_save` ( `steamid` , `money`)VALUES ('%s','0');",szSteamId)
        SQL_ThreadQuery(g_SqlTuple,"IgnoreHandle",szTemp)
    } 
    else
    
{
        cs_set_user_money ( id, SQL_ReadResult(Query, 1) )                
    
}
    
    return PLUGIN_HANDLED
}public Save_MySql(id)
{
    new szSteamId[32], szTemp[512]
    get_user_authid(id, szSteamId, charsmax(szSteamId))
    
    
// Here we will update the user hes information in the database where the steamid matches.
    format(szTemp,charsmax(szTemp),"UPDATE `money_save` SET `money` = '%i' WHERE `money_save`.`steamid` = '%s';",cs_get_user_money(id), szSteamId)
    SQL_ThreadQuery(g_SqlTuple,"IgnoreHandle",szTemp)
}
public IgnoreHandle(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
{
    SQL_FreeHandle(Query)
    
    return PLUGIN_HANDLED
}public client_putinserver(id)
{
    Load_MySql(id)
}
public client_disconnect(id)
{
    Save_MySql(id)
}

Не даю гарантию.

А что ты изменил?

Добавлено спустя 11 минут 36 секунд:
Работает. Но на сервере когда нет людей быстро всё прогружает, когда есть люди, очень с запазданием выдаёт деньги, а потом может забрать =/

Аватара пользователя

Dirijer

 
Сообщения: 42
Зарегистрирован: 21 окт 2014, 21:23
Благодарил (а): 13 раз.
Поблагодарили: 1 раз.
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Team Fortress II
Left 4 Dead


  • Ответить с цитатой

Re: Run time error 10: native error (native «SQL_ThreadQuery

Сообщение Dirijer » 12 авг 2016, 00:43

Так при коннекте игрока выдаются деньги

Аватара пользователя

Dirijer

 
Сообщения: 42
Зарегистрирован: 21 окт 2014, 21:23
Благодарил (а): 13 раз.
Поблагодарили: 1 раз.
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Team Fortress II
Left 4 Dead


Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot], Google [Bot] и гости: 1

azrael

Newbie
Newbie
Posts: 3
Joined: Sun Dec 12, 2010 9:46 am

Возникла необходимость поработать с бд. созданной в одной из старых версий Mars Notebook, при попытке открыть ее новой версией выскочила такая ошибка Table ‘attach’ not exists. — Native error: 30396. База — не открывается. Возможно ли както восстановить данные?

User avatar

Marsianin

Administrator
Administrator
Posts: 1655
Joined: Tue Jan 25, 2005 3:02 am
Location: Red Planet
Contact:

Unread post

Mon Dec 13, 2010 12:40 am

Данные в этом случае не затронуты. В той базе нет присоединений.
Какая версия Mars Notebook это выдаёт? Какая версия Notebook.exe файла (должна быть 2.0.0.3)?

Is there any life on Mars ?

azrael

Newbie
Newbie
Posts: 3
Joined: Sun Dec 12, 2010 9:46 am

Unread post

Mon Dec 13, 2010 8:27 am

Да, именно эта версия файла — 2.0.0.3. Версия Mars Notebook — 2.0

User avatar

Marsianin

Administrator
Administrator
Posts: 1655
Joined: Tue Jan 25, 2005 3:02 am
Location: Red Planet
Contact:

Unread post

Mon Dec 13, 2010 1:18 pm

Если есть возможность прислать базу, то выложите на rapidshare/letitbit/hotfile. Ссылку в ПМ. Я разберусь.

Is there any life on Mars ?

azrael

Newbie
Newbie
Posts: 3
Joined: Sun Dec 12, 2010 9:46 am

Unread post

Sat Dec 18, 2010 7:33 pm

К сожалению такой возможности нет, ввиду конфиденциальности информации… Возможно ли как-то без этого?

User avatar

Marsianin

Administrator
Administrator
Posts: 1655
Joined: Tue Jan 25, 2005 3:02 am
Location: Red Planet
Contact:

Unread post

Sat Dec 18, 2010 8:25 pm

Попробуйте запустить Notebook.exe /repair database.mnb

Is there any life on Mars ?

Я новичок в изучении Java. Пытаюсь запустить «hello world!» Пример того, что я запускаю ниже.

class hello {

	public static void main(String args[]) {

		System.out.println("Hello, world!");

	}

}

Javac компилирует, но созданный класс не интрепретируется. Выдается следующая ошибка:

***:~/Documents/JavaSampl$ javac hello.java
***:~/Documents/JavaSampl$ java hello
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: hello has been compiled by a more recent version of the Java Runtime (class file version 54.0), this version of the Java Runtime only recognizes class file versions up to 53.0
	at java.lang.ClassLoader.defineClass1(java.base@9-internal/Native Method)
	at java.lang.ClassLoader.defineClass(java.base@9-internal/ClassLoader.java:939)
	at java.security.SecureClassLoader.defineClass(java.base@9-internal/SecureClassLoader.java:152)
	at jdk.internal.loader.BuiltinClassLoader.defineClass(java.base@9-internal/BuiltinClassLoader.java:553)
	at jdk.internal.loader.BuiltinClassLoader.access$200(java.base@9-internal/BuiltinClassLoader.java:88)
	at jdk.internal.loader.BuiltinClassLoader$3.run(java.base@9-internal/BuiltinClassLoader.java:466)
	at jdk.internal.loader.BuiltinClassLoader$3.run(java.base@9-internal/BuiltinClassLoader.java:460)
	at java.security.AccessController.doPrivileged(java.base@9-internal/Native Method)
	at jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(java.base@9-internal/BuiltinClassLoader.java:459)
	at jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(java.base@9-internal/BuiltinClassLoader.java:406)
	at jdk.internal.loader.BuiltinClassLoader.loadClass(java.base@9-internal/BuiltinClassLoader.java:364)
	at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(java.base@9-internal/ClassLoaders.java:184)
	at java.lang.ClassLoader.loadClass(java.base@9-internal/ClassLoader.java:419)
	at sun.launcher.LauncherHelper.loadMainClass(java.base@9-internal/LauncherHelper.java:585)
	at sun.launcher.LauncherHelper.checkAndLoadMain(java.base@9-internal/LauncherHelper.java:497)

Подскажите как это решить. Заранее спасибо!

#include <amxmodx>
#include <amxmisc>
#include <sqlx>

#define PLUGIN "Bank"
#define VERSION "1.0"
#define AUTHOR "theHex"

new Handle:MYSQL_Tuple;
new Handle:MYSQL_Connect;

new g_Cvar[5];

new g_ActiveMysql;
new szPlayerData[33];
new szPlayerMysql[33];

new UMoney[32];

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

    g_Cvar[1] = register_cvar("amx_mysql_hostname", "localhost")
    g_Cvar[2] = register_cvar("amx_mysql_username", "u926009sipp")
    g_Cvar[3] = register_cvar("amx_mysql_password", "censored")
    g_Cvar[4] = register_cvar("amx_mysql_database", "db926009")
    register_menucmd(register_menuid("Bank_Send"), (1<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<6|1<<7|1<<8|1<<9), "Handle_Bank_Send");
    register_clcmd("say /bank", "Bank_Send")
    set_task(1.0, "MYSQL_Load")
    
}

native jbe_get_user_money(pPlayer);
native jbe_set_user_money(pPlayer, iNum, iFlash);
native jbe_informer_offset_up(pPlayer);
native jbe_informer_offset_down(pPlayer);

public MYSQL_Load()   
{
    new szHostname[30], szUsername[30], szPassword[30], szDatabase[30]
    new szError[512], szErr

    get_pcvar_string(g_Cvar[1], szHostname, charsmax( szHostname ))
    get_pcvar_string(g_Cvar[2], szUsername, charsmax( szUsername ))
    get_pcvar_string(g_Cvar[3], szPassword, charsmax( szPassword ))
    get_pcvar_string(g_Cvar[4], szDatabase, charsmax( szDatabase ))

    MYSQL_Tuple = SQL_MakeDbTuple(szHostname, szUsername, szPassword, szDatabase)
    MYSQL_Connect = SQL_Connect(MYSQL_Tuple, szErr, szError, charsmax( szError ))

    if(MYSQL_Connect == Empty_Handle)
        set_fail_state( szError )

    g_ActiveMysql = true
}

public client_connect(id)
{
    if(!is_user_bot(id) || !is_user_hltv(id))
    {
        set_task(1.0, "CheckPlayer", id)
    }
}

public CheckPlayer(id)
{
    if(!g_ActiveMysql)
    {
        set_task(1.0, "CheckPlayer", id)
    }

    new szError[512]
    new szName[32], szMYSQLName[32]
    new Handle:szSelect = SQL_PrepareQuery(MYSQL_Connect, "SELECT * FROM jbe_bank")
    
    if(!SQL_Execute(szSelect))
    {
        SQL_QueryError(szSelect, szError, charsmax( szError ))
        set_fail_state( szError )
    }

    get_user_name(id, szName, charsmax( szName ))

    while(SQL_MoreResults(szSelect))
    {
        SQL_ReadResult(szSelect, 1, szMYSQLName, charsmax( szMYSQLName ))
    
        if(equal(szMYSQLName, szName))
        {
            szPlayerData[id] = SQL_ReadResult(szSelect, 2)
            szPlayerMysql[id] = true

            break
        }else{
            SQL_NextRow(szSelect)
        }
    }   

    if(!szPlayerMysql[id])
    {
        new Handle:szInsert
        szInsert = SQL_PrepareQuery(MYSQL_Connect, "INSERT INTO `jbe_bank` (`name`, `data`) VALUES  ('%s', '0');", szName) //Отправляем в базу его ник

        if(!SQL_Execute(szInsert))
        {
            SQL_QueryError(szInsert, szError, charsmax( szError ))
            set_fail_state( szError )
        }
        szPlayerMysql[id] = true
    }
}


Bank_Send(id)
{
    jbe_informer_offset_up(id);
    new szMenu[512], iKeys = (1<<1|1<<2|1<<3|1<<4|1<<5|1<<9),
    iLen = formatex(szMenu, charsmax(szMenu), "yБанк^n^ndВаш баланс: %d", szPlayerData[id]);
    
    if(jbe_get_user_money(id) >= 100){
    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "y[1] wПоложить y$100^n");
    iKeys |= (1<<0);
    }
    else{
    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "y[1] dПоложить r$100^n");
    }

    if(jbe_get_user_money(id) >= 200){
    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "y[2] wПоложить $200^n");
    iKeys |= (1<<1);
    }
    else{
    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "y[2] dПоложить r$200^n");
    }
    
    if(jbe_get_user_money(id) >= 500){
    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "y[3] wПоложить $500^n");
    iKeys |= (1<<2);
    }
    else{
    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "y[3] dПоложить r$500^n");
    }
    
    if(jbe_get_user_money(id) >= 1000){
    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "y[4] wПоложить $1000^n");
    iKeys |= (1<<3);
    }
    else{
    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "y[4] dПоложить r$1000^n");
    }
    
    if(jbe_get_user_money(id) >= 5000){
    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "y[5] wПоложить $5000^n");
    iKeys |= (1<<4);
    }
    else{
    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "y[5] dПоложить r$5000^n");
    }
    
    if(jbe_get_user_money(id) >= 100){
    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "y[6] wПоложить все^n^n^n");
    iKeys |= (1<<5);
    }
    else{
    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "y[6] dПоложить все^n^n^n");
    }
    formatex(szMenu[iLen], charsmax(szMenu) - iLen, "^ny[0] wВыход^n^ndby theHex");
    return show_menu(id, iKeys, szMenu, -1, "Bank_Send");
}

public Handle_Bank_Send(id, iKey)
{
    UMoney[id] = jbe_get_user_money(id);
    switch(iKey)
    {
        case 0: if(UMoney[id] >= 100) {
        jbe_set_user_money(id, UMoney[id] - 100, 1);
        szPlayerData[id] += 100;
        }
        case 1: if(UMoney[id] >= 200) {
        jbe_set_user_money(id, UMoney[id] - 200, 1);
        szPlayerData[id] += 200;
        }
        case 2: if(UMoney[id] >= 500) {
        jbe_set_user_money(id, UMoney[id] - 500, 1);
        szPlayerData[id] += 500;
        }
        case 3: if(UMoney[id] >= 1000) {
        jbe_set_user_money(id, UMoney[id] - 1000, 1);
        szPlayerData[id] += 1000;
        }
        case 4: if(UMoney[id] >= 5000) {
        jbe_set_user_money(id, UMoney[id] - 5000, 1);
        szPlayerData[id] += 5000;
        }
        case 5: if(UMoney[id] >= 100) {
        szPlayerData[id] += UMoney[id];
        jbe_set_user_money(id, 0, 1);
        }
        case 9: {
        jbe_informer_offset_down(id);
        return PLUGIN_HANDLED;
        }
    }
    return Bank_Send(id);
}

public client_disconnect(id)
{
    new szError[512]
    new szName[32]
    new Handle:szUpdate

    get_user_name(id, szName, charsmax( szName ))

    szUpdate = SQL_PrepareQuery(MYSQL_Connect, "UPDATE `jbe_bank` SET `data` = '%i' WHERE `jbe_bank`.`name` = '%s';", szPlayerData[id], szName)

    if(!SQL_Execute(szUpdate))
    {
        SQL_QueryError(szUpdate, szError, charsmax( szError ))
        set_fail_state( szError )
    }
}

Понравилась статья? Поделить с друзьями:
  • Nat 3 ps4 как изменить tp link
  • Napoleon total war как изменить религию
  • Nastran fatal error
  • Nanocad неустранимая ошибка программа не может продолжить работу
  • Nanocad неизвестная ошибка