Сейчас 15:11:53 Суббота, 28 сентября, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
снова сохранение загрузка рейтинга
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
 

SirNikolasДата: Среда, 08 Февраля 2012, 10:24:24 | Сообщение # 2
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Возможно, значения не успевают сохраниться в конце игры.

 

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
 

  • Страница 1 из 1
  • 1
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz