Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class SpecialPlayerDataProxy
- {
- private dictionary info;
- SpecialPlayerDataProxy()
- {
- }
- //эту функцию вызываем в critter_in или как оно там было:)
- int getCharacterFraction(int charId)
- {
- if (dict.get(charId) == null)
- makeRequestGetCharInfo(charId);
- //0 элемент массива например будет фракцией
- return dict.get(charId)[0];
- }
- private void makeRequestGetCharInfo(int charId)
- {
- sring functionName = '__Название функции которая вернет то что нам надо';
- /* Вызываемая функция будет такого вида
- * void _FuncName_unsafe(Critter& player, int param0, int param1, int param2, string@ param3, int[]@ param4)
- */
- string strToFilll// = 'в эту строку будет записыватся знчения'
- array arrayToFill;// = 'в этот массив тоже'
- /**
- * Поидее strToFill и arrayToFill передаются указатели, т.е мы можем писать в них значения на прямую хоть это и тупо
- * Но вообще не понятно зачем разделение Client/Server
- *
- * Должно работать хотя это и криво в противном случае нужно быдет вызывать в теле функции слушателя
- * cr.runClientScript someCallBack ниже щас будет пример каллбека
- * cr.RunClientScript('__requestGetCharInfo_Callback', playerId, null, someStr, someArray);
- */
- RunServerScriptUnsafe(functionName, null, null, strToFill, arrayToFill);
- //Теперь в дикшенари по чар айди можно извлечь этот массив, чтобы в рамках текщей сессия не запрашивать инфо опять.
- dict.set(charId, arrayToFill)
- }
- void requestGetCharInfo_Callback(int playerId, int param1, int param2, string@ someStr, int[]@ someArray)
- {
- dict.set(playerId, someArray);
- //В таком случае getCharacterFraction не вернет знчения эта функция калл бек должна будет покрасить криттера плеера
- //Следующий вызов уже будетв озвращать значение из dictionary
- }
- }
- /**
- * функция выдающая ответ должна быть вида
- * void someFunction(Critter& player, int param0, int param1, int param2, string@ param3, int[]@ param4)
- * {
- * param4 = [........] задали параметры в массив
- * param3 = ...... задали строку как я понимаю эта функция может быть где угодно
- * }
- *
- * Но вообще не понятно зачем разделение Client/Server
- */
Add Comment
Please, Sign In to add comment