SA-MP Forums Archive
GangZone интересная проблема - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: GangZone интересная проблема (/showthread.php?tid=576459)



GangZone интересная проблема - kennydalglish - 04.06.2015

Приветствую всех!
Очень странная проблема, после рестарта не показывает зоны, но если пере зайти в игру их покажет...
PHP код:
    else if(strcmp(cmd"/gmx"true) == 0)
    {
        if(
PlayerInfo[playerid][pAdmin] >= 11)
        {
            for(new 
q10q++)
            {
                
SendClientMessage(playerid,COLOR_WHITE," ");
            }
            
SendClientMessageToAll(COLOR_YELLOW2,"{ffcc00}Обрати внимание! {1e90ff}В данный момент происходит рестарт сервера, это займет менее 8 секунд");
            
SendClientMessageToAll(COLOR_YELLOW2,"{00FF00}Администрация Ultra приносит извинения, за предоставленные неудобства.");
            
GameTextForAll("~r~SERVER RESTARTING"90005);
            
GameModeExitFunc();
        }
        return 
true;
    } 
PHP код:
stock GameModeExitFunc()
{
    
KillTimer(reklamatimer);
    
KillTimer(synctimer);
    
KillTimer(TT);
    
KillTimer(TUPDATET);
    
KillTimer(pickuptimer);
     
SaveGZ();
    
SaveCop();
    
OnPropUpdate();
    
SaveAccounts();
    
save_materials_frac();
    
save_bank_mafia();
    
save_bank_fractions();
    
SaveHomeSbizz();
    
GameModeExit();
    return 
true;

PHP код:
public OnGameModeExit()
{
    
DestroyPickup(EnterPick);
    
DestroyPickup(ExitPick);
    
DestroyPickup(HealPick);
    
DestroyPickup(InfoPick);
    
KillTimer(casetimer);
    
mysql_close(connect_to_sql);
    return 
1;

В OnGameModeInit:
PHP код:
    connect_to_sql mysql_connect(SQL_CONNECT_INFO);
    
mysql_log(LOG_ALL);
    
load_gang_zone();
    
load_bank_mafia();
    
load_bank_fractions();
    
load_materials_fraction(); 
PHP код:
stock load_gang_zone() return mysql_function_query(connect_to_sql"SELECT * FROM `"TABLE_GANG_ZONE_BAND"`"true"callback_load_gang_zone_band"""); 
PHP код:
forward callback_load_gang_zone_band();
public 
callback_load_gang_zone_band()
{
    new
        
rows,
        
fields,
        
time_load_gang_zone_band GetTickCount();
        
    
cache_get_data(rowsfields);
    if(!
rows) return print("[Загрузка ганг зон банд]: В базе данных не найдено записей!");
    else if(
rows != sizeof(GZInfo)) return printf("[Загрузка ганг зон банд]: Массив GZInfo(%d) не равен количеству записей в базе данных (%d)"sizeof(GZInfo), rows);
    for(new 
iterator_load_gz 0iterator_load_gz != rowsiterator_load_gz ++)
    {
        
GZInfo[iterator_load_gz][gCoords][0] = cache_get_field_content_float(iterator_load_gz"coordinates_west_side_gangzone");
        
GZInfo[iterator_load_gz][gCoords][1] = cache_get_field_content_float(iterator_load_gz"coordinates_south_side_gangzone");
        
GZInfo[iterator_load_gz][gCoords][2] = cache_get_field_content_float(iterator_load_gz"coordinates_east_side_gangzone");
        
GZInfo[iterator_load_gz][gCoords][3] = cache_get_field_content_float(iterator_load_gz "coordinates_north_side_gangzone");
        
GZInfo[iterator_load_gz][gFrakVlad] = cache_get_field_content_int(iterator_load_gz"id_band");
        
GZInfo[iterator_load_gz][gID] = GangZoneCreate(GZInfo[iterator_load_gz][gCoords][0],GZInfo[iterator_load_gz][gCoords][1],GZInfo[iterator_load_gz][gCoords][2],GZInfo[iterator_load_gz][gCoords][3]);
        
printf("GZInfo[iterator_load_gz][gID]: %d"GZInfo[iterator_load_gz][gID]);
    }
    return 
printf("[Загрузка ганг зон банд]: Успешная загрузка ганг зон  - загружено %d ганг зон за %d м.с"rowsGetTickCount() - time_load_gang_zone_band);
    

OnPlayerConnect:
PHP код:
     for(new 0sizeof_array_GZ_info sizeof(GZInfo); != sizeof_array_GZ_info++)
    {
        
printf("GangZoneShowForPlayer(%d, %d, %d)"playeridGZInfo[i][gID], GetGangZoneColor(GZInfo[i][gFrakVlad]));
        
GangZoneShowForPlayer(playeridGZInfo[i][gID], GetGangZoneColor(GZInfo[i][gFrakVlad]));
    } 
Логи:
PHP код:
[16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094)
[
16:44:36GangZoneShowForPlayer(00, -16843094
Но если пере зайти будет все окей, почему так?
Заранее спасибо!


Re: GangZone интересная проблема - Stepashka - 04.06.2015

Ну как вариант при рестарте люди подключаются быстрей чем зоны успевают подгрузиться и им просто нечего показывать.

Код:
for(new i = 0, sizeof_array_GZ_info = sizeof(GZInfo); i != sizeof_array_GZ_info; i ++)
Это не оптимизация, это бред! Не занимайтесь бредом, не засоряйте код!
Код:
for (new i = 0; i < sizeof(GZInfo); i++)



Re: GangZone интересная проблема - kennydalglish - 04.06.2015

Quote:
Originally Posted by Stepashka
Посмотреть сообщение
Ну как вариант при рестарте люди подключаются быстрей чем зоны успевают подгрузиться и им просто нечего показывать.

Код:
for(new i = 0, sizeof_array_GZ_info = sizeof(GZInfo); i != sizeof_array_GZ_info; i ++)
Это не оптимизация, это бред! Не занимайтесь бредом, не засоряйте код!
Код:
for (new i = 0; i < sizeof(GZInfo); i++)
И как данный вопрос решить?


Re: GangZone интересная проблема - stabker - 04.06.2015

Ну, например, у меня на серве устанавливается пароль, пока все загружается по цепочке. Когда все готово, пароль снимается и игроки могут заходить. Если конечно проблема действительно в этом.


Re: GangZone интересная проблема - kennydalglish - 04.06.2015

Quote:
Originally Posted by Stepashka
Посмотреть сообщение
Ну как вариант при рестарте люди подключаются быстрей чем зоны успевают подгрузиться и им просто нечего показывать.

Код:
for(new i = 0, sizeof_array_GZ_info = sizeof(GZInfo); i != sizeof_array_GZ_info; i ++)
Это не оптимизация, это бред! Не занимайтесь бредом, не засоряйте код!
Код:
for (new i = 0; i < sizeof(GZInfo); i++)
Quote:
Originally Posted by stabker
Посмотреть сообщение
Ну, например, у меня на серве устанавливается пароль, пока все загружается по цепочке. Когда все готово, пароль снимается и игроки могут заходить. Если конечно проблема действительно в этом.
Не вариант, по мне это глупости закрывать сервер из прогрузки, есть наверное более оптимальный вариант
Да и мне кажется не из этого, видь хоть 1 зона успела бы записаться в pid и она бы показалсь


Re: GangZone интересная проблема - cm666 - 04.06.2015

Quote:
Originally Posted by kennydalglish
Посмотреть сообщение
Не вариант, по мне это глупости закрывать сервер из прогрузки, есть наверное более оптимальный вариант
Да и мне кажется не из этого, видь хоть 1 зона успела бы записаться в pid и она бы показалсь
При спавне показ сделай. Если он первый раз спавнится.


Re: GangZone интересная проблема - kennydalglish - 04.06.2015

Quote:
Originally Posted by cm666
Посмотреть сообщение
При спавне показ сделай. Если он первый раз спавнится.
Для теста разве что, а так глупость по мне


Re: GangZone интересная проблема - kennydalglish - 04.06.2015

Проверил, в OnPlayerSpawn работает. Как дойду до переводу аккаунтов на SQL, вставлю в колэбек авторизации. Тему можно прикрыть.