C# Probleme traduction ProtocolTypeManager

  • Auteur de la discussion Anonymous
  • Date de début
A

Anonymous

Invité
#1
Bonjour,
j’éprouve des difficultés a traduire le ProtocolTypeManager :

Code:
        public static Dictionary<uint, object> _typesTypes = new Dictionary<uint, object>();

        public static object getInstance(uint param1)
        {
            register();

            return _typesTypes[param1];
        }
Code:
        public static void register()
        {
            _typesTypes[3] = new GameRolePlayMutantInformations();
            _typesTypes[4] = new CharacterBaseCharacteristic();
            _typesTypes[6] = new FightTeamMemberMonsterInformations();
            _typesTypes[7] = new Item();
                ect ...
        }
L'erreur :
Erreur 456 Impossible de convertir implicitement le type 'object' en 'Network.Types.Game.Context.Fight.FightTeamInformations'. Une conversion explicite existe (un cast est-il manquant ?) ..\Network\Types\Game\Context\Fight\FightCommonInformations.cs 105 26 Network
C'est peut être tout bête, je comprends l'erreur, mais je ne sais pas du tout comment la corriger, et si c'est bien la bonne méthode que j'utilise.

Merci
 
A

Anonymous

Invité
#2
Tu fais un select case:

Case x
Variable = class
 
A

Anonymous

Invité
#3
un switch?
J'essayes justement d'utiliser cette méthode pour éviter de devoir tout taper a la main :D
Et puis, c'est a mon avis pas le mieux a faire.
 
A

Anonymous

Invité
#4
Oui un switch en C#, je n'avais pas vu :D
Mais a la main c'est trop long, j'ai fait un programme qui fait le switch tout seul, je te le passe dans la soirée.
 
A

Anonymous

Invité
#5
Tien voilà ta class:
Sa me fait travaillé ma traduction ;)
Met en commentaire les class dont tu n'as pas besoin.
La class t'informera de ce dont tu a besoin via une MsgBox.

using Microsoft.VisualBasic;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
public class ProtocolTypeManager
{
public static object GetInstance(uint Id)
{
object objectValue = null;
switch (Id) {
case 11:
objectValue = new Version();
break;
case 377:
objectValue = new TrustCertificate();
break;
case 25:
objectValue = new GameServerInformations();
break;
case 55:
objectValue = new EntityLook();
break;
case 54:
objectValue = new SubEntity();
break;
case 110:
objectValue = new CharacterMinimalInformations();
break;
case 163:
objectValue = new CharacterMinimalPlusLookInformations();
break;
case 193:
objectValue = new CharacterMinimalPlusLookAndGradeInformations();
break;
case 45:
objectValue = new CharacterBaseInformations();
break;
case 212:
objectValue = new CharacterToRecolorInformation();
break;
case 86:
objectValue = new CharacterHardcoreInformations();
break;
case 63:
objectValue = new EntityMovementInformations();
break;
case 60:
objectValue = new EntityDispositionInformations();
break;
case 107:
objectValue = new IdentifiedEntityDispositionInformations();
break;
case 217:
objectValue = new FightEntityDispositionInformations();
break;
case 365:
objectValue = new BasicGuildInformations();
break;
case 127:
objectValue = new GuildInformations();
break;
case 204:
objectValue = new ActorRestrictionsInformations();
break;
case 201:
objectValue = new ActorAlignmentInformations();
break;
case 183:
objectValue = new PaddockContentInformations();
break;
case 184:
objectValue = new MountInformationsForPaddock();
break;
case 202:
objectValue = new ActorExtendedAlignmentInformations();
break;
case 135:
objectValue = new AlignmentBonusInformations();
break;
case 142:
objectValue = new PrismSubAreaInformation();
break;
case 379:
objectValue = new VillageConquestPrismInformation();
break;
case 187:
objectValue = new TaxCollectorName();
break;
case 96:
objectValue = new TaxCollectorBasicInformations();
break;
case 4:
objectValue = new CharacterBaseCharacteristic();
break;
case 215:
objectValue = new CharacterSpellModification();
break;
case 8:
objectValue = new CharacterCharacteristicsInformations();
break;
case 117:
objectValue = new FightExternalInformations();
break;
case 43:
objectValue = new FightCommonInformations();
break;
case 44:
objectValue = new FightTeamMemberInformations();
break;
case 13:
objectValue = new FightTeamMemberCharacterInformations();
break;
case 6:
objectValue = new FightTeamMemberMonsterInformations();
break;
case 177:
objectValue = new FightTeamMemberTaxCollectorInformations();
break;
case 20:
objectValue = new FightOptionsInformations();
break;
case 116:
objectValue = new AbstractFightTeamInformations();
break;
case 33:
objectValue = new FightTeamInformations();
break;
case 115:
objectValue = new FightTeamLightInformations();
break;
case 31:
objectValue = new GameFightMinimalStats();
break;
case 360:
objectValue = new GameFightMinimalStatsPreparation();
break;
case 41:
objectValue = new FightLoot();
break;
case 16:
objectValue = new FightResultListEntry();
break;
case 189:
objectValue = new FightResultFighterListEntry();
break;
case 191:
objectValue = new FightResultAdditionalData();
break;
case 192:
objectValue = new FightResultExperienceData();
break;
case 190:
objectValue = new FightResultPvpData();
break;
case 24:
objectValue = new FightResultPlayerListEntry();
break;
case 216:
objectValue = new FightResultMutantListEntry();
break;
case 84:
objectValue = new FightResultTaxCollectorListEntry();
break;
case 206:
objectValue = new AbstractFightDispellableEffect();
break;
case 208:
objectValue = new FightDispellableEffectExtendedInformations();
break;
case 209:
objectValue = new FightTemporaryBoostEffect();
break;
case 366:
objectValue = new FightTemporarySpellImmunityEffect();
break;
case 210:
objectValue = new FightTriggeredEffect();
break;
case 207:
objectValue = new FightTemporarySpellBoostEffect();
break;
case 211:
objectValue = new FightTemporaryBoostWeaponDamagesEffect();
break;
case 214:
objectValue = new FightTemporaryBoostStateEffect();
break;
case 353:
objectValue = new ActorOrientation();
break;
case 205:
objectValue = new GameFightSpellCooldown();
break;
case 364:
objectValue = new GameFightResumeSlaveInfo();
break;
case 7:
objectValue = new Item();
break;
case 49:
objectValue = new SpellItem();
break;
case 76:
objectValue = new ObjectEffect();
break;
case 74:
objectValue = new ObjectEffectString();
break;
case 70:
objectValue = new ObjectEffectInteger();
break;
case 82:
objectValue = new ObjectEffectMinMax();
break;
case 73:
objectValue = new ObjectEffectDice();
break;
case 72:
objectValue = new ObjectEffectDate();
break;
case 75:
objectValue = new ObjectEffectDuration();
break;
case 71:
objectValue = new ObjectEffectCreature();
break;
case 81:
objectValue = new ObjectEffectLadder();
break;
case 179:
objectValue = new ObjectEffectMount();
break;
case 178:
objectValue = new MountClientData();
break;
case 356:
objectValue = new UpdateMountBoost();
break;
case 357:
objectValue = new UpdateMountIntBoost();
break;
case 168:
objectValue = new ItemDurability();
break;
case 85:
objectValue = new GameActionMarkedCell();
break;
case 351:
objectValue = new GameActionMark();
break;
case 123:
objectValue = new GoldItem();
break;
case 358:
objectValue = new ObjectEffects();
break;
case 124:
objectValue = new ObjectItemMinimalInformation();
break;
case 352:
objectValue = new ObjectItemToSellInNpcShop();
break;
case 119:
objectValue = new ObjectItemQuantity();
break;
case 134:
objectValue = new ObjectItemNotInContainer();
break;
case 37:
objectValue = new ObjectItem();
break;
case 120:
objectValue = new ObjectItemToSell();
break;
case 359:
objectValue = new ObjectItemToSellInHumanVendorShop();
break;
case 164:
objectValue = new ObjectItemToSellInBid();
break;
case 198:
objectValue = new ObjectItemInRolePlay();
break;
case 197:
objectValue = new ObjectItemWithLookInRolePlay();
break;
case 199:
objectValue = new OrientedObjectItemWithLookInRolePlay();
break;
case 185:
objectValue = new PaddockItem();
break;
case 369:
objectValue = new Shortcut();
break;
case 367:
objectValue = new ShortcutObject();
break;
case 371:
objectValue = new ShortcutObjectItem();
break;
case 370:
objectValue = new ShortcutObjectPreset();
break;
case 368:
objectValue = new ShortcutSpell();
break;
case 121:
objectValue = new SellerBuyerDescriptor();
break;
case 122:
objectValue = new BidExchangerObjectInfo();
break;
case 52:
objectValue = new StartupActionAddObject();
break;
case 363:
objectValue = new Achievement();
break;
case 362:
objectValue = new AchievementStartedPercent();
break;
case 361:
objectValue = new AchievementStartedValue();
break;
case 380:
objectValue = new AbstractContactInformations();
break;
case 106:
objectValue = new IgnoredInformations();
break;
case 105:
objectValue = new IgnoredOnlineInformations();
break;
case 78:
objectValue = new FriendInformations();
break;
case 92:
objectValue = new FriendOnlineInformations();
break;
case 77:
objectValue = new FriendSpouseInformations();
break;
case 93:
objectValue = new FriendSpouseOnlineInformations();
break;
case 88:
objectValue = new GuildMember();
break;
case 87:
objectValue = new GuildEmblem();
break;
case 219:
objectValue = new InteractiveElementSkill();
break;
case 220:
objectValue = new InteractiveElementNamedSkill();
break;
case 80:
objectValue = new InteractiveElement();
break;
case 108:
objectValue = new StatedElement();
break;
case 200:
objectValue = new MapObstacle();
break;
case 213:
objectValue = new PartyUpdateCommonsInformations();
break;
case 90:
objectValue = new PartyMemberInformations();
break;
case 374:
objectValue = new PartyGuestInformations();
break;
case 376:
objectValue = new PartyInvitationMemberInformations();
break;
case 378:
objectValue = new PartyMemberGeoPosition();
break;
case 373:
objectValue = new DungeonPartyFinderPlayer();
break;
case 97:
objectValue = new JobCrafterDirectorySettings();
break;
case 194:
objectValue = new JobCrafterDirectoryEntryPlayerInfo();
break;
case 195:
objectValue = new JobCrafterDirectoryEntryJobInfo();
break;
case 196:
objectValue = new JobCrafterDirectoryListEntry();
break;
case 101:
objectValue = new JobDescription();
break;
case 102:
objectValue = new SkillActionDescription();
break;
case 103:
objectValue = new SkillActionDescriptionTimed();
break;
case 99:
objectValue = new SkillActionDescriptionCollect();
break;
case 100:
objectValue = new SkillActionDescriptionCraft();
break;
case 104:
objectValue = new SkillActionDescriptionCraftExtended();
break;
case 98:
objectValue = new JobExperience();
break;
case 111:
objectValue = new HouseInformations();
break;
case 112:
objectValue = new HouseInformationsExtended();
break;
case 218:
objectValue = new HouseInformationsInside();
break;
case 170:
objectValue = new HouseInformationsForGuild();
break;
case 221:
objectValue = new HouseInformationsForSell();
break;
case 132:
objectValue = new PaddockInformations();
break;
case 130:
objectValue = new PaddockBuyableInformations();
break;
case 133:
objectValue = new PaddockAbandonnedInformations();
break;
case 131:
objectValue = new PaddockPrivateInformations();
break;
case 222:
objectValue = new PaddockInformationsForSell();
break;
case 150:
objectValue = new GameContextActorInformations();
break;
case 141:
objectValue = new GameRolePlayActorInformations();
break;
case 157:
objectValue = new HumanInformations();
break;
case 153:
objectValue = new HumanWithGuildInformations();
break;
case 154:
objectValue = new GameRolePlayNamedActorInformations();
break;
case 159:
objectValue = new GameRolePlayHumanoidInformations();
break;
case 36:
objectValue = new GameRolePlayCharacterInformations();
break;
case 3:
objectValue = new GameRolePlayMutantInformations();
break;
case 129:
objectValue = new GameRolePlayMerchantInformations();
break;
case 146:
objectValue = new GameRolePlayMerchantWithGuildInformations();
break;
case 180:
objectValue = new GameRolePlayMountInformations();
break;
case 147:
objectValue = new TaxCollectorStaticInformations();
break;
case 148:
objectValue = new GameRolePlayTaxCollectorInformations();
break;
case 167:
objectValue = new TaxCollectorInformations();
break;
case 372:
objectValue = new TaxCollectorLootInformations();
break;
case 166:
objectValue = new TaxCollectorInformationsInWaitForHelpState();
break;
case 186:
objectValue = new ProtectedEntityWaitingForHelpInfo();
break;
case 169:
objectValue = new TaxCollectorFightersInformation();
break;
case 165:
objectValue = new AdditionalTaxCollectorInformations();
break;
case 144:
objectValue = new MonsterInGroupInformations();
break;
case 140:
objectValue = new GroupMonsterStaticInformations();
break;
case 160:
objectValue = new GameRolePlayGroupMonsterInformations();
break;
case 155:
objectValue = new NpcStaticInformations();
break;
case 384:
objectValue = new GameRolePlayNpcQuestFlag();
break;
case 381:
objectValue = new QuestActiveInformations();
break;
case 382:
objectValue = new QuestActiveDetailedInformations();
break;
case 385:
objectValue = new QuestObjectiveInformations();
break;
case 386:
objectValue = new QuestObjectiveInformationsWithCompletion();
break;
case 156:
objectValue = new GameRolePlayNpcInformations();
break;
case 383:
objectValue = new GameRolePlayNpcWithQuestInformations();
break;
case 161:
objectValue = new GameRolePlayPrismInformations();
break;
case 143:
objectValue = new GameFightFighterInformations();
break;
case 158:
objectValue = new GameFightFighterNamedInformations();
break;
case 46:
objectValue = new GameFightCharacterInformations();
break;
case 50:
objectValue = new GameFightMutantInformations();
break;
case 151:
objectValue = new GameFightAIInformations();
break;
case 29:
objectValue = new GameFightMonsterInformations();
break;
case 203:
objectValue = new GameFightMonsterWithAlignmentInformations();
break;
case 48:
objectValue = new GameFightTaxCollectorInformations();
break;
case 174:
objectValue = new MapCoordinates();
break;
case 176:
objectValue = new MapCoordinatesExtended();
break;
case 175:
objectValue = new AtlasPointsInformations();
break;
case 354:
objectValue = new PresetItem();
break;
case 355:
objectValue = new Preset();
break;
case 350:
objectValue = new ContentPart();
break;
default:
MsgBox("Id manquant ProtocolTypeManager: " & Id)
break;


break;
}

return objectValue;

}
}
 
A

Anonymous

Invité
#6
Merci beaucoup, je vais faire avec ça ^^
 
A

Anonymous

Invité
#7
Ah au fait présente toi partie général pour mieux te connaitre...
 
A

Anonymous

Invité
#8
Après un moment de réflexion, elle est arrivée à bout de ce long switch.
 
A

Anonymous

Invité
#9
PS : Mon code était correct, il me suffisait de faire

Code:
GameRolePlayActorInformations _loc_17 = null;
...
_loc_16 = param1.readUnsignedShort();
_loc_17 = (GameRolePlayActorInformations)ProtocolTypeManager.getInstance(_loc_16);
 
Haut Bas