Пятница, 19 Апреля 2024, 11:02

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Движки для браузерных игр » Вконтакте (Посоветуйте!)
Вконтакте
infermikДата: Вторник, 12 Октября 2010, 13:53 | Сообщение # 1
заслуженный участник
Сейчас нет на сайте
Доброго времени суток всем, я хочу попробовать совместить уроки Assasin'a с Контактом, у меня стоит одна проблема
как мне сделать чтобы игрок не регистрировался, а сразу создавался если игрок заходит первый раз?
Может кто нибудь поможет я попробовал сделать список друзей дабы добавлять их в игру получилось!
А вот с этой проблемой ни как не разберусь, а то у меня mmorpg с помесью браузерной игры получается в ВКонтакте biggrin


Выпрямляю путем кнута и пряника
wernherДата: Вторник, 12 Октября 2010, 14:01 | Сообщение # 2
Only God is Perfect
Сейчас нет на сайте
Смотри мануал ВКонтакте API:
Quote

ри отображении приложения посредством flashVars в него передаются следующие параметры:

* api_url – это адрес сервиса API, по которому необходимо осуществлять запросы.
* api_id – это id запущенного приложения.
* user_id – это id пользователя, со страницы которого было запущено приложение. Если приложение запущено не со страницы пользователя, то значение равно 0.
* group_id – это id группы, со страницы которой было запущено приложение. Если приложение запущено не со страницы группы, то значение равно 0.
* viewer_id – это id пользователя, который просматривает приложение.
* is_app_user – если пользователь установил приложение – 1, иначе – 0.
* viewer_type – это тип пользователя, который просматривает приложение (возможные значения описаны ниже).
* auth_key – это ключ, необходимый для авторизации пользователя на стороннем сервере (см. описание ниже).
* language – это id языка пользователя, просматривающего приложение (см. список языков ниже).
* api_result – это результат первого API-запроса, который выполняется при загрузке приложения (см. описание ниже).
* api_settings – битовая маска настроек текущего пользователя в данном приложении (подробнее см. в описании метода getUserSettings).

Нас интересует viewer_id.
Делаем таблицу users где вместо ID пользователя, будет ВКонтакте ID.
Если юзер простматривает приложение (только врубил), то проверяем есть ли такой в таблице.
Если нет, то регистрируем (или еще чего там.).

А это можно почитать, если у тебя будет свой сайт с регистрацией при помощи OpenAPI




