Commit 645bee95 authored by hex's avatar hex

update to 0x1362

parent 3606ed65
using System;
using System.Collections.Generic;
using System.IO;
public static class Config
{
public static uint ClientVersion = 0x1361;
public static uint ClientVersion = 0x1362;
class oneString
{
......@@ -13,7 +14,7 @@ public static class Config
static List<oneString> translations = new List<oneString>();
static List<oneString> uits = new List<oneString>();
static List<oneString> uits = new List<oneString>();
static string path;
......@@ -24,7 +25,7 @@ public static class Config
public static void initialize(string path)
{
Config.path = path;
Config.path = path;
if (File.Exists(path) == false)
{
File.Create(path).Close();
......@@ -51,7 +52,10 @@ public static class Config
if (loaded == false)
{
loaded = true;
string[] lines = File.ReadAllText("textures/ui/config.txt").Replace("\r", "").Replace(" ", "").Split("\n");//YGOMobile Paths
string[] lines = File.ReadAllText("textures/ui/config.txt")
.Replace("\r", "")
.Replace(" ", "")
.Split("\n"); //YGOMobile Paths
for (int i = 0; i < lines.Length; i++)
{
string[] mats = lines[i].Split("=");
......@@ -83,18 +87,16 @@ public static class Config
{
getted = Int32.Parse(Get(v, "0"));
}
catch (Exception)
{
}
catch (Exception) { }
return ((float)getted) / 100000f;
}
internal static void setFloat(string v,float f)
internal static void setFloat(string v, float f)
{
Set(v,((int)(f* 100000f)).ToString());
Set(v, ((int)(f * 100000f)).ToString());
}
public static string Get(string original,string defau)
public static string Get(string original, string defau)
{
string return_value = defau;
bool finded = false;
......@@ -122,7 +124,7 @@ public static class Config
return return_value;
}
public static void Set(string original,string setted)
public static void Set(string original, string setted)
{
bool finded = false;
for (int i = 0; i < translations.Count; i++)
......
......@@ -40,6 +40,7 @@ public static class TcpHelper
networkStream = tcpClient.GetStream();
Thread t = new Thread(receiver);
t.Start();
CtosMessage_ExternalAddress(ipString);
CtosMessage_PlayerInfo(name);
if (pswString == "L")
{
......@@ -363,6 +364,15 @@ public static class TcpHelper
Send(message);
}
public static void CtosMessage_ExternalAddress(string hostname)
{
var message = new Package();
message.Fuction = (int)CtosMessage.ExternalAddress;
message.Data.writer.Write((UInt32)0);
message.Data.writer.WriteUnicode(hostname, hostname.Length + 1);
Send(message);
}
public static void CtosMessage_PlayerInfo(string name)
{
Package message = new Package();
......
......@@ -29,6 +29,8 @@ public class Ocgcore : ServantWithCardDescription
bool flagForCancleChain = false;
private List<gameCard> chainCards = new List<gameCard>();
public float getScreenCenter()
{
return ((float)Screen.width + Program.I().cardDescription.width - gameInfo.width) / 2f;
......@@ -1195,11 +1197,21 @@ public class Ocgcore : ServantWithCardDescription
r.ReadChar();
int count = r.ReadByte();
int spcount = r.ReadByte();
int forced = r.ReadByte();
int hint0 = r.ReadInt32();
int hint1 = r.ReadInt32();
bool ignore = false;
if (forced == 0)
bool forced = false;
for (int i = 0; i < count; i++)
{
r.ReadByte(); // flag
int f = r.ReadByte(); // forced
if (f == 1)
forced = true;
r.ReadInt32(); // card id
r.ReadGPS();
r.ReadInt32(); // desc
}
if (!forced)
{
var condition = gameInfo.get_condition();
if (condition == gameInfo.chainCondition.no)
......@@ -2394,6 +2406,7 @@ public class Ocgcore : ServantWithCardDescription
break;
case GameMessage.ConfirmCards:
player = localPlayer(r.ReadByte());
bool skip_panel = r.ReadByte() == 1;
count = r.ReadByte();
for (int i = 0; i < count; i++)
{
......@@ -2957,7 +2970,7 @@ public class Ocgcore : ServantWithCardDescription
}
}
void practicalizeMessage(Package p)
private void practicalizeMessage(Package p)
{
int player = 0;
int count = 0;
......@@ -3896,17 +3909,16 @@ public class Ocgcore : ServantWithCardDescription
player = localPlayer(r.ReadChar());
count = r.ReadByte();
int spcount = r.ReadByte();
int forced = r.ReadByte();
int hint0 = r.ReadInt32();
int hint1 = r.ReadInt32();
List<gameCard> chainCards = new List<gameCard>();
chainCards = new List<gameCard>();
var forceCount = 0;
for (int i = 0; i < count; i++)
{
int flag = 0;
if (length_of_message % 12 != 0)
{
flag = r.ReadChar();
}
var flag = r.ReadChar();
var forced = r.ReadByte();
forceCount += forced;
code = r.ReadInt32() % 1000000000;
gps = r.ReadGPS();
desc = GameStringManager.get(r.ReadInt32());
......@@ -3920,12 +3932,13 @@ public class Ocgcore : ServantWithCardDescription
eff.flag = flag;
eff.ptr = i;
eff.desc = desc;
eff.forced = forced > 0;
card.effects.Add(eff);
}
}
var chain_condition = gameInfo.get_condition();
int handle_flag = 0;
if (forced == 0)
if (forceCount == 0)
{
//无强制发动的卡
if (spcount == 0)
......@@ -4149,8 +4162,23 @@ public class Ocgcore : ServantWithCardDescription
if (handle_flag == 4)
{
//有一张强制发动的卡 回应--
var answer = -1;
foreach (var ccard in chainCards)
{
foreach (var effect in ccard.effects)
{
if (effect.forced)
{
answer = effect.ptr;
break;
}
}
if (answer >= 0)
break;
}
binaryMaster = new BinaryMaster();
binaryMaster.writer.Write((Int32)(chainCards[0].effects[0].ptr));
binaryMaster.writer.Write(answer >= 0 ? answer : 0);
sendReturn(binaryMaster.get());
}
break;
......@@ -4376,6 +4404,12 @@ public class Ocgcore : ServantWithCardDescription
card.selectPtr = i;
card.levelForSelect_1 = para & 0xffff;
card.levelForSelect_2 = para >> 16;
if ((para & 0x80000000) > 0)
{
card.levelForSelect_1 = para & 0x7fffffff;
card.levelForSelect_2 = card.levelForSelect_1;
}
if (card.levelForSelect_2 == 0)
{
card.levelForSelect_2 = card.levelForSelect_1;
......@@ -4399,6 +4433,11 @@ public class Ocgcore : ServantWithCardDescription
card.selectPtr = i;
card.levelForSelect_1 = para & 0xffff;
card.levelForSelect_2 = para >> 16;
if ((para & 0x80000000) > 0)
{
card.levelForSelect_1 = para & 0x7fffffff;
card.levelForSelect_2 = card.levelForSelect_1;
}
if (card.levelForSelect_2 == 0)
{
card.levelForSelect_2 = card.levelForSelect_1;
......@@ -4688,6 +4727,7 @@ public class Ocgcore : ServantWithCardDescription
break;
case GameMessage.ConfirmCards:
player = localPlayer(r.ReadByte());
var skip_panel = r.ReadByte() == 1;
count = r.ReadByte();
int t2 = 0;
int t3 = 0;
......@@ -4783,6 +4823,12 @@ public class Ocgcore : ServantWithCardDescription
t2 = 0;
clearResponse();
}
else if (skip_panel)
{
Sleep(t2);
t2 = 0;
clearResponse();
}
}
Sleep(t2);
break;
......@@ -9753,8 +9799,23 @@ public class Ocgcore : ServantWithCardDescription
autoForceChainHandler = autoForceChainHandlerType.autoHandleAll;
try
{
var answer = -1;
foreach (var card in chainCards)
{
foreach (var effect in card.effects)
{
if (effect.forced)
{
answer = effect.ptr;
break;
}
}
if (answer >= 0)
break;
}
binaryMaster = new BinaryMaster();
binaryMaster.writer.Write(0);
binaryMaster.writer.Write(answer >= 0 ? answer : 0);
sendReturn(binaryMaster.get());
}
catch (System.Exception e)
......
......@@ -338,7 +338,7 @@ public class Program : MonoBehaviour
#elif UNITY_IPHONE //iPhone
string GamePaths = Application.persistentDataPath + "/ygopro2/";
if (!File.Exists(GamePaths + "updates/version-1.036.1-Otokaze.txt"))
if (!File.Exists(GamePaths + "updates/version-1.036.2-TCube.txt"))
{
string filePath = Application.streamingAssetsPath + "/ygopro2-data.zip";
ExtractZipFile(System.IO.File.ReadAllBytes(filePath), GamePaths);
......@@ -1195,7 +1195,7 @@ public class Program : MonoBehaviour
FPS = FPS.Substring(0, 5);
}
catch { }
GUI.Label(new Rect(10, 5, 200, 200), "[Ver 1.036.1-Otokaze] " + "FPS: " + FPS);
GUI.Label(new Rect(10, 5, 200, 200), "[Ver 1.036.2-TCube] " + "FPS: " + FPS);
}
void Update()
......
......@@ -13,11 +13,12 @@
Surrender = 0x14,
TimeConfirm = 0x15,
Chat = 0x16,
ExternalAddress = 0x17,
HsToDuelist = 0x20,
HsToObserver = 0x21,
HsReady = 0x22,
HsNotReady = 0x23,
HsKick = 0x24,
HsStart = 0x25
HsStart = 0x25,
}
}
......@@ -1417,7 +1417,7 @@ MonoBehaviour:
keepCrispWhenShrunk: 1
mTrueTypeFont: {fileID: 12800000, guid: f775853fdfd14bb47934543e95c3bae3, type: 3}
mFont: {fileID: 0}
mText: KoishiPro2 iOS 1.036.1-Otokaze
mText: KoishiPro2 iOS 1.036.2-tcube
mFontSize: 18
mFontStyle: 0
mAlignment: 1
......
......@@ -126,7 +126,7 @@ PlayerSettings:
16:10: 1
16:9: 1
Others: 1
bundleVersion: 1.036.1-Otokaze
bundleVersion: 1.036.2-TCube
preloadedAssets: []
metroInputSource: 0
wsaTransparentSwapchain: 0
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment