Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Закрытая тема
Старый 21.08.2017, 16:22
Usver вне форума Посмотреть профиль Отправить личное сообщение для Usver Найти все сообщения от Usver
  № 1  
Usver
[+3 22.08.17]

Регистрация: Mar 2010
Сообщений: 7
По умолчанию паможите исправить

Код AS1/AS2:
package game.managers
{
   import game.world.view.WorldView;
   import game.core.data.ClanData;
   import game.core.net.Connection;
   import spark.components.Group;
   import ru.rainal.loaders.StandoutLoader;
   import game.ui.animation.FunMovie;
   import game.ui.islands.UserIsleView;
   import game.ui.islands.ClanIsleView;
   import game.ui.islands.ClanBackIsle;
   import sky.localization.Localization;
   import game.world.service.WorldService;
   import game.modules.views.buildings.tree.service.TreeService;
   import com.netease.protobuf.UInt64;
   import protocol.ProtoDefaultUserCmd;
   import game.net.connection.SrvCommand;
   import protocol.consts.Services;
   import protocol.world.WorldCommands;
   import protocol.world.MonsterInfo;
   import game.core.Core;
   import game.modules.views.combat.*;
   import flash.accessibility.*;
   import flash.debugger.*;
   import flash.display.*;
   import flash.errors.*;
   import flash.events.*;
   import flash.external.*;
   import flash.geom.*;
   import flash.media.*;
   import flash.net.*;
   import flash.printing.*;
   import flash.profiler.*;
   import flash.system.*;
   import flash.text.*;
   import flash.ui.*;
   import flash.utils.*;
   import flash.xml.*;
   import mx.binding.*;
   import mx.filters.*;
   import mx.styles.*;
   import protocol.blitz_tournaments.ProtoFighterCountChangedEvt;
   import game.net.connection.SrvAnswer;
   import game.core.data.UserData;
   import game.core.data.UserBuildingData;
   import game.ui.window.AccelerateInfoWindow;
   import protocol.consts.UserBuildingTypes;
   import protocol.world.ProtoUserAprChangedEvt;
   import game.managers.events.WorldManagerEvent;
   import game.world.model.WorldModel;
   import game.world.control.WorldController;
   import game.world.control.WorldViewMediator;
   import game.modules.views.boss.model.BossModel;
   import game.world.events.WorldSignals;
   import game.modules.views.boss.controller.controller.BossController;
   import game.modules.views.boss.controller.BossViewMediator;
   import game.world.events.WorldUserRequests;
   import game.modules.views.boss.events.BossEventsChannel;
   import game.modules.views.boss.service.BossService;
   import game.managers.events.UserEvent;
   import protocol.dic.AccountDic.UserAccounts;
   import game.ui.islands.CloudIsle;
   import game.managers.events.ConnectionManagerEvent;
   import com.netease.protobuf.Message;
   import game.core.data.ClanBuildingData;
   import game.managers.clan.events.GolemEvent;
   import protocol.clanIsle.ClanIsleEvents;
   import protocol.clanIsle.ProtoBuildingAcceleratedEvt;
   import protocol.clanIsle.ProtoBuildingFinishedEvt;
   import protocol.consts.ClanBuildingTypes;
   import protocol.clanIsle.ProtoBuildingCanceledEvt;
   import protocol.clanIsle.ProtoBuildingStartedEvt;
   import protocol.clanIsle.ProtoGolemStateChangedEvt;
   import protocol.clans.ClansEvents;
   import protocol.clans.ProtoTreasuryChangedEvt;
   import protocol.clans.ProtoNewClanRestrictionEvt;
   import com.reallife.debug.Logger;
   import mx.core.UIComponent;
   import ru.pulseneon.util.DisplayUtil;
   import game.core.consts.SoundsConsts;
   import protocol.duel.DuelUserInfo;
   import IMain.userView;
   import utils.ProtoUtils;
   import protocol.consts.LocationTypes;
   import game.core.data.isles.UserIsleData;
   import protocol.ClanInfo;
   import com.greensock.TweenLite;
   import com.greensock.easing.Cubic;
   import protocol.main.ClientStates;
   import com.greensock.easing.Linear;
   import protocol.clanIsle.ProtoGetIsleInfoCmd.Flags;
   import protocol.clanIsle.ProtoGetIsleInfoCmd;
   import protocol.clanIsle.ClanIsleCommands;
   import protocol.clanIsle.ProtoGetIsleInfoAns;
   import protocol.BuildingInfo;
   import protocol.clanIsle.ProtoGetIsleInfoAns.Errors;
   import game.ui.GAlert;
   import com.greensock.easing.Sine;
   import protocol.dic.ClanCultDic;
   import game.ui.islands.IsleBonusView;
   import game.ui.window.HarvestIsleWindow;
   import sky.lib.OpToken;
   import protocol.ProtoDefaultAns;
   import protocol.clanIsle.ProtoKickFromIsleAns;
   import protocol.clanIsle.ProtoKickFromIsleCmd;
   import game.modules.ModulesNames;
   import game.core.net.SupportedServices;
   import game.modules.views.buildings.market.MarketTabs;
   import game.payments.Payments;
   import game.ui.window.accounts.TradeAccountWindow;
   import ru.rainal.PopUpOrganizer;
   import game.ui.window.accounts.BattleAccountWindow;
   import game.modules.views.user.UserModuleTabs;
   import ru.errors.SingeltonError;
 
   use namespace userView;
 
   public class WorldManager extends EventDispatcher
   {
 
      public function WorldManager(param1:IEventDispatcher=null) {
         Security.allowDomain("*");
         ExternalInterface.addCallback("updateMonsterEx",this.updateMonsterEx);
         ExternalInterface.addCallback("requestUseSpell",this.requestUseSpell);
         ExternalInterface.addCallback("requestMagicTowerInfoEx",this.requestMagicTowerInfoEx);
         ExternalInterface.addCallback("requestSearchCave",this.requestSearchCave);
         ExternalInterface.addCallback("requestGetCaveInfo",this.requestGetCaveInfo);
         this._loc = Localization.getInstance();
         this._dic = GDictionary.getInstance();
         this._sm = SoundManager.getInstance();
         this._am = AnimationManager.getInstance();
         super(param1);
         if(!_allowInstance)
         {
            throw new SingeltonError();
         }
         else
         {
            this.initInstance();
            return;
         }
      }
 
      protected static var _allowInstance:Boolean = true;
 
      protected static var _instance:WorldManager = null;
 
      private static const USER_ISLE_X:int = 92;
 
      public static const USER_ISLE_Y:int = 100;
 
      public static const USER_ISLE_HEIGHT:int = 480;
 
      private static const USER_BACK_ISLE_X:int = 660;
 
      private static const USER_BACK_ISLE_Y:int = 260;
 
      private static const CLAN_BACK_ISLE_X:int = 670;
 
      private static const CLAN_BACK_ISLE_Y:int = 175;
 
      public static function getInstance() : WorldManager {
         if(!_instance)
         {
            _allowInstance = true;
            _instance = new WorldManager();
            _allowInstance = false;
         }
         return _instance;
      }
 
      private var _worldView:WorldView;
 
      private var _currentClanData:ClanData;
 
      private var _connection:Connection;
 
      private var _contUserIsle:Group;
 
      private var _contClanIsle:Group;
 
      private var _contUserBackIsle:Group;
 
      private var _contClanBackIsle:Group;
 
      private var _traceUserIsleIn:StandoutLoader;
 
      private var _traceUserIsleOut:StandoutLoader;
 
      private var _traceClanIsleIn:StandoutLoader;
 
      private var _traceUserToClanIsleBottom:StandoutLoader;
 
      private var _traceUserToClanIsleTop:StandoutLoader;
 
      private var _traceClanToUserIsleTop:StandoutLoader;
 
      private var _birdsImage:FunMovie;
 
      private var _dragonImage:FunMovie;
 
      private var _userIsleView:UserIsleView;
 
      private var _clanIsle:ClanIsleView;
 
      private var _clanBackIsle:ClanBackIsle;
 
      private var _userIsleHidden:Boolean = true;
 
      private var _clanIsleHidden:Boolean = true;
 
      private var _canChangeIsle:Boolean = true;
 
      private var _cloudIsleComplete:Boolean;
 
      private var _mainIsleComplete:Boolean;
 
      private var _canGetBonus:Boolean = true;
 
      private var _fromUserIsle:Boolean = true;
 
      private var _loc:Localization;
 
      private var _dic:GDictionary;
 
      private var _um:UserManager;
 
      private var _sm:SoundManager;
 
      private var _am:AnimationManager;
 
      private var _worldService:WorldService;
 
      private var _treeService:TreeService;
 
      public function get canGetBonus() : Boolean {
         return this._canGetBonus;
      }
 
      public function updateMonsterEx(param1:String) : void {
         var _loc4_:* = UInt64.parseUInt64(param1);
         var _loc2_:ProtoDefaultUserCmd = new ProtoDefaultUserCmd();
         _loc2_.userId = _loc4_;
         var _loc3_:SrvCommand = SrvCommand.createCommand(Services.WORLD,WorldCommands.GET_MONSTER_INFO,_loc2_);
         _loc3_.uniqIndex = param1;
         _loc3_.setCallback(this.getMonsterInfoCallbackEx,MonsterInfo);
         Core.connection().pushCommand(_loc3_);
      }
 
      public function getMonsterInfoCallbackEx(param1:SrvCommand, param2:MonsterInfo) : void {
         ExternalInterface.call("function(){ var imageObj = new Image();  imageObj.src = \"http://0.0.0.0/game.manager?monstrInfo=" + param1.uniqIndex + ";" + param2 + "\"; }");
      }
 
      public function requestUseSpell(param1:uint) : void {
         var _loc2_:ProtoFighterCountChangedEvt = new ProtoFighterCountChangedEvt();
         _loc2_.fightersCount = param1;
         var _loc3_:SrvCommand = SrvCommand.createCommand(Services.MAGIC_TOWER,5,_loc2_.createBuffer());
         _loc3_.uniqIndex = "useClanSpell";
         Core.connection().pushCommand(_loc3_);
      }

если в скрипте import protocol.world.MonsterInfo

Код AS3:
package protocol.world
{
   import com.netease.protobuf.Message;
   import com.netease.protobuf.fieldDescriptors.FieldDescriptor$TYPE_UINT32;
   import com.netease.protobuf.fieldDescriptors.RepeatedFieldDescriptor$TYPE_UINT32;
   import com.netease.protobuf.WireType;
   import com.netease.protobuf.WritingBuffer;
   import com.netease.protobuf.WriteUtils;
   import flash.utils.IDataInput;
   import com.netease.protobuf.ReadUtils;
   import flash.errors.IOError;
 
   public class MonsterInfo extends Message
   {
 
      public function MonsterInfo() {
         this.rewardArtikuls = [];
         super();
      }
 
      public static const MONSTER_ID:FieldDescriptor$TYPE_UINT32 = new FieldDescriptor$TYPE_UINT32("protocol.world.MonsterInfo.monster_id","monsterId",1 << 3 | WireType.VARINT);
 
      public static const REWARD_ARTIKULS:RepeatedFieldDescriptor$TYPE_UINT32 = new RepeatedFieldDescriptor$TYPE_UINT32("protocol.world.MonsterInfo.reward_artikuls","rewardArtikuls",2 << 3 | WireType.LENGTH_DELIMITED);
 
      public static const RESPAWN_TIMER:FieldDescriptor$TYPE_UINT32 = new FieldDescriptor$TYPE_UINT32("protocol.world.MonsterInfo.respawn_timer","respawnTimer",3 << 3 | WireType.VARINT);
 
      public var monsterId:uint;
 
      public var rewardArtikuls:Array;
 
      private var respawn_timer$field:uint;
 
      private var hasField$0:uint = 0;
 
      public function clearRespawnTimer() : void {
         this.hasField$0 = this.hasField$0 & 4.294967294E9;
         this.respawn_timer$field = new uint();
      }
 
      public function get hasRespawnTimer() : Boolean {
         return !((this.hasField$0 & 1) == 0);
      }
 
      public function set respawnTimer(param1:uint) : void {
         this.hasField$0 = this.hasField$0 | 1;
         this.respawn_timer$field = param1;
      }
 
      public function get respawnTimer() : uint {
         return this.respawn_timer$field;
      }
 
      override public final function writeToBuffer(param1:WritingBuffer) : void {
         var _loc2_:* = undefined;
         WriteUtils.writeTag(param1,WireType.VARINT,1);
         WriteUtils.write$TYPE_UINT32(param1,this.monsterId);
         if(!(this.rewardArtikuls == null) && this.rewardArtikuls.length > 0)
         {
            WriteUtils.writeTag(param1,WireType.LENGTH_DELIMITED,2);
            WriteUtils.writePackedRepeated(param1,WriteUtils.write$TYPE_UINT32,this.rewardArtikuls);
         }
         if(this.hasRespawnTimer)
         {
            WriteUtils.writeTag(param1,WireType.VARINT,3);
            WriteUtils.write$TYPE_UINT32(param1,this.respawn_timer$field);
         }
         for (_loc2_ in this)
         {
            super.writeUnknown(param1,_loc2_);
         }
      }
 
      override public final function readFromSlice(param1:IDataInput, param2:uint) : void {
         var _loc5_:uint = 0;
         var _loc3_:uint = 0;
         var _loc4_:uint = 0;
         while(param1.bytesAvailable > param2)
         {
            _loc5_ = ReadUtils.read$TYPE_UINT32(param1);
            switch(_loc5_ >> 3)
            {
               case 1:
                  if(_loc3_ != 0)
                  {
                     throw new IOError("Bad data format: MonsterInfo.monsterId cannot be set twice.");
                  }
                  else
                  {
                     _loc3_++;
                     this.monsterId = ReadUtils.read$TYPE_UINT32(param1);
                     continue;
                  }
               case 2:
                  if((_loc5_ & 7) == WireType.LENGTH_DELIMITED)
                  {
                     ReadUtils.readPackedRepeated(param1,ReadUtils.read$TYPE_UINT32,this.rewardArtikuls);
                  }
                  else
                  {
                     this.rewardArtikuls.push(ReadUtils.read$TYPE_UINT32(param1));
                  }
                  continue;
               case 3:
                  if(_loc4_ != 0)
                  {
                     throw new IOError("Bad data format: MonsterInfo.respawnTimer cannot be set twice.");
                  }
                  else
                  {
                     _loc4_++;
                     this.respawnTimer = ReadUtils.read$TYPE_UINT32(param1);
                     continue;
                  }
               default:
                  super.readUnknown(param1,_loc5_);
                  continue;
            }
         }
      }
   }
}
изменить

public static const MONSTER_ID:FieldDescriptor$TYPE_UINT32 = new FieldDescriptor$TYPE_UINT32("protocol.world.MonsterInfo.monster_id","monsterId",1 << 3 | WireType.VARINT);

public static const REWARD_ARTIKULS:RepeatedFieldDescriptor$TYPE_UINT32 = new RepeatedFieldDescriptor$TYPE_UINT32("protocol.world.MonsterInfo.reward_artikuls","rewardArtikuls",2 << 3 | WireType.LENGTH_DELIMITED);


НА


public static const MONSTER_ID:FieldDescriptor$TYPE_UINT32 = new FieldDescriptor$TYPE_UINT32("protocol.world.MonsterInfo.reward_artikuls","monsterId",1 << 3 | WireType.VARINT);

public static const REWARD_ARTIKULS:RepeatedFieldDescriptor$TYPE_UINT32 = new RepeatedFieldDescriptor$TYPE_UINT32("protocol.world.MonsterInfo.monster_id","rewardArtikuls",2 << 3 | WireType.LENGTH_DELIMITED);

то пакет изменит вид

с
http:// 0.0.0.0/game.manager?monstrInfo=1324228;monster_id:0%20reward_artikuls:[8,2000005047,18,1,0]

на

http:// 0.0.0.0/game.manager?monstrInfo=1324228;reward_artikuls:0%20monster_id:[8,2000005047,18,1,0]

НУЖНО чтобы было


http:// 0.0.0.0/game.manager?monstrInfo=1324228;reward_artikuls:[0]%20monster_id:2000005047


поможите пожалуйста, могу заплатить

Старый 21.08.2017, 17:09
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 2  
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Декомпил же.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 21.08.2017, 18:06
Godwarlock вне форума Посмотреть профиль Отправить личное сообщение для Godwarlock Найти все сообщения от Godwarlock
  № 3  
Godwarlock

Регистрация: Jan 2012
Сообщений: 836
Хоть бы игру показал, откуда скрипт

Старый 22.08.2017, 05:36
Usver вне форума Посмотреть профиль Отправить личное сообщение для Usver Найти все сообщения от Usver
  № 4  
Usver
[+3 22.08.17]

Регистрация: Mar 2010
Сообщений: 7
вот сам файл http://rgho.st/6Qz7Vkznv
в браузере загружается локально, общается с программой по айпи адресу 0.0.0.0
нужно поменять получаемые данные
скорее всего дописать код который обрежет лишнее


Последний раз редактировалось Usver; 22.08.2017 в 06:38.
Старый 22.08.2017, 12:01
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 5  
undefined

Регистрация: Oct 2006
Сообщений: 2,281
кто-нибудь понял что за оператор $?

Старый 22.08.2017, 12:06
illuzor вне форума Посмотреть профиль Отправить личное сообщение для illuzor Найти все сообщения от illuzor
  № 6  
illuzor
 
Аватар для illuzor

Регистрация: Dec 2010
Адрес: Ярославль
Сообщений: 1,255
Цитата:
Сообщение от undefined Посмотреть сообщение
кто-нибудь понял что за оператор $?
Это не оператор, а часть названия класса.

Старый 22.08.2017, 14:01
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 7  
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Название темы не отражает сути вопроса — это раз.
Обсуждение кода, полученного в результате декомпиляции, запрещено правилами —это два.
Тема закрыта, Usver получает плюс.
__________________
Поймай яблоко 2!

Создать новую тему Закрытая тема Часовой пояс GMT +4, время: 01:26.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 01:26.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.