Сообщение отредактировал wernher - Вторник, 12 Октября 2010, 14:06
ТяжолыйМолотДата: Вторник, 12 Октября 2010, 16:21 | Сообщение # 3
Создатель Fly-portala
Сейчас нет на сайте
Никогда не думал что из браузерки можно сделать соц.сеть.
infermikДата: Вторник, 12 Октября 2010, 17:59 | Сообщение # 4
заслуженный участник
Сейчас нет на сайте
Поверь можно, я хотел слить сервер какой нить игры, посмотрел допустим соединение игры Вормикс
Code
package  
{
     import Preloader.*;
     import flash.display.*;
     import flash.events.*;
     import flash.filters.*;
     import flash.net.*;
     import flash.system.*;
     import flash.text.*;
     import flash.utils.*;
     import ru.kubline.preloader.gui.*;

     public class Preloader extends Sprite
     {
         private var stageHeight:int = 590;
         private var startScreenSaver:MovieClip = null;
         private var progressBar:ProgressBar = null;
         private var timer:Timer;
         private var engineUrl:String;
         private var loader:Loader;
         private var userStore:SharedObject;
         private var wrapper:Object;
         private var baseUrl:String = "http://wormix.ru/engine/0.2.9.2/";
         private var debugField:TextField;
         private var stageWidth:int = 745;
         private var localConnection:LocalConnection;
         private var context:LoaderContext;
         private var howToStart:MovieClip = null;
         private var howToStartUrl:String;
         private var channelName:String = "_kubline_progress_bar_";
         private var engineInstance:Sprite = null;
         public static var flashVars:Object;
         public static var instance:Preloader;

         public function Preloader()
         {
             debugField = new TextField();
             engineUrl = baseUrl + "WormsWar.swf?88";
             howToStartUrl = baseUrl + "data/interface/requests/howToStart.swf";
             timer = new Timer(300);
             instance = this;
             context = new LoaderContext(true, new ApplicationDomain(ApplicationDomain.currentDomain), SecurityDomain.currentDomain);
             this.addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
             localConnection = new LocalConnection();
             localConnection.allowDomain("*");
             var client:* = new Object();
             client.progress = function (flashVars:int) : void
             {
                 if (progressBar != null)
                 {
                     progressBar.progress(flashVars);
                 }
                 return;
             }// end function
             ;
             localConnection.client = client;
             return;
         }// end function

         public function securityErrorListener(event:SecurityErrorEvent) : void
         {
             showMsg(event.text);
             dispatchEvent(event);
             return;
         }// end function

         public function showMsg(flashVars:String) : void
         {
             var _loc_2:* = new TextFormat("_sans", 14, 16763749);
             debugField.autoSize = TextFieldAutoSize.LEFT;
             debugField.type = TextFieldType.INPUT;
             debugField.defaultTextFormat = _loc_2;
             debugField.filters = [new DropShadowFilter(1, 45, 0, 1, 2, 2, 2, 2)];
             debugField.alpha = 0.7;
             debugField.htmlText = debugField.htmlText + (" >> " + flashVars);
             debugField.x = 20;
             debugField.y = 200;
             addChild(debugField);
             return;
         }// end function

         private function checkSettings(flashVars:Object = null) : void
         {
             var _loc_2:int = 0;
             if (flashVars == null)
             {
                 _loc_2 = int(flashVars["api_settings"]);
             }
             else
             {
                 wrapper.removeEventListener("onSettingsChanged", checkSettings);
                 _loc_2 = int(flashVars.settings);
             }
             if ((_loc_2 & 1) == 0 || (_loc_2 & 2) == 0 || (_loc_2 & 4) == 0 || (_loc_2 & 2048) == 0)
             {
                 wrapper.addEventListener("onSettingsChanged", checkSettings);
                 wrapper.external.showSettingsBox(7 + 256 + 2048);
             }
             else
             {
                 removeChild(howToStart);
                 showScreenSaver();
             }
             return;
         }// end function

         private function onApplicationAdded(flashVars:Object) : void
         {
             wrapper.removeEventListener("onApplicationAdded", onApplicationAdded);
             checkSettings();
             return;
         }// end function

         public function onCompleteEngineLoader(event:Event) : void
         {
             var event:* = event;
             loader.contentLoaderInfo.removeEventListener(ProgressEvent.PROGRESS, showProgress);
             loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, onCompleteEngineLoader);
             loader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, ioErrorListener);
             loader.contentLoaderInfo.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorListener);
             try
             {
                 localConnection.connect(channelName);
             }
             catch (error:ArgumentError)
             {
                 progressBar = null;
             }
             engineInstance = Sprite(event.target.content);
             var referrerId:uint;
             if (userStore.data.referrerId)
             {
                 referrerId = userStore.data.referrerId;
             }
             Object(engineInstance).initFromPreloader(wrapper, baseUrl, referrerId);
             engineInstance.addEventListener(Event.INIT, onEngineInit);
             addChildAt(engineInstance, 0);
             loader = null;
             return;
         }// end function

         private function showProgress(event:ProgressEvent) : void
         {
             progressBar.progress(Math.round(event.bytesLoaded / event.bytesTotal * 10));
             return;
         }// end function

         private function checkInstallApplication() : void
         {
             if (flashVars != null && flashVars["is_app_user"] != "1")
             {
                 if (!userStore.data.referrerId)
                 {
                     userStore.data.referrerId = flashVars["user_id"];
                     userStore.flush();
                 }
                 wrapper.external.showInstallBox();
                 wrapper.addEventListener("onApplicationAdded", onApplicationAdded);
             }
             else
             {
                 checkSettings();
             }
             return;
         }// end function

         public function slowHideScreenSaver() : void
         {
             timer.start();
             timer.addEventListener(TimerEvent.TIMER, function () : void
             {
                 startScreenSaver.alpha = startScreenSaver.alpha - 0.3;
                 if (startScreenSaver.alpha <= 0.01)
                 {
                     timer.stop();
                     removeChild(startScreenSaver);
                     startScreenSaver = null;
                 }
                 return;
             }// end function
             );
             return;
         }// end function

         private function onAddedToStage(event:Event) : void
         {
             wrapper = Object(parent.parent);
             stageWidth = wrapper.application.stageWidth;
             stageHeight = wrapper.application.stageHeight;
             flashVars = wrapper.application.parameters;
             var _loc_2:* = "store_" + flashVars["viewer_id"];
             userStore = SharedObject.getLocal(_loc_2);
             loader = new Loader();
             loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onHowToStartLoaded);
             loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorListener);
             loader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorListener);
             loader.load(new URLRequest(howToStartUrl), context);
             return;
         }// end function

         public function showScreenSaver() : void
         {
             startScreenSaver = new PreloaderScreen();
             startScreenSaver.x = 0;
             startScreenSaver.y = 0;
             this.addChild(startScreenSaver);
             progressBar = new ProgressBar(startScreenSaver.progressBar);
             loader = new Loader();
             loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, showProgress);
             loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onCompleteEngineLoader);
             loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorListener);
             loader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorListener);
             loader.load(new URLRequest(engineUrl), context);
             return;
         }// end function

         public function onHowToStartLoaded(event:Event) : void
         {
             loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, onHowToStartLoaded);
             loader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, ioErrorListener);
             loader.contentLoaderInfo.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorListener);
             howToStart = MovieClip(event.target.content);
             howToStart.x = (stageWidth - howToStart.width) / 2;
             howToStart.y = (stageHeight - howToStart.height) / 2;
             addChild(howToStart);
             checkInstallApplication();
             return;
         }// end function

         public function onEngineInit(event:Event) : void
         {
             slowHideScreenSaver();
             return;
         }// end function

         public function ioErrorListener(event:IOErrorEvent) : void
         {
             showMsg(event.text);
             dispatchEvent(event);
             return;
         }// end function

         public static function deleteScreenSaver() : void
         {
             instance.slowHideScreenSaver();
             return;
         }// end function

     }
}

Даже в этом куске инфы можно найти много что полезного вот например проверку которую я искал)

Добавлено (12.10.2010, 17:59)
---------------------------------------------
В основном тут написан только опять же один клиент на флехе, а остальное уже всё php страницы.


Выпрямляю путем кнута и пряника
Форум игроделов » Движки для разработки игр и сложные системы разработки » Движки для браузерных игр » Вконтакте (Посоветуйте!)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг