Commit 645bee95 authored by hex's avatar hex

update to 0x1362

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