Dreii | Дата: Вторник, 07 Февраля 2012, 22:03:32 | Сообщение # 1 |
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
| Code library saveraiting globals private gamecache Maincache = InitGameCache("Game_cache_slh") private gamecache Cync = InitGameCache("mycahe2") endglobals function AddInteger takes player p, string Key, integer i returns nothing if GetLocalPlayer() == p then call StoreInteger(Maincache,GetPlayerName(p) ,Key,i) endif call SaveGameCache(Maincache) endfunction function ReadInteger takes player p,string Key,integer nm returns nothing local string Player_name= GetPlayerName(p) if GetLocalPlayer() == p then call StoreInteger(Cync,Player_name,Key,GetStoredInteger(Maincache,Player_name,Key)) endif call TriggerSyncStart() if GetLocalPlayer()==p then call SyncStoredInteger(Cync,Player_name,Key) endif call TriggerSyncReady() call SaveInteger(Hash,GetPlayerId(p),nm,GetStoredInteger(Cync,Player_name,Key)) endfunction endlibrary Вот сама система Эллесара.
В начале игры загружаю циклом: Code int x=0 whilenot x>11 { if GetPlayerController(Player(x))==MAP_CONTROL_USER && GetPlayerSlotState(Player(x))==PLAYER_SLOT_STATE_PLAYING { ReadInteger(Player(x),"raiting",1) ReadInteger(Player(x),"leave",2) ReadInteger(Player(x),"kills",3) ReadInteger(Player(x),"deaths",4) ReadInteger(Player(x),"Win",5) ReadInteger(Player(x),"Lose",6) ReadInteger(Player(x),"Accuracy",7) ReadInteger(Player(x),"Kick",8) ReadInteger(Player(x),"Hits",9) } x++ } через 10 секунд забиваю в переменные значения! Code rait[x]= LoadInteger(Hash,x,1) leave[x]= LoadInteger(Hash,x,2) killra[x]= LoadInteger(Hash,x,3) deathra[x]= LoadInteger(Hash,x,4) winra[x]= LoadInteger(Hash,x,5) losera[x]= LoadInteger(Hash,x,6) kickra[x]= LoadInteger(Hash,x,8) hitsra[x]= LoadInteger(Hash,x,9) accar[x]= LoadInteger(Hash,x,7) в конце игры сохраняю значения.
Code AddInteger (Player(i),"raiting",rait[i]) AddInteger (Player(i),"leave",leave[i]) AddInteger (Player(i),"kills",killra[i]) AddInteger (Player(i),"deaths",deathra[i]) AddInteger (Player(i),"Win",winra[i]) AddInteger (Player(i),"Lose",losera[i]) AddInteger (Player(i),"Kick",kickra[i]) AddInteger (Player(i),"Hits",hitsra[i]) AddInteger (Player(i),"Accuracy",accar[i])
В одиночке все работает отилчно. В мультиплеере нчиего не загружается.
Сообщение отредактировал Dreii - Вторник, 07 Февраля 2012, 23:59:07 |
|
|
|
Dreii | Дата: Среда, 08 Февраля 2012, 16:20:50 | Сообщение # 3 |
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
| В одиночке то грузит и сохраняет все ок. Добавлено (08 Февраль 2012, 16:20:50) --------------------------------------------- UP
|
|
|
|
SirNikolas | Дата: Среда, 08 Февраля 2012, 16:24:04 | Сообщение # 4 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Попробуй загружать по одному параметру для каждого игрока. Чтобы проверить, работает ли оно вообще. Если не ошибаюсь, в оригинале системы Эллесара в функциях стояли TriggerSleepAction. Верни их либо замени на таймеры. Еще как вариант - достигнут лимит операций в потоке. ExecuteFunc(...) в помощь.
|
|
|
|
Dreii | Дата: Четверг, 09 Февраля 2012, 18:04:02 | Сообщение # 5 |
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
| SirNikolas, С дефолтной ф-ией эллесара тоже самое. не грузит. Даже если гружу из ячейки 1 то не грузит. Но сохраняет.Ибо если после сохранения загрузить это значение и вывести все будет ок Добавлено (09 Февраль 2012, 18:04:02) --------------------------------------------- Пришел к выводу,что проблема в синзонизации. Но как решить без понятий. кстати, можно же сохранить число на имя игрока, по принципу обычного сейвлоада. Ну а при старте расшифровтаь и получить число. Но и тут мои знания без сильны.
|
|
|
|
DragoN | Дата: Пятница, 10 Февраля 2012, 00:47:56 | Сообщение # 6 |
Инквизитор
Группа: Стримеры
Сообщений: 4348
Награды: 7
Репутация: 2776
Блокировки:
| Quote (Dreii) Пришел к выводу,что проблема в синзонизации. Но как решить без понятий. больше пауз, детка!
El Psy Congroo
|
|
|
|