03:45
ОбновитьСмайлыУправление мини-чатом
МИНИ-ЧАТ
Главная страница!

 



 
          





Рекомендуем:





Последние Файлы GTA 4 Последние Файлы GTA-MP Реклама
Скрипт GTA 4 элементы Watch... 07.09.2014
Ferrari 360 Spider [EPM con... 13.12.2013
Porsche Cayenne Turbo 2012 ... 13.12.2013
Shelby Terlingua Mustang v1... 13.12.2013
Hamann Lamborghini Gallardo... 27.10.2013
[GM] The Big PEN1:LS v2.00 ... 04.12.2017
Dgun (AvnanceRP,SampRP,Dimo... 19.03.2016
SAMP скрипт SX Events (MySQ... 03.03.2016
Карта ASL мэрия для SAMP се... 03.03.2016
AIM для SA-MP 0.3.7 22.02.2016
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: AXE, Weddew  
Мозговыносящая проблема. Перевел сервер на mysql и началось.
КрендельДата: Пятница, 28.10.2011, 15:47 | Сообщение # 1
Уверенный в себе
Группа: Продвинутые
Сообщений: 216
Награды: 0
Город: :дороГ
Репутация: -8
Замечания: 20%
Статус:
Суть проблемы:
Перевел сервак на мускул. Все норм. Регает, логинит без тормозов, все быстро.
Но возникла оооочень странная проблема. Представим я залогинился и появился возле отеля. Я могу писать в чат и спокойно общаться с народом НЕ ДВИГАЯСЬ!! Но стоит мне походить или побегать например 10 секунд и после этого попытаться написать что-либо в чат, то сообщение попадает в чат ровно через то кол-во времени сколько я был в движении!!..буду я например минуту бегать, то и сообщение будет минуту в чат "ползти". Я сам в шоке от этой лабуды.
Вернув старую систему регистрации все стало работать нормально. бд и сервер на одном хосте. хост ru-hoster.
Помогите пожалуйста! ))



生き死に
IInkvizitorДата: Пятница, 28.10.2011, 16:14 | Сообщение # 2
Советчик
Группа: I'm V.I.P.
Сообщений: 1177
Награды: 7
Город: Санкт-Петербург
Репутация: 493
Замечания: 0%
Статус:
Хотя бы указал бы какой плагин и какая версия сервера....
PraДата: Пятница, 28.10.2011, 16:30 | Сообщение # 3
Уверенный в себе
Группа: Продвинутые
Сообщений: 216
Награды: 9
Город: Северная Столица
Репутация: 211
Замечания: 100%
Статус:
Крендель, по моему чушь, вряд ли это связано с базой данных, так как при написание в чат никаких запросов не происходит!
А то что задержка в отправке сообщения зависит от времени которое игрок находился движении, во обще идиотизм какой то.
То есть, ты хочешь сказать, что стоя на месте час, задержек не будет, а если чуть чуть подвигаться они начнуться?

КрендельДата: Пятница, 28.10.2011, 16:35 | Сообщение # 4
Уверенный в себе
Группа: Продвинутые
Сообщений: 216
Награды: 0
Город: :дороГ
Репутация: -8
Замечания: 20%
Статус:
Quote (Pra)
Хотя бы указал бы какой плагин и какая версия сервера....

gf + MySQL_Register_System_v2.1
Quote (Pra)
Крендель, по моему чушь, вряд ли это связано с базой данных, так как при написание в чат никаких запросов не происходит! А то что задержка в отправке сообщения зависит от времени которое игрок находился движении, во обще идиотизм какой то. То есть, ты хочешь сказать, что стоя на месте час, задержек не будет, а если чуть чуть подвигаться они начнуться?

нет. я хочу сказать что если не двигаться задержек нет, а если побегать например 10 секунд, то после этого сообщение будет отправляться с задержкой в эти самые 10 секунд...я говорю я сам в шоке от этой хни...самому кажется что это нереально, но факты есть факты...



生き死に
DANGER1979Дата: Пятница, 28.10.2011, 16:56 | Сообщение # 5
Постоялец
Группа: I'm V.I.P.
Сообщений: 365
Награды: 5
Город: Гродно
Репутация: 557
Замечания: 0%
Статус:
Попробуй плюнуть в чат цыклом 20 строк в каждой по 120 символов

и не двигайся

Быстро в чате отобразиться или с задержкой в 3-5 секунд?




[UCP] Статистика сервера (MySQL)
GTA:SA VirtualWorld Server - LifeSimulator
[Продажа][GM] VirtualWorld v3.0.219
[FS] VW_SystemOfNeed - Система потребностей
[FS] VW_SystemOfBuying - Система покупки авто
[FS] VW_Speedometer - с системой расхода топлива и учёта пробега
[FS] VW_CargoShip - Грузовое судно


Сообщение отредактировал DANGER1979 - Пятница, 28.10.2011, 16:57
AlcoholikДата: Пятница, 28.10.2011, 19:54 | Сообщение # 6
Мастер джэдай
Группа: Администратор
Сообщений: 8299
Награды: 111
Город: Санкт-Петербург
Репутация: 6085
Статус:
Поищи левые запросы.
Quote
public OnPlayerUpdate(playerid){
new Float: x, Float:y, Float:z;
GetPlayerVelocity(playerid,x,y,z);
if(x==0 && y==0 && z==0) {}
else mysql_query("Update xyu set x=%f,y=%f,z=%f where id=%d",x,y,z,playerid);
}

Код возможно херня, не работал с GetPlayerVelocity, на формат тоже забил



if(isset($beer)&&isset($girl)) { drink($beer);fuck($girl); }else die();
Мониторинг sa:mp серверов


Приватно никого не консультирую, моды также не пишу, ни так, ни за деньги.
Моя ICQ 675715, пишу только с неё. Все остальные Роачи фейки, ничего я не продаю и продавать не буду, вас разводят.
КрендельДата: Суббота, 29.10.2011, 09:40 | Сообщение # 7
Уверенный в себе
Группа: Продвинутые
Сообщений: 216
Награды: 0
Город: :дороГ
Репутация: -8
Замечания: 20%
Статус:
Quote (RoACh)
GetPlayerVelocity

Все чисто нигде нет ничего лишнего. GetPlayerVelocity не используется.

Выяснил еще одну вешь:
в общем в коде OnPlayerUpdate добавил строчку
Code
public OnPlayerUpdate(playerid)
{
SendClientMessage(playerid, COLOR_LIGHTRED, "апдейт");
.........

чтобы было понятно когда обновление происходит...
в игру залогинился и увидел что идет постоянное обновление аккаунта...примерно 2 раза в секунду, начал двигаться, кол-во обновлений увеличилось где-то до 5 обновлений в секунду...побежал еще большее кол-во...
OnPlayerUpdate используется в следующих местах:
1. OnPlayerDisconnect
2. GameModeInitExitFunc
3. SaveAccounts
4. несколько команд..

что за глюк такой..он меня аж вымораживает ппц bad



生き死に

Сообщение отредактировал Крендель - Суббота, 29.10.2011, 09:54
ZiGGiДата: Суббота, 29.10.2011, 10:39 | Сообщение # 8
Мастер джэдай
Группа: Продвинутые
Сообщений: 2652
Награды: 34
Город: St. Petersburg
Репутация: 2102
Замечания: 20%
Статус:
Крендель, покажи весь OnPlayerUpdate. Я уверен, что как и в большинстве гф модов, там находится функция сохранения аккаунта.


Бложе
[indent]Мой блог
Уроки по Pawn
[/indent]

Open-GTO
[indent]Блог разработчиков
GitHub: https://github.com/Open-GTO/Open-GTO
Сборки мода с сервером тут
[/indent]
PraДата: Суббота, 29.10.2011, 13:23 | Сообщение # 9
Уверенный в себе
Группа: Продвинутые
Сообщений: 216
Награды: 9
Город: Северная Столица
Репутация: 211
Замечания: 100%
Статус:
омг, OnPlayerUpdate - это калбэк, вызывающийся в зависимости от частоты обновлений состояний твоего персонажа, стоя на месте обновление происходит 1-2 в секунду, а то и во обще пару секунд не происходит, двигаясь - этот паблик вызывается более 30 раз в секунду...
Поэтому если там у тебя есть запросы, к базе данных, то все ясно.
Quote (Крендель)
1. OnPlayerDisconnect 2. GameModeInitExitFunc 3. SaveAccounts 4. несколько команд..

Смысла его вызывать вообще не виже.

Во общем убирай из апдейта все запросы.

КрендельДата: Суббота, 29.10.2011, 14:32 | Сообщение # 10
Уверенный в себе
Группа: Продвинутые
Сообщений: 216
Награды: 0
Город: :дороГ
Репутация: -8
Замечания: 20%
Статус:
Нашел причину.
Во всем виновато количество отправляемых запросов к бд типа
Code
format(string, sizeof(string), "UPDATE `table_players` SET `Level` = '%d' WHERE `name` = '%s'", PlayerInfo[playerid][pLevel], playername3); mysql_query(string);

их у меня около 30 штук.
в итоге получается что каждую секунду сервер отправляет 30 - nn запросов. уменьшив кол-во строк с запросами вдвое, задержки прекратились.
Ну и возник вопрос: можно ли как либо все запросы объеденить в один? т.е. чтобы поолучилось что-то типа такого UPDATE
Code
`table_players` SET `Level` = '%d' SET `AdminLevel` = '%d' SET `DonateRank` = '%d' WHERE `name` = '%s'

Добавлено (29.10.2011, 14:32)
---------------------------------------------

Quote (Pra)
Во общем убирай из апдейта все запросы.

дык если их убрать оттуда тогда как инфо об аккаунте будет обновлятся?? или же запросы можно где-то в другом месте поместить?



生き死に
IInkvizitorДата: Суббота, 29.10.2011, 14:52 | Сообщение # 11
Советчик
Группа: I'm V.I.P.
Сообщений: 1177
Награды: 7
Город: Санкт-Петербург
Репутация: 493
Замечания: 0%
Статус:
Сохранять пользователя при его выходе/вылете. Нефиг базу насиловать постоянно.
PraДата: Суббота, 29.10.2011, 16:34 | Сообщение # 12
Уверенный в себе
Группа: Продвинутые
Сообщений: 216
Награды: 9
Город: Северная Столица
Репутация: 211
Замечания: 100%
Статус:
Quote (IInkvizitor)
Сохранять пользователя при его выходе/вылете. Нефиг базу насиловать постоянно.

+1

В OnPlayerDisconnect'е обновляешь все значения, и все...

Quote (Крендель)
Ну и возник вопрос: можно ли как либо все запросы объеденить в один? т.е. чтобы поолучилось что-то типа такого UPDATE

UPDATE `таблица` SET (`поле1`,`поле2`...`поле10`) VALUES('зачение1','значение2'...'значение10')
Честно говоря не уверен в правильности данного запроса, но попробуй)
Ну или же используй AND
UPDATE `таблица`SET `поле` = 'зачение' AND `поле` = 'зачение' AND ... `поле` = 'зачение'



Сообщение отредактировал Pra - Суббота, 29.10.2011, 16:36
IInkvizitorДата: Суббота, 29.10.2011, 16:53 | Сообщение # 13
Советчик
Группа: I'm V.I.P.
Сообщений: 1177
Награды: 7
Город: Санкт-Петербург
Репутация: 493
Замечания: 0%
Статус:
Pra, забыл WHERE, твой запрос изменит все записи в таблице
Пример
Code

UPDATE 'users' SET email='penis@vagina' AND name='shit' WHERE nick='admin';

AlcoholikДата: Суббота, 29.10.2011, 16:59 | Сообщение # 14
Мастер джэдай
Группа: Администратор
Сообщений: 8299
Награды: 111
Город: Санкт-Петербург
Репутация: 6085
Статус:
Quote (IInkvizitor)
Сохранять пользователя при его выходе/вылете. Нефиг базу насиловать постоянно.

Это можно было бы делать, если бы самп был бы отлично устойчивым, либо хостер нормальный. Помню на pawn.su хостился, у меня сервер падал, не вызывая каллбека дисконнекта, что приводило к тому, что нихера не сохранялось. Суппорт говорил смотреть баги в моде) В общем получилось так, что падали все сервера, данные не только слетали, но и некоторые удалялись) Найдя последствия, я сделал багофикс, а на остальных серверах, которые были на pawn.su делал себе беспалевные админки) Сейчас у меня сервер стоит на машине, на которой стоит пара серверов самп, сайт и серв кс вроде, всё работает замечательно, но раз в 40 минут я отправляю запрос на сохранение всех аккаунтов онлайн игроков. Так надежнее. В апдейт ставить, конечно это жестоко) Вспомнил как дамп сайта импортировал в бд, дамп почти пустого форума ипб, импортнул, серв хостера лёг :D



if(isset($beer)&&isset($girl)) { drink($beer);fuck($girl); }else die();
Мониторинг sa:mp серверов


Приватно никого не консультирую, моды также не пишу, ни так, ни за деньги.
Моя ICQ 675715, пишу только с неё. Все остальные Роачи фейки, ничего я не продаю и продавать не буду, вас разводят.
IInkvizitorДата: Суббота, 29.10.2011, 17:01 | Сообщение # 15
Советчик
Группа: I'm V.I.P.
Сообщений: 1177
Награды: 7
Город: Санкт-Петербург
Репутация: 493
Замечания: 0%
Статус:
RoACh, тогда лучше сохранять акк вместе с пейдеем, чтобы не плодить таймеров.
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:





 


 


 
Хостинг от uCoz samp.at.ua