第一次提交 游戏界面资源数据已更新
8
games/games/Demos/Demo.ini
Normal file
@@ -0,0 +1,8 @@
|
||||
[Chinese]
|
||||
ÑùÀý¹¤³Ì1=http://www.html5abc.com
|
||||
ÑùÀý¹¤³Ì2=http://www.html5abc.com
|
||||
ÑùÀý¹¤³Ì3=http://www.html5abc.com
|
||||
[English]
|
||||
Demo1=http://www.html5abc.com
|
||||
Demo2=http://www.html5abc.com
|
||||
Demo3=http://www.html5abc.com
|
||||
358
games/games/Edit/DockWindows.ini
Normal file
@@ -0,0 +1,358 @@
|
||||
[Root]
|
||||
DockControlCount=12
|
||||
|
||||
[0]
|
||||
ClassName=TdxDockSite
|
||||
Name=dkSiteMain
|
||||
ParentForm=frmMain_edit
|
||||
ChildCount=2
|
||||
Children0=7
|
||||
Children1=11
|
||||
AllowDockClientsLeft=1
|
||||
AllowDockClientsTop=1
|
||||
AllowDockClientsRight=1
|
||||
AllowDockClientsBottom=1
|
||||
AllowDockClientsClient=1
|
||||
Width=2552
|
||||
Height=1224
|
||||
OriginalWidth=2552
|
||||
OriginalHeight=1224
|
||||
Visible=1
|
||||
AutoSize=0
|
||||
|
||||
[7]
|
||||
ClassName=TdxLayoutDockSite
|
||||
Name=dxLayoutDockSite7
|
||||
ParentForm=frmMain_edit
|
||||
ChildCount=2
|
||||
Children0=8
|
||||
Children1=10
|
||||
DockType=1
|
||||
AllowDockLeft=1
|
||||
AllowDockTop=1
|
||||
AllowDockRight=1
|
||||
AllowDockBottom=1
|
||||
AllowDockClient=1
|
||||
AllowDockClientsLeft=1
|
||||
AllowDockClientsTop=1
|
||||
AllowDockClientsRight=1
|
||||
AllowDockClientsBottom=1
|
||||
AllowDockClientsClient=1
|
||||
AllowFloating=1
|
||||
CaptionButtonClose=1
|
||||
CaptionButtonHide=1
|
||||
CaptionButtonMaximize=1
|
||||
Dockable=1
|
||||
Width=2224
|
||||
Height=1224
|
||||
OriginalWidth=300
|
||||
OriginalHeight=200
|
||||
Visible=1
|
||||
AutoHide=0
|
||||
StoredAutoHide=0
|
||||
|
||||
[8]
|
||||
ClassName=TdxLayoutDockSite
|
||||
Name=dxLayoutDockSite2
|
||||
ParentForm=frmMain_edit
|
||||
ChildCount=2
|
||||
Children0=9
|
||||
Children1=1
|
||||
DockType=1
|
||||
AllowDockLeft=1
|
||||
AllowDockTop=1
|
||||
AllowDockRight=1
|
||||
AllowDockBottom=1
|
||||
AllowDockClient=1
|
||||
AllowDockClientsLeft=1
|
||||
AllowDockClientsTop=1
|
||||
AllowDockClientsRight=1
|
||||
AllowDockClientsBottom=1
|
||||
AllowDockClientsClient=1
|
||||
AllowFloating=1
|
||||
CaptionButtonClose=1
|
||||
CaptionButtonHide=1
|
||||
CaptionButtonMaximize=1
|
||||
Dockable=1
|
||||
Width=2224
|
||||
Height=1224
|
||||
OriginalWidth=300
|
||||
OriginalHeight=200
|
||||
Visible=1
|
||||
AutoHide=0
|
||||
StoredAutoHide=0
|
||||
|
||||
[9]
|
||||
ClassName=TdxLayoutDockSite
|
||||
Name=dxLayoutDockSite5
|
||||
ParentForm=frmMain_edit
|
||||
ChildCount=0
|
||||
DockType=1
|
||||
AllowDockLeft=1
|
||||
AllowDockTop=1
|
||||
AllowDockRight=1
|
||||
AllowDockBottom=1
|
||||
AllowDockClient=1
|
||||
AllowDockClientsLeft=1
|
||||
AllowDockClientsTop=1
|
||||
AllowDockClientsRight=1
|
||||
AllowDockClientsBottom=1
|
||||
AllowDockClientsClient=1
|
||||
AllowFloating=1
|
||||
CaptionButtonClose=1
|
||||
CaptionButtonHide=1
|
||||
CaptionButtonMaximize=1
|
||||
Dockable=1
|
||||
Width=2224
|
||||
Height=1224
|
||||
OriginalWidth=300
|
||||
OriginalHeight=200
|
||||
Visible=1
|
||||
AutoHide=0
|
||||
StoredAutoHide=0
|
||||
|
||||
[1]
|
||||
ClassName=TdxDockPanel
|
||||
Name=dkPnlMain
|
||||
ParentForm=frmMain_edit
|
||||
ChildCount=0
|
||||
DockType=1
|
||||
AllowDockLeft=1
|
||||
AllowDockTop=1
|
||||
AllowDockRight=1
|
||||
AllowDockBottom=1
|
||||
AllowDockClient=1
|
||||
AllowDockClientsLeft=0
|
||||
AllowDockClientsTop=0
|
||||
AllowDockClientsRight=0
|
||||
AllowDockClientsBottom=0
|
||||
AllowDockClientsClient=0
|
||||
AllowFloating=0
|
||||
CaptionButtonClose=1
|
||||
CaptionButtonHide=1
|
||||
CaptionButtonMaximize=1
|
||||
Dockable=0
|
||||
Width=2224
|
||||
Height=1224
|
||||
OriginalWidth=185
|
||||
OriginalHeight=140
|
||||
Visible=1
|
||||
AutoHide=0
|
||||
StoredAutoHide=0
|
||||
|
||||
[10]
|
||||
ClassName=TdxTabContainerDockSite
|
||||
Name=dxTabContainerDockSite2
|
||||
ParentForm=frmMain_edit
|
||||
ChildCount=2
|
||||
Children0=2
|
||||
Children1=3
|
||||
DockType=5
|
||||
AllowDockLeft=1
|
||||
AllowDockTop=1
|
||||
AllowDockRight=1
|
||||
AllowDockBottom=1
|
||||
AllowDockClient=1
|
||||
AllowDockClientsLeft=1
|
||||
AllowDockClientsTop=1
|
||||
AllowDockClientsRight=1
|
||||
AllowDockClientsBottom=1
|
||||
AllowDockClientsClient=1
|
||||
AllowFloating=1
|
||||
CaptionButtonClose=1
|
||||
CaptionButtonHide=1
|
||||
CaptionButtonMaximize=1
|
||||
Dockable=1
|
||||
Width=2224
|
||||
Height=359
|
||||
OriginalWidth=185
|
||||
OriginalHeight=359
|
||||
Visible=0
|
||||
AutoHide=0
|
||||
StoredAutoHide=0
|
||||
ActiveChildIndex=-1
|
||||
ShowCaption=1
|
||||
TabsPosition=1
|
||||
TabsScroll=1
|
||||
|
||||
[2]
|
||||
ClassName=TdxDockPanel
|
||||
Name=dkPnlOutput
|
||||
ParentForm=frmMain_edit
|
||||
ChildCount=0
|
||||
DockType=1
|
||||
AllowDockLeft=1
|
||||
AllowDockTop=1
|
||||
AllowDockRight=1
|
||||
AllowDockBottom=1
|
||||
AllowDockClient=1
|
||||
AllowDockClientsLeft=1
|
||||
AllowDockClientsTop=1
|
||||
AllowDockClientsRight=1
|
||||
AllowDockClientsBottom=1
|
||||
AllowDockClientsClient=1
|
||||
AllowFloating=0
|
||||
CaptionButtonClose=1
|
||||
CaptionButtonHide=1
|
||||
CaptionButtonMaximize=1
|
||||
Dockable=1
|
||||
Width=848
|
||||
Height=67
|
||||
OriginalWidth=185
|
||||
OriginalHeight=115
|
||||
Visible=0
|
||||
AutoHide=0
|
||||
StoredAutoHide=0
|
||||
|
||||
[3]
|
||||
ClassName=TdxDockPanel
|
||||
Name=dkPnlFindOut
|
||||
ParentForm=frmMain_edit
|
||||
ChildCount=0
|
||||
DockType=1
|
||||
AllowDockLeft=1
|
||||
AllowDockTop=1
|
||||
AllowDockRight=1
|
||||
AllowDockBottom=1
|
||||
AllowDockClient=1
|
||||
AllowDockClientsLeft=1
|
||||
AllowDockClientsTop=1
|
||||
AllowDockClientsRight=1
|
||||
AllowDockClientsBottom=1
|
||||
AllowDockClientsClient=1
|
||||
AllowFloating=0
|
||||
CaptionButtonClose=1
|
||||
CaptionButtonHide=1
|
||||
CaptionButtonMaximize=1
|
||||
Dockable=1
|
||||
Width=2224
|
||||
Height=359
|
||||
OriginalWidth=185
|
||||
OriginalHeight=359
|
||||
Visible=0
|
||||
AutoHide=0
|
||||
StoredAutoHide=0
|
||||
|
||||
[11]
|
||||
ClassName=TdxTabContainerDockSite
|
||||
Name=dxTabContainerDockSite1
|
||||
ParentForm=frmMain_edit
|
||||
ChildCount=3
|
||||
Children0=4
|
||||
Children1=5
|
||||
Children2=6
|
||||
DockType=2
|
||||
AllowDockLeft=1
|
||||
AllowDockTop=1
|
||||
AllowDockRight=1
|
||||
AllowDockBottom=1
|
||||
AllowDockClient=1
|
||||
AllowDockClientsLeft=1
|
||||
AllowDockClientsTop=1
|
||||
AllowDockClientsRight=1
|
||||
AllowDockClientsBottom=1
|
||||
AllowDockClientsClient=1
|
||||
AllowFloating=1
|
||||
CaptionButtonClose=1
|
||||
CaptionButtonHide=1
|
||||
CaptionButtonMaximize=1
|
||||
Dockable=1
|
||||
Width=328
|
||||
Height=1224
|
||||
OriginalWidth=328
|
||||
OriginalHeight=140
|
||||
Visible=1
|
||||
AutoHide=0
|
||||
StoredAutoHide=0
|
||||
ActiveChildIndex=0
|
||||
ShowCaption=1
|
||||
TabsPosition=1
|
||||
TabsScroll=1
|
||||
|
||||
[4]
|
||||
ClassName=TdxDockPanel
|
||||
Name=dkPnlProject
|
||||
ParentForm=frmMain_edit
|
||||
ChildCount=0
|
||||
DockType=1
|
||||
AllowDockLeft=1
|
||||
AllowDockTop=1
|
||||
AllowDockRight=1
|
||||
AllowDockBottom=1
|
||||
AllowDockClient=1
|
||||
AllowDockClientsLeft=1
|
||||
AllowDockClientsTop=1
|
||||
AllowDockClientsRight=1
|
||||
AllowDockClientsBottom=1
|
||||
AllowDockClientsClient=1
|
||||
AllowFloating=0
|
||||
CaptionButtonClose=1
|
||||
CaptionButtonHide=1
|
||||
CaptionButtonMaximize=1
|
||||
Dockable=1
|
||||
Width=324
|
||||
Height=1176
|
||||
OriginalWidth=328
|
||||
OriginalHeight=140
|
||||
Visible=1
|
||||
AutoHide=0
|
||||
StoredAutoHide=0
|
||||
|
||||
[5]
|
||||
ClassName=TdxDockPanel
|
||||
Name=dkPnlScript
|
||||
ParentForm=frmMain_edit
|
||||
ChildCount=0
|
||||
DockType=1
|
||||
AllowDockLeft=1
|
||||
AllowDockTop=1
|
||||
AllowDockRight=1
|
||||
AllowDockBottom=1
|
||||
AllowDockClient=1
|
||||
AllowDockClientsLeft=1
|
||||
AllowDockClientsTop=1
|
||||
AllowDockClientsRight=1
|
||||
AllowDockClientsBottom=1
|
||||
AllowDockClientsClient=1
|
||||
AllowFloating=0
|
||||
CaptionButtonClose=1
|
||||
CaptionButtonHide=1
|
||||
CaptionButtonMaximize=1
|
||||
Dockable=1
|
||||
Width=324
|
||||
Height=1176
|
||||
OriginalWidth=328
|
||||
OriginalHeight=140
|
||||
Visible=1
|
||||
AutoHide=0
|
||||
StoredAutoHide=0
|
||||
|
||||
[6]
|
||||
ClassName=TdxDockPanel
|
||||
Name=dkPnlEngine
|
||||
ParentForm=frmMain_edit
|
||||
ChildCount=0
|
||||
DockType=1
|
||||
AllowDockLeft=1
|
||||
AllowDockTop=1
|
||||
AllowDockRight=1
|
||||
AllowDockBottom=1
|
||||
AllowDockClient=1
|
||||
AllowDockClientsLeft=1
|
||||
AllowDockClientsTop=1
|
||||
AllowDockClientsRight=1
|
||||
AllowDockClientsBottom=1
|
||||
AllowDockClientsClient=1
|
||||
AllowFloating=0
|
||||
CaptionButtonClose=1
|
||||
CaptionButtonHide=1
|
||||
CaptionButtonMaximize=1
|
||||
Dockable=1
|
||||
Width=324
|
||||
Height=1176
|
||||
OriginalWidth=328
|
||||
OriginalHeight=140
|
||||
Visible=1
|
||||
AutoHide=0
|
||||
StoredAutoHide=0
|
||||
|
||||
471
games/games/Edit/DocumentTypes/HTML.xml
Normal file
@@ -0,0 +1,471 @@
|
||||
<?xml version="1.0" encoding="windows-1251"?>
|
||||
<SynUniHighlighter Version="2.0">
|
||||
<SyntaxColoring>
|
||||
<Info>
|
||||
<General Name="HTML" Extensions="htm html asp" Version="1" Revision="0" Sample="<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
</head>
|
||||
<!-- Styles example: -->
|
||||
<style>
|
||||
H1 {
|
||||
background-color :black;
|
||||
color : White;
|
||||
font-family : Arial, Helvetica, sans-serif;
|
||||
font : 9pt Arial;
|
||||
font-size : 9pt;}
|
||||
</style>
|
||||
<body bgcolor="#DDDDDD" onLoad ="checkowner()">
|
||||
<form method="POST" name="Form1">&nbsp;
|
||||
<div align="center"><center><table border="0" width="100%">
|
||||
<tr>
|
||||
<td><font size="1"></font></td>
|
||||
<script type="text/javascript" src="coolmenu.js"></script>
|
||||
<td align="right" valign="top"><font size="1"><input
|
||||
type="button" name="b2" value="&lt;&lt;Íàçà?quot;
|
||||
onclick="previous(Form1)"> <input type="button"
|
||||
name="b1" value="&lt;&lt;Íàçà?quot;
|
||||
onclick="next(Form1)"> </font></td>
|
||||
</tr>
|
||||
<!-- Javascript -->
|
||||
<script language="JavaScript">
|
||||
function checkowner()
|
||||
{
|
||||
try
|
||||
{
|
||||
if (parent.window.frames[1].name !="main")
|
||||
{
|
||||
window.document.location ="start.htm"
|
||||
}
|
||||
}
|
||||
catch(errorObject)
|
||||
/*from page1*/
|
||||
_child = new String;
|
||||
if (parent.window.frames[0].name=="f1")
|
||||
{
|
||||
return
|
||||
}//if (parent.window.frames[0].name=="f1")
|
||||
if (parseInt(_child) > _chcount)
|
||||
{
|
||||
_chcount = _chcount+1
|
||||
return
|
||||
}//if (_child != "0")
|
||||
else
|
||||
</script>
|
||||
<html>
|
||||
<!-- VBscript -->
|
||||
<SCRIPT LANGUAGE="VBScript">
|
||||
<!--
|
||||
Function CanDeliver(Dt)
|
||||
CanDeliver = (CDate(Dt) - Now()) > 2
|
||||
End Function
|
||||
-->
|
||||
</SCRIPT>
|
||||
<TITLE>Place Your Order</TITLE>
|
||||
<SCRIPT LANGUAGE="VBScript">
|
||||
<!--
|
||||
Function CanDeliver(Dt)
|
||||
CanDeliver = (CDate(Dt) - Now()) > 2
|
||||
End Function
|
||||
//Copyright?1998 Microsoft Corporation. All Rights Reserved.
|
||||
//**Start Encode**
|
||||
function verifyCorrectBrowser(){
|
||||
if(navigator.appName == "Microsoft Internet Explorert")
|
||||
if (navigator.appVersion.indexOf ("5.") >= 0)
|
||||
return(true);
|
||||
else
|
||||
return(false);
|
||||
}
|
||||
function getAppropriatePage(){
|
||||
var str4 = "would have been loaded.";
|
||||
if (verifyCorrectBrowser())
|
||||
document.write(str1 + str3 + str4);
|
||||
else
|
||||
document.write(str1 + str2 + str3 + str4);
|
||||
}
|
||||
-->
|
||||
</SCRIPT>
|
||||
|
||||
<!-- ASP (VB Script) -->
|
||||
<%
|
||||
Option Explicit
|
||||
Dim sql,rsRoot
|
||||
username = Request.Cookies("pb_username")
|
||||
'repliesdisplay alters amount of replies to display on page
|
||||
if recordnum = "" then recordnum = 0 end if
|
||||
id = Request.QueryString("id")
|
||||
%>
|
||||
<!--#include file="conn.asp"-->
|
||||
|
||||
|
||||
|
||||
" History=""/>
|
||||
<Author Name="Vitaly Nevzorov" Mail="nevzorov@yahoo.com" Web="www.delphist.com" Copyright="Copyright (c) Vitaly Nevzorov, 2002" Company="N/A" Remark=""/>
|
||||
</Info>
|
||||
<Schemes/>
|
||||
<Editor/>
|
||||
<MainRules Name="SyntaxColoring" Style="Root">
|
||||
<Attributes Foreground="clBlack" Background="clWhite"/>
|
||||
<Delimiters Value="!"#$%&'()*+,-./:;<=>?@[\]^`{|}~"/>
|
||||
<SubRules>
|
||||
<Range Name="HTML Tag" Style="">
|
||||
<Attributes Foreground="clBlack" Background="clWhite" ParentBackground="True"/>
|
||||
<Delimiters Value="!"#$%&'()*+,-./:;<=>?@[\]^`{|}~"/>
|
||||
<OpenToken StartLine=""/>
|
||||
<CloseToken StartLine=""/>
|
||||
<Properties/>
|
||||
<MultiTokens>
|
||||
<Tokens Open="<" Close=">"/>
|
||||
</MultiTokens>
|
||||
<SubRules>
|
||||
<Range Name="Values "..."" Style="">
|
||||
<Attributes Foreground="$00FF0080" Background="clWhite" ParentBackground="True"/>
|
||||
<Delimiters Value="!"#$%&'()*+,-./:;<=>?@[\]^`{|}~"/>
|
||||
<OpenToken StartLine=""/>
|
||||
<CloseToken StartLine=""/>
|
||||
<Properties/>
|
||||
<MultiTokens>
|
||||
<Tokens Open=""" Close="""/>
|
||||
</MultiTokens>
|
||||
<SubRules/>
|
||||
</Range>
|
||||
<Range Name="Values '...'" Style="">
|
||||
<Attributes Foreground="$00FF0080" Background="clWhite" ParentBackground="True"/>
|
||||
<Delimiters Value="!"#$%&'()*+,-./:;<=>?@[\]^`{|}~"/>
|
||||
<OpenToken StartLine=""/>
|
||||
<CloseToken StartLine=""/>
|
||||
<Properties/>
|
||||
<MultiTokens>
|
||||
<Tokens Open="'" Close="'"/>
|
||||
</MultiTokens>
|
||||
<SubRules/>
|
||||
</Range>
|
||||
<KeyList Name="Standard Tags" Enabled="True" Style="" Words="html
|
||||
head
|
||||
meta
|
||||
body
|
||||
form
|
||||
div
|
||||
tr
|
||||
td
|
||||
center
|
||||
table
|
||||
font
|
||||
a
|
||||
abbr
|
||||
acronym
|
||||
address
|
||||
applet
|
||||
area
|
||||
b
|
||||
base
|
||||
basefont
|
||||
bdo
|
||||
big
|
||||
blockquote
|
||||
button
|
||||
cite
|
||||
br
|
||||
caption
|
||||
code
|
||||
dd
|
||||
dfn
|
||||
col
|
||||
colgroup
|
||||
dir
|
||||
dl
|
||||
dt
|
||||
em
|
||||
fieldset
|
||||
h2
|
||||
iframe
|
||||
h1
|
||||
i
|
||||
frame
|
||||
frameset
|
||||
h3
|
||||
h4
|
||||
h5
|
||||
h6
|
||||
hr
|
||||
ilayer
|
||||
img
|
||||
input
|
||||
isindex
|
||||
kbd
|
||||
label
|
||||
legend
|
||||
li
|
||||
link
|
||||
map
|
||||
noframes
|
||||
object
|
||||
p
|
||||
menu
|
||||
ol
|
||||
noscript
|
||||
optgroup
|
||||
option
|
||||
param
|
||||
pre
|
||||
q
|
||||
s
|
||||
samp
|
||||
select
|
||||
small
|
||||
span
|
||||
strike
|
||||
strong
|
||||
sub
|
||||
sup
|
||||
tbody
|
||||
text
|
||||
textarea
|
||||
tfoot
|
||||
th
|
||||
thead
|
||||
title
|
||||
tt
|
||||
ul
|
||||
u
|
||||
var
|
||||
style
|
||||
script
|
||||
">
|
||||
<Attributes Foreground="$00A00000" Background="clWhite" ParentBackground="True"/>
|
||||
</KeyList>
|
||||
<KeyList Name="Attributes" Enabled="True" Style="" Words="abbr
|
||||
|
||||
accept-charset
|
||||
accept
|
||||
accesskey
|
||||
action
|
||||
align
|
||||
alink
|
||||
alt
|
||||
archive
|
||||
axis
|
||||
background
|
||||
bgcolor
|
||||
border
|
||||
cellpadding
|
||||
cellspacing
|
||||
char
|
||||
charoff
|
||||
charset
|
||||
checked
|
||||
cite=
|
||||
class
|
||||
classid
|
||||
clear
|
||||
code=
|
||||
codebase
|
||||
codetype
|
||||
color
|
||||
cols
|
||||
colspan
|
||||
compact
|
||||
content
|
||||
coords
|
||||
data
|
||||
datetime
|
||||
declare
|
||||
defer
|
||||
dir=
|
||||
disabled
|
||||
enctype
|
||||
face
|
||||
for
|
||||
frame=
|
||||
frameborder
|
||||
headers
|
||||
height
|
||||
href
|
||||
hreflang
|
||||
hspace
|
||||
http-equiv
|
||||
id
|
||||
ismap
|
||||
label=
|
||||
lang
|
||||
language
|
||||
link
|
||||
longdesc
|
||||
mailto
|
||||
marginheight
|
||||
marginwidth
|
||||
maxlength
|
||||
media
|
||||
method
|
||||
multiple
|
||||
name
|
||||
nohref
|
||||
noresize
|
||||
noshade
|
||||
nowrap
|
||||
object=
|
||||
profile
|
||||
prompt
|
||||
readonly
|
||||
rel
|
||||
rev
|
||||
rows
|
||||
rowspan
|
||||
rules
|
||||
scheme
|
||||
scope
|
||||
scrolling
|
||||
selected
|
||||
shape
|
||||
size
|
||||
span=
|
||||
src
|
||||
standby
|
||||
start
|
||||
style=
|
||||
summary
|
||||
tabindex
|
||||
target
|
||||
text=
|
||||
title=
|
||||
type
|
||||
usemap
|
||||
valign
|
||||
value
|
||||
valuetype
|
||||
version
|
||||
vlink
|
||||
vspace
|
||||
width
|
||||
">
|
||||
<Attributes Foreground="clRed" Background="clWhite" ParentBackground="True"/>
|
||||
</KeyList>
|
||||
<KeyList Name="Standard Events" Enabled="True" Style="" Words="onblur
|
||||
onchange
|
||||
onclick
|
||||
ondblclick
|
||||
onfocus
|
||||
onkeydown
|
||||
onkeypress
|
||||
onkeyup
|
||||
onload
|
||||
onmousedown
|
||||
onmousemove
|
||||
onmouseout
|
||||
onmouseover
|
||||
onmouseup
|
||||
onreset
|
||||
onselect
|
||||
onsubmit
|
||||
onunload
|
||||
">
|
||||
<Attributes Foreground="clRed" Background="clWhite" ParentBackground="True"/>
|
||||
</KeyList>
|
||||
</SubRules>
|
||||
</Range>
|
||||
<Range Name="HTML Remarks" Style="">
|
||||
<Attributes Foreground="clGreen" Background="clWhite" ParentBackground="True"/>
|
||||
<Delimiters Value="!"#$%&'()*+,-./:;<=>?@[\]^`{|}~"/>
|
||||
<OpenToken StartLine=""/>
|
||||
<CloseToken StartLine=""/>
|
||||
<Properties/>
|
||||
<MultiTokens>
|
||||
<Tokens Open="<!--" Close="-->"/>
|
||||
</MultiTokens>
|
||||
<SubRules/>
|
||||
</Range>
|
||||
<Range Name="Doc Type" Style="Doc Type">
|
||||
<Attributes Foreground="clBlack" Background="$0080FFFF"/>
|
||||
<Delimiters Value="!"#$%&'()*+,-./:;<=>?@[\]^`{|}~"/>
|
||||
<OpenToken StartLine=""/>
|
||||
<CloseToken StartLine=""/>
|
||||
<Properties/>
|
||||
<MultiTokens>
|
||||
<Tokens Open="<!" Close=">"/>
|
||||
</MultiTokens>
|
||||
<SubRules/>
|
||||
</Range>
|
||||
<Range Name="Include" Style="">
|
||||
<Attributes Foreground="$00A00000" Background="clWhite" ParentBackground="True"/>
|
||||
<Delimiters Value="!"#$%&'()*+,-./:;<=>?@[\]^`{|}~"/>
|
||||
<OpenToken StartLine=""/>
|
||||
<CloseToken StartLine=""/>
|
||||
<Properties/>
|
||||
<MultiTokens>
|
||||
<Tokens Open="<!--#include" Close="-->"/>
|
||||
</MultiTokens>
|
||||
<SubRules>
|
||||
<Range Name="Name" Style="">
|
||||
<Attributes Foreground="clRed" Background="clWhite" ParentBackground="True"/>
|
||||
<Delimiters Value="!"#$%&'()*+,-./:;<=>?@[\]^`{|}~"/>
|
||||
<OpenToken StartLine=""/>
|
||||
<CloseToken StartLine=""/>
|
||||
<Properties/>
|
||||
<MultiTokens>
|
||||
<Tokens Open=""" Close="""/>
|
||||
</MultiTokens>
|
||||
<SubRules/>
|
||||
</Range>
|
||||
</SubRules>
|
||||
</Range>
|
||||
</SubRules>
|
||||
</MainRules>
|
||||
</SyntaxColoring>
|
||||
<CodeFolding>
|
||||
<SkipRegion>
|
||||
<Open Symbol="<!--"/>
|
||||
<Close Symbol="-->"/>
|
||||
<RegionType Type="1"/>
|
||||
</SkipRegion>
|
||||
<FoldRegion Name="Style" Type="1">
|
||||
<OpenToken Symbol="<STYLE"/>
|
||||
<CloseToken Symbol="</STYLE>"/>
|
||||
<Properties AllowNoSubs="True"/>
|
||||
<SubRegions/>
|
||||
</FoldRegion>
|
||||
<FoldRegion Name="VB Script" Type="1">
|
||||
<OpenToken Symbol="<SCRIPT LANGUAGE="V"/>
|
||||
<CloseToken Symbol="</SCRIPT>"/>
|
||||
<Properties/>
|
||||
<SubRegions/>
|
||||
</FoldRegion>
|
||||
<FoldRegion Name="Body" Type="1">
|
||||
<OpenToken Symbol="<BODY"/>
|
||||
<CloseToken Symbol="</BODY"/>
|
||||
<Properties/>
|
||||
<SubRegions/>
|
||||
</FoldRegion>
|
||||
<FoldRegion Name="ASP" Type="1">
|
||||
<OpenToken Symbol="<%"/>
|
||||
<CloseToken Symbol="%>"/>
|
||||
<Properties AllowNoSubs="True"/>
|
||||
<SubRegions/>
|
||||
</FoldRegion>
|
||||
<FoldRegion Name="Java Script" Type="1">
|
||||
<OpenToken Symbol="<SCRIPT LANGUAGE="J"/>
|
||||
<CloseToken Symbol="</SCRIPT>"/>
|
||||
<Properties AllowNoSubs="True"/>
|
||||
<SubRegions/>
|
||||
</FoldRegion>
|
||||
<FoldRegion Name="Head" Type="1">
|
||||
<OpenToken Symbol="<HEAD"/>
|
||||
<CloseToken Symbol="</HEAD>"/>
|
||||
<Properties/>
|
||||
<SubRegions/>
|
||||
</FoldRegion>
|
||||
<FoldRegion Name="Table" Type="1">
|
||||
<OpenToken Symbol="<TABLE"/>
|
||||
<CloseToken Symbol="</TABLE>"/>
|
||||
<Properties/>
|
||||
<SubRegions/>
|
||||
</FoldRegion>
|
||||
<FoldRegion Name="{..}" Type="0">
|
||||
<OpenToken Symbol="{"/>
|
||||
<CloseToken Symbol="}"/>
|
||||
<Properties/>
|
||||
<SubRegions/>
|
||||
</FoldRegion>
|
||||
</CodeFolding>
|
||||
<CustomData/>
|
||||
</SynUniHighlighter>
|
||||
186
games/games/Edit/DocumentTypes/Java Script.xml
Normal file
@@ -0,0 +1,186 @@
|
||||
<?xml version="1.0" encoding="windows-1251"?>
|
||||
<SynUniHighlighter Version="2.0">
|
||||
<SyntaxColoring>
|
||||
<Info>
|
||||
<General Name="Java script" Extensions="js" Version="1" Revision="0" Sample="// Syntax highlighting
|
||||
function printNumber()
|
||||
{
|
||||
var number = 1234;
|
||||
var x;
|
||||
document.write("The number is " + number);
|
||||
for (var i = 0; i <= number; i++)
|
||||
{
|
||||
x++;
|
||||
x--;
|
||||
x += 1.0;
|
||||
}
|
||||
i += @; // illegal character
|
||||
}
|
||||
body.onLoad = printNumber;
|
||||
|
||||
|
||||
|
||||
" History=""/>
|
||||
<Author Name="Vitaly Nevzorov" Mail="nevzorov@yahoo.com" Web="www.delphist.com" Copyright="Copyright (c) Vitaly Nevzorov, 2002" Company="N/A" Remark=""/>
|
||||
</Info>
|
||||
<Schemes/>
|
||||
<Editor/>
|
||||
<MainRules Name="SyntaxColoring" CaseSensitive="True" Style="Root">
|
||||
<Attributes Foreground="clBlack" Background="clWhite"/>
|
||||
<Delimiters Value="!"#$%&'()*+,-./:;<=>?@[\]^`{|}~"/>
|
||||
<SubRules>
|
||||
<Range Name="Remark //" CaseSensitive="True" Style="">
|
||||
<Attributes Foreground="clGreen" Background="clWhite" ParentBackground="True"/>
|
||||
<Delimiters Value="!"#$%&'()*+,-./:;<=>?@[\]^`{|}~"/>
|
||||
<OpenToken StartLine=""/>
|
||||
<CloseToken StartLine=""/>
|
||||
<Properties CloseOnEol="True"/>
|
||||
<MultiTokens>
|
||||
<Tokens Open="//"/>
|
||||
</MultiTokens>
|
||||
<SubRules/>
|
||||
</Range>
|
||||
<Range Name="Remark /*...*/" CaseSensitive="True" Style="">
|
||||
<Attributes Foreground="clGreen" Background="clWhite" ParentBackground="True"/>
|
||||
<Delimiters Value="!"#$%&'()*+,-./:;<=>?@[\]^`{|}~"/>
|
||||
<OpenToken StartLine=""/>
|
||||
<CloseToken StartLine=""/>
|
||||
<Properties/>
|
||||
<MultiTokens>
|
||||
<Tokens Open="/*" Close="*/"/>
|
||||
</MultiTokens>
|
||||
<SubRules/>
|
||||
</Range>
|
||||
<Range Name="Strings "..."" CaseSensitive="True" Style="Strings">
|
||||
<Attributes Foreground="$008000FF" Background="clWhite" ParentBackground="True"/>
|
||||
<Delimiters Value="!"#$%&'()*+,-./:;<=>?@[\]^`{|}~"/>
|
||||
<OpenToken StartLine=""/>
|
||||
<CloseToken StartLine=""/>
|
||||
<Properties/>
|
||||
<MultiTokens>
|
||||
<Tokens Open=""" Close="""/>
|
||||
</MultiTokens>
|
||||
<SubRules/>
|
||||
</Range>
|
||||
<Range Name="Strings '...'" CaseSensitive="True" Style="Strings">
|
||||
<Attributes Foreground="$008000FF" Background="clWhite" ParentBackground="True"/>
|
||||
<Delimiters Value="!"#$%&'()*+,-./:;<=>?@[\]^`{|}~"/>
|
||||
<OpenToken StartLine=""/>
|
||||
<CloseToken StartLine=""/>
|
||||
<Properties/>
|
||||
<MultiTokens>
|
||||
<Tokens Open="'" Close="'"/>
|
||||
</MultiTokens>
|
||||
<SubRules/>
|
||||
</Range>
|
||||
<KeyList Name="Reserved words" Enabled="True" Style="" Words="if
|
||||
do
|
||||
in
|
||||
case
|
||||
NaN
|
||||
char
|
||||
catch
|
||||
break
|
||||
callee
|
||||
for
|
||||
else
|
||||
var
|
||||
new
|
||||
false
|
||||
int
|
||||
package
|
||||
long
|
||||
void
|
||||
delete
|
||||
byte
|
||||
enum
|
||||
class
|
||||
float
|
||||
this
|
||||
while
|
||||
goto
|
||||
double
|
||||
Null
|
||||
null
|
||||
with
|
||||
try
|
||||
public
|
||||
boolean
|
||||
true
|
||||
default
|
||||
debugger
|
||||
const
|
||||
native
|
||||
static
|
||||
start
|
||||
finally
|
||||
super
|
||||
short
|
||||
interface
|
||||
switch
|
||||
throw
|
||||
abstract
|
||||
typeof
|
||||
import
|
||||
extends
|
||||
private
|
||||
return
|
||||
export
|
||||
continue
|
||||
function
|
||||
throws
|
||||
instanceof
|
||||
protected
|
||||
transient
|
||||
implements
|
||||
prototype
|
||||
synchronized
|
||||
constructor
|
||||
final
|
||||
">
|
||||
<Attributes Foreground="clBlue" Background="clWhite" ParentBackground="True" Style="BI"/>
|
||||
</KeyList>
|
||||
<KeyList Name="Symbols" Enabled="True" Style="" Words="{
|
||||
}
|
||||
(
|
||||
)
|
||||
[
|
||||
]
|
||||
">
|
||||
<Attributes Foreground="clBlack" Background="clWhite" ParentForeground="True" ParentBackground="True" Style="B"/>
|
||||
</KeyList>
|
||||
<Set Name="Numbers" Enabled="True" Style="" Symbols="0123456789" Quantity="0">
|
||||
<Attributes Foreground="clRed" Background="clWhite" ParentBackground="True"/>
|
||||
</Set>
|
||||
</SubRules>
|
||||
</MainRules>
|
||||
</SyntaxColoring>
|
||||
<CodeFolding>
|
||||
<SkipRegion>
|
||||
<Open Symbol="/*"/>
|
||||
<Close Symbol="*/"/>
|
||||
<RegionType Type="1"/>
|
||||
</SkipRegion>
|
||||
<SkipRegion>
|
||||
<Open Symbol="//"/>
|
||||
<RegionType Type="2"/>
|
||||
</SkipRegion>
|
||||
<SkipRegion>
|
||||
<Open Symbol="'"/>
|
||||
<Close Symbol="'"/>
|
||||
<RegionType Type="0"/>
|
||||
</SkipRegion>
|
||||
<SkipRegion>
|
||||
<Open Symbol="""/>
|
||||
<Close Symbol="""/>
|
||||
<RegionType Type="0"/>
|
||||
</SkipRegion>
|
||||
<FoldRegion Name="{..}" Type="1">
|
||||
<OpenToken Symbol="{"/>
|
||||
<CloseToken Symbol="}"/>
|
||||
<Properties/>
|
||||
<SubRegions/>
|
||||
</FoldRegion>
|
||||
</CodeFolding>
|
||||
<CustomData/>
|
||||
</SynUniHighlighter>
|
||||
43
games/games/Edit/DocumentTypes/js/autocp.js
Normal file
@@ -0,0 +1,43 @@
|
||||
[for{...} | ]
|
||||
for (|) {
|
||||
|
||||
}
|
||||
[fori{...} | ]
|
||||
for (var i = 0; i < |Things.length; i++) {
|
||||
Things[i]
|
||||
}
|
||||
[function{...} | ]
|
||||
function |function_name () {
|
||||
|
||||
};
|
||||
[func{...} | ]
|
||||
|function_name = function() {
|
||||
|
||||
};
|
||||
[if{...} | ]
|
||||
if (|) {
|
||||
|
||||
}
|
||||
[if{...}else{...} | ]
|
||||
if (|) {
|
||||
|
||||
} else {
|
||||
|
||||
}
|
||||
[switch_case{...} | ]
|
||||
switch (|){
|
||||
case value:
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
[while{...} | ]
|
||||
while (|) {
|
||||
|
||||
}
|
||||
[try{}catch(e) | ]
|
||||
try{
|
||||
|
|
||||
}catch(e){
|
||||
//TODO handle the exception
|
||||
}
|
||||
64
games/games/Edit/DocumentTypes/js/keywords.js
Normal file
@@ -0,0 +1,64 @@
|
||||
if
|
||||
do
|
||||
in
|
||||
case
|
||||
NaN
|
||||
char
|
||||
catch
|
||||
break
|
||||
callee
|
||||
for
|
||||
else
|
||||
var
|
||||
new
|
||||
false
|
||||
int
|
||||
package
|
||||
long
|
||||
void
|
||||
delete
|
||||
byte
|
||||
enum
|
||||
class
|
||||
float
|
||||
this
|
||||
while
|
||||
goto
|
||||
double
|
||||
Null
|
||||
null
|
||||
with
|
||||
try
|
||||
public
|
||||
boolean
|
||||
true
|
||||
default
|
||||
debugger
|
||||
const
|
||||
native
|
||||
static
|
||||
start
|
||||
finally
|
||||
super
|
||||
short
|
||||
interface
|
||||
switch
|
||||
throw
|
||||
abstract
|
||||
typeof
|
||||
import
|
||||
extends
|
||||
private
|
||||
return
|
||||
export
|
||||
continue
|
||||
function
|
||||
throws
|
||||
instanceof
|
||||
protected
|
||||
transient
|
||||
implements
|
||||
prototype
|
||||
synchronized
|
||||
constructor
|
||||
final
|
||||
169
games/games/Edit/Languages/Ch.ini
Normal file
@@ -0,0 +1,169 @@
|
||||
[Language]
|
||||
Name=Chinese
|
||||
|
||||
[frmMain]
|
||||
actFileNew.Caption=新建
|
||||
actFileOpen.Caption=打开...
|
||||
actFileSave.Caption=保存
|
||||
actFileSaveAs.Caption=另存为...
|
||||
actFileSaveAll.Caption=全部保存
|
||||
actFileClose.Caption=关闭
|
||||
actFileCloseAll.Caption=全部关闭
|
||||
actFilePrint.Caption=打印...
|
||||
actFileExit.Caption=退出
|
||||
actFileMRUClear.Caption=清空文件列表
|
||||
actEditCut.Caption=剪切
|
||||
actEditCopy.Caption=复制
|
||||
actEditPaste.Caption=粘贴
|
||||
actEditDel.Caption=删除
|
||||
actEditDelLine.Caption=删除行
|
||||
actEditDelBol.Caption=删除至行首
|
||||
actEditDelEol.Caption=删除至行尾
|
||||
actEditSelAll.Caption=全选
|
||||
actEditSelLineBol.Caption=选择至行首
|
||||
actEditSelLineEol.Caption=选择至行尾
|
||||
actEditIndent.Caption=插入制表符
|
||||
actEditUnIndent.Caption=删除制表符
|
||||
actEditUndo.Caption=撤销
|
||||
actEditRedo.Caption=重做
|
||||
actEditBackWards.Caption=后退
|
||||
actEditForWards.Caption=前进
|
||||
actEditComment.Caption=添加/删除 注释
|
||||
actSearchFind.Caption=查找...
|
||||
actSearchFindNext.Caption=查找下一个
|
||||
actSearchReplace.Caption=替换...
|
||||
actSearchFindInFiles.Caption=在文件中查找
|
||||
actGoToLine.Caption=转到指定行...
|
||||
actToolOptions.Caption=设置...
|
||||
actCodeFormat.Caption=代码格式化
|
||||
actCodeToDefined.Caption=转到定义
|
||||
actProFilesOrd.Caption=文件加载顺序...
|
||||
actToolEncode.Caption=转换文本编码...
|
||||
actViewTools.Caption=工具栏
|
||||
actViewStatusBar.Caption=状态栏
|
||||
actViewProject.Caption=项目
|
||||
actViewScript.Caption=脚本
|
||||
actViewEngine.Caption=引擎
|
||||
actViewOutput.Caption=输出结果
|
||||
actViewFindOut.Caption=搜索结果
|
||||
actViewUncollapseAll.Caption=展开所有层
|
||||
actViewCollapseAll.Caption=折叠所有层
|
||||
|
||||
miFile.Caption=文件
|
||||
miFileRecentFiles.Caption=最近打开的文件
|
||||
miEdit.Caption=编辑
|
||||
miEditDel.Caption=删除
|
||||
miEditSel.Caption=选择
|
||||
miEditIndent.Caption=缩进
|
||||
miSearch.Caption=搜索
|
||||
miTools.Caption=工具
|
||||
miView.Caption=视图
|
||||
miWindowView.Caption=界面布局
|
||||
|
||||
dkPnlProject.Caption=项目
|
||||
dkPnlScript.Caption=脚本
|
||||
dkPnlEngine.Caption=引擎
|
||||
dkPnlOutput.Caption=输出结果
|
||||
dkPnlFindOut.Caption=搜索结果
|
||||
|
||||
[SearchDialog]
|
||||
tsFind.Caption=查找
|
||||
lblFind.Caption=查找项:
|
||||
btnFind.Caption=查找下一个
|
||||
tsReplace.Caption=替换
|
||||
lblReplace.Caption=替换项:
|
||||
btnReplace.Caption=替换下一个
|
||||
btnReplaceAll.Caption=全部替换
|
||||
tsFindInFile.Caption=文件中查找
|
||||
lblDir.Caption=目录:
|
||||
chkSubDir.Caption=包含子目录
|
||||
btnFindInFile.Caption=全部查找
|
||||
btnDir.Caption=...
|
||||
btnClose.Caption=取消
|
||||
gbConditions.Caption=选项
|
||||
chkWhole.Caption=全词匹配
|
||||
chkCase.Caption=区分大小写
|
||||
chkRegExp.Caption=正则表达式
|
||||
chkLoop.Caption=循环查找
|
||||
gbDirection.Caption=方向
|
||||
rbUp.Caption=向上
|
||||
rbDown.Caption=向下
|
||||
gbPosition.Caption=文件位置
|
||||
rbFileActive.Caption=当前打开
|
||||
rbFilesInDir.Caption=选择目录中
|
||||
rbFilesInProject.Caption=当前项目中
|
||||
rbFilesOpen.Caption=所有已打开
|
||||
|
||||
[OptionsDialog]
|
||||
Caption=设置
|
||||
tsGeneral.Caption=常规
|
||||
tsEditor.Caption=编辑
|
||||
tsKeyboard.Caption=键盘
|
||||
lblInterfaceLanguage.Caption=界面语言:
|
||||
lblDefDocumentType.Caption=默认文件类型:
|
||||
lblDefDocumentEncode.Caption=默认文件编码:
|
||||
gbGeneral.Caption=常用
|
||||
chkAutoIndent.Caption=自动缩进
|
||||
chkCodeFolding.Caption=代码折叠
|
||||
chkCodeFoldHint.Caption=显示折叠代码提示
|
||||
chkIndentGuides.Caption=显示折叠线
|
||||
chkMatchSymbol.Caption=符号自动匹配
|
||||
chkHighlightLine.Caption=高亮显示当前行
|
||||
chkSpecialCharacters.Caption=显示特殊字符
|
||||
chkTabsToSpaces.Caption=Tab转换为空格
|
||||
chkWordWrap.Caption=自动换行
|
||||
lblActiveLine.Caption=当前行高亮颜色:
|
||||
lblTabWidth.Caption=Tab宽度:
|
||||
chkDropEdit.Caption=允许拖动编辑
|
||||
chkDropFiles.Caption=允许外部文件拖放
|
||||
gbGutterMargin.Caption=行号栏及右边线
|
||||
chkShowGutter.Caption=显示行号栏
|
||||
chkShowRightMargin.Caption=显示右边缘线
|
||||
chkShowLineNumbers.Caption=显示行号
|
||||
lblRightMarginPos.Caption=右边缘线位置:
|
||||
lblGutterColor.Caption=行号栏背景:
|
||||
lblFoldingButton.Caption=折叠按钮样式:
|
||||
lblFoldingBarColor.Caption=折叠栏背景:
|
||||
lblFoldingLinesColor.Caption=折叠线颜色:
|
||||
gbKeyboard.Caption=快捷键
|
||||
chkCtrl.Caption=Ctrl
|
||||
chkShift.Caption=Shift
|
||||
chkAlt.Caption=Alt
|
||||
btnOK.Caption=保存
|
||||
btnCancel.Caption=关闭
|
||||
btnRecovery.Caption=还原默认
|
||||
|
||||
[FileListDialog]
|
||||
Caption=调整文件加载顺序
|
||||
lblTip.Caption=拖动文件调整加载顺序
|
||||
btnSave.Caption=保存
|
||||
btnCancel.Caption=取消
|
||||
|
||||
[EncodeDialog]
|
||||
Caption=转换文本编码
|
||||
lblSetEncode.Caption=选择编码方式:
|
||||
btnOK.Caption=确定
|
||||
btnCancel.Caption=取消
|
||||
|
||||
[GoToLineDialog]
|
||||
Caption=转到指定行
|
||||
lblGoTo.Caption=请输入行号:
|
||||
btnOK.Caption=确定
|
||||
btnCancel.Caption=取消
|
||||
|
||||
[Strings]
|
||||
String0=更改
|
||||
String1=插入
|
||||
String2=覆盖
|
||||
String3=只读
|
||||
String4=大写锁定
|
||||
String5=小键盘锁定
|
||||
String6=<Unknown>
|
||||
String7=new%d
|
||||
String8=文件不存在:"%s"
|
||||
String9=提示
|
||||
String10=是否保存对 "%s" 的修改?
|
||||
String11=没有找到字符串:"%s"
|
||||
String12="%s" 已标识为只读
|
||||
String13=字体: %s, %d
|
||||
String14=搜索 "%s" : %d个结果
|
||||
174
games/games/Edit/Settings.ini
Normal file
@@ -0,0 +1,174 @@
|
||||
[Editor]
|
||||
ActiveLineColor=$00C0C0C0
|
||||
AutoIndent=1
|
||||
CodeFolding=0
|
||||
CodeFoldHint=1
|
||||
ExtraLineSpacing=0
|
||||
FontName=Consolas
|
||||
FontSize=14
|
||||
GroupUndo=1
|
||||
GutterColor=$20000000
|
||||
HighlightActiveLine=1
|
||||
HighlightIndentGuides=1
|
||||
InsertCaret=0
|
||||
InsertMode=1
|
||||
LeadingZeros=0
|
||||
MaxUndo=1024
|
||||
OverwriteCaret=3
|
||||
RightMarginPosition=80
|
||||
ScrollPastEOF=0
|
||||
ScrollPastEOL=0
|
||||
ShowGutter=1
|
||||
ShowIndentGuides=1
|
||||
ShowLineNumbers=1
|
||||
ShowRightMargin=0
|
||||
ShowSpecialChars=0
|
||||
TabWidth=4
|
||||
TabsToSpaces=0
|
||||
TrimTrailingSpaces=0
|
||||
WordWrap=0
|
||||
ZeroStart=0
|
||||
FoldingButtonStyle=0
|
||||
ShowLeadingZeros=0
|
||||
FoldingBarColor=$20000000
|
||||
FoldingBarLinesColor=$20000000
|
||||
EnhanceHomeKey=0
|
||||
DragDropEditing=1
|
||||
DropFiles=1
|
||||
TabIndent=1
|
||||
MatchSymbol=1
|
||||
|
||||
[EditorFonts]
|
||||
FontName1=Courier New
|
||||
FontSize1=10
|
||||
FontName2=Courier
|
||||
FontSize2=10
|
||||
FontName3=Terminal
|
||||
FontSize3=9
|
||||
FontName4=Lucida Console
|
||||
FontSize4=9
|
||||
FontName5=Fixedsys
|
||||
FontSize5=9
|
||||
|
||||
[Filters]
|
||||
Filter0=Any file (*.*)|*.*|
|
||||
Filter1=JavaScript (*.js)|*.js|
|
||||
Filter2=HTML (*.htm;*.html)|*.htm;*.html|
|
||||
|
||||
[General]
|
||||
ActiveLanguage=Chinese
|
||||
DefaultDocumentType=0
|
||||
DefaultDocumentEncode=4
|
||||
MRUFilesCount=10
|
||||
|
||||
[Keyboard]
|
||||
actFileNew=Ctrl+N
|
||||
actFileOpen=Ctrl+O
|
||||
actFileSave=Ctrl+S
|
||||
actFileSaveAs=
|
||||
actFileSaveAll=Shift+Ctrl+S
|
||||
actFileClose=Ctrl+W
|
||||
actFileCloseAll=Shift+Ctrl+W
|
||||
actFilePrint=Ctrl+P
|
||||
actFileExit=
|
||||
actEditCut=Ctrl+X
|
||||
actEditCopy=Ctrl+C
|
||||
actEditPaste=Ctrl+V
|
||||
actEditDel=Del
|
||||
actEditDelLine=Ctrl+Y
|
||||
actEditDelBol=Shift+BkSp
|
||||
actEditDelEol=Shift+Del
|
||||
actEditSelAll=Ctrl+A
|
||||
actEditSelLineBol=Shift+Home
|
||||
actEditSelLineEol=Shift+End
|
||||
actEditIndent=Tab
|
||||
actEditUnIndent=Shift+Tab
|
||||
actEditUndo=Ctrl+Z
|
||||
actEditRedo=Shift+Ctrl+Z
|
||||
actEditBackWards=
|
||||
actEditForWards=
|
||||
actEditComment=Ctrl+Q
|
||||
actSearchFind=Ctrl+F
|
||||
actSearchFindNext=F3
|
||||
actSearchReplace=Ctrl+H
|
||||
actSearchFindInFiles=Shift+Ctrl+F
|
||||
actToolOptions=
|
||||
actCodeFormat=Ctrl+D
|
||||
actCodeToDefined=
|
||||
actProFilesOrd=
|
||||
actViewTools=
|
||||
actViewStatusBar=
|
||||
actViewProject=
|
||||
actViewScript=
|
||||
actViewEngine=
|
||||
actViewOutput=
|
||||
actViewFindOut=
|
||||
actViewUncollapseAll=
|
||||
actViewCollapseAll=
|
||||
actToolEncode=
|
||||
actGoToLine=
|
||||
|
||||
[DocumentTypes]
|
||||
DocumentTypeName0=JavaScript
|
||||
DocumentTypeExtensions0=.js
|
||||
DocumentTypeSyntaxFile0=Java Script.xml
|
||||
DocumentTypeAutoCPFile0=js\autocp.js
|
||||
DocumentTypeKeyWordsFile0=js\keywords.js
|
||||
DocumentTypeFunctionRegExp0=^function([\x20\t]*)[A-Za-z]+[A-Za-z0-9_]*\([^)]*\)
|
||||
DocumentTypeName1=HTML
|
||||
DocumentTypeExtensions1=.html;.htm
|
||||
DocumentTypeSyntaxFile1=HTML.xml
|
||||
DocumentTypeAutoCPFile1=
|
||||
DocumentTypeKeyWordsFile1=
|
||||
DocumentTypeFunctionRegExp1=
|
||||
|
||||
[MRUFiles]
|
||||
MRUItem1=G:\Works\YouleGames\games\games\Projects\clinet\zpy\js\gamemain.js
|
||||
MRUItem2=G:\Works\YouleGames\games\games\Projects\clinet\sangelaok\js\gamemain.js
|
||||
MRUItem3=G:\Works\YouleGames\games\games\Projects\clinet\niuniu\js\gamemain.js
|
||||
MRUItem4=G:\Works\YouleGames\games\games\Projects\clinet\guanpai-jx\js\gamemain.js
|
||||
MRUItem5=G:\Works\YouleGames\games\games\Projects\Project1\js\gamemain.js
|
||||
MRUItem6=G:\Works\YouleGames\games\games\Projects\clinet\doudizhu\js\gamemain.js
|
||||
MRUItem7=G:\Works\JinXianProjects\JinXianMahjong\Projects\client\js\gamemain.js
|
||||
MRUItem8=G:\Works\JinXianProjects\JinXianMahjong\Projects\Project1\js\gamemain.js
|
||||
MRUItem9=G:\Works\JinXianProjects\JinXianMahjong\Projects\client\js\client_Event.js
|
||||
MRUItem10=G:\Works\JinXianProjects\JinXianMahjong\Projects\client\js\01_SubGame\00_SubGame_Config.js
|
||||
|
||||
[MRUFindText]
|
||||
MRUItem1=ÅäÖÃ
|
||||
MRUItem2=GameData.sysConfig
|
||||
MRUItem3=sysConfig.deviceLogin
|
||||
MRUItem4=3254
|
||||
MRUItem5=3253
|
||||
MRUItem6=ÊÖ»ú
|
||||
MRUItem7=.PlayerList
|
||||
MRUItem8=Desk.PlayerList
|
||||
MRUItem9=GameUI.updatePlayerInfoUI
|
||||
MRUItem10=Func.SwitchOverGameData
|
||||
MRUItem11=SwitchOverGameData
|
||||
MRUItem12=1405
|
||||
MRUItem13=selectCard
|
||||
MRUItem14=select
|
||||
MRUItem15=updateJushuKouka
|
||||
MRUItem16=Game_Modify.CreateRoomData.Type_9
|
||||
MRUItem17=Game_Modify.Type_1
|
||||
MRUItem18=Game_Modify.CreateRoomData.Type_2
|
||||
MRUItem19=GameData.gameConfig
|
||||
MRUItem20=game_config
|
||||
|
||||
[MRUFReplaceText]
|
||||
|
||||
[MRUFindDirs]
|
||||
|
||||
[SearchDialog]
|
||||
chkWhole.Check=0
|
||||
chkCase.Check=0
|
||||
chkRegExp.Check=0
|
||||
chkLoop.Check=1
|
||||
rbUp.Check=0
|
||||
rbDown.Check=1
|
||||
chkSubDir.Check=0
|
||||
rbFileActive.Check=0
|
||||
rbFilesOpen.Check=0
|
||||
rbFilesInProject.Check=1
|
||||
rbFilesInDir.Check=0
|
||||
144
games/games/Edit/SettingsDefault.ini
Normal file
@@ -0,0 +1,144 @@
|
||||
[Editor]
|
||||
ActiveLineColor=$00F2EAEF
|
||||
AutoIndent=1
|
||||
CodeFolding=0
|
||||
CodeFoldHint=1
|
||||
ExtraLineSpacing=0
|
||||
FontName=Courier New
|
||||
FontSize=10
|
||||
GroupUndo=1
|
||||
GutterColor=$20000000
|
||||
HighlightActiveLine=1
|
||||
HighlightIndentGuides=1
|
||||
InsertCaret=0
|
||||
InsertMode=1
|
||||
LeadingZeros=0
|
||||
MaxUndo=1024
|
||||
OverwriteCaret=3
|
||||
RightMarginPosition=80
|
||||
ScrollPastEOF=0
|
||||
ScrollPastEOL=0
|
||||
ShowGutter=1
|
||||
ShowIndentGuides=1
|
||||
ShowLineNumbers=1
|
||||
ShowRightMargin=0
|
||||
ShowSpecialChars=0
|
||||
TabWidth=4
|
||||
TabsToSpaces=0
|
||||
TrimTrailingSpaces=0
|
||||
WordWrap=0
|
||||
ZeroStart=0
|
||||
FoldingButtonStyle=0
|
||||
ShowLeadingZeros=0
|
||||
FoldingBarColor=$20000000
|
||||
FoldingBarLinesColor=$20000000
|
||||
EnhanceHomeKey=0
|
||||
DragDropEditing=1
|
||||
DropFiles=1
|
||||
TabIndent=1
|
||||
MatchSymbol=1
|
||||
|
||||
[EditorFonts]
|
||||
FontName1=Courier New
|
||||
FontSize1=10
|
||||
FontName2=Courier
|
||||
FontSize2=10
|
||||
FontName3=Terminal
|
||||
FontSize3=9
|
||||
FontName4=Lucida Console
|
||||
FontSize4=9
|
||||
FontName5=Fixedsys
|
||||
FontSize5=9
|
||||
|
||||
[Filters]
|
||||
Filter0=Any file (*.*)|*.*|
|
||||
Filter1=JavaScript (*.js)|*.js|
|
||||
Filter2=HTML (*.htm;*.html)|*.htm;*.html|
|
||||
|
||||
[General]
|
||||
ActiveLanguage=Chinese
|
||||
DefaultDocumentType=0
|
||||
DefaultDocumentEncode=4
|
||||
MRUFilesCount=10
|
||||
|
||||
[Keyboard]
|
||||
actFileNew=Ctrl+N
|
||||
actFileOpen=Ctrl+O
|
||||
actFileSave=Ctrl+S
|
||||
actFileSaveAs=
|
||||
actFileSaveAll=Shift+Ctrl+S
|
||||
actFileClose=Ctrl+W
|
||||
actFileCloseAll=Shift+Ctrl+W
|
||||
actFilePrint=Ctrl+P
|
||||
actFileExit=
|
||||
actEditCut=Ctrl+X
|
||||
actEditCopy=Ctrl+C
|
||||
actEditPaste=Ctrl+V
|
||||
actEditDel=Del
|
||||
actEditDelLine=Ctrl+Y
|
||||
actEditDelBol=Shift+BkSp
|
||||
actEditDelEol=Shift+Del
|
||||
actEditSelAll=Ctrl+A
|
||||
actEditSelLineBol=Shift+Home
|
||||
actEditSelLineEol=Shift+End
|
||||
actEditIndent=Tab
|
||||
actEditUnIndent=Shift+Tab
|
||||
actEditUndo=Ctrl+Z
|
||||
actEditRedo=Shift+Ctrl+Z
|
||||
actEditBackWards=
|
||||
actEditForWards=
|
||||
actEditComment=Ctrl+Q
|
||||
actSearchFind=Ctrl+F
|
||||
actSearchFindNext=F3
|
||||
actSearchReplace=Ctrl+H
|
||||
actSearchFindInFiles=Shift+Ctrl+F
|
||||
actToolOptions=
|
||||
actCodeFormat=Ctrl+D
|
||||
actCodeToDefined=
|
||||
actProFilesOrd=
|
||||
actViewTools=
|
||||
actViewStatusBar=
|
||||
actViewProject=
|
||||
actViewScript=
|
||||
actViewEngine=
|
||||
actViewOutput=
|
||||
actViewFindOut=
|
||||
actViewUncollapseAll=
|
||||
actViewCollapseAll=
|
||||
actToolEncode=
|
||||
actGoToLine=
|
||||
|
||||
[DocumentTypes]
|
||||
DocumentTypeName0=JavaScript
|
||||
DocumentTypeExtensions0=.js
|
||||
DocumentTypeSyntaxFile0=Java Script.xml
|
||||
DocumentTypeAutoCPFile0=js\autocp.js
|
||||
DocumentTypeKeyWordsFile0=js\keywords.js
|
||||
DocumentTypeFunctionRegExp0=^function([\x20\t]*)[A-Za-z]+[A-Za-z0-9_]*\([^)]*\)
|
||||
DocumentTypeName1=HTML
|
||||
DocumentTypeExtensions1=.html;.htm
|
||||
DocumentTypeSyntaxFile1=HTML.xml
|
||||
DocumentTypeAutoCPFile1=
|
||||
DocumentTypeKeyWordsFile1=
|
||||
DocumentTypeFunctionRegExp1=
|
||||
|
||||
[MRUFiles]
|
||||
|
||||
[MRUFindText]
|
||||
|
||||
[MRUFReplaceText]
|
||||
|
||||
[MRUFindDirs]
|
||||
|
||||
[SearchDialog]
|
||||
chkWhole.Check=0
|
||||
chkCase.Check=0
|
||||
chkRegExp.Check=0
|
||||
chkLoop.Check=1
|
||||
rbUp.Check=1
|
||||
rbDown.Check=0
|
||||
chkSubDir.Check=0
|
||||
rbFileActive.Check=0
|
||||
rbFilesOpen.Check=0
|
||||
rbFilesInProject.Check=1
|
||||
rbFilesInDir.Check=0
|
||||
1
games/games/Edit/Sprite.js
Normal file
@@ -0,0 +1 @@
|
||||
//精灵事件单元...
|
||||
163
games/games/Edit/gameabc_face.js
Normal file
@@ -0,0 +1,163 @@
|
||||
var gameabc_face = gameabc_face||{};
|
||||
{
|
||||
gameabc_face.tag=12; //定义你的游戏全局内存
|
||||
gameabc_face.tag1=123;//定义你的游戏全局内存
|
||||
gameabc_face.tag2=123;//定义你的游戏全局内存
|
||||
gameabc_face.tag3=123;//定义你的游戏全局内存
|
||||
}
|
||||
|
||||
gameabc_face.gamestart=function(gameid)
|
||||
{
|
||||
//游戏初始化代码
|
||||
|
||||
};
|
||||
|
||||
gameabc_face.ani_doend=function(id,sx,count,allend)
|
||||
{
|
||||
logmessage(id+"/"+sx+"/"+count+"/"+allend);
|
||||
//play_ani(0,2,18,50,200,0,1000,0,0,0,0,6000,1);//主动关闭
|
||||
};
|
||||
|
||||
gameabc_face.box_doend=function(id,sx,timelen)
|
||||
{
|
||||
//play_box 结束事件
|
||||
//showmessage("box_doend:"+id+"/"+sx+"/"+timelen);
|
||||
logmessage("box_doend:"+id+"/"+sx+"/"+timelen);
|
||||
};
|
||||
|
||||
gameabc_face.onloadurl1=function(recid,rectype,url,error,count,len)
|
||||
{
|
||||
//修改为gameabc_face.onloadurl 则自己处理图片加载进度
|
||||
//资源加载完成函数
|
||||
//recid:资源id
|
||||
//rectype:1 图片 2声音
|
||||
//url :网络地址
|
||||
//error:是否加载错误
|
||||
//len:资源大小
|
||||
//count:加载的个数百分比
|
||||
|
||||
logmessage("onload:"+recid+"/"+rectype+"/"+count+"/"+error);
|
||||
|
||||
/*
|
||||
if (rectype==0)
|
||||
{
|
||||
open_load("","1.mp3","");
|
||||
gameabc_face.randombase=0;//使用系统浏览器缓存
|
||||
}
|
||||
|
||||
if (count==100)
|
||||
{
|
||||
game_close_zsmsg("");
|
||||
|
||||
} else
|
||||
{
|
||||
game_open_zsmsg(count+"%"+" 加载中...");
|
||||
};
|
||||
*/
|
||||
};
|
||||
|
||||
gameabc_face.chongzhi=function(userid,zt,data)
|
||||
{
|
||||
//游戏接口代码
|
||||
|
||||
};
|
||||
|
||||
gameabc_face.onresize=function(pmw/*屏幕宽*/,pmh/*屏幕宽*/,sjweww/*设计宽*/,sjnewh/*设计宽*/,nweww/*显示宽*/,newh/*显示高*/)
|
||||
{
|
||||
|
||||
//屏幕变化
|
||||
// 在此调整 列表控件的宽高和区域 不是整体缩放
|
||||
logmessage("onresize:"+pmw+"/"+pmh+"/"+sjweww+"/"+sjnewh+"/"+nweww+"/"+newh);
|
||||
};
|
||||
|
||||
gameabc_face.gamebegindraw=function(gameid, spid, times, timelong)
|
||||
{
|
||||
//更新开始代码
|
||||
|
||||
};
|
||||
|
||||
gameabc_face.gameenddraw=function(gameid, spid, times, timelong)
|
||||
{
|
||||
//更新完成代码
|
||||
|
||||
};
|
||||
|
||||
gameabc_face.mousedown=function(gameid, spid, downx, downy, no1, no2, no3, no4, no5, no6)
|
||||
{
|
||||
//点击代码
|
||||
|
||||
};
|
||||
|
||||
gameabc_face.mousedown_nomove=function(gameid, spid, downx, downy, timelong, no1, no2, no3, no4, no5)
|
||||
{
|
||||
//点击代没移动代码
|
||||
|
||||
};
|
||||
|
||||
gameabc_face.mouseup=function(gameid, spid_down, downx, downy, spid_up, upx, upy, timelong, no1, no2)
|
||||
{
|
||||
//点击弹起代码
|
||||
//可以通过spid_down和spid_up 的比较 来判断是 点击还是 移动
|
||||
|
||||
};
|
||||
|
||||
gameabc_face.mousemove=function(gameid, spid, downx, downy, movex,movey ,timelong,offmovex, offmovey, no1)
|
||||
{
|
||||
//点击后移动代码
|
||||
//set_self(spid,18,offmovex,1,0);
|
||||
//set_self(spid,19,offmovey,1,0);
|
||||
};
|
||||
|
||||
gameabc_face.gamemydraw=function(gameid, spid, times, timelong, no2, no3, no4, no5, no6, no7)
|
||||
{
|
||||
//每个精灵更新绘画代码
|
||||
|
||||
};
|
||||
|
||||
gameabc_face.gamemydrawbegin=function(gameid, spid, times, timelong, no2, no3, no4, no5, no6, no7)
|
||||
{
|
||||
//每个精灵更新前绘画代码
|
||||
|
||||
};
|
||||
|
||||
gameabc_face.ontimer= function(gameid, spid, /* 本次间隔多少次了 */ times, /* 本次间隔多久 */ timelong,/* 开启后运行多少次了 */ alltimes){
|
||||
/*请在下面输入您的代码
|
||||
*/
|
||||
//set_self(1,18,5,1,0);
|
||||
|
||||
} ;
|
||||
|
||||
gameabc_face.tcpconnected=function(tcpid)
|
||||
{
|
||||
/*
|
||||
ifast_tcp_open(1,"127.0.0.1:5414");//连接ws tcp
|
||||
*/
|
||||
logmessage("tcpopen:"+tcpid);
|
||||
|
||||
};
|
||||
gameabc_face.tcpmessage=function(tcpid,data)
|
||||
{
|
||||
logmessage("tcpread:"+data);
|
||||
|
||||
};
|
||||
|
||||
gameabc_face.tcpdisconnected=function(tcpid)
|
||||
{
|
||||
logmessage("tcpclose:"+tcpid);
|
||||
|
||||
|
||||
};
|
||||
gameabc_face.tcperror=function(tcpid,data)
|
||||
{
|
||||
logmessage("tcperror:"+tcpid);
|
||||
|
||||
};
|
||||
|
||||
gameabc_face.httpmessage=function(myid,url,data)
|
||||
{
|
||||
/*
|
||||
ifast_http(1,"web/test.txt",1);//获取文件 同域
|
||||
*/
|
||||
logmessage("httpread:"+myid+"/"+url+":"+data);
|
||||
|
||||
};
|
||||
1252
games/games/Edit/gameabc_func.js
Normal file
BIN
games/games/Files/gamezip/Zhaopengyou.zip
Normal file
BIN
games/games/Files/gamezip/doudizhu.zip
Normal file
BIN
games/games/Files/gamezip/gamehall_xxin.zip
Normal file
BIN
games/games/Files/gamezip/guanpai-jx.zip
Normal file
BIN
games/games/Files/gamezip/majiang_jx.zip
Normal file
BIN
games/games/Files/gamezip/niuniu.zip
Normal file
BIN
games/games/Files/gamezip/pdk_card_client-jinxian.zip
Normal file
BIN
games/games/Files/gamezip/sangelaok.zip
Normal file
2868
games/games/Files/update_json/update_jsonv2.txt
Normal file
BIN
games/games/Help/1_引擎学习.pdf
Normal file
BIN
games/games/Help/2_引擎系统时间构架.pdf
Normal file
4
games/games/Help/Help.ini
Normal file
@@ -0,0 +1,4 @@
|
||||
[Chinese]
|
||||
|
||||
[English]
|
||||
|
||||
2143
games/games/Help/javascript基础语法.htm
Normal file
BIN
games/games/Help/javascript基础语法.pdf
Normal file
50
games/games/Help/代码编辑帮助文档.files/filelist.xml
Normal file
@@ -0,0 +1,50 @@
|
||||
<xml xmlns:o="urn:schemas-microsoft-com:office:office">
|
||||
<o:MainFile HRef="../代码编辑帮助文档.htm"/>
|
||||
<o:File HRef="image001.png"/>
|
||||
<o:File HRef="image002.jpg"/>
|
||||
<o:File HRef="image003.png"/>
|
||||
<o:File HRef="image004.jpg"/>
|
||||
<o:File HRef="image005.png"/>
|
||||
<o:File HRef="image006.jpg"/>
|
||||
<o:File HRef="image007.png"/>
|
||||
<o:File HRef="image008.jpg"/>
|
||||
<o:File HRef="image009.png"/>
|
||||
<o:File HRef="image010.jpg"/>
|
||||
<o:File HRef="image011.png"/>
|
||||
<o:File HRef="image012.jpg"/>
|
||||
<o:File HRef="image013.png"/>
|
||||
<o:File HRef="image014.jpg"/>
|
||||
<o:File HRef="image015.png"/>
|
||||
<o:File HRef="image016.jpg"/>
|
||||
<o:File HRef="image017.png"/>
|
||||
<o:File HRef="image018.jpg"/>
|
||||
<o:File HRef="image019.png"/>
|
||||
<o:File HRef="image020.jpg"/>
|
||||
<o:File HRef="image021.png"/>
|
||||
<o:File HRef="image022.jpg"/>
|
||||
<o:File HRef="image023.png"/>
|
||||
<o:File HRef="image024.jpg"/>
|
||||
<o:File HRef="image025.png"/>
|
||||
<o:File HRef="image026.jpg"/>
|
||||
<o:File HRef="image027.png"/>
|
||||
<o:File HRef="image028.jpg"/>
|
||||
<o:File HRef="image029.png"/>
|
||||
<o:File HRef="image030.jpg"/>
|
||||
<o:File HRef="image031.png"/>
|
||||
<o:File HRef="image032.jpg"/>
|
||||
<o:File HRef="image033.png"/>
|
||||
<o:File HRef="image034.jpg"/>
|
||||
<o:File HRef="image035.png"/>
|
||||
<o:File HRef="image036.jpg"/>
|
||||
<o:File HRef="image037.png"/>
|
||||
<o:File HRef="image038.jpg"/>
|
||||
<o:File HRef="image039.png"/>
|
||||
<o:File HRef="image040.jpg"/>
|
||||
<o:File HRef="image041.png"/>
|
||||
<o:File HRef="image042.jpg"/>
|
||||
<o:File HRef="image043.png"/>
|
||||
<o:File HRef="image044.jpg"/>
|
||||
<o:File HRef="image045.png"/>
|
||||
<o:File HRef="image046.jpg"/>
|
||||
<o:File HRef="filelist.xml"/>
|
||||
</xml>
|
||||
BIN
games/games/Help/代码编辑帮助文档.files/image001.png
Normal file
|
After Width: | Height: | Size: 824 B |
BIN
games/games/Help/代码编辑帮助文档.files/image002.jpg
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
BIN
games/games/Help/代码编辑帮助文档.files/image003.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
games/games/Help/代码编辑帮助文档.files/image004.jpg
Normal file
|
After Width: | Height: | Size: 937 B |
BIN
games/games/Help/代码编辑帮助文档.files/image005.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
games/games/Help/代码编辑帮助文档.files/image006.jpg
Normal file
|
After Width: | Height: | Size: 985 B |
BIN
games/games/Help/代码编辑帮助文档.files/image007.png
Normal file
|
After Width: | Height: | Size: 990 B |
BIN
games/games/Help/代码编辑帮助文档.files/image008.jpg
Normal file
|
After Width: | Height: | Size: 865 B |
BIN
games/games/Help/代码编辑帮助文档.files/image009.png
Normal file
|
After Width: | Height: | Size: 977 B |
BIN
games/games/Help/代码编辑帮助文档.files/image010.jpg
Normal file
|
After Width: | Height: | Size: 915 B |
BIN
games/games/Help/代码编辑帮助文档.files/image011.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
games/games/Help/代码编辑帮助文档.files/image012.jpg
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
games/games/Help/代码编辑帮助文档.files/image013.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
games/games/Help/代码编辑帮助文档.files/image014.jpg
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
games/games/Help/代码编辑帮助文档.files/image015.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
games/games/Help/代码编辑帮助文档.files/image016.jpg
Normal file
|
After Width: | Height: | Size: 885 B |
BIN
games/games/Help/代码编辑帮助文档.files/image017.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
games/games/Help/代码编辑帮助文档.files/image018.jpg
Normal file
|
After Width: | Height: | Size: 898 B |
BIN
games/games/Help/代码编辑帮助文档.files/image019.png
Normal file
|
After Width: | Height: | Size: 686 B |
BIN
games/games/Help/代码编辑帮助文档.files/image020.jpg
Normal file
|
After Width: | Height: | Size: 850 B |
BIN
games/games/Help/代码编辑帮助文档.files/image021.png
Normal file
|
After Width: | Height: | Size: 637 B |
BIN
games/games/Help/代码编辑帮助文档.files/image022.jpg
Normal file
|
After Width: | Height: | Size: 845 B |
BIN
games/games/Help/代码编辑帮助文档.files/image023.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
games/games/Help/代码编辑帮助文档.files/image024.jpg
Normal file
|
After Width: | Height: | Size: 923 B |
BIN
games/games/Help/代码编辑帮助文档.files/image025.png
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
BIN
games/games/Help/代码编辑帮助文档.files/image026.jpg
Normal file
|
After Width: | Height: | Size: 6.8 KiB |
BIN
games/games/Help/代码编辑帮助文档.files/image027.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
games/games/Help/代码编辑帮助文档.files/image028.jpg
Normal file
|
After Width: | Height: | Size: 925 B |
BIN
games/games/Help/代码编辑帮助文档.files/image029.png
Normal file
|
After Width: | Height: | Size: 8.0 KiB |
BIN
games/games/Help/代码编辑帮助文档.files/image030.jpg
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
games/games/Help/代码编辑帮助文档.files/image031.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
games/games/Help/代码编辑帮助文档.files/image032.jpg
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
games/games/Help/代码编辑帮助文档.files/image033.png
Normal file
|
After Width: | Height: | Size: 3.6 KiB |
BIN
games/games/Help/代码编辑帮助文档.files/image034.jpg
Normal file
|
After Width: | Height: | Size: 2.8 KiB |
BIN
games/games/Help/代码编辑帮助文档.files/image035.png
Normal file
|
After Width: | Height: | Size: 722 B |
BIN
games/games/Help/代码编辑帮助文档.files/image036.jpg
Normal file
|
After Width: | Height: | Size: 2.4 KiB |
BIN
games/games/Help/代码编辑帮助文档.files/image037.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
games/games/Help/代码编辑帮助文档.files/image038.jpg
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
games/games/Help/代码编辑帮助文档.files/image039.png
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
BIN
games/games/Help/代码编辑帮助文档.files/image040.jpg
Normal file
|
After Width: | Height: | Size: 4.5 KiB |
BIN
games/games/Help/代码编辑帮助文档.files/image041.png
Normal file
|
After Width: | Height: | Size: 8.0 KiB |
BIN
games/games/Help/代码编辑帮助文档.files/image042.jpg
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
games/games/Help/代码编辑帮助文档.files/image043.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
games/games/Help/代码编辑帮助文档.files/image044.jpg
Normal file
|
After Width: | Height: | Size: 28 KiB |
BIN
games/games/Help/代码编辑帮助文档.files/image045.png
Normal file
|
After Width: | Height: | Size: 2.9 KiB |
BIN
games/games/Help/代码编辑帮助文档.files/image046.jpg
Normal file
|
After Width: | Height: | Size: 6.6 KiB |
520
games/games/Help/代码编辑帮助文档.htm
Normal file
@@ -0,0 +1,520 @@
|
||||
<html xmlns:v="urn:schemas-microsoft-com:vml"
|
||||
xmlns:o="urn:schemas-microsoft-com:office:office"
|
||||
xmlns:w="urn:schemas-microsoft-com:office:word"
|
||||
xmlns="http://www.w3.org/TR/REC-html40">
|
||||
|
||||
<head>
|
||||
<meta http-equiv=Content-Type content="text/html; charset=gb2312">
|
||||
<meta name=ProgId content=Word.Document>
|
||||
<meta name=Generator content="Microsoft Word 11">
|
||||
<meta name=Originator content="Microsoft Word 11">
|
||||
<link rel=File-List href="代码编辑帮助文档.files/filelist.xml">
|
||||
<link rel=Edit-Time-Data href="代码编辑帮助文档.files/editdata.mso">
|
||||
<!--[if !mso]>
|
||||
<style>
|
||||
v\:* {behavior:url(#default#VML);}
|
||||
o\:* {behavior:url(#default#VML);}
|
||||
w\:* {behavior:url(#default#VML);}
|
||||
.shape {behavior:url(#default#VML);}
|
||||
</style>
|
||||
<![endif]-->
|
||||
<title> 代码编辑帮助文档</title>
|
||||
<!--[if gte mso 9]><xml>
|
||||
<o:DocumentProperties>
|
||||
<o:Author>USER</o:Author>
|
||||
<o:LastAuthor>USER</o:LastAuthor>
|
||||
<o:Revision>2</o:Revision>
|
||||
<o:TotalTime>122</o:TotalTime>
|
||||
<o:Created>2015-05-07T04:43:00Z</o:Created>
|
||||
<o:LastSaved>2015-05-07T04:43:00Z</o:LastSaved>
|
||||
<o:Pages>1</o:Pages>
|
||||
<o:Words>155</o:Words>
|
||||
<o:Characters>889</o:Characters>
|
||||
<o:Company>CHINA</o:Company>
|
||||
<o:Lines>7</o:Lines>
|
||||
<o:Paragraphs>2</o:Paragraphs>
|
||||
<o:CharactersWithSpaces>1042</o:CharactersWithSpaces>
|
||||
<o:Version>11.9999</o:Version>
|
||||
</o:DocumentProperties>
|
||||
</xml><![endif]--><!--[if gte mso 9]><xml>
|
||||
<w:WordDocument>
|
||||
<w:SpellingState>Clean</w:SpellingState>
|
||||
<w:GrammarState>Clean</w:GrammarState>
|
||||
<w:PunctuationKerning/>
|
||||
<w:DrawingGridVerticalSpacing>7.8 磅</w:DrawingGridVerticalSpacing>
|
||||
<w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery>
|
||||
<w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery>
|
||||
<w:ValidateAgainstSchemas/>
|
||||
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
|
||||
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
|
||||
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
|
||||
<w:Compatibility>
|
||||
<w:SpaceForUL/>
|
||||
<w:BalanceSingleByteDoubleByteWidth/>
|
||||
<w:DoNotLeaveBackslashAlone/>
|
||||
<w:ULTrailSpace/>
|
||||
<w:DoNotExpandShiftReturn/>
|
||||
<w:AdjustLineHeightInTable/>
|
||||
<w:BreakWrappedTables/>
|
||||
<w:SnapToGridInCell/>
|
||||
<w:WrapTextWithPunct/>
|
||||
<w:UseAsianBreakRules/>
|
||||
<w:DontGrowAutofit/>
|
||||
<w:UseFELayout/>
|
||||
</w:Compatibility>
|
||||
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
|
||||
</w:WordDocument>
|
||||
</xml><![endif]--><!--[if gte mso 9]><xml>
|
||||
<w:LatentStyles DefLockedState="false" LatentStyleCount="156">
|
||||
</w:LatentStyles>
|
||||
</xml><![endif]-->
|
||||
<style>
|
||||
<!--
|
||||
/* Font Definitions */
|
||||
@font-face
|
||||
{font-family:宋体;
|
||||
panose-1:2 1 6 0 3 1 1 1 1 1;
|
||||
mso-font-alt:SimSun;
|
||||
mso-font-charset:134;
|
||||
mso-generic-font-family:auto;
|
||||
mso-font-pitch:variable;
|
||||
mso-font-signature:3 135135232 16 0 262145 0;}
|
||||
@font-face
|
||||
{font-family:"\@宋体";
|
||||
panose-1:2 1 6 0 3 1 1 1 1 1;
|
||||
mso-font-charset:134;
|
||||
mso-generic-font-family:auto;
|
||||
mso-font-pitch:variable;
|
||||
mso-font-signature:3 135135232 16 0 262145 0;}
|
||||
/* Style Definitions */
|
||||
p.MsoNormal, li.MsoNormal, div.MsoNormal
|
||||
{mso-style-parent:"";
|
||||
margin:0cm;
|
||||
margin-bottom:.0001pt;
|
||||
text-align:justify;
|
||||
text-justify:inter-ideograph;
|
||||
mso-pagination:none;
|
||||
font-size:10.5pt;
|
||||
mso-bidi-font-size:12.0pt;
|
||||
font-family:"Times New Roman";
|
||||
mso-fareast-font-family:宋体;
|
||||
mso-font-kerning:1.0pt;}
|
||||
span.SpellE
|
||||
{mso-style-name:"";
|
||||
mso-spl-e:yes;}
|
||||
/* Page Definitions */
|
||||
@page
|
||||
{mso-page-border-surround-header:no;
|
||||
mso-page-border-surround-footer:no;}
|
||||
@page Section1
|
||||
{size:595.3pt 841.9pt;
|
||||
margin:72.0pt 90.0pt 72.0pt 90.0pt;
|
||||
mso-header-margin:42.55pt;
|
||||
mso-footer-margin:49.6pt;
|
||||
mso-paper-source:0;
|
||||
layout-grid:15.6pt;}
|
||||
div.Section1
|
||||
{page:Section1;}
|
||||
-->
|
||||
</style>
|
||||
<!--[if gte mso 10]>
|
||||
<style>
|
||||
/* Style Definitions */
|
||||
table.MsoNormalTable
|
||||
{mso-style-name:普通表格;
|
||||
mso-tstyle-rowband-size:0;
|
||||
mso-tstyle-colband-size:0;
|
||||
mso-style-noshow:yes;
|
||||
mso-style-parent:"";
|
||||
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
|
||||
mso-para-margin:0cm;
|
||||
mso-para-margin-bottom:.0001pt;
|
||||
mso-pagination:widow-orphan;
|
||||
font-size:10.0pt;
|
||||
font-family:"Times New Roman";
|
||||
mso-ansi-language:#0400;
|
||||
mso-fareast-language:#0400;
|
||||
mso-bidi-language:#0400;}
|
||||
</style>
|
||||
<![endif]-->
|
||||
</head>
|
||||
|
||||
<body lang=ZH-CN style='tab-interval:21.0pt;text-justify-trim:punctuation'>
|
||||
|
||||
<div class=Section1 style='layout-grid:15.6pt'>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US><span
|
||||
style='mso-spacerun:yes'>
|
||||
</span></span><b style='mso-bidi-font-weight:normal'><span style='font-size:
|
||||
14.0pt;font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
|
||||
"Times New Roman"'>代码编辑帮助文档</span></b><b style='mso-bidi-font-weight:normal'><span
|
||||
lang=EN-US style='font-size:14.0pt'><o:p></o:p></span></b></p>
|
||||
|
||||
<p class=MsoNormal><b style='mso-bidi-font-weight:normal'><span lang=EN-US
|
||||
style='font-size:14.0pt'><o:p> </o:p></span></b></p>
|
||||
|
||||
<p class=MsoNormal><span style='font-family:宋体;mso-ascii-font-family:"Times New Roman";
|
||||
mso-hansi-font-family:"Times New Roman"'>一.主要菜单操作:</span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US><!--[if gte vml 1]><v:shapetype id="_x0000_t75"
|
||||
coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe"
|
||||
filled="f" stroked="f">
|
||||
<v:stroke joinstyle="miter"/>
|
||||
<v:formulas>
|
||||
<v:f eqn="if lineDrawn pixelLineWidth 0"/>
|
||||
<v:f eqn="sum @0 1 0"/>
|
||||
<v:f eqn="sum 0 0 @1"/>
|
||||
<v:f eqn="prod @2 1 2"/>
|
||||
<v:f eqn="prod @3 21600 pixelWidth"/>
|
||||
<v:f eqn="prod @3 21600 pixelHeight"/>
|
||||
<v:f eqn="sum @0 0 1"/>
|
||||
<v:f eqn="prod @6 1 2"/>
|
||||
<v:f eqn="prod @7 21600 pixelWidth"/>
|
||||
<v:f eqn="sum @8 21600 0"/>
|
||||
<v:f eqn="prod @7 21600 pixelHeight"/>
|
||||
<v:f eqn="sum @10 21600 0"/>
|
||||
</v:formulas>
|
||||
<v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/>
|
||||
<o:lock v:ext="edit" aspectratio="t"/>
|
||||
</v:shapetype><v:shape id="_x0000_i1025" type="#_x0000_t75" style='width:162pt;
|
||||
height:17.25pt'>
|
||||
<v:imagedata src="代码编辑帮助文档.files/image001.png" o:title=""/>
|
||||
</v:shape><![endif]--><![if !vml]><img width=216 height=23
|
||||
src="代码编辑帮助文档.files/image002.jpg" v:shapes="_x0000_i1025"><![endif]></span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US><span style='mso-spacerun:yes'>
|
||||
</span>1</span><span style='font-family:宋体;mso-ascii-font-family:"Times New Roman";
|
||||
mso-hansi-font-family:"Times New Roman"'>.文件:提供文件的新建</span><span lang=EN-US><!--[if gte vml 1]><v:shape
|
||||
id="_x0000_i1026" type="#_x0000_t75" style='width:19.5pt;height:18pt'>
|
||||
<v:imagedata src="代码编辑帮助文档.files/image003.png" o:title=""/>
|
||||
</v:shape><![endif]--><![if !vml]><img width=26 height=24
|
||||
src="代码编辑帮助文档.files/image004.jpg" v:shapes="_x0000_i1026"><![endif]></span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
|
||||
"Times New Roman"'>,打开</span><span lang=EN-US><!--[if gte vml 1]><v:shape id="_x0000_i1027"
|
||||
type="#_x0000_t75" style='width:21pt;height:20.25pt'>
|
||||
<v:imagedata src="代码编辑帮助文档.files/image005.png" o:title=""/>
|
||||
</v:shape><![endif]--><![if !vml]><img width=28 height=27
|
||||
src="代码编辑帮助文档.files/image006.jpg" v:shapes="_x0000_i1027"><![endif]></span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
|
||||
"Times New Roman"'>,保存</span><span lang=EN-US><!--[if gte vml 1]><v:shape id="_x0000_i1028"
|
||||
type="#_x0000_t75" style='width:16.5pt;height:18.75pt'>
|
||||
<v:imagedata src="代码编辑帮助文档.files/image007.png" o:title=""/>
|
||||
</v:shape><![endif]--><![if !vml]><img width=22 height=25
|
||||
src="代码编辑帮助文档.files/image008.jpg" v:shapes="_x0000_i1028"><![endif]></span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
|
||||
"Times New Roman"'>,关闭等操作,编辑器暂时只支持</span><span class=SpellE><span lang=EN-US>javascript</span></span><span
|
||||
lang=EN-US>(*.<span class=SpellE>js</span>)</span><span style='font-family:
|
||||
宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman"'>文件的浏览及编写,暂时只支持单个</span><span
|
||||
class=SpellE><span lang=EN-US>js</span></span><span style='font-family:宋体;
|
||||
mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman"'>文件</span><span
|
||||
lang=EN-US>(</span><span style='font-family:宋体;mso-ascii-font-family:"Times New Roman";
|
||||
mso-hansi-font-family:"Times New Roman"'>即</span><span class=SpellE><span
|
||||
lang=EN-US>gamemain.js</span></span><span lang=EN-US>)</span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
|
||||
"Times New Roman"'>的代码提示功能。</span><span lang=EN-US> </span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US><span style='mso-spacerun:yes'>
|
||||
</span></span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US><span style='mso-spacerun:yes'>
|
||||
</span>2</span><span style='font-family:宋体;mso-ascii-font-family:"Times New Roman";
|
||||
mso-hansi-font-family:"Times New Roman"'>.编辑:提供编写代码过程中的基础操作,如撤销</span><span
|
||||
lang=EN-US><!--[if gte vml 1]><v:shape id="_x0000_i1029" type="#_x0000_t75"
|
||||
style='width:24.75pt;height:19.5pt'>
|
||||
<v:imagedata src="代码编辑帮助文档.files/image009.png" o:title=""/>
|
||||
</v:shape><![endif]--><![if !vml]><img width=33 height=26
|
||||
src="代码编辑帮助文档.files/image010.jpg" v:shapes="_x0000_i1029"><![endif]></span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
|
||||
"Times New Roman"'>,复制</span><span lang=EN-US><!--[if gte vml 1]><v:shape id="_x0000_i1030"
|
||||
type="#_x0000_t75" style='width:25.5pt;height:22.5pt'>
|
||||
<v:imagedata src="代码编辑帮助文档.files/image011.png" o:title=""/>
|
||||
</v:shape><![endif]--><![if !vml]><img width=34 height=30
|
||||
src="代码编辑帮助文档.files/image012.jpg" v:shapes="_x0000_i1030"><![endif]></span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
|
||||
"Times New Roman"'>,粘贴</span><span lang=EN-US><!--[if gte vml 1]><v:shape id="_x0000_i1031"
|
||||
type="#_x0000_t75" style='width:26.25pt;height:19.5pt'>
|
||||
<v:imagedata src="代码编辑帮助文档.files/image013.png" o:title=""/>
|
||||
</v:shape><![endif]--><![if !vml]><img width=35 height=26
|
||||
src="代码编辑帮助文档.files/image014.jpg" v:shapes="_x0000_i1031"><![endif]></span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
|
||||
"Times New Roman"'>,查找</span><span lang=EN-US><!--[if gte vml 1]><v:shape id="_x0000_i1032"
|
||||
type="#_x0000_t75" style='width:21pt;height:19.5pt'>
|
||||
<v:imagedata src="代码编辑帮助文档.files/image015.png" o:title=""/>
|
||||
</v:shape><![endif]--><![if !vml]><img width=28 height=26
|
||||
src="代码编辑帮助文档.files/image016.jpg" v:shapes="_x0000_i1032"><![endif]></span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
|
||||
"Times New Roman"'>,替换</span><span lang=EN-US><!--[if gte vml 1]><v:shape id="_x0000_i1033"
|
||||
type="#_x0000_t75" style='width:23.25pt;height:22.5pt'>
|
||||
<v:imagedata src="代码编辑帮助文档.files/image017.png" o:title=""/>
|
||||
</v:shape><![endif]--><![if !vml]><img width=31 height=30
|
||||
src="代码编辑帮助文档.files/image018.jpg" v:shapes="_x0000_i1033"><![endif]></span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
|
||||
"Times New Roman"'>等等。</span></p>
|
||||
|
||||
<p class=MsoNormal><span style='font-family:宋体;mso-ascii-font-family:"Times New Roman";
|
||||
mso-hansi-font-family:"Times New Roman"'>向前</span><span lang=EN-US><!--[if gte vml 1]><v:shape
|
||||
id="_x0000_i1034" type="#_x0000_t75" style='width:21pt;height:19.5pt'>
|
||||
<v:imagedata src="代码编辑帮助文档.files/image019.png" o:title=""/>
|
||||
</v:shape><![endif]--><![if !vml]><img width=28 height=26
|
||||
src="代码编辑帮助文档.files/image020.jpg" v:shapes="_x0000_i1034"><![endif]></span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
|
||||
"Times New Roman"'>,向后</span><span lang=EN-US><!--[if gte vml 1]><v:shape id="_x0000_i1035"
|
||||
type="#_x0000_t75" style='width:18pt;height:19.5pt'>
|
||||
<v:imagedata src="代码编辑帮助文档.files/image021.png" o:title=""/>
|
||||
</v:shape><![endif]--><![if !vml]><img width=24 height=26
|
||||
src="代码编辑帮助文档.files/image022.jpg" v:shapes="_x0000_i1035"><![endif]></span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
|
||||
"Times New Roman"'>是在使用右键菜单中“转到定义”时,返回到上次光标位置。</span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US><span style='mso-spacerun:yes'>
|
||||
</span>3</span><span style='font-family:宋体;mso-ascii-font-family:"Times New Roman";
|
||||
mso-hansi-font-family:"Times New Roman"'>.选项:提供编写代码过程中的常用操作。</span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US><span style='mso-spacerun:yes'>
|
||||
</span><span style='mso-spacerun:yes'> </span></span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
|
||||
"Times New Roman"'>(</span><span lang=EN-US>1</span><span style='font-family:
|
||||
宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman"'>)格式刷</span><span
|
||||
lang=EN-US><!--[if gte vml 1]><v:shape id="_x0000_i1036" type="#_x0000_t75"
|
||||
style='width:22.5pt;height:24.75pt'>
|
||||
<v:imagedata src="代码编辑帮助文档.files/image023.png" o:title=""/>
|
||||
</v:shape><![endif]--><![if !vml]><img width=30 height=33
|
||||
src="代码编辑帮助文档.files/image024.jpg" v:shapes="_x0000_i1036"><![endif]></span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
|
||||
"Times New Roman"'>:当前文件代码的标准格式化。主要是</span><span lang=EN-US>{}</span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
|
||||
"Times New Roman"'>的层级结构排版,每层</span><span lang=EN-US>{}</span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
|
||||
"Times New Roman"'>自动缩进对齐。注意,如果</span><span lang=EN-US>{}</span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
|
||||
"Times New Roman"'>不匹配,则在输出栏中提示错误,如图:</span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US><span
|
||||
style='mso-spacerun:yes'> </span><!--[if gte vml 1]><v:shape
|
||||
id="_x0000_i1037" type="#_x0000_t75" style='width:414.75pt;height:54pt'>
|
||||
<v:imagedata src="代码编辑帮助文档.files/image025.png" o:title=""/>
|
||||
</v:shape><![endif]--><![if !vml]><img width=553 height=72
|
||||
src="代码编辑帮助文档.files/image026.jpg" v:shapes="_x0000_i1037"><![endif]></span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US><span
|
||||
style='mso-spacerun:yes'> </span></span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
|
||||
"Times New Roman"'>(</span><span lang=EN-US>2</span><span style='font-family:
|
||||
宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman"'>)更新文件列表</span><span
|
||||
lang=EN-US><!--[if gte vml 1]><v:shape id="_x0000_i1038" type="#_x0000_t75"
|
||||
style='width:22.5pt;height:22.5pt'>
|
||||
<v:imagedata src="代码编辑帮助文档.files/image027.png" o:title=""/>
|
||||
</v:shape><![endif]--><![if !vml]><img width=30 height=30
|
||||
src="代码编辑帮助文档.files/image028.jpg" v:shapes="_x0000_i1038"><![endif]></span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
|
||||
"Times New Roman"'>:当前文件的函数和变量等语法结构定义,显示在编辑器左侧的文件列表中。如新增代码,点击</span><span
|
||||
lang=EN-US><!--[if gte vml 1]><v:shape id="_x0000_i1039" type="#_x0000_t75"
|
||||
style='width:22.5pt;height:22.5pt'>
|
||||
<v:imagedata src="代码编辑帮助文档.files/image027.png" o:title=""/>
|
||||
</v:shape><![endif]--><![if !vml]><img width=30 height=30
|
||||
src="代码编辑帮助文档.files/image028.jpg" v:shapes="_x0000_i1039"><![endif]></span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
|
||||
"Times New Roman"'>,则显示最新列表树,如图:</span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US><!--[if gte vml 1]><v:shape id="_x0000_i1040"
|
||||
type="#_x0000_t75" style='width:129.75pt;height:397.5pt'>
|
||||
<v:imagedata src="代码编辑帮助文档.files/image029.png" o:title=""/>
|
||||
</v:shape><![endif]--><![if !vml]><img width=173 height=530
|
||||
src="代码编辑帮助文档.files/image030.jpg" v:shapes="_x0000_i1040"><![endif]></span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US><span
|
||||
style='mso-spacerun:yes'> </span></span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
|
||||
"Times New Roman"'>(</span><span lang=EN-US>3</span><span style='font-family:
|
||||
宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman"'>)添加</span><span
|
||||
lang=EN-US>/</span><span style='font-family:宋体;mso-ascii-font-family:"Times New Roman";
|
||||
mso-hansi-font-family:"Times New Roman"'>删除</span> <span style='font-family:
|
||||
宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman"'>注释</span><span
|
||||
lang=EN-US><!--[if gte vml 1]><v:shape id="_x0000_i1041" type="#_x0000_t75"
|
||||
style='width:30.75pt;height:24pt'>
|
||||
<v:imagedata src="代码编辑帮助文档.files/image031.png" o:title=""/>
|
||||
</v:shape><![endif]--><![if !vml]><img width=41 height=32
|
||||
src="代码编辑帮助文档.files/image032.jpg" v:shapes="_x0000_i1041"><![endif]></span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
|
||||
"Times New Roman"'>:快速添加或删除注释,两种方式:一单行注释,注释当前光标所在行;二多行注释,注释当前选中的文本</span><span
|
||||
lang=EN-US>(</span><span style='font-family:宋体;mso-ascii-font-family:"Times New Roman";
|
||||
mso-hansi-font-family:"Times New Roman"'>多行或单行</span><span lang=EN-US>)</span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
|
||||
"Times New Roman"'>。</span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US><span style='mso-spacerun:yes'>
|
||||
</span>4</span><span style='font-family:宋体;mso-ascii-font-family:"Times New Roman";
|
||||
mso-hansi-font-family:"Times New Roman"'>.视图:编辑器界面的自定义调整。各子界面布局及功能如下</span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US><span
|
||||
style='mso-spacerun:yes'> </span></span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
|
||||
"Times New Roman"'>(</span><span lang=EN-US>1</span><span style='font-family:
|
||||
宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman"'>)工具栏:界面顶部,菜单下方区域,一些主要功能的快捷按钮</span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US><!--[if gte vml 1]><v:shape id="_x0000_i1042"
|
||||
type="#_x0000_t75" style='width:414.75pt;height:20.25pt'>
|
||||
<v:imagedata src="代码编辑帮助文档.files/image033.png" o:title=""/>
|
||||
</v:shape><![endif]--><![if !vml]><img width=553 height=27
|
||||
src="代码编辑帮助文档.files/image034.jpg" v:shapes="_x0000_i1042"><![endif]></span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US><span
|
||||
style='mso-spacerun:yes'> </span></span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
|
||||
"Times New Roman"'>(</span><span lang=EN-US>2</span><span style='font-family:
|
||||
宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman"'>)状态栏:界面最底部,显示当前文本编辑状态</span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US><!--[if gte vml 1]><v:shape id="_x0000_i1043"
|
||||
type="#_x0000_t75" style='width:414.75pt;height:12.75pt'>
|
||||
<v:imagedata src="代码编辑帮助文档.files/image035.png" o:title=""/>
|
||||
</v:shape><![endif]--><![if !vml]><img width=553 height=17
|
||||
src="代码编辑帮助文档.files/image036.jpg" v:shapes="_x0000_i1043"><![endif]></span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US><span
|
||||
style='mso-spacerun:yes'> </span></span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
|
||||
"Times New Roman"'>(</span><span lang=EN-US>3</span><span style='font-family:
|
||||
宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman"'>)代码编辑区:界面中心位置,代码编辑及文件浏览等</span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US><!--[if gte vml 1]><v:shape id="_x0000_i1044"
|
||||
type="#_x0000_t75" style='width:414.75pt;height:204pt'>
|
||||
<v:imagedata src="代码编辑帮助文档.files/image037.png" o:title=""/>
|
||||
</v:shape><![endif]--><![if !vml]><img width=553 height=272
|
||||
src="代码编辑帮助文档.files/image038.jpg" v:shapes="_x0000_i1044"><![endif]></span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US><span
|
||||
style='mso-spacerun:yes'> </span></span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
|
||||
"Times New Roman"'>(</span><span lang=EN-US>4</span><span style='font-family:
|
||||
宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman"'>)输出栏:状态栏和代码编辑区之间,显示一些错误或提示信息</span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US><!--[if gte vml 1]><v:shape id="_x0000_i1045"
|
||||
type="#_x0000_t75" style='width:415.5pt;height:36pt'>
|
||||
<v:imagedata src="代码编辑帮助文档.files/image039.png" o:title=""/>
|
||||
</v:shape><![endif]--><![if !vml]><img width=554 height=48
|
||||
src="代码编辑帮助文档.files/image040.jpg" v:shapes="_x0000_i1045"><![endif]></span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US><span
|
||||
style='mso-spacerun:yes'> </span></span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
|
||||
"Times New Roman"'>(</span><span lang=EN-US>5</span><span style='font-family:
|
||||
宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman"'>)文件列表:界面左侧,当前文件函数和变量定义的树结构,双击单个节点光标会自动定位到其定义位置</span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US><!--[if gte vml 1]><v:shape id="_x0000_i1046"
|
||||
type="#_x0000_t75" style='width:133.5pt;height:398.25pt'>
|
||||
<v:imagedata src="代码编辑帮助文档.files/image041.png" o:title=""/>
|
||||
</v:shape><![endif]--><![if !vml]><img width=178 height=531
|
||||
src="代码编辑帮助文档.files/image042.jpg" v:shapes="_x0000_i1046"><![endif]></span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US><span
|
||||
style='mso-spacerun:yes'> </span></span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
|
||||
"Times New Roman"'>(</span><span lang=EN-US>6</span><span style='font-family:
|
||||
宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman"'>)引擎列表:界面右侧,引擎提供的公用函数和变量定义的树结构</span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US><!--[if gte vml 1]><v:shape id="_x0000_i1047"
|
||||
type="#_x0000_t75" style='width:129pt;height:398.25pt'>
|
||||
<v:imagedata src="代码编辑帮助文档.files/image043.png" o:title=""/>
|
||||
</v:shape><![endif]--><![if !vml]><img width=172 height=531
|
||||
src="代码编辑帮助文档.files/image044.jpg" v:shapes="_x0000_i1047"><![endif]></span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p>
|
||||
|
||||
<p class=MsoNormal><span style='font-family:宋体;mso-ascii-font-family:"Times New Roman";
|
||||
mso-hansi-font-family:"Times New Roman"'>二.右键菜单:一些主菜单里的基础操作,特殊:</span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US><span style='mso-spacerun:yes'>
|
||||
</span>1</span><span style='font-family:宋体;mso-ascii-font-family:"Times New Roman";
|
||||
mso-hansi-font-family:"Times New Roman"'>.转到定义:光标停留或者选中代码,点击右键,选择“转到定义”,自动跳转到其定义位置</span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US><!--[if gte vml 1]><v:shape id="_x0000_i1048"
|
||||
type="#_x0000_t75" style='width:132pt;height:131.25pt'>
|
||||
<v:imagedata src="代码编辑帮助文档.files/image045.png" o:title=""/>
|
||||
</v:shape><![endif]--><![if !vml]><img width=176 height=175
|
||||
src="代码编辑帮助文档.files/image046.jpg" v:shapes="_x0000_i1048"><![endif]></span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p>
|
||||
|
||||
<p class=MsoNormal><span style='font-family:宋体;mso-ascii-font-family:"Times New Roman";
|
||||
mso-hansi-font-family:"Times New Roman"'>三.热键说明:</span></p>
|
||||
|
||||
<p class=MsoNormal><span class=SpellE><span lang=EN-US>Ctrl+N</span></span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
|
||||
"Times New Roman"'>:新建文件</span></p>
|
||||
|
||||
<p class=MsoNormal><span class=SpellE><span lang=EN-US>Ctrl+O</span></span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
|
||||
"Times New Roman"'>:打开文件</span></p>
|
||||
|
||||
<p class=MsoNormal><span class=SpellE><span lang=EN-US>Ctrl+S</span></span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
|
||||
"Times New Roman"'>:保存文件</span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US>Ctrl+F4</span><span style='font-family:
|
||||
宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman"'>:关闭文件</span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US>Alt+F4</span><span style='font-family:宋体;
|
||||
mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman"'>:退出</span></p>
|
||||
|
||||
<p class=MsoNormal><span class=SpellE><span lang=EN-US>Ctrl+Z</span></span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
|
||||
"Times New Roman"'>:撤销</span></p>
|
||||
|
||||
<p class=MsoNormal><span class=SpellE><span lang=EN-US>Shift+Ctrl+Z</span></span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
|
||||
"Times New Roman"'>:重做</span></p>
|
||||
|
||||
<p class=MsoNormal><span class=SpellE><span lang=EN-US>Ctrl+C</span></span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
|
||||
"Times New Roman"'>:复制</span></p>
|
||||
|
||||
<p class=MsoNormal><span class=SpellE><span lang=EN-US>Ctrl+X</span></span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
|
||||
"Times New Roman"'>:剪切</span></p>
|
||||
|
||||
<p class=MsoNormal><span class=SpellE><span lang=EN-US>Ctrl+V</span></span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
|
||||
"Times New Roman"'>:粘贴</span></p>
|
||||
|
||||
<p class=MsoNormal><span class=SpellE><span lang=EN-US>Ctrl+A</span></span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
|
||||
"Times New Roman"'>:选择所有</span></p>
|
||||
|
||||
<p class=MsoNormal><span class=SpellE><span lang=EN-US>Ctrl+F</span></span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
|
||||
"Times New Roman"'>:查找</span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US>F3</span><span style='font-family:宋体;
|
||||
mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman"'>:查找下一个</span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US>Shift+F3</span><span style='font-family:
|
||||
宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman"'>:查找上一个</span></p>
|
||||
|
||||
<p class=MsoNormal><span class=SpellE><span lang=EN-US>Ctrl+R</span></span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
|
||||
"Times New Roman"'>:替换</span></p>
|
||||
|
||||
<p class=MsoNormal><span class=SpellE><span lang=EN-US>Ctrl+D</span></span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
|
||||
"Times New Roman"'>:格式化</span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US>Ctrl+/</span><span style='font-family:宋体;
|
||||
mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman"'>:添加或删除</span>
|
||||
<span style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
|
||||
"Times New Roman"'>注释</span></p>
|
||||
|
||||
<p class=MsoNormal><span class=SpellE><span lang=EN-US>Ctrl+G</span></span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
|
||||
"Times New Roman"'>:更新文件列表</span></p>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
BIN
games/games/Help/代码编辑帮助文档.pdf
Normal file
37
games/games/Help/常用函数与属性.txt
Normal file
@@ -0,0 +1,37 @@
|
||||
常用函数
|
||||
1)get_self 获取精灵属性
|
||||
2)set_self 设置精灵属性
|
||||
3)set_group 设置群组属性
|
||||
4)set_level 设置层可见属性(多个层组合一个界面)
|
||||
5)play_ani 播放动画
|
||||
6)play_box 播放动画
|
||||
|
||||
说明:
|
||||
set_self(精灵ID,执行属性,执行数据,执行动作,0);
|
||||
其中:精灵ID为需要控制的元素。
|
||||
执行属性为需要如何控制。
|
||||
执行数据为控制的值。
|
||||
执行动作为0,1,2,3,4。相当于等于,加上,减去,乘以,除去。其中前三个经常用,后两个不常用。
|
||||
|
||||
|
||||
常用执行属性解释:
|
||||
1: 更换资源图 例:set_self(1,1,10,0,0); 说明:将1号精灵的资源替换为10号资源
|
||||
18: 左右移动 例:set_self(1,18,10,1,0); 说明:让1号精灵向右移动10个像素
|
||||
19: 上下移动 例:set_self(1,19,10,2,0); 说明:让1号精灵向上移动10个像素
|
||||
20: 设置精灵的宽 例:set_self(1,20,100,0,0); 说明:将1号精灵的宽度变成100像素(左上角为顶点)
|
||||
21: 设置精灵的高 例:set_self(1,21,20,1,0); 说明:将1号精灵的高度增加20像素(左上角为顶点)
|
||||
33: 设置精灵缩放 例:set_self(1,33,120,0,0); 说明:将1号精灵的大小按中心点缩放成120%(实际宽高不变)
|
||||
34: 设置精灵旋转 例:set_self(1,34,15,1,0); 说明:让1号精灵顺时针旋转15度
|
||||
35: 设置精灵透明度 例:set_self(1,35,100,0,0); 说明:让1号精灵的透明度变成100(范围:1~254)
|
||||
36: 设置精灵明暗度 例:set_self(1,36,10,0,0); 说明:让1号精灵的明暗度变成10(范围:0~100)
|
||||
37: 设置是否可见 例:set_self(1,37,0,0,0); 说明:让1号精灵在画面中不可见
|
||||
41: 设置精灵穿透 例:set_self(1,41,0,0,0); 说明:让1号精灵变成可穿透效果(无法被点击中)
|
||||
43: 设置精灵变帧 例:set_self(1,43,5,0,0); 说明:让1号精灵的帧等于第五帧
|
||||
45: 设置旋转点偏移 例:set_self(1,45,15,0,0); 说明:让1号精灵的旋转点从中心点为原点向右偏移15像素后在旋转
|
||||
51: 设置镜像显示 例:set_self(1,51,1,0,0); 说明:让1号精灵垂直变换(2为水平变换)
|
||||
|
||||
特殊执行属性:
|
||||
7: 设置精灵文本内容 例:set_self(1,7,"你好"); 说明:将1号文字精灵的内容显示成“你好”
|
||||
7: 设置精灵文本内容 例:get_self(1,7,"你好我的宽度"); 说明:将1号文字精灵的内容显示成“你好我的宽度”的像素宽度
|
||||
57: 设置定时器时长 例:set_self(1,57,1000,0,0); 说明:开启1号定时器,设置为1秒钟执行一次
|
||||
|
||||
2
games/games/Help/开发入门必备.files/colorschememapping.xml
Normal file
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<a:clrMap xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" bg1="lt1" tx1="dk1" bg2="lt2" tx2="dk2" accent1="accent1" accent2="accent2" accent3="accent3" accent4="accent4" accent5="accent5" accent6="accent6" hlink="hlink" folHlink="folHlink"/>
|
||||
9
games/games/Help/开发入门必备.files/filelist.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<xml xmlns:o="urn:schemas-microsoft-com:office:office">
|
||||
<o:MainFile HRef="../开发入门必备.htm"/>
|
||||
<o:File HRef="themedata.thmx"/>
|
||||
<o:File HRef="colorschememapping.xml"/>
|
||||
<o:File HRef="image001.png"/>
|
||||
<o:File HRef="image002.jpg"/>
|
||||
<o:File HRef="header.htm"/>
|
||||
<o:File HRef="filelist.xml"/>
|
||||
</xml>
|
||||
63
games/games/Help/开发入门必备.files/header.htm
Normal file
@@ -0,0 +1,63 @@
|
||||
<html xmlns:v="urn:schemas-microsoft-com:vml"
|
||||
xmlns:o="urn:schemas-microsoft-com:office:office"
|
||||
xmlns:w="urn:schemas-microsoft-com:office:word"
|
||||
xmlns:m="http://schemas.microsoft.com/office/2004/12/omml"
|
||||
xmlns="http://www.w3.org/TR/REC-html40">
|
||||
|
||||
<head>
|
||||
<meta http-equiv=Content-Type content="text/html; charset=gb2312">
|
||||
<meta name=ProgId content=Word.Document>
|
||||
<meta name=Generator content="Microsoft Word 12">
|
||||
<meta name=Originator content="Microsoft Word 12">
|
||||
<link id=Main-File rel=Main-File href="../¿ª·¢ÈëÃűر¸.htm">
|
||||
<!--[if gte mso 9]><xml>
|
||||
<o:shapedefaults v:ext="edit" spidmax="3074">
|
||||
<o:colormenu v:ext="edit" fillcolor="none [671]"/>
|
||||
</o:shapedefaults></xml><![endif]-->
|
||||
</head>
|
||||
|
||||
<body lang=ZH-CN>
|
||||
|
||||
<div style='mso-element:footnote-separator' id=fs>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US><span style='mso-special-character:footnote-separator'><![if !supportFootnotes]>
|
||||
|
||||
<hr align=left size=1 width="33%">
|
||||
|
||||
<![endif]></span></span></p>
|
||||
|
||||
</div>
|
||||
|
||||
<div style='mso-element:footnote-continuation-separator' id=fcs>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US><span style='mso-special-character:footnote-continuation-separator'><![if !supportFootnotes]>
|
||||
|
||||
<hr align=left size=1>
|
||||
|
||||
<![endif]></span></span></p>
|
||||
|
||||
</div>
|
||||
|
||||
<div style='mso-element:endnote-separator' id=es>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US><span style='mso-special-character:footnote-separator'><![if !supportFootnotes]>
|
||||
|
||||
<hr align=left size=1 width="33%">
|
||||
|
||||
<![endif]></span></span></p>
|
||||
|
||||
</div>
|
||||
|
||||
<div style='mso-element:endnote-continuation-separator' id=ecs>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US><span style='mso-special-character:footnote-continuation-separator'><![if !supportFootnotes]>
|
||||
|
||||
<hr align=left size=1>
|
||||
|
||||
<![endif]></span></span></p>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
BIN
games/games/Help/开发入门必备.files/image001.png
Normal file
|
After Width: | Height: | Size: 9.0 KiB |
BIN
games/games/Help/开发入门必备.files/image002.jpg
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
games/games/Help/开发入门必备.files/themedata.thmx
Normal file
854
games/games/Help/开发入门必备.htm
Normal file
@@ -0,0 +1,854 @@
|
||||
<html xmlns:v="urn:schemas-microsoft-com:vml"
|
||||
xmlns:o="urn:schemas-microsoft-com:office:office"
|
||||
xmlns:w="urn:schemas-microsoft-com:office:word"
|
||||
xmlns:m="http://schemas.microsoft.com/office/2004/12/omml"
|
||||
xmlns="http://www.w3.org/TR/REC-html40">
|
||||
|
||||
<head>
|
||||
<meta http-equiv=Content-Type content="text/html; charset=gb2312">
|
||||
<meta name=ProgId content=Word.Document>
|
||||
<meta name=Generator content="Microsoft Word 12">
|
||||
<meta name=Originator content="Microsoft Word 12">
|
||||
<link rel=File-List href="开发入门必备.files/filelist.xml">
|
||||
<link rel=Edit-Time-Data href="开发入门必备.files/editdata.mso">
|
||||
<!--[if !mso]>
|
||||
<style>
|
||||
v\:* {behavior:url(#default#VML);}
|
||||
o\:* {behavior:url(#default#VML);}
|
||||
w\:* {behavior:url(#default#VML);}
|
||||
.shape {behavior:url(#default#VML);}
|
||||
</style>
|
||||
<![endif]--><!--[if gte mso 9]><xml>
|
||||
<o:DocumentProperties>
|
||||
<o:Author>Administrator</o:Author>
|
||||
<o:LastAuthor>Administrator</o:LastAuthor>
|
||||
<o:Revision>2</o:Revision>
|
||||
<o:TotalTime>85</o:TotalTime>
|
||||
<o:Created>2015-09-08T08:51:00Z</o:Created>
|
||||
<o:LastSaved>2015-09-08T08:51:00Z</o:LastSaved>
|
||||
<o:Pages>2</o:Pages>
|
||||
<o:Words>142</o:Words>
|
||||
<o:Characters>815</o:Characters>
|
||||
<o:Lines>6</o:Lines>
|
||||
<o:Paragraphs>1</o:Paragraphs>
|
||||
<o:CharactersWithSpaces>956</o:CharactersWithSpaces>
|
||||
<o:Version>12.00</o:Version>
|
||||
</o:DocumentProperties>
|
||||
</xml><![endif]-->
|
||||
<link rel=themeData href="开发入门必备.files/themedata.thmx">
|
||||
<link rel=colorSchemeMapping href="开发入门必备.files/colorschememapping.xml">
|
||||
<!--[if gte mso 9]><xml>
|
||||
<w:WordDocument>
|
||||
<w:SpellingState>Clean</w:SpellingState>
|
||||
<w:TrackMoves>false</w:TrackMoves>
|
||||
<w:TrackFormatting/>
|
||||
<w:PunctuationKerning/>
|
||||
<w:DrawingGridVerticalSpacing>7.8 磅</w:DrawingGridVerticalSpacing>
|
||||
<w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery>
|
||||
<w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery>
|
||||
<w:ValidateAgainstSchemas/>
|
||||
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
|
||||
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
|
||||
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
|
||||
<w:DoNotPromoteQF/>
|
||||
<w:LidThemeOther>EN-US</w:LidThemeOther>
|
||||
<w:LidThemeAsian>ZH-CN</w:LidThemeAsian>
|
||||
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
|
||||
<w:Compatibility>
|
||||
<w:SpaceForUL/>
|
||||
<w:BalanceSingleByteDoubleByteWidth/>
|
||||
<w:DoNotLeaveBackslashAlone/>
|
||||
<w:ULTrailSpace/>
|
||||
<w:DoNotExpandShiftReturn/>
|
||||
<w:AdjustLineHeightInTable/>
|
||||
<w:BreakWrappedTables/>
|
||||
<w:SnapToGridInCell/>
|
||||
<w:WrapTextWithPunct/>
|
||||
<w:UseAsianBreakRules/>
|
||||
<w:DontGrowAutofit/>
|
||||
<w:DontUseIndentAsNumberingTabStop/>
|
||||
<w:FELineBreak11/>
|
||||
<w:WW11IndentRules/>
|
||||
<w:DontAutofitConstrainedTables/>
|
||||
<w:AutofitLikeWW11/>
|
||||
<w:HangulWidthLikeWW11/>
|
||||
<w:UseNormalStyleForList/>
|
||||
<w:UseFELayout/>
|
||||
</w:Compatibility>
|
||||
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
|
||||
<m:mathPr>
|
||||
<m:mathFont m:val="Cambria Math"/>
|
||||
<m:brkBin m:val="before"/>
|
||||
<m:brkBinSub m:val="--"/>
|
||||
<m:smallFrac m:val="off"/>
|
||||
<m:dispDef/>
|
||||
<m:lMargin m:val="0"/>
|
||||
<m:rMargin m:val="0"/>
|
||||
<m:defJc m:val="centerGroup"/>
|
||||
<m:wrapIndent m:val="1440"/>
|
||||
<m:intLim m:val="subSup"/>
|
||||
<m:naryLim m:val="undOvr"/>
|
||||
</m:mathPr></w:WordDocument>
|
||||
</xml><![endif]--><!--[if gte mso 9]><xml>
|
||||
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
|
||||
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
|
||||
LatentStyleCount="267">
|
||||
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
|
||||
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
|
||||
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
|
||||
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
|
||||
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
|
||||
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
|
||||
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
|
||||
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
|
||||
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
|
||||
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
|
||||
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
|
||||
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
|
||||
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
|
||||
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
|
||||
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
|
||||
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
|
||||
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
|
||||
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
|
||||
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
|
||||
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
|
||||
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
|
||||
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
|
||||
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
|
||||
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
|
||||
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
|
||||
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
|
||||
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
|
||||
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
|
||||
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
|
||||
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
|
||||
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
|
||||
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Table Grid"/>
|
||||
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
|
||||
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
|
||||
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
|
||||
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Light Shading"/>
|
||||
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Light List"/>
|
||||
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Light Grid"/>
|
||||
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Medium Shading 1"/>
|
||||
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Medium Shading 2"/>
|
||||
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Medium List 1"/>
|
||||
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Medium List 2"/>
|
||||
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Medium Grid 1"/>
|
||||
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Medium Grid 2"/>
|
||||
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Medium Grid 3"/>
|
||||
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Dark List"/>
|
||||
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Colorful Shading"/>
|
||||
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Colorful List"/>
|
||||
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Colorful Grid"/>
|
||||
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
|
||||
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Light List Accent 1"/>
|
||||
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
|
||||
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
|
||||
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
|
||||
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
|
||||
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
|
||||
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
|
||||
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
|
||||
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
|
||||
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
|
||||
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
|
||||
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
|
||||
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
|
||||
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
|
||||
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
|
||||
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
|
||||
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
|
||||
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
|
||||
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
|
||||
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
|
||||
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
|
||||
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Light List Accent 2"/>
|
||||
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
|
||||
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
|
||||
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
|
||||
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
|
||||
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
|
||||
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
|
||||
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
|
||||
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
|
||||
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
|
||||
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
|
||||
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
|
||||
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
|
||||
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
|
||||
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Light List Accent 3"/>
|
||||
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
|
||||
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
|
||||
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
|
||||
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
|
||||
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
|
||||
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
|
||||
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
|
||||
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
|
||||
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
|
||||
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
|
||||
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
|
||||
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
|
||||
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
|
||||
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Light List Accent 4"/>
|
||||
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
|
||||
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
|
||||
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
|
||||
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
|
||||
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
|
||||
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
|
||||
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
|
||||
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
|
||||
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
|
||||
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
|
||||
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
|
||||
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
|
||||
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
|
||||
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Light List Accent 5"/>
|
||||
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
|
||||
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
|
||||
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
|
||||
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
|
||||
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
|
||||
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
|
||||
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
|
||||
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
|
||||
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
|
||||
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
|
||||
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
|
||||
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
|
||||
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
|
||||
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Light List Accent 6"/>
|
||||
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
|
||||
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
|
||||
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
|
||||
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
|
||||
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
|
||||
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
|
||||
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
|
||||
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
|
||||
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
|
||||
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
|
||||
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
|
||||
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
|
||||
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
|
||||
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
|
||||
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
|
||||
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
|
||||
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
|
||||
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
|
||||
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
|
||||
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
|
||||
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
|
||||
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
|
||||
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
|
||||
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
|
||||
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
|
||||
</w:LatentStyles>
|
||||
</xml><![endif]-->
|
||||
<style>
|
||||
<!--
|
||||
/* Font Definitions */
|
||||
@font-face
|
||||
{font-family:宋体;
|
||||
panose-1:2 1 6 0 3 1 1 1 1 1;
|
||||
mso-font-alt:SimSun;
|
||||
mso-font-charset:134;
|
||||
mso-generic-font-family:auto;
|
||||
mso-font-pitch:variable;
|
||||
mso-font-signature:3 680460288 22 0 262145 0;}
|
||||
@font-face
|
||||
{font-family:"Cambria Math";
|
||||
panose-1:2 4 5 3 5 4 6 3 2 4;
|
||||
mso-font-charset:0;
|
||||
mso-generic-font-family:roman;
|
||||
mso-font-pitch:variable;
|
||||
mso-font-signature:-536870145 1107305727 0 0 415 0;}
|
||||
@font-face
|
||||
{font-family:Calibri;
|
||||
panose-1:2 15 5 2 2 2 4 3 2 4;
|
||||
mso-font-charset:0;
|
||||
mso-generic-font-family:swiss;
|
||||
mso-font-pitch:variable;
|
||||
mso-font-signature:-536870145 1073786111 1 0 415 0;}
|
||||
@font-face
|
||||
{font-family:"\@宋体";
|
||||
panose-1:2 1 6 0 3 1 1 1 1 1;
|
||||
mso-font-charset:134;
|
||||
mso-generic-font-family:auto;
|
||||
mso-font-pitch:variable;
|
||||
mso-font-signature:3 680460288 22 0 262145 0;}
|
||||
/* Style Definitions */
|
||||
p.MsoNormal, li.MsoNormal, div.MsoNormal
|
||||
{mso-style-unhide:no;
|
||||
mso-style-qformat:yes;
|
||||
mso-style-parent:"";
|
||||
margin:0cm;
|
||||
margin-bottom:.0001pt;
|
||||
text-align:justify;
|
||||
text-justify:inter-ideograph;
|
||||
mso-pagination:none;
|
||||
font-size:10.5pt;
|
||||
mso-bidi-font-size:11.0pt;
|
||||
font-family:"Calibri","sans-serif";
|
||||
mso-fareast-font-family:宋体;
|
||||
mso-bidi-font-family:"Times New Roman";
|
||||
mso-font-kerning:1.0pt;}
|
||||
p.MsoHeader, li.MsoHeader, div.MsoHeader
|
||||
{mso-style-noshow:yes;
|
||||
mso-style-priority:99;
|
||||
mso-style-link:"页眉 Char";
|
||||
margin:0cm;
|
||||
margin-bottom:.0001pt;
|
||||
text-align:center;
|
||||
mso-pagination:none;
|
||||
tab-stops:center 207.65pt right 415.3pt;
|
||||
layout-grid-mode:char;
|
||||
border:none;
|
||||
mso-border-bottom-alt:solid windowtext .75pt;
|
||||
padding:0cm;
|
||||
mso-padding-alt:0cm 0cm 1.0pt 0cm;
|
||||
font-size:9.0pt;
|
||||
font-family:"Calibri","sans-serif";
|
||||
mso-fareast-font-family:宋体;
|
||||
mso-bidi-font-family:"Times New Roman";
|
||||
mso-font-kerning:1.0pt;}
|
||||
p.MsoFooter, li.MsoFooter, div.MsoFooter
|
||||
{mso-style-noshow:yes;
|
||||
mso-style-priority:99;
|
||||
mso-style-link:"页脚 Char";
|
||||
margin:0cm;
|
||||
margin-bottom:.0001pt;
|
||||
mso-pagination:none;
|
||||
tab-stops:center 207.65pt right 415.3pt;
|
||||
layout-grid-mode:char;
|
||||
font-size:9.0pt;
|
||||
font-family:"Calibri","sans-serif";
|
||||
mso-fareast-font-family:宋体;
|
||||
mso-bidi-font-family:"Times New Roman";
|
||||
mso-font-kerning:1.0pt;}
|
||||
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
|
||||
{mso-style-noshow:yes;
|
||||
mso-style-priority:99;
|
||||
mso-style-link:"批注框文本 Char";
|
||||
margin:0cm;
|
||||
margin-bottom:.0001pt;
|
||||
text-align:justify;
|
||||
text-justify:inter-ideograph;
|
||||
mso-pagination:none;
|
||||
font-size:9.0pt;
|
||||
font-family:"Calibri","sans-serif";
|
||||
mso-fareast-font-family:宋体;
|
||||
mso-bidi-font-family:"Times New Roman";
|
||||
mso-font-kerning:1.0pt;}
|
||||
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
|
||||
{mso-style-priority:34;
|
||||
mso-style-unhide:no;
|
||||
mso-style-qformat:yes;
|
||||
margin:0cm;
|
||||
margin-bottom:.0001pt;
|
||||
text-align:justify;
|
||||
text-justify:inter-ideograph;
|
||||
text-indent:21.0pt;
|
||||
mso-char-indent-count:2.0;
|
||||
mso-pagination:none;
|
||||
font-size:10.5pt;
|
||||
mso-bidi-font-size:11.0pt;
|
||||
font-family:"Calibri","sans-serif";
|
||||
mso-fareast-font-family:宋体;
|
||||
mso-bidi-font-family:"Times New Roman";
|
||||
mso-font-kerning:1.0pt;}
|
||||
span.Char
|
||||
{mso-style-name:"批注框文本 Char";
|
||||
mso-style-noshow:yes;
|
||||
mso-style-priority:99;
|
||||
mso-style-unhide:no;
|
||||
mso-style-locked:yes;
|
||||
mso-style-link:批注框文本;
|
||||
mso-ansi-font-size:9.0pt;
|
||||
mso-bidi-font-size:9.0pt;}
|
||||
span.Char0
|
||||
{mso-style-name:"页眉 Char";
|
||||
mso-style-noshow:yes;
|
||||
mso-style-priority:99;
|
||||
mso-style-unhide:no;
|
||||
mso-style-locked:yes;
|
||||
mso-style-link:页眉;
|
||||
mso-ansi-font-size:9.0pt;
|
||||
mso-bidi-font-size:9.0pt;
|
||||
mso-font-kerning:1.0pt;}
|
||||
span.Char1
|
||||
{mso-style-name:"页脚 Char";
|
||||
mso-style-noshow:yes;
|
||||
mso-style-priority:99;
|
||||
mso-style-unhide:no;
|
||||
mso-style-locked:yes;
|
||||
mso-style-link:页脚;
|
||||
mso-ansi-font-size:9.0pt;
|
||||
mso-bidi-font-size:9.0pt;
|
||||
mso-font-kerning:1.0pt;}
|
||||
.MsoChpDefault
|
||||
{mso-style-type:export-only;
|
||||
mso-default-props:yes;
|
||||
mso-ascii-font-family:Calibri;
|
||||
mso-fareast-font-family:宋体;
|
||||
mso-hansi-font-family:Calibri;}
|
||||
/* Page Definitions */
|
||||
@page
|
||||
{mso-page-border-surround-header:no;
|
||||
mso-page-border-surround-footer:no;
|
||||
mso-footnote-separator:url("开发入门必备.files/header.htm") fs;
|
||||
mso-footnote-continuation-separator:url("开发入门必备.files/header.htm") fcs;
|
||||
mso-endnote-separator:url("开发入门必备.files/header.htm") es;
|
||||
mso-endnote-continuation-separator:url("开发入门必备.files/header.htm") ecs;}
|
||||
@page WordSection1
|
||||
{size:595.3pt 841.9pt;
|
||||
margin:72.0pt 90.0pt 72.0pt 90.0pt;
|
||||
mso-header-margin:42.55pt;
|
||||
mso-footer-margin:49.6pt;
|
||||
mso-paper-source:0;
|
||||
layout-grid:15.6pt;}
|
||||
div.WordSection1
|
||||
{page:WordSection1;}
|
||||
/* List Definitions */
|
||||
@list l0
|
||||
{mso-list-id:394478214;
|
||||
mso-list-type:hybrid;
|
||||
mso-list-template-ids:2108559854 809295648 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
|
||||
@list l0:level1
|
||||
{mso-level-text:%1,;
|
||||
mso-level-tab-stop:none;
|
||||
mso-level-number-position:left;
|
||||
margin-left:18.0pt;
|
||||
text-indent:-18.0pt;}
|
||||
ol
|
||||
{margin-bottom:0cm;}
|
||||
ul
|
||||
{margin-bottom:0cm;}
|
||||
-->
|
||||
</style>
|
||||
<!--[if gte mso 10]>
|
||||
<style>
|
||||
/* Style Definitions */
|
||||
table.MsoNormalTable
|
||||
{mso-style-name:普通表格;
|
||||
mso-tstyle-rowband-size:0;
|
||||
mso-tstyle-colband-size:0;
|
||||
mso-style-noshow:yes;
|
||||
mso-style-priority:99;
|
||||
mso-style-qformat:yes;
|
||||
mso-style-parent:"";
|
||||
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
|
||||
mso-para-margin:0cm;
|
||||
mso-para-margin-bottom:.0001pt;
|
||||
mso-pagination:widow-orphan;
|
||||
font-size:10.0pt;
|
||||
font-family:"Calibri","sans-serif";}
|
||||
</style>
|
||||
<![endif]--><!--[if gte mso 9]><xml>
|
||||
<o:shapedefaults v:ext="edit" spidmax="3074">
|
||||
<o:colormenu v:ext="edit" fillcolor="none [671]"/>
|
||||
</o:shapedefaults></xml><![endif]--><!--[if gte mso 9]><xml>
|
||||
<o:shapelayout v:ext="edit">
|
||||
<o:idmap v:ext="edit" data="1"/>
|
||||
</o:shapelayout></xml><![endif]-->
|
||||
</head>
|
||||
|
||||
<body lang=ZH-CN style='tab-interval:21.0pt;text-justify-trim:punctuation'>
|
||||
|
||||
<div class=WordSection1 style='layout-grid:15.6pt'>
|
||||
|
||||
<p class=MsoNormal style='text-indent:128.0pt;mso-char-indent-count:8.0'><span
|
||||
style='font-size:16.0pt;font-family:宋体;mso-ascii-font-family:Calibri;
|
||||
mso-hansi-font-family:Calibri'>必备入门技巧</span><span lang=EN-US style='font-size:
|
||||
16.0pt'><o:p></o:p></span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US>1</span><span style='font-family:宋体;
|
||||
mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri'>)学习和开发</span><span
|
||||
lang=EN-US>js</span><span style='font-family:宋体;mso-ascii-font-family:Calibri;
|
||||
mso-hansi-font-family:Calibri'>游戏,必须掌握使用</span><span lang=EN-US>f12</span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri'>查看谷歌浏览器的调试环境,在这里可以发现你代码书写和运行的错误。</span></p>
|
||||
|
||||
<p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan'><span
|
||||
lang=EN-US style='font-size:12.0pt;font-family:宋体;mso-bidi-font-family:宋体;
|
||||
mso-font-kerning:0pt;mso-no-proof:yes'><!--[if gte vml 1]><v:shapetype id="_x0000_t75"
|
||||
coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe"
|
||||
filled="f" stroked="f">
|
||||
<v:stroke joinstyle="miter"/>
|
||||
<v:formulas>
|
||||
<v:f eqn="if lineDrawn pixelLineWidth 0"/>
|
||||
<v:f eqn="sum @0 1 0"/>
|
||||
<v:f eqn="sum 0 0 @1"/>
|
||||
<v:f eqn="prod @2 1 2"/>
|
||||
<v:f eqn="prod @3 21600 pixelWidth"/>
|
||||
<v:f eqn="prod @3 21600 pixelHeight"/>
|
||||
<v:f eqn="sum @0 0 1"/>
|
||||
<v:f eqn="prod @6 1 2"/>
|
||||
<v:f eqn="prod @7 21600 pixelWidth"/>
|
||||
<v:f eqn="sum @8 21600 0"/>
|
||||
<v:f eqn="prod @7 21600 pixelHeight"/>
|
||||
<v:f eqn="sum @10 21600 0"/>
|
||||
</v:formulas>
|
||||
<v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/>
|
||||
<o:lock v:ext="edit" aspectratio="t"/>
|
||||
</v:shapetype><v:shape id="图片_x0020_1" o:spid="_x0000_i1025" type="#_x0000_t75"
|
||||
style='width:420pt;height:134.25pt;visibility:visible'>
|
||||
<v:imagedata src="开发入门必备.files/image001.png" o:title="Y@JH]Q{WJAU3BPWMS4~A3$N"/>
|
||||
</v:shape><![endif]--><![if !vml]><img width=560 height=179
|
||||
src="开发入门必备.files/image002.jpg" v:shapes="图片_x0020_1"><![endif]></span><span
|
||||
lang=EN-US style='font-size:12.0pt;font-family:宋体;mso-bidi-font-family:宋体;
|
||||
mso-font-kerning:0pt'><o:p></o:p></span></p>
|
||||
|
||||
<p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan'><span
|
||||
lang=EN-US style='font-size:12.0pt;font-family:宋体;mso-bidi-font-family:宋体;
|
||||
mso-font-kerning:0pt'>2</span><span style='font-size:12.0pt;font-family:宋体;
|
||||
mso-bidi-font-family:宋体;mso-font-kerning:0pt'>)</span><span style='font-family:
|
||||
宋体;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri'>学习和开发</span><span
|
||||
lang=EN-US>js</span><span style='font-family:宋体;mso-ascii-font-family:Calibri;
|
||||
mso-hansi-font-family:Calibri'>游戏,必须掌握的</span><span lang=EN-US> js</span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri'>数据类型</span><span
|
||||
lang=EN-US><span style='mso-tab-count:1'> </span></span></p>
|
||||
|
||||
<p class=MsoListParagraph style='margin-left:18.0pt;text-indent:-18.0pt;
|
||||
mso-char-indent-count:0;mso-list:l0 level1 lfo1'><![if !supportLists]><span
|
||||
lang=EN-US style='mso-fareast-font-family:Calibri;mso-bidi-font-family:Calibri'><span
|
||||
style='mso-list:Ignore'>1,<span style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><span
|
||||
style='font-family:宋体;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri'>数字类型</span></p>
|
||||
|
||||
<p class=MsoListParagraph style='margin-left:18.0pt;text-indent:0cm;mso-char-indent-count:
|
||||
0'><span style='font-family:宋体;mso-ascii-font-family:Calibri;mso-hansi-font-family:
|
||||
Calibri'>例如:</span><span lang=EN-US>var<span style='mso-spacerun:yes'>
|
||||
</span>i=100;</span></p>
|
||||
|
||||
<p class=MsoListParagraph style='margin-left:18.0pt;text-indent:0cm;mso-char-indent-count:
|
||||
0'><span lang=EN-US><o:p> </o:p></span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US>2,</span><span style='font-family:宋体;
|
||||
mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri'>文字类型</span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US><span
|
||||
style='mso-spacerun:yes'> </span></span><span style='font-family:宋体;
|
||||
mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri'>例如:</span><span
|
||||
lang=EN-US>var s=”</span><span style='font-family:宋体;mso-ascii-font-family:
|
||||
Calibri;mso-hansi-font-family:Calibri'>你好</span><span lang=EN-US>”</span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US>3</span><span style='font-family:宋体;
|
||||
mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri'>,数组类型</span></p>
|
||||
|
||||
<p class=MsoNormal><span style='font-family:宋体;mso-ascii-font-family:Calibri;
|
||||
mso-hansi-font-family:Calibri'>例如:</span><span lang=EN-US>var<span
|
||||
style='mso-spacerun:yes'> </span>a=[];</span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US><span
|
||||
style='mso-spacerun:yes'> </span>a[0]=100;</span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US><span
|
||||
style='mso-spacerun:yes'>
|
||||
</span>a[1]=”</span><span style='font-family:宋体;mso-ascii-font-family:Calibri;
|
||||
mso-hansi-font-family:Calibri'>你好</span><span lang=EN-US>123”</span></p>
|
||||
|
||||
<p class=MsoNormal><span style='font-family:宋体;mso-ascii-font-family:Calibri;
|
||||
mso-hansi-font-family:Calibri'>注意从</span><span lang=EN-US>0</span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri'>最小开始</span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US>4</span><span style='font-family:宋体;
|
||||
mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri'>,容器类型</span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US><span
|
||||
style='mso-spacerun:yes'> </span></span><span style='font-family:宋体;
|
||||
mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri'>例如</span><span
|
||||
lang=EN-US> var bb={};</span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US><span
|
||||
style='mso-spacerun:yes'> </span>bb.a=[];</span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US><span
|
||||
style='mso-spacerun:yes'> </span>bb.a[1]=99;</span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US><span
|
||||
style='mso-spacerun:yes'> </span>bb.i=123;</span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US><span
|
||||
style='mso-spacerun:yes'> </span>bb.s=”</span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri'>你好</span><span
|
||||
lang=EN-US>123”;</span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US><span
|
||||
style='mso-spacerun:yes'> </span>bb.bbz={};</span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US><span
|
||||
style='mso-spacerun:yes'> </span>bb.bbz.i=100;</span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US><span
|
||||
style='mso-spacerun:yes'> </span>bb.bbz.s=”</span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri'>你好</span><span
|
||||
lang=EN-US>321”</span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US>showmessage(bb.s);</span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p>
|
||||
|
||||
<p class=MsoNormal><span style='font-family:宋体;mso-ascii-font-family:Calibri;
|
||||
mso-hansi-font-family:Calibri'>注意:可以使用</span><span lang=EN-US>’.’</span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri'>来包容</span></p>
|
||||
|
||||
<p class=MsoNormal><span style='font-family:宋体;mso-ascii-font-family:Calibri;
|
||||
mso-hansi-font-family:Calibri'>其它类型,包括容器类型</span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p>
|
||||
|
||||
<p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan'><span
|
||||
lang=EN-US style='font-size:12.0pt;font-family:宋体;mso-bidi-font-family:宋体;
|
||||
mso-font-kerning:0pt'>3</span><span style='font-size:12.0pt;font-family:宋体;
|
||||
mso-bidi-font-family:宋体;mso-font-kerning:0pt'>)</span><span style='font-family:
|
||||
宋体;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri'>学习和开发</span><span
|
||||
lang=EN-US>js</span><span style='font-family:宋体;mso-ascii-font-family:Calibri;
|
||||
mso-hansi-font-family:Calibri'>游戏,必须掌握的</span><span lang=EN-US><span
|
||||
style='mso-tab-count:1'> </span></span><span style='font-family:宋体;mso-ascii-font-family:
|
||||
Calibri;mso-hansi-font-family:Calibri'>分割字符串</span> <span style='font-family:
|
||||
宋体;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri'>为数组。</span></p>
|
||||
|
||||
<p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan'><span
|
||||
lang=EN-US><span style='mso-spacerun:yes'> </span></span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri'>例如</span><span
|
||||
lang=EN-US> var s=’123,,456,,789’;</span></p>
|
||||
|
||||
<p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan'><span
|
||||
lang=EN-US><span
|
||||
style='mso-spacerun:yes'> </span>var
|
||||
a=ifast_split(s,’,,’);</span></p>
|
||||
|
||||
<p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan'><span
|
||||
lang=EN-US><span
|
||||
style='mso-spacerun:yes'>
|
||||
</span>showmessage(a[1]);</span></p>
|
||||
|
||||
<p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan'><span
|
||||
lang=EN-US><span style='mso-spacerun:yes'> </span></span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri'>显示</span><span
|
||||
lang=EN-US>456</span></p>
|
||||
|
||||
<p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan'><span
|
||||
lang=EN-US><span style='mso-spacerun:yes'> </span></span></p>
|
||||
|
||||
<p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan'><span
|
||||
lang=EN-US>4) </span><span style='font-family:宋体;mso-ascii-font-family:Calibri;
|
||||
mso-hansi-font-family:Calibri'>学习和开发</span><span lang=EN-US>js</span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri'>游戏,必须掌握的</span><span
|
||||
lang=EN-US><span style='mso-tab-count:1'> </span>json</span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri'>类型和字符串相互转换。</span></p>
|
||||
|
||||
<p class=MsoNormal align=left style='text-align:left;text-indent:10.5pt;
|
||||
mso-char-indent-count:1.0;mso-pagination:widow-orphan'><span lang=EN-US><span
|
||||
style='mso-spacerun:yes'> </span>var hh=[];</span></p>
|
||||
|
||||
<p class=MsoNormal align=left style='text-align:left;text-indent:10.5pt;
|
||||
mso-char-indent-count:1.0;mso-pagination:widow-orphan'><span lang=EN-US>hh[0]=100;</span></p>
|
||||
|
||||
<p class=MsoNormal align=left style='text-align:left;text-indent:10.5pt;
|
||||
mso-char-indent-count:1.0;mso-pagination:widow-orphan'><span lang=EN-US>hh[1]='111,,222,,333';</span></p>
|
||||
|
||||
<p class=MsoNormal align=left style='text-align:left;text-indent:10.5pt;
|
||||
mso-char-indent-count:1.0;mso-pagination:widow-orphan'><span lang=EN-US><span
|
||||
style='mso-spacerun:yes'> </span>var s=ifast_jsontostring(hh);//json</span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri'>转字符串</span></p>
|
||||
|
||||
<p class=MsoNormal align=left style='text-align:left;text-indent:10.5pt;
|
||||
mso-char-indent-count:1.0;mso-pagination:widow-orphan'><span lang=EN-US><span
|
||||
style='mso-spacerun:yes'> </span>showmessage(s);</span></p>
|
||||
|
||||
<p class=MsoNormal align=left style='text-align:left;text-indent:10.5pt;
|
||||
mso-char-indent-count:1.0;mso-pagination:widow-orphan'><span lang=EN-US><o:p> </o:p></span></p>
|
||||
|
||||
<p class=MsoNormal align=left style='text-align:left;text-indent:21.0pt;
|
||||
mso-char-indent-count:2.0;mso-pagination:widow-orphan'><span lang=EN-US>var
|
||||
aaa=ifast_tojson(s);//</span><span style='font-family:宋体;mso-ascii-font-family:
|
||||
Calibri;mso-hansi-font-family:Calibri'>字符串转</span><span lang=EN-US>json</span></p>
|
||||
|
||||
<p class=MsoNormal align=left style='text-align:left;text-indent:21.0pt;
|
||||
mso-char-indent-count:2.0;mso-pagination:widow-orphan'><span style='font-family:
|
||||
宋体;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri'>可以自己随便测试转化。熟悉</span><span
|
||||
lang=EN-US>json</span></p>
|
||||
|
||||
<p class=MsoNormal align=left style='text-align:left;text-indent:21.0pt;
|
||||
mso-char-indent-count:2.0;mso-pagination:widow-orphan'><span lang=EN-US><o:p> </o:p></span></p>
|
||||
|
||||
<p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan'><span
|
||||
lang=EN-US>5) </span><span style='font-family:宋体;mso-ascii-font-family:Calibri;
|
||||
mso-hansi-font-family:Calibri'>学习和开发</span><span lang=EN-US>js</span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri'>游戏,必须掌握的</span><span
|
||||
lang=EN-US><span style='mso-tab-count:1'> </span></span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri'>网络收发数据</span></p>
|
||||
|
||||
<p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan'><span
|
||||
lang=EN-US><span style='mso-spacerun:yes'> </span></span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri'>注意网络因为有延时,收发数据是分开处理的</span></p>
|
||||
|
||||
<p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan'><span
|
||||
lang=EN-US><span style='mso-spacerun:yes'> </span></span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri'>获取数据函数</span><span
|
||||
lang=EN-US>ifast_http(myid,url)</span></p>
|
||||
|
||||
<p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan'><span
|
||||
lang=EN-US><span style='mso-spacerun:yes'> </span></span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri'>接收函数在</span><span
|
||||
lang=EN-US>gameabc_face.httpmessage=function(myid,url,data)</span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri'>里面处理</span></p>
|
||||
|
||||
<p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan'><span
|
||||
lang=EN-US><span style='mso-spacerun:yes'> </span><span
|
||||
style='mso-spacerun:yes'> </span><span
|
||||
style='mso-spacerun:yes'> </span></span><span style='font-family:宋体;
|
||||
mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri'>通过参数</span><span
|
||||
lang=EN-US>myid</span><span style='font-family:宋体;mso-ascii-font-family:Calibri;
|
||||
mso-hansi-font-family:Calibri'>来区分数据来源</span></p>
|
||||
|
||||
<p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan'><span
|
||||
lang=EN-US><span style='mso-spacerun:yes'> </span></span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri'>具体可以自己联系获取数据</span></p>
|
||||
|
||||
<p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan'><span
|
||||
lang=EN-US><span style='mso-spacerun:yes'> </span></span><span
|
||||
style='font-family:宋体;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri'>例如:</span><span
|
||||
lang=EN-US>gameabc</span><span style='font-family:宋体;mso-ascii-font-family:
|
||||
Calibri;mso-hansi-font-family:Calibri'>本身支持网络文件读取。可以用于简单网络游戏编写。</span></p>
|
||||
|
||||
<p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan'><span
|
||||
lang=EN-US><span style='mso-spacerun:yes'> </span></span></p>
|
||||
|
||||
<p class=MsoNormal align=left style='text-align:left;text-indent:21.0pt;
|
||||
mso-char-indent-count:2.0;mso-pagination:widow-orphan'><span lang=EN-US><o:p> </o:p></span></p>
|
||||
|
||||
<p class=MsoNormal align=left style='text-align:left;text-indent:21.0pt;
|
||||
mso-char-indent-count:2.0;mso-pagination:widow-orphan'><span lang=EN-US><o:p> </o:p></span></p>
|
||||
|
||||
<p class=MsoNormal align=left style='text-align:left;text-indent:21.0pt;
|
||||
mso-char-indent-count:2.0;mso-pagination:widow-orphan'><span lang=EN-US><o:p> </o:p></span></p>
|
||||
|
||||
<span lang=EN-US style='font-size:10.5pt;mso-bidi-font-size:11.0pt;font-family:
|
||||
"Calibri","sans-serif";mso-fareast-font-family:宋体;mso-bidi-font-family:"Times New Roman";
|
||||
mso-font-kerning:1.0pt;mso-ansi-language:EN-US;mso-fareast-language:ZH-CN;
|
||||
mso-bidi-language:AR-SA'><br clear=all style='mso-special-character:line-break;
|
||||
page-break-before:always'>
|
||||
</span>
|
||||
|
||||
<p class=MsoNormal align=left style='text-align:left;text-indent:10.5pt;
|
||||
mso-char-indent-count:1.0;mso-pagination:widow-orphan'><span lang=EN-US><o:p> </o:p></span></p>
|
||||
|
||||
<p class=MsoNormal align=left style='text-align:left;text-indent:10.5pt;
|
||||
mso-char-indent-count:1.0;mso-pagination:widow-orphan'><span lang=EN-US><o:p> </o:p></span></p>
|
||||
|
||||
<p class=MsoNormal align=left style='text-align:left;text-indent:10.5pt;
|
||||
mso-char-indent-count:1.0;mso-pagination:widow-orphan'><span lang=EN-US><o:p> </o:p></span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
BIN
games/games/Help/引擎学习.doc
Normal file
BIN
games/games/Help/引擎系统时间构架.doc
Normal file
25
games/games/Help/设计游戏的简略步骤.txt
Normal file
@@ -0,0 +1,25 @@
|
||||
前提:
|
||||
1、将游戏的大致思路设计完善
|
||||
2、针对游戏制作简图,存放到程序目录下的Projects文件夹内的游戏名称里的assets\bmp文件夹里。
|
||||
例如:E:\陆松ABC\Projects\feitianzhanshu\assets\bmp
|
||||
3、打开程序进入设计步骤
|
||||
开始设计:
|
||||
1、根据设计思路加载精灵
|
||||
2、通过精灵的事件属性进入代码写作流程
|
||||
精灵的事件属性:点击精灵后,在右下角的属性框里先择事件,就可以看到。包含如下:
|
||||
mousedown:点下事件——点中该精灵后可触发的事件。
|
||||
mouseup:弹起事件——点中该精灵后,再放开时可触发的事件。
|
||||
mousemove:移动事件——控制被点中的精灵跟随着鼠标(手指)移动的事件。
|
||||
ontimer:定时器事件——控制定时操作的事件。
|
||||
3,在游戏代码中使用
|
||||
set_self
|
||||
set_group
|
||||
set_level 三个函数 基本可以完成游戏开放
|
||||
动画函数
|
||||
play_ani
|
||||
play_box 见说明
|
||||
4、测试游戏
|
||||
首先需要安装谷歌浏览器
|
||||
然后第一次测试时需点击程序菜单栏里的“运行”,然后选择“参数设定”。将谷歌浏览器的地址输入到IE浏览栏。然后确定。
|
||||
之后再在快捷操作栏(图标栏),点击右三角箭头图标右边的地球图标,再点击右三角箭头图标即可。
|
||||
|
||||
5
games/games/History.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
G:\Works\YouleGames\games\games\Projects\clinet\zpy\
|
||||
G:\Works\YouleGames\games\games\Projects\clinet\sangelaok\
|
||||
G:\Works\YouleGames\games\games\Projects\clinet\niuniu\
|
||||
G:\Works\YouleGames\games\games\Projects\clinet\guanpai-jx\
|
||||
G:\Works\YouleGames\games\games\Projects\clinet\doudizhu\
|
||||
37
games/games/Local.ini
Normal file
@@ -0,0 +1,37 @@
|
||||
[System]
|
||||
Language=Chinese
|
||||
TxtFontFile=android.ttf
|
||||
TxtFontName=Droid Sans Fallback
|
||||
Explorer=C:\Program Files\Google\Chrome\Application\chrome.exe
|
||||
|
||||
[Project]
|
||||
DefaultSceneWidth=1200
|
||||
DefaultSceneHeight=1800
|
||||
DefaultScreenWidth=800
|
||||
DefaultScreenHeight=1280
|
||||
|
||||
[ImageRes]
|
||||
AddResMode=0
|
||||
DelResAsk=1
|
||||
ImpSubDir=1
|
||||
ImpPng=1
|
||||
ImpBmp=0
|
||||
ImpJpg=0
|
||||
ImpJpeg=0
|
||||
ImpIco=0
|
||||
ImpEmf=0
|
||||
ImpWmf=0
|
||||
ImpGif=0
|
||||
ImpTee=0
|
||||
|
||||
[TextRes]
|
||||
DelResAsk=1
|
||||
|
||||
[VoiceRes]
|
||||
AddResMode=1
|
||||
DelResAsk=1
|
||||
ImpSubDir=1
|
||||
ImpMp3=1
|
||||
ImpWav=1
|
||||
|
||||
|
||||
381
games/games/Projects/backstage/YouLeGamesServer.html
Normal file
@@ -0,0 +1,381 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="Expires" content="0">
|
||||
<meta http-equiv="Pragma" content="no-cache">
|
||||
<meta http-equiv="Cache-Control" content="no-cache, must-revalidate">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1 user-scalable=0"/>
|
||||
<title>后台接口表</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="divChat">
|
||||
<textarea name="txtChatMain" id="txtChatMain" readonly="readonly" class="txtarea"></textarea>
|
||||
</div>
|
||||
|
||||
<style type='text/css'>
|
||||
div#divChat { width:30em; }
|
||||
textarea.txtarea { float:left; width: 34em; height: 20em;}
|
||||
</style>
|
||||
<script type="text/javascript" src="md5.js"></script>
|
||||
<script type="text/javascript" src="indexDb.js"></script>
|
||||
<script type="text/javascript" src="lz-string.js"></script>
|
||||
<script type="text/javascript" src="minhttp.js"></script>
|
||||
<script type="text/javascript" src="packet.js"></script>
|
||||
<script type="text/javascript">
|
||||
// Websocket object
|
||||
var ws = null;
|
||||
// Websocket 连接地址
|
||||
var ws_url = "ws://127.0.0.1:56000";
|
||||
//临时屏蔽某个游戏的数据包
|
||||
var blacknamelist_game = [];
|
||||
// Helper functions
|
||||
function $() {
|
||||
return document.getElementById(arguments[0]);
|
||||
}
|
||||
function logMsg(msg) {
|
||||
$('txtChatMain').value += msg + '\n';
|
||||
}
|
||||
function logmsg(msg) {
|
||||
$('txtChatMain').value += msg + '\n';
|
||||
}
|
||||
function sendMsg(msg) {
|
||||
try{
|
||||
ws.send(msg);
|
||||
}catch(e){
|
||||
console.log(min_now() + "发包报错。");
|
||||
console.log(msg);
|
||||
console.log(e);
|
||||
}
|
||||
}
|
||||
function sendmsg(msg) {
|
||||
try{
|
||||
ws.send(msg);
|
||||
}catch(e){
|
||||
console.log(min_now() + "发包报错。");
|
||||
console.log(msg);
|
||||
console.log(e);
|
||||
}
|
||||
}
|
||||
//重新连接
|
||||
function reconnect(){
|
||||
ws = null;
|
||||
connectWebSocket();
|
||||
}
|
||||
// Websocket functions
|
||||
function connectWebSocket() {
|
||||
OnBeginConnectedServerChat();
|
||||
if ("WebSocket" in window) {
|
||||
// Create new websocket connection
|
||||
ws = new WebSocket(ws_url);
|
||||
|
||||
// Called after connection is established
|
||||
ws.onopen = function() {
|
||||
logMsg(min_now() + ' tcp connected to: ' + ws.url);
|
||||
sendMsg('dfw19770109'); //告诉ServerChat.exe我是逻辑服务器
|
||||
ws.wsisclose = false;
|
||||
};
|
||||
|
||||
// Called when connection is closed
|
||||
ws.onclose = function() {
|
||||
ws.wsisclose = true;
|
||||
logMsg(min_now() + " Connection closed!");
|
||||
ws.reconnecttimer = min_ontimeout(reconnect, 5000);
|
||||
};
|
||||
|
||||
// Called when a new message is received
|
||||
ws.sendall = function (msg) {
|
||||
if (ws.wsisclose){
|
||||
return;
|
||||
}
|
||||
if (typeof(msg) == 'string') {
|
||||
sendMsg('@toallall:' + msg);
|
||||
}
|
||||
else
|
||||
{
|
||||
var s = JSON.stringify(msg);
|
||||
sendMsg('@toallall:' + s);
|
||||
}
|
||||
}
|
||||
|
||||
//Send message to HTTP client
|
||||
ws.sendtou = function (head, msg) {
|
||||
if (ws.wsisclose){
|
||||
return;
|
||||
}
|
||||
sendMsg(head + msg);
|
||||
}
|
||||
|
||||
//Send message to TCP client
|
||||
ws.sendbyids = function(ids, msg) {
|
||||
if (ws.wsisclose){
|
||||
return;
|
||||
}
|
||||
var s = '@tooneone:';
|
||||
var str_ids;
|
||||
if (typeof(msg) == 'string')
|
||||
{}
|
||||
else
|
||||
{
|
||||
msg = JSON.stringify(msg);
|
||||
}
|
||||
if (typeof(ids) == 'string')
|
||||
{
|
||||
str_ids = ids;
|
||||
}
|
||||
else
|
||||
{
|
||||
//ids:[1,5,8] 要转成字符串 1,5,8
|
||||
str_ids = ids[0];
|
||||
for (var i=1; i<ids.length; i++)
|
||||
{
|
||||
str_ids = str_ids + ',' + ids[i];
|
||||
}
|
||||
}
|
||||
s = s + str_ids + ':' + msg;
|
||||
sendMsg(s);
|
||||
}
|
||||
|
||||
ws.sendclosetcp = function(ids) {
|
||||
if (ws.wsisclose){
|
||||
return;
|
||||
}
|
||||
var s = '@toclosed:';
|
||||
var str_ids;
|
||||
if (typeof(ids) == 'string') {
|
||||
str_ids = ids;
|
||||
}else{
|
||||
//ids:[1,5,8] 要转成字符串 1,5,8
|
||||
str_ids = ids[0];
|
||||
for (var i=1; i<ids.length; i++)
|
||||
{
|
||||
str_ids = str_ids + ',' + ids[i];
|
||||
}
|
||||
}
|
||||
s = s + str_ids+ ':a';
|
||||
sendMsg(s);
|
||||
}
|
||||
|
||||
ws.onmessage = function (msg) {
|
||||
if (msg.data)
|
||||
{
|
||||
// logMsg(msg.data);
|
||||
var arr = msg.data;
|
||||
var tou = arr.substr(10, 5);
|
||||
// var arrs = arr.split(":");
|
||||
//取前面50个字符,以免全字符split,提高效率
|
||||
var arr50 = arr.substr(0, 50);
|
||||
var arrs = arr50.split(":");
|
||||
|
||||
if (tou == 'http_')
|
||||
{//http
|
||||
var s1 = '@tooneone' + ':' + arrs[1] + ':';
|
||||
var s2 = "";
|
||||
if (arrs.length > 2)
|
||||
{//是数据,否则是命令
|
||||
s2 = msg.data.substr(s1.length, msg.data.length-s1.length);
|
||||
}
|
||||
OnHttpMessage(s1, s2);
|
||||
}
|
||||
else
|
||||
{//tcp
|
||||
var ss0 = arrs[0];
|
||||
var ss1 = arrs[1];
|
||||
var sip = arrs[2];
|
||||
var s01 = ss0 + ':' + ss1 + ':' + sip + ':';
|
||||
var ss2 = "";
|
||||
if (arrs.length > 3)
|
||||
{//是数据,否则是命令
|
||||
ss2 = msg.data.substr(s01.length, msg.data.length - s01.length);
|
||||
}
|
||||
OnTcpMessage(ss0, ss1, sip, ss2);
|
||||
|
||||
// var ss0 = arrs[0];
|
||||
// var ss1 = arrs[1];
|
||||
// var s01 = ss0 + ':' + ss1 + ':';
|
||||
// var ss2 = "";
|
||||
// if (arrs.length > 2)
|
||||
// {//是数据,否则是命令
|
||||
// ss2 = msg.data.substr(s01.length, msg.data.length - s01.length);
|
||||
// }
|
||||
// OnTcpMessage(ss0, ss1, "", ss2);
|
||||
}
|
||||
};
|
||||
|
||||
return;
|
||||
};
|
||||
}
|
||||
else
|
||||
{
|
||||
logMsg('Browser doesn\'t support websockets!');
|
||||
}
|
||||
|
||||
OnAfterConnectedServerChat();
|
||||
}
|
||||
|
||||
//server.html连接ServerChat.exe前的事件
|
||||
function OnBeginConnectedServerChat()
|
||||
{
|
||||
}
|
||||
|
||||
//server.html连接ServerChat.exe后的事件
|
||||
function OnAfterConnectedServerChat()
|
||||
{
|
||||
//给packet_face传递发包函数
|
||||
if (typeof(packet_face) != "undefined")
|
||||
{
|
||||
global.packet_face.SendPack_Tcp = ws.sendbyids;
|
||||
global.packet_face.SendPack_Http = ws.sendtou;
|
||||
}
|
||||
}
|
||||
|
||||
//收到客户端http发包触发的事件
|
||||
function OnHttpMessage(str_httpid, str_data)
|
||||
{
|
||||
try
|
||||
{
|
||||
str_data = min_replaceAll(str_data, "%", "");
|
||||
str_data = decodeURIComponent(str_data); //解码
|
||||
}
|
||||
catch(e)
|
||||
{
|
||||
console.log("OnHttpMessage_decodeURIComponent:" + str_data);
|
||||
return;
|
||||
}
|
||||
|
||||
var s = "";
|
||||
s = str_data.substr(0, 6);
|
||||
if (s == "&data=") {
|
||||
str_data = str_data.replace("&data=", "");
|
||||
}
|
||||
s = str_data.substr(0, 5);
|
||||
if (s == "data=") {
|
||||
str_data = str_data.replace("data=", "");
|
||||
}
|
||||
s = str_data.substr(0, 2);
|
||||
if (s == "&=") {
|
||||
str_data = str_data.replace("&=", "");
|
||||
}
|
||||
s = str_data.substr(0, 1);
|
||||
if (s == "&") {
|
||||
str_data = str_data.replace("&", "");
|
||||
}
|
||||
|
||||
if (typeof(packet_face) != "undefined") {
|
||||
if (str_data) {
|
||||
try
|
||||
{
|
||||
var json_data = JSON.parse(str_data);
|
||||
if (json_data){
|
||||
json_data.conmode = "http";
|
||||
json_data.fromid = str_httpid;
|
||||
packet_face.ReceivePack(json_data);
|
||||
}
|
||||
}
|
||||
catch(e)
|
||||
{
|
||||
console.log(min_now() + " str_data:" + str_data);
|
||||
console.log(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//收到客户端tcp发包触发的事件
|
||||
function OnTcpMessage(str_com, str_tcpid, str_ip, str_data)
|
||||
{
|
||||
switch (str_com)
|
||||
{
|
||||
case "@toconcon": //连上ServerChat.exe
|
||||
break;
|
||||
|
||||
case "@tologin1": //客户端连接上
|
||||
if (typeof(packet_face) != "undefined")
|
||||
{
|
||||
packet_face.OnTcpConnected(str_tcpid);
|
||||
}
|
||||
break;
|
||||
|
||||
case "@toleave1": //客户端断开
|
||||
if (typeof(packet_face) != "undefined")
|
||||
{
|
||||
packet_face.OnTcpDisConnected(str_tcpid);
|
||||
}
|
||||
break;
|
||||
|
||||
case "@toserver": //客户端发包
|
||||
if (typeof(packet_face) != "undefined")
|
||||
{
|
||||
try
|
||||
{
|
||||
//去除%,否则decodeURIComponent(str_data)会报错
|
||||
str_data = min_replaceAll(str_data, "%", "");
|
||||
//解码
|
||||
str_data = decodeURIComponent(str_data);
|
||||
var json_data = JSON.parse(str_data);
|
||||
}
|
||||
catch(e)
|
||||
{
|
||||
console.log(min_now() + "非法的TCP连接");
|
||||
var errlog = {};
|
||||
errlog.com = str_com;
|
||||
errlog.tcpid = str_tcpid;
|
||||
errlog.ip = str_ip;
|
||||
errlog.data = str_data;
|
||||
console.log(errlog);
|
||||
//断开tcp连接
|
||||
ws.sendclosetcp(str_tcpid);
|
||||
return;
|
||||
}
|
||||
|
||||
if (json_data){
|
||||
try
|
||||
{
|
||||
//屏蔽某个有错的route
|
||||
if (json_data.route){
|
||||
if (min_ary_indexof(blacknamelist_game, json_data.route) > -1){
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch(e)
|
||||
{}
|
||||
|
||||
json_data.conmode = "tcp";
|
||||
json_data.fromid = str_tcpid;
|
||||
json_data.ip = str_ip;
|
||||
|
||||
try
|
||||
{
|
||||
packet_face.ReceivePack(json_data);
|
||||
}
|
||||
catch(e)
|
||||
{
|
||||
console.log(min_now() + "执行rpc出错");
|
||||
console.log(json_data);
|
||||
console.log(e);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
console.log(min_now() + "非法的TCP连接");
|
||||
var errlog = {};
|
||||
errlog.com = str_com;
|
||||
errlog.tcpid = str_tcpid;
|
||||
errlog.ip = str_ip;
|
||||
errlog.data = str_data;
|
||||
console.log(errlog);
|
||||
//断开tcp连接
|
||||
ws.sendclosetcp(str_tcpid);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
window.onload = connectWebSocket();
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
13
games/games/Projects/backstage/applist.js
Normal file
@@ -0,0 +1,13 @@
|
||||
///////////////////////////////////////////////////
|
||||
//////////////////////应用列表/////////////////////
|
||||
///////////////////////////////////////////////////
|
||||
//系统服务
|
||||
min_loadJsFile("server/app.js", function (){
|
||||
//友乐游戏
|
||||
min_loadJsFile("youle/app.js", function (){
|
||||
//动态更新模块
|
||||
min_loadJsFile("update/app.js", function (){
|
||||
|
||||
});
|
||||
});
|
||||
});
|
||||
77
games/games/Projects/backstage/class/class.app.js
Normal file
@@ -0,0 +1,77 @@
|
||||
///////////////////////////////////////////////////
|
||||
//////////////cls_app: 应用基础类//////////////////
|
||||
///////////////////////////////////////////////////
|
||||
var cls_app = cls_app || {
|
||||
//构造函数
|
||||
new: function(_str_appname, _obj_packet) {
|
||||
/*
|
||||
参数说明:
|
||||
_str_appname 应用名称
|
||||
_obj_packet 所有应用的总包接口对象
|
||||
*/
|
||||
|
||||
//创建一个实例
|
||||
var app = {};
|
||||
|
||||
// ================= 实例的公有属性 ================= //
|
||||
//应用名称
|
||||
app.appname = _str_appname;
|
||||
//总包接口
|
||||
app.packet_face = _obj_packet;
|
||||
//给客户端发包函数
|
||||
app.SendPack = app.packet_face.SendPack;
|
||||
//给http客户端发包函数
|
||||
app.SendPack_Http = app.packet_face.SendPack_Http;
|
||||
//给tcp客户端发包函数
|
||||
app.SendPack_Tcp = app.packet_face.SendPack_Tcp;
|
||||
//将app添加到packet_face的应用列表中
|
||||
app.packet_face.applist.push(app);
|
||||
|
||||
//模块列表 [{"face":room_face,"facename":"room_face","routename":"room"}]
|
||||
app.modlist = [];
|
||||
|
||||
// ================= 实例的公有方法 ================= //
|
||||
//TCP客户端断开
|
||||
app.OnTcpDisConnected = function(_str_tcpid) {
|
||||
cls_app.OnTcpDisConnected(app, _str_tcpid);
|
||||
}
|
||||
|
||||
//处理数据包
|
||||
app.ReceivePack = function(_pack) {
|
||||
return cls_app.ReceivePack(app, _pack);
|
||||
}
|
||||
|
||||
return app;
|
||||
},
|
||||
|
||||
// ================= 所有实例的共享方法 ================= //
|
||||
//TCP客户端断开
|
||||
OnTcpDisConnected: function(_obj_app, _str_tcpid) {
|
||||
for (var i = 0; i < _obj_app.modlist.length; i++) {
|
||||
if (_obj_app.modlist[i].OnTcpDisConnected) {
|
||||
_obj_app.modlist[i].OnTcpDisConnected(_str_tcpid);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
//处理数据包
|
||||
ReceivePack: function(_obj_app, _pack) {
|
||||
if (typeof(_pack) == "string") {
|
||||
_pack = JSON.parse(_pack); //转换json
|
||||
}
|
||||
//路由各个模块
|
||||
for (var i = 0; i < _obj_app.modlist.length; i++) {
|
||||
if (_pack.route == _obj_app.modlist[i].routename) {
|
||||
if (_obj_app.modlist[i].DoPack) {
|
||||
var repack = _obj_app.modlist[i].DoPack(_pack);
|
||||
//发包
|
||||
if (repack && _obj_app.SendPack) {
|
||||
_obj_app.SendPack(repack);
|
||||
}
|
||||
return repack;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
463
games/games/Projects/backstage/class/class.aset2.js
Normal file
@@ -0,0 +1,463 @@
|
||||
/*================= cls_aset2: 小局基础类 =================
|
||||
注意:
|
||||
1,此牌类是基础小局类;各子游戏需要继承此基础类后下编写自己的小局类。
|
||||
2,子游戏开发人员不能修改该文件。
|
||||
=========================================================*/
|
||||
var cls_aset2 = {
|
||||
|
||||
//================ 新建一小局 ================
|
||||
New: function(){
|
||||
//定义小局
|
||||
var o_aset = this.declare();
|
||||
//初始化牌列表
|
||||
this.initcardlist(o_aset);
|
||||
//除掉不要的牌
|
||||
this.deletecard(o_aset);
|
||||
//设置每张牌的分值
|
||||
this.setcardscore(o_aset);
|
||||
return o_aset;
|
||||
},
|
||||
//小局的数据定义
|
||||
declare: function(){
|
||||
var o_aset = {};
|
||||
//玩家列表
|
||||
o_aset.playerlist = []; //在此定义和存储玩家的状态,比如准备状态、叫分的分值、游戏的得分等等,格式如[[], [], ...], [{}, {}, ...], [player, player, ...]
|
||||
//牌列表
|
||||
o_aset.cardlist = []; //格式为[[], [], [], ...],里面的每个小数组就是一张牌
|
||||
//庄(位置)
|
||||
o_aset.zhuang = -1;
|
||||
//控制权(位置)
|
||||
o_aset.control = -1;
|
||||
//当前是第几轮出牌
|
||||
o_aset.play = 0;
|
||||
//当前是本轮的第几个出牌
|
||||
o_aset.index = 0;
|
||||
|
||||
return o_aset;
|
||||
},
|
||||
//初始化牌列表
|
||||
initcardlist: function(o_aset){
|
||||
//几副牌
|
||||
var card_count = this.get_cardcount();
|
||||
//牌类
|
||||
var card_class = this.get_cardclass();
|
||||
//初始化
|
||||
for (var i = 1; i <= card_count; i++){ //几副牌
|
||||
for (var j = 1; j <= 4; j++){ //方块、梅花、红心、黑桃四种花色
|
||||
for (var k = 1; k <= 13; k++){ //A到K
|
||||
var id = (i - 1) * 54 + (j - 1) * 13 + k - 1; //牌的绝对id
|
||||
//新建一张牌
|
||||
var card_object = card_class.New(id);
|
||||
o_aset.cardlist.push(card_object);
|
||||
}
|
||||
}
|
||||
//小王
|
||||
var card_object = card_class.New((i - 1) * 54 + 53 - 1);
|
||||
o_aset.cardlist.push(card_object);
|
||||
//大王
|
||||
var card_object = card_class.New((i - 1) * 54 + 54 - 1);
|
||||
o_aset.cardlist.push(card_object);
|
||||
}
|
||||
},
|
||||
//几副牌
|
||||
get_cardcount: function(){
|
||||
return 1;
|
||||
},
|
||||
//小局对应的牌类
|
||||
get_cardclass: function(){
|
||||
return cls_card2;
|
||||
},
|
||||
//除掉不要的牌
|
||||
deletecard: function(o_aset){
|
||||
for (var i = 0; i < o_aset.cardlist.length; i++){
|
||||
var o_card = o_aset.cardlist[i];
|
||||
this.get_cardclass().SetDeal(o_card, -1);
|
||||
}
|
||||
|
||||
//下面的代码是3人二七王除掉3、4的例子。类似功能需要在子游戏中重写该方法
|
||||
// for (var i = 0; i < o_aset.cardlist.length; i++){
|
||||
// var o_card = o_aset.cardlist[i];
|
||||
// var card_number = this.get_cardclass().GetNumber(o_card);
|
||||
// if (card_number == 3 || card_number == 4){
|
||||
// this.get_cardclass().SetDeal(o_card, -2);
|
||||
// }
|
||||
// }
|
||||
},
|
||||
//设置每张牌的分值
|
||||
setcardscore: function(o_aset){
|
||||
for (var i = 0; i < o_aset.cardlist.length; i++){
|
||||
var o_card = o_aset.cardlist[i];
|
||||
var card_deal = this.get_cardclass().GetDeal(o_card);
|
||||
if (card_deal != -2){
|
||||
this.get_cardclass().SetScore(o_card, 0);
|
||||
}
|
||||
}
|
||||
|
||||
//下面的代码是设置5、10、K分值的例子。类似功能需要在子游戏中重写该方法
|
||||
// for (var i = 0; i < o_aset.cardlist.length; i++){
|
||||
// var o_card = o_aset.cardlist[i];
|
||||
// var card_deal = this.get_cardclass().GetDeal(o_card);
|
||||
// if (card_deal != -2){
|
||||
// var card_number = this.get_cardclass().GetNumber(o_card);
|
||||
// switch (card_number){
|
||||
// case 5:
|
||||
// this.get_cardclass().SetScore(o_card, 5);
|
||||
// break;
|
||||
// case 10:
|
||||
// this.get_cardclass().SetScore(o_card, 10);
|
||||
// break;
|
||||
// case 13:
|
||||
// this.get_cardclass().SetScore(o_card, 10);
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
},
|
||||
|
||||
//===================== 发牌 =====================
|
||||
DealCard: function(o_aset, o_desk){
|
||||
//需要发牌的位置列表
|
||||
var seatlist = this.get_dealseatlist(o_aset, o_desk);
|
||||
//每人需要发多少张牌
|
||||
var dealcount = this.get_dealcount(o_aset, o_desk);
|
||||
//需要留几张底牌
|
||||
var bottomcount = this.get_bottomcount(o_aset, o_desk);
|
||||
//注意:dealcount * seatlist + bottomcount必须等于除掉不要的牌之后的牌的总数
|
||||
|
||||
//发牌数组
|
||||
var tmplist = [];
|
||||
for (var i = 0; i < seatlist.length; i++){
|
||||
for (var j = 0; j < dealcount; j++){
|
||||
tmplist.push(seatlist[i]);
|
||||
}
|
||||
}
|
||||
for (var i = 0; i < bottomcount; i++){
|
||||
tmplist.push(-1);
|
||||
}
|
||||
|
||||
//随机发牌
|
||||
for (var i = 0; i < o_aset.cardlist.length; i++){
|
||||
var o_card = o_aset.cardlist[i];
|
||||
var card_deal = this.get_cardclass().GetDeal(o_card);
|
||||
if (card_deal != -2){
|
||||
var idx = min_random(0, tmplist.length - 1);
|
||||
this.get_cardclass().SetDeal(o_card, tmplist[idx]);
|
||||
this.get_cardclass().SetStart(o_card, tmplist[idx]);
|
||||
this.get_cardclass().SetPlay(o_card, -1);
|
||||
this.get_cardclass().SetOver(o_card, tmplist[idx]);
|
||||
//将发牌数组的最后一位移至该位置
|
||||
if (idx < tmplist.length - 1) {
|
||||
tmplist[idx] = tmplist[tmplist.length - 1];
|
||||
};
|
||||
//发牌数组长度减一
|
||||
tmplist.length = tmplist.length - 1;
|
||||
}
|
||||
}
|
||||
},
|
||||
//需要发牌的位置列表
|
||||
get_dealseatlist: function(o_aset, o_desk){
|
||||
var seatlist = [];
|
||||
for (var i = 0; i < o_desk.o_room.seatlist.length; i++){
|
||||
if (o_desk.o_room.seatlist[i]){
|
||||
if (o_desk.o_room.seatlist[i].gameinfo.isbet){
|
||||
seatlist.push(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
return seatlist;
|
||||
},
|
||||
//每人需要发多少张牌
|
||||
get_dealcount: function(o_aset, o_desk){
|
||||
return 0;
|
||||
},
|
||||
//需要留几张底牌
|
||||
get_bottomcount: function(o_aset, o_desk){
|
||||
return 0;
|
||||
},
|
||||
|
||||
//==================== 拿底牌 ====================
|
||||
PutBottomCard: function(o_aset, seat){
|
||||
var bottomcardlist = this.GetBottomCards(o_aset);
|
||||
for (var i = 0; i < bottomcardlist.length; i++) {
|
||||
var o_card = bottomcardlist[i];
|
||||
this.get_cardclass().SetStart(o_card, seat);
|
||||
}
|
||||
},
|
||||
|
||||
//===================== 埋牌 =====================
|
||||
BuryCard: function(o_aset, seat, cardidlist){
|
||||
/*参数:
|
||||
seat:哪个位置要埋牌
|
||||
cardidlist:要埋的牌的id
|
||||
返回值:true表示执行成功,false表示执行失败。*/
|
||||
if (this.canBuryCard(o_aset, seat, cardidlist)){
|
||||
this.doBuryCard(o_aset, seat, cardidlist);
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
},
|
||||
get_burycardcount: function(){
|
||||
return 8;
|
||||
},
|
||||
//检查是否可埋牌
|
||||
canBuryCard: function(o_aset, seat, cardidlist){
|
||||
//检查控制权
|
||||
if (seat != o_aset.control){
|
||||
return false;
|
||||
}
|
||||
//检查埋牌数量
|
||||
if (cardidlist.length != this.get_burycardcount()){
|
||||
return false;
|
||||
}
|
||||
//检查要埋的牌是否在玩家手上
|
||||
var inhandcardids = this.GetCardIdsInhand(o_aset, seat);
|
||||
return min_ary_include(inhandcardids, cardidlist);
|
||||
},
|
||||
//埋牌
|
||||
doBuryCard: function(o_aset, seat, cardidlist){
|
||||
var cardlist = this.CardIdsToCards(o_aset, cardidlist);
|
||||
for (var i = 0; i < cardlist.length; i++) {
|
||||
var o_card = cardlist[i];
|
||||
this.get_cardclass().SetPlay(o_card, -2);
|
||||
}
|
||||
},
|
||||
|
||||
//===================== 出牌 =====================
|
||||
PlayCard: function(o_aset, seat, cardidlist, mode){
|
||||
/*参数:
|
||||
seat:哪个位置要出牌
|
||||
cardidlist:要出的牌的id
|
||||
mode:出牌模式 0-需要跟随上一家出牌 1-需要跟随第一家出牌
|
||||
返回值:true表示执行成功,false表示执行失败。*/
|
||||
var can = this.canPlayCard(o_aset, seat, cardidlist, mode); //检查是否可出
|
||||
if (can.result){ //可出
|
||||
this.doPlayCard(o_aset, seat, cardidlist); //出下去
|
||||
return true;
|
||||
} else { //不可出
|
||||
return false;
|
||||
}
|
||||
},
|
||||
//检查是否可出牌
|
||||
canPlayCard: function(o_aset, seat, cardidlist, mode){
|
||||
var can = {}; //返回的结果
|
||||
can.result = false; //是否可以出出去
|
||||
can.cards = null; //牌(对象)
|
||||
can.cardtype = null; //牌型
|
||||
can.value = null; //大小
|
||||
can.flower = null; //花色
|
||||
|
||||
//检查控制权
|
||||
if (seat != o_aset.control){
|
||||
can.result = false;
|
||||
return can;
|
||||
}
|
||||
//检查要出的牌是否在玩家手上
|
||||
var inhandcardids = this.GetCardIdsInhand(o_aset, seat);
|
||||
if (!min_ary_include(inhandcardids, cardidlist)){
|
||||
can.result = false;
|
||||
return can;
|
||||
}
|
||||
|
||||
return can;
|
||||
},
|
||||
//第一个出牌时分析选中的牌是否可以出出去(主要是分析牌型)
|
||||
canPlayCard_first: function(o_aset, cardidlist){
|
||||
var can = {}; //返回的结果
|
||||
can.result = false; //是否可以出出去
|
||||
can.cards = null; //牌(对象)
|
||||
can.cardtype = null; //牌型
|
||||
can.value = null; //大小
|
||||
can.flower = null; //花色
|
||||
|
||||
|
||||
return can;
|
||||
},
|
||||
//不是第一个出牌时分析选中的牌是否可以出出去(主要是分析牌型是否符合前面出牌的牌型)
|
||||
canPlayCard_second: function(o_aset, cardidlist, mode){
|
||||
var can = {}; //返回的结果
|
||||
can.result = false; //是否可以出出去
|
||||
can.cards = null; //牌(对象)
|
||||
can.cardtype = null; //牌型
|
||||
can.value = null; //大小
|
||||
can.flower = null; //花色
|
||||
|
||||
return can;
|
||||
},
|
||||
//出牌
|
||||
doPlayCard: function(o_aset, seat, cardidlist){
|
||||
var cardlist = this.CardIdsToCards(o_aset, cardidlist);
|
||||
for (var i = 0; i < cardlist.length; i++) {
|
||||
var o_card = cardlist[i];
|
||||
this.get_cardclass().SetPlay(o_card, o_aset.play);
|
||||
this.get_cardclass().SetIndex(o_card, o_aset.index);
|
||||
}
|
||||
},
|
||||
|
||||
//=================== 可跟随的牌 ===================
|
||||
CanFollowCard: function(o_aset, seat, mode){
|
||||
//根据第一个人或上一个人出的牌,分析seat这个位置上的人必出的牌和可出的牌
|
||||
|
||||
},
|
||||
|
||||
//==================== 小局结算 =====================
|
||||
CloseAccount: function(o_aset, o_desk){
|
||||
|
||||
},
|
||||
|
||||
//================ 获取各种情况的牌 ================
|
||||
//获取开局时玩家发到手上的牌
|
||||
GetDealCardsBySeat: function(o_aset, seat){
|
||||
return this.GetCardsByDealstate(o_aset, seat);
|
||||
},
|
||||
GetDealCardIdsBySeat: function(o_aset, seat){
|
||||
var cardlist = this.GetDealCardsBySeat(o_aset, seat);
|
||||
return this.CardsToCardIds(cardlist);
|
||||
},
|
||||
//获取底牌
|
||||
GetBottomCards: function(o_aset){
|
||||
return this.GetCardsByDealstate(o_aset, -1);
|
||||
},
|
||||
GetBottomCardIds: function(o_aset){
|
||||
var cardlist = this.GetBottomCards(o_aset);
|
||||
return this.CardsToCardIds(cardlist);
|
||||
},
|
||||
//获取玩家当前手上有的牌
|
||||
GetCardsInhand: function(o_aset, seat){
|
||||
var cardlist = [];
|
||||
for (var i = 0; i < o_aset.cardlist.length; i++){
|
||||
var o_card = o_aset.cardlist[i];
|
||||
var card_start = this.get_cardclass().GetStart(o_card);
|
||||
if (card_start == seat){
|
||||
var card_play = this.get_cardclass().GetPlay(o_card);
|
||||
if (card_play == -1 || card_play == null){
|
||||
cardlist.push(o_card);
|
||||
}
|
||||
}
|
||||
}
|
||||
return cardlist;
|
||||
},
|
||||
GetCardIdsInhand: function(o_aset, seat){
|
||||
var cardlist = this.GetCardsInhand(o_aset, seat);
|
||||
return this.CardsToCardIds(cardlist);
|
||||
},
|
||||
//获取埋牌 参数:seat谁埋的牌,可以不传,默认只有一个人会埋牌
|
||||
GetBuryCards: function(o_aset, seat){
|
||||
return this.GetCardsByPlaystate(o_aset, -2, seat);
|
||||
},
|
||||
GetBuryCardIds: function(o_aset, seat){
|
||||
var cardlist = this.GetBuryCards(o_aset, seat);
|
||||
return this.CardsToCardIds(cardlist);
|
||||
},
|
||||
//获取上一轮出牌
|
||||
GetPriorPlayCard: function(o_aset, round){
|
||||
|
||||
},
|
||||
//获取下一轮出牌
|
||||
GetNextPlayCard: function(o_aset, round){
|
||||
|
||||
},
|
||||
|
||||
//================== 各种底层函数 ==================
|
||||
//根据发牌状态获取牌列表
|
||||
GetCardsByDealstate: function(o_aset, dealstate){
|
||||
var cardlist = [];
|
||||
for (var i = 0; i < o_aset.cardlist.length; i++){
|
||||
var o_card = o_aset.cardlist[i];
|
||||
var card_deal = this.get_cardclass().GetDeal(o_card);
|
||||
if (card_deal == dealstate){
|
||||
cardlist.push(o_card);
|
||||
}
|
||||
}
|
||||
return cardlist;
|
||||
},
|
||||
//根据出牌状态获取牌列表
|
||||
GetCardsByPlaystate: function(o_aset, playstate, seat){
|
||||
var cardlist = [];
|
||||
for (var i = 0; i < o_aset.cardlist.length; i++){
|
||||
var o_card = o_aset.cardlist[i];
|
||||
var card_play = this.get_cardclass().GetPlay(o_card);
|
||||
if (card_play == playstate){
|
||||
if (seat != null){
|
||||
var card_start = this.get_cardclass().GetStart(o_card);
|
||||
if (card_start == seat){
|
||||
cardlist.push(o_card);
|
||||
}
|
||||
} else {
|
||||
cardlist.push(o_card);
|
||||
}
|
||||
}
|
||||
}
|
||||
return cardlist;
|
||||
},
|
||||
//将牌对象列表转换成牌id列表
|
||||
CardsToCardIds: function(cardlist){
|
||||
var cardidlist = [];
|
||||
for (var i = 0; i < cardlist.length; i++){
|
||||
var o_card = cardlist[i];
|
||||
var card_id = this.get_cardclass().GetId(o_card);
|
||||
cardidlist.push(card_id);
|
||||
}
|
||||
return cardidlist;
|
||||
},
|
||||
//将牌id列表转换成牌对象列表
|
||||
CardIdsToCards: function(o_aset, cardidlist){
|
||||
var cardlist = [];
|
||||
for (var i = 0; i < cardidlist.length; i++){
|
||||
var o_card = o_aset.cardlist[cardidlist[i]];
|
||||
cardlist.push(o_card);
|
||||
}
|
||||
return cardlist;
|
||||
},
|
||||
|
||||
//新建小局类
|
||||
NewClass: function(){
|
||||
var cls = {};
|
||||
cls.New = cls_aset2.New;
|
||||
cls.declare = cls_aset2.declare;
|
||||
cls.initcardlist = cls_aset2.initcardlist;
|
||||
cls.get_cardcount = cls_aset2.get_cardcount;
|
||||
cls.get_cardclass = cls_aset2.get_cardclass;
|
||||
cls.deletecard = cls_aset2.deletecard;
|
||||
cls.setcardscore = cls_aset2.setcardscore;
|
||||
|
||||
cls.DealCard = cls_aset2.DealCard;
|
||||
cls.get_dealseatlist = cls_aset2.get_dealseatlist;
|
||||
cls.get_dealcount = cls_aset2.get_dealcount;
|
||||
cls.get_bottomcount = cls_aset2.get_bottomcount;
|
||||
|
||||
cls.PutBottomCard = cls_aset2.PutBottomCard;
|
||||
|
||||
cls.BuryCard = cls_aset2.BuryCard;
|
||||
cls.get_burycardcount = cls_aset2.get_burycardcount;
|
||||
cls.canBuryCard = cls_aset2.canBuryCard;
|
||||
cls.doBuryCard = cls_aset2.doBuryCard;
|
||||
|
||||
cls.PlayCard = cls_aset2.PlayCard;
|
||||
cls.canPlayCard = cls_aset2.canPlayCard;
|
||||
cls.canPlayCard_first = cls_aset2.canPlayCard_first;
|
||||
cls.canPlayCard_second = cls_aset2.canPlayCard_second;
|
||||
cls.doPlayCard = cls_aset2.doPlayCard;
|
||||
|
||||
cls.CanFollowCard = cls_aset2.CanFollowCard;
|
||||
|
||||
cls.CloseAccount = cls_aset2.CloseAccount;
|
||||
|
||||
cls.GetDealCardsBySeat = cls_aset2.GetDealCardsBySeat;
|
||||
cls.GetDealCardIdsBySeat = cls_aset2.GetDealCardIdsBySeat;
|
||||
cls.GetBottomCards = cls_aset2.GetBottomCards;
|
||||
cls.GetBottomCardIds = cls_aset2.GetBottomCardIds;
|
||||
cls.GetCardsInhand = cls_aset2.GetCardsInhand;
|
||||
cls.GetCardIdsInhand = cls_aset2.GetCardIdsInhand;
|
||||
cls.GetBuryCards = cls_aset2.GetBuryCards;
|
||||
cls.GetBuryCardIds = cls_aset2.GetBuryCardIds;
|
||||
cls.GetPriorPlayCard = cls_aset2.GetPriorPlayCard;
|
||||
cls.GetNextPlayCard = cls_aset2.GetNextPlayCard;
|
||||
|
||||
cls.GetCardsByDealstate = cls_aset2.GetCardsByDealstate;
|
||||
cls.GetCardsByPlaystate = cls_aset2.GetCardsByPlaystate;
|
||||
cls.CardsToCardIds = cls_aset2.CardsToCardIds;
|
||||
cls.CardIdsToCards = cls_aset2.CardIdsToCards;
|
||||
return cls;
|
||||
}
|
||||
}
|
||||
742
games/games/Projects/backstage/class/class.card2.js
Normal file
@@ -0,0 +1,742 @@
|
||||
/*===================== cls_card2: 牌的基础类 ======================
|
||||
扑克牌的统一定义:
|
||||
1,单张牌的定义是一个长度为14的数组 [Id, Flower, Number, ArithF, ArithN, Score, Deal, Start, Play, Index, Over, Tag1, Tag2, Tag3]
|
||||
第一位:Id,牌的绝对id,即数组下标,从0开始计数。
|
||||
第二位:Flower,牌的物理花色,5:王 4:黑桃 3:红心 2:梅花 1:方块。
|
||||
第三位:Number,牌的物理大小,1:A 2:2 ... 9:9 10:10 11:J 12:Q 13:K 53:小王 54:大王。
|
||||
第四位:ArithF,牌的算法花色,区别于物理花色,用于牌型计算和比较牌的大小。
|
||||
要求是大于0的整数,不能等于0或小于0,默认等于物理花色。
|
||||
第五位:ArithN,牌的算法大小,区别于物理大小,用于牌型计算和比较牌的大小。
|
||||
要求是大于0的整数,不能等于0或小于0,默认等于物理大小。
|
||||
第六位:Score,牌的分值,如5、10、K。
|
||||
第七位:Deal,发牌状态。
|
||||
-2:规则去除的牌;
|
||||
-1:未发的牌(底牌);
|
||||
>=0:发牌发到谁手上,即座位号。
|
||||
第八位:Start,开局状态,开局时牌在谁手上,与座位编号对应。
|
||||
第九位:Play,出牌状态。
|
||||
-2:埋的牌;
|
||||
-1:未出的牌(手上的牌);
|
||||
>=0:牌是第几轮出出去的,从0开始计数。
|
||||
第十位:Index,本轮中的出牌顺序号,从0开始计数。
|
||||
第十一位:Over,牌局结束时被谁得到,与座位编号对应。
|
||||
第十二位:Tag1,扩展属性1。
|
||||
第十三位:Tag2,扩展属性2。
|
||||
第十四位:Tag3,扩展属性3。
|
||||
2,基础牌型的统一定义:
|
||||
所有基础牌型都由两个值表示:tong,同,表示一样的牌;shun,顺,表示连续的牌。
|
||||
单张:tong=1,shun=1
|
||||
对子:tong=2,shun=1
|
||||
两连对:tong=2,shun=2
|
||||
三连对:tong=2,shun=3
|
||||
三个:tong=3,shun=1
|
||||
飞机:tong=3,shun=2
|
||||
四个:tong=4,shun=1
|
||||
五连顺:tong=1,shun=5
|
||||
六连顺:tong=1,shun=6
|
||||
其他基础牌型以此类推
|
||||
|
||||
注意:
|
||||
1,此牌类是基础扑克牌类、通用扑克牌类;各子游戏可以直接使用,也可以继承此基础类后下编写自己的牌类。
|
||||
2,子游戏开发人员不能修改该文件。
|
||||
3,访问牌的属性时要求使用Get和Set方法,不能直接通过数组下标的形式访问。
|
||||
===================================================================*/
|
||||
var cls_card2 = {
|
||||
|
||||
//新建一张牌
|
||||
New: function(id){
|
||||
return this.declare(id);
|
||||
},
|
||||
//牌的数据定义
|
||||
declare: function(id){
|
||||
//id转物理花色
|
||||
var IdToFlower = function(cardid){
|
||||
var yu = cardid % 54;
|
||||
if (yu == 52 || yu == 53){
|
||||
return 5;
|
||||
}
|
||||
return parseInt(yu / 13) + 1;
|
||||
}
|
||||
//id转物理数值
|
||||
var IdToNumber = function(cardid){
|
||||
var yu = cardid % 54;
|
||||
if (yu == 52){
|
||||
return 53;
|
||||
}
|
||||
if (yu == 53){
|
||||
return 54;
|
||||
}
|
||||
return yu % 13 + 1;
|
||||
}
|
||||
|
||||
var o_card = [];
|
||||
o_card[0] = id;
|
||||
o_card[1] = IdToFlower(id);
|
||||
o_card[2] = IdToNumber(id);
|
||||
o_card[3] = o_card[1];
|
||||
o_card[4] = o_card[2];
|
||||
o_card[5] = null;
|
||||
o_card[6] = null;
|
||||
o_card[7] = null;
|
||||
o_card[8] = null;
|
||||
o_card[9] = null;
|
||||
o_card[10] = null;
|
||||
o_card[11] = null;
|
||||
o_card[12] = null;
|
||||
o_card[13] = null;
|
||||
return o_card;
|
||||
},
|
||||
//牌的id,整型,只读
|
||||
GetId: function(o_card){
|
||||
return o_card[0];
|
||||
},
|
||||
//牌的物理花色,整型,只读
|
||||
GetFlower: function(o_card){
|
||||
return o_card[1];
|
||||
},
|
||||
//牌的物理大小,整型,只读
|
||||
GetNumber: function(o_card){
|
||||
return o_card[2];
|
||||
},
|
||||
//牌的算法花色,整型
|
||||
GetArithF: function(o_card){
|
||||
return o_card[3];
|
||||
},
|
||||
SetArithF: function(o_card, value){
|
||||
o_card[3] = value;
|
||||
},
|
||||
//牌的算法大小,整型
|
||||
GetArithN: function(o_card){
|
||||
return o_card[4];
|
||||
},
|
||||
SetArithN: function(o_card, value){
|
||||
o_card[4] = value;
|
||||
},
|
||||
//牌的分值,整型
|
||||
GetScore: function(o_card){
|
||||
return o_card[5];
|
||||
},
|
||||
SetScore: function(o_card, value){
|
||||
o_card[5] = value;
|
||||
},
|
||||
//发牌状态,整型
|
||||
GetDeal: function(o_card){
|
||||
return o_card[6];
|
||||
},
|
||||
SetDeal: function(o_card, value){
|
||||
o_card[6] = value;
|
||||
},
|
||||
//开局状态,整型
|
||||
GetStart: function(o_card){
|
||||
return o_card[7];
|
||||
},
|
||||
SetStart: function(o_card, value){
|
||||
o_card[7] = value;
|
||||
},
|
||||
//出牌状态,整型
|
||||
GetPlay: function(o_card){
|
||||
return o_card[8];
|
||||
},
|
||||
SetPlay: function(o_card, value){
|
||||
o_card[8] = value;
|
||||
},
|
||||
//出牌顺序,整型
|
||||
GetIndex: function(o_card){
|
||||
return o_card[9];
|
||||
},
|
||||
SetIndex: function(o_card, value){
|
||||
o_card[9] = value;
|
||||
},
|
||||
//结束时被谁得到,整型
|
||||
GetOver: function(o_card){
|
||||
return o_card[10];
|
||||
},
|
||||
SetOver: function(o_card, value){
|
||||
o_card[10] = value;
|
||||
},
|
||||
//扩展属性
|
||||
GetTag1: function(o_card){
|
||||
return o_card[11];
|
||||
},
|
||||
SetTag1: function(o_card, value){
|
||||
o_card[11] = value;
|
||||
},
|
||||
GetTag2: function(o_card){
|
||||
return o_card[12];
|
||||
},
|
||||
SetTag2: function(o_card, value){
|
||||
o_card[12] = value;
|
||||
},
|
||||
GetTag3: function(o_card){
|
||||
return o_card[13];
|
||||
},
|
||||
SetTag3: function(o_card, value){
|
||||
o_card[13] = value;
|
||||
},
|
||||
/*
|
||||
以下提供几个针对牌数组的基础算法,这两个方法是基于牌的算法花色和算法大小实现的,各子游戏在调用前需要将牌的算法花色和算法大小先设置好。
|
||||
|
||||
设置算法花色的原则是:
|
||||
1,如果对花色没要求则需要将所有牌的算法花色统一。比如斗地主中的五连顺是任何花色都可以一起连顺子的,则需要将所有牌的算法花色全部设置成0,表示都是同一花色,然后在同一花色下取顺子。
|
||||
2,如果对花色有要求则需要根据实际情况区分算法花色。比如升级中的两连对是指同一花色下的两连对,则需要将算法花色设置成不同的值,表示不同算法花色之间是不能组成两连对的。
|
||||
|
||||
设置算法大小的原则是:算法大小即可表示是否连牌,也可表示牌的大小关系。
|
||||
1,设置算法大小时要求做到数字连续则表示是连牌。比如A的物理大小是1,K的物理大小是13,1和13是不连续的,此时需要将A的算法大小设置成14,将K的算法大小设置成13,14和13是连续的,表示A和K可以连牌。再比如王牌和A是不能作为连牌出现的,则需要将王的算法大小设置成16,将A的算法大小设置成14,16和14不是连续的,表示王和A不能连牌。
|
||||
2,设置算法大小时要求做到数字大小则表示是牌的大小。比如A的物理大小是1,K的物理大小是13,1比13小,但A比K大,此时需要将A的算法大小设置成14,将K的算法大小设置成13,14比13大,表示A比K大。再比如王牌比A大,则需要将王的算法大小设置成16,将A的算法大小设置成14,16大于14,表示王比A大。
|
||||
*/
|
||||
|
||||
//根据算法花色筛选牌
|
||||
FilterCardListByArithF: function(o_cardlist, ArithF){
|
||||
/*参数说明
|
||||
o_cardlist:需要进行筛选的牌数组
|
||||
ArithF:要筛选的算法花色,默认不筛选
|
||||
|
||||
返回值:筛选后的牌数组*/
|
||||
var result = [];
|
||||
for (var i = 0; i < o_cardlist.length; i++) {
|
||||
var o_card = o_cardlist[i];
|
||||
var card_ArithF = this.GetArithF(o_card);
|
||||
if (!ArithF || card_ArithF == ArithF) {
|
||||
result.push(o_cardlist[i]);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
},
|
||||
|
||||
//根据算法大小筛选牌
|
||||
FilterCardListByArithN: function(o_cardlist, min_ArithN, max_ArithN){
|
||||
/*参数说明
|
||||
o_cardlist:需要进行筛选的牌数组
|
||||
min_ArithN:要筛选的算法大小最小值,>=,默认不限制
|
||||
max_ArithN:要筛选的算法大小最大值,<=,默认不限制
|
||||
返回值:筛选后的牌数组*/
|
||||
var result = [];
|
||||
for (var i = 0; i < o_cardlist.length; i++) {
|
||||
var o_card = o_cardlist[i];
|
||||
var card_ArithN = this.GetArithN(o_card);
|
||||
if ((!min_ArithN || card_ArithN >= min_ArithN) &&
|
||||
(!max_ArithN || card_ArithN <= max_ArithN)) {
|
||||
result.push(o_cardlist[i]);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
},
|
||||
|
||||
//根据算法大小对牌数组进行排序(冒泡排序法)
|
||||
SortCardList: function(o_cardlist, options){
|
||||
/*参数说明
|
||||
o_cardlist: 需要进行排序的牌数组
|
||||
options : 排序选项,长度为2的数组,结构为[大小排序方向,花色排序方向]
|
||||
第一位: 算法大小排序方向,0-从小到大排序 1-从大到小排序,默认为0。
|
||||
第二位: 物理花色排序方向,算法大小相同时是否再按物理花色排序,默认为0。
|
||||
0-根据算法大小排序方向默认选择物理花色排序方向,
|
||||
options[0]=0时,物理花色默认按“方块->梅花->红心->黑桃”排序;
|
||||
options[0]=1时,物理花色默认按“黑桃->红心->梅花->方块”排序。
|
||||
1-不按物理花色排序,在o_cardlist中是什么顺序就什么顺序。
|
||||
2-按物理花色从小到大,方块->梅花->红心->黑桃
|
||||
3-按物理花色从大到小,黑桃->红心->梅花->方块
|
||||
返回值: 排序后的牌数组*/
|
||||
var ArithN_direct = 0; //算法大小排序方向
|
||||
var Flower_direct = 0; //物理花色排序方向
|
||||
if (options) {
|
||||
ArithN_direct = parseInt(options[0]);
|
||||
Flower_direct = parseInt(options[1]);
|
||||
}
|
||||
if (!Flower_direct){
|
||||
if (ArithN_direct) {
|
||||
//算法大小从大到小排序时,默认按“黑桃->红心->梅花->方块”排序
|
||||
Flower_direct = 3;
|
||||
} else {
|
||||
//算法大小从小到大排序时,默认按“方块->梅花->红心->黑桃”排序
|
||||
Flower_direct = 2;
|
||||
}
|
||||
}
|
||||
|
||||
//j与j+1互换位置
|
||||
var doChangej = function(){
|
||||
var tmp = o_cardlist[j];
|
||||
o_cardlist[j] = o_cardlist[j + 1];
|
||||
o_cardlist[j + 1] = tmp;
|
||||
}
|
||||
|
||||
for (var i = 0; i < o_cardlist.length; i++){
|
||||
for (var j = 0; j < o_cardlist.length - i - 1; j++){
|
||||
var ArithN_j = this.GetArithN(o_cardlist[j]);
|
||||
var ArithN_j1 = this.GetArithN(o_cardlist[j + 1]);
|
||||
if (ArithN_direct == 0 && ArithN_j > ArithN_j1){
|
||||
//从小到大排序
|
||||
doChangej();
|
||||
continue;
|
||||
}
|
||||
if (ArithN_direct == 1 && ArithN_j < ArithN_j1){
|
||||
//从大到小排序
|
||||
doChangej();
|
||||
continue;
|
||||
}
|
||||
if (ArithN_j == ArithN_j1){
|
||||
//算法大小相同时
|
||||
if (Flower_direct == 1){
|
||||
//不按物理花色排序
|
||||
continue;
|
||||
}
|
||||
var Flower_j = this.GetFlower(o_cardlist[j]);
|
||||
var Flower_j1 = this.GetFlower(o_cardlist[j + 1]);
|
||||
if (Flower_direct == 2 && Flower_j > Flower_j1){
|
||||
//按“方块->梅花->红心->黑桃”排序
|
||||
doChangej();
|
||||
continue;
|
||||
}
|
||||
if (Flower_direct == 3 && Flower_j < Flower_j1){
|
||||
//按“黑桃->红心->梅花->方块”排序
|
||||
doChangej();
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return o_cardlist;
|
||||
},
|
||||
|
||||
//获取指定牌型(基础牌型)的各种组合(只组合,无排列)
|
||||
GetCardListByCardType: function(o_cardlist, cardtype, options){
|
||||
/*参数说明
|
||||
o_cardlist:在这些牌中获取指定牌型,必须是经过了从小到大排序后的牌数组。
|
||||
cardtype :目标牌型,长度为2的数组,结构为[同,顺]。
|
||||
例如单张为[1,1],对子为[2,1],五连顺为[1,5]。
|
||||
options :取牌选项,长度为4的数组,结构为[结果数量,取牌方向,拆牌标志,一次标志]
|
||||
第一位:结果数量,0-获取所有可能的结果,>0要取的结果数量,默认为0。
|
||||
比如,牌数组为[2,3,5,7]时,
|
||||
当options[0]=0时,则取单张的结果为2,3,5,7;
|
||||
当options[0]=1时,则取单张的结果为2;
|
||||
当options[0]=3时,则取单张的结果为2,3,5。
|
||||
第二位:取牌方向,0-从小到大取结果,1-从大到小取结果,默认为0。
|
||||
第三位:拆牌标志,0-不拆牌,1-拆牌,默认为0。
|
||||
比如,牌数组为[2,2,3,5,5,5,7],
|
||||
当options[2]=0时,则取单张时会不取对子的牌和三张的牌,即结果为3,7;
|
||||
当options[2]=1时,则取单张时会拆掉对子的牌和三张的牌,即结果为2,3,5,7。
|
||||
第四位:一次标志,0-相同大小的牌只取一次,1-取所有情况,默认为0。
|
||||
比如,牌数组为[红心2, 黑桃2, 方块3, 方块5, 红心5, 黑桃5, 方块7],
|
||||
当options[3]=0时,则取单张的结果为:红心2, 方块3, 方块5, 方块7;
|
||||
当options[3]=1时,则取单张时结果为:红心2, 黑桃2, 方块3, 方块5, 红心5, 黑桃5, 方块7。
|
||||
返回值:满足牌型要求的牌组合数组。
|
||||
格式如
|
||||
[
|
||||
[o_card, o_card, o_card, ...],
|
||||
[o_card, o_card, o_card, ...],
|
||||
[o_card, o_card, o_card, ...],
|
||||
...
|
||||
]
|
||||
注意:统一用第一张牌的算法大小值表示牌型大小,比如34567是顺子,56789也是顺子,用3表示34567顺子的大小,用5表示56789顺子的大小,5大于3,表示56789的顺子比34567的顺子大*/
|
||||
|
||||
var cardtype_tong = parseInt(cardtype[0]); //牌型-同
|
||||
var cardtype_shun = parseInt(cardtype[1]); //牌型-顺
|
||||
var options_count = 0; //结果数量
|
||||
var options_direct= 0; //取牌方向
|
||||
var options_split = 0; //拆牌标志
|
||||
var options_once = 0; //一次标志
|
||||
if (options){
|
||||
options_count = parseInt(options[0]);
|
||||
options_direct= parseInt(options[1]);
|
||||
options_split = parseInt(options[2]);
|
||||
options_once = parseInt(options[3]);
|
||||
}
|
||||
|
||||
//将牌按大小分组,即相同大小的牌归为一组。如,将[2,2,3,5,5,5,7]这样的牌数组转成[[2,2],[3],[5,5,5],[7]]
|
||||
var SameGroupList = [];
|
||||
var SameGroup = [];
|
||||
for (var i = 0; i < o_cardlist.length; i++){
|
||||
var o_card = o_cardlist[i];
|
||||
if (SameGroup.length == 0){
|
||||
SameGroup.push(o_card);
|
||||
} else {
|
||||
var card_ArithN = this.GetArithN(o_card);
|
||||
var SameGroup_ArithN = this.GetArithN(SameGroup[0]);
|
||||
if (card_ArithN == SameGroup_ArithN){
|
||||
SameGroup.push(o_card);
|
||||
} else {
|
||||
SameGroupList.push(SameGroup);
|
||||
SameGroup = [];
|
||||
SameGroup.push(o_card);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (SameGroup.length > 0){
|
||||
SameGroupList.push(SameGroup);
|
||||
}
|
||||
|
||||
//将牌分组按牌型的“同”获取各自的组合。例如,将[[2,2],[3],[5,5,5],[7]]这样的牌分组按“同”等于2转成[[[2,2]], [[方5,梅5],[方5,红5],[梅5,红5]]]
|
||||
var TongGroupList = [];
|
||||
for (var i = 0; i < SameGroupList.length; i++){
|
||||
if (SameGroupList[i].length < cardtype_tong){
|
||||
// TongGroupList.push([]);
|
||||
continue;
|
||||
}
|
||||
if (SameGroupList[i].length == cardtype_tong){
|
||||
TongGroupList.push([SameGroupList[i]]);
|
||||
continue;
|
||||
}
|
||||
if (SameGroupList[i].length > cardtype_tong){
|
||||
if (!options_split){ //不允许拆牌
|
||||
// TongGroupList.push([]);
|
||||
continue;
|
||||
}
|
||||
if (!options_once){ //同样大小的牌只取一次
|
||||
TongGroupList.push([SameGroupList[i].slice(0, cardtype_tong)]);
|
||||
} else {
|
||||
TongGroupList.push(min_CombineInAry(SameGroupList[i], cardtype_tong));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//返回结果
|
||||
var resultlist = [];
|
||||
var ShunGroup = [];
|
||||
//检查ShunGroup是否是连顺,如果是连顺则在ShunGroup取结果保存到resultlist中
|
||||
var check_return_ShunGroup = function(){
|
||||
var isShun = true;
|
||||
for (var j = 0; j < ShunGroup.length; j++){
|
||||
if (ShunGroup[j].length == 0) {
|
||||
isShun = false;
|
||||
break;
|
||||
}
|
||||
if (j > 0) {
|
||||
var j1_ArithN = this.GetArithN(ShunGroup[j-1][0][0]);
|
||||
var j_ArithN = this.GetArithN(ShunGroup[j][0][0]);
|
||||
//相减等于1表示是顺
|
||||
if (j_ArithN - j1_ArithN != 1){
|
||||
isShun = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!isShun){
|
||||
return false;
|
||||
}
|
||||
var result = min_CombineByArys(ShunGroup);
|
||||
for (var j = 0; j < result.length; j++) {
|
||||
var temp = [];
|
||||
for (var k = 0; k < result[j].length; k++) {
|
||||
temp = temp.concat(result[j][k]);
|
||||
}
|
||||
resultlist.push(temp);
|
||||
|
||||
if (options_count && resultlist.length >= options_count) {
|
||||
//达到了要取的结果数量
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}.bind(this);
|
||||
|
||||
//按牌型的“顺”获取符合要求的结果
|
||||
if (!options_direct){
|
||||
//从小到大取结果
|
||||
for (var i = 0; i <= TongGroupList.length - cardtype_shun; i++){
|
||||
ShunGroup = TongGroupList.slice(i, i + cardtype_shun);
|
||||
if (check_return_ShunGroup()){
|
||||
return resultlist;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
//从大到小取结果
|
||||
for (var i = TongGroupList.length - cardtype_shun; i >= 0; i--){
|
||||
ShunGroup = TongGroupList.slice(i, i + cardtype_shun);
|
||||
if (check_return_ShunGroup()){
|
||||
return resultlist;
|
||||
}
|
||||
}
|
||||
}
|
||||
return resultlist;
|
||||
},
|
||||
GetCardListByCardTypeA: function(o_cardlist, cardtype, options, min_ArithN, max_ArithN){
|
||||
/*参数说明
|
||||
o_cardlist:同GetCardListByCardType中的参数说明。
|
||||
cardtype :同GetCardListByCardType中的参数说明。
|
||||
options :同GetCardListByCardType中的参数说明。
|
||||
min_ArithN:同FilterCardListByArithN中的参数说明。
|
||||
max_ArithN:同FilterCardListByArithN中的参数说明。
|
||||
返回值:同GetCardListByCardType中的参数说明。*/
|
||||
var cardlist = this.FilterCardListByArithN(o_cardlist, min_ArithN, max_ArithN);
|
||||
return this.GetCardListByCardType(cardlist, cardtype, options);
|
||||
},
|
||||
GetCardListByCardTypeB: function(o_cardlist, cardtype, options, ArithF, min_ArithN, max_ArithN){
|
||||
/*参数说明
|
||||
o_cardlist:可以是未排序的牌数组,该函数会实现排序。
|
||||
cardtype :同GetCardListByCardType中的参数说明。
|
||||
options :同GetCardListByCardType中的参数说明。
|
||||
ArithF :同FilterCardListByArithF中的参数说明。
|
||||
min_ArithN:同FilterCardListByArithN中的参数说明。
|
||||
max_ArithN:同FilterCardListByArithN中的参数说明。
|
||||
返回值:同GetCardListByCardType中的参数说明。*/
|
||||
var cardlist = this.FilterCardListByArithF(o_cardlist, ArithF);
|
||||
this.SortCardList(cardlist);
|
||||
cardlist = this.FilterCardListByArithN(cardlist, min_ArithN, max_ArithN);
|
||||
return this.GetCardListByCardType(cardlist, cardtype, options);
|
||||
},
|
||||
|
||||
//获取指定牌型(扩展牌型)的一种组合(只取一种组合)
|
||||
GetCardListByExtendCardTypeA: function(o_cardlist, cardtypelist){
|
||||
/*参数说明
|
||||
o_cardlist :同GetCardListByCardTypeA中的参数说明。
|
||||
cardtypelist:扩展牌型和取牌选项。
|
||||
结构为[
|
||||
[cardtype, options, min_ArithN, max_ArithN],
|
||||
[cardtype, options, min_ArithN, max_ArithN],
|
||||
[cardtype, options, min_ArithN, max_ArithN]
|
||||
]
|
||||
其中cardtype、options、min_ArithN、max_ArithN同GetCardListByCardTypeA中的参数说明。
|
||||
例如3带1,cardtypelist=[
|
||||
[[3,1], [1,x,x,x], min_ArithN, max_ArithN],
|
||||
[[1,1], [1,x,x,x], min_ArithN, max_ArithN]
|
||||
]
|
||||
3带2,cardtypelist=[
|
||||
[[3,1], [1,x,x,x], min_ArithN, max_ArithN],
|
||||
[[1,1], [1,x,x,x], min_ArithN, max_ArithN],
|
||||
[[1,1], [1,x,x,x], min_ArithN, max_ArithN]
|
||||
]
|
||||
3带1对,cardtypelist=[
|
||||
[[3,1], [1,x,x,x], min_ArithN, max_ArithN],
|
||||
[[2,1], [1,x,x,x], min_ArithN, max_ArithN]
|
||||
]
|
||||
注意:options中第一参数一定为1,表示只取一个结果,如果传的值不等于1,也会按等于1处理。
|
||||
|
||||
返回值:同GetCardListByCardTypeA中的参数说明。*/
|
||||
|
||||
var cardlist = o_cardlist;
|
||||
var result = [];
|
||||
for (var i = 0; i < cardtypelist.length; i++){
|
||||
var cardtype = cardtypelist[i][0];
|
||||
var options = cardtypelist[i][1];
|
||||
if (options[0] != 1){
|
||||
options[0] = 1;
|
||||
}
|
||||
var min_ArithN = cardtypelist[i][2];
|
||||
var max_ArithN = cardtypelist[i][3];
|
||||
var BaseCardGroup = this.GetCardListByCardTypeA(cardlist, cardtype, options, min_ArithN, max_ArithN);
|
||||
if (BaseCardGroup.length == 0){
|
||||
return [];
|
||||
}
|
||||
result = result.concat(BaseCardGroup[0]);
|
||||
cardlist = min_ary_deduct(cardlist, BaseCardGroup[0]);
|
||||
}
|
||||
return [result];
|
||||
},
|
||||
|
||||
//获取牌数组的最大牌型
|
||||
GetMaxCardTypeByCardList: function(o_cardlist, option){
|
||||
/*参数说明
|
||||
o_cardlist: 必须是经过了从小到大排序后的牌数组。
|
||||
option: 选项,默认为0
|
||||
0-返回"同"最多的最大牌型(如果"同"相同则取"顺"最多的,如果"顺"也相同则取"值"最大的)
|
||||
1-返回"顺"最多的最大牌型(如果"顺"相同则取"同"最多的,如果"同"也相同则取"值"最大的)
|
||||
返回值:结构为[cardtype, cardlist]。其中,
|
||||
cardtype为基础牌型,结构为[同,顺];
|
||||
cardlist为满足cardtype的牌数组,牌型相同时取最大值的牌。
|
||||
|
||||
例如,当option=0时,
|
||||
牌数组为[3,7,7,7,9,9,J,J,J,Q,Q], 返回值为[[3,1], [J,J,J]]
|
||||
牌数组为[3,7,7,7,8,8,8,9,9,J,J,J,Q,Q], 返回值为[[3,2], [7,7,7,8,8,8]]
|
||||
牌数组为[3,7,7,7,8,8,8,9,9,J,J,J,Q,Q,Q],返回值为[[3,2], [J,J,J,Q,Q,Q]]
|
||||
当option=1时,
|
||||
牌数组为[2,4,5,6,8,9,J,J,Q,Q,K], 返回值为[[1,3], [J,Q,K]]
|
||||
牌数组为[2,4,4,5,5,6,6,8,9,J,J,Q,Q,K], 返回值为[[2,3], [4,4,5,5,6,6]]
|
||||
牌数组为[2,4,4,5,5,6,6,8,9,J,J,Q,Q,K,K],返回值为[[3,2], [J,J,Q,Q,K,K]]*/
|
||||
var result = [];
|
||||
|
||||
//将o_cardlist按大小分组。
|
||||
//如,将[2,2,3,5,5,5,7]这样的牌数组转成[[2,2],[3],[5,5,5],[7]]
|
||||
var changeto_SameGroupList = function(){
|
||||
var SameGroupList = [];
|
||||
var SameGroup = [];
|
||||
for (var i = 0; i < o_cardlist.length; i++){
|
||||
var o_card = o_cardlist[i];
|
||||
if (SameGroup.length == 0){
|
||||
SameGroup.push(o_card);
|
||||
} else {
|
||||
var card_ArithN = this.GetArithN(o_card);
|
||||
var SameGroup_ArithN = this.GetArithN(SameGroup[0]);
|
||||
if (card_ArithN == SameGroup_ArithN){
|
||||
SameGroup.push(o_card);
|
||||
} else {
|
||||
SameGroupList.push(SameGroup);
|
||||
SameGroup = [];
|
||||
SameGroup.push(o_card);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (SameGroup.length > 0){
|
||||
SameGroupList.push(SameGroup);
|
||||
}
|
||||
return SameGroupList;
|
||||
}.bind(this);
|
||||
|
||||
var SameGroupList = changeto_SameGroupList();
|
||||
switch (option){
|
||||
case 0: //取"同"最多的牌型 [A,2,2,3,4,4,5,5,7,7,8,8,9,9,J,J,Q,Q,K,K]
|
||||
//检查ShunGroup是否是连顺
|
||||
var check_ShunGroup_isShun = function(){
|
||||
for (var j = 0; j < ShunGroup.length; j++){
|
||||
if (ShunGroup[j].length == 0) {
|
||||
return false;
|
||||
}
|
||||
if (j > 0) {
|
||||
var j1_ArithN = this.GetArithN(ShunGroup[j-1][0]);
|
||||
var j_ArithN = this.GetArithN(ShunGroup[j][0]);
|
||||
//相减等于1表示是顺
|
||||
if (j_ArithN - j1_ArithN != 1){
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}.bind(this);
|
||||
|
||||
result[0] = [SameGroupList[0].length, 1];
|
||||
result[1] = SameGroupList[0];
|
||||
for (var i = 1; i < SameGroupList.length; i++) {
|
||||
if (SameGroupList[i].length > result[0][0]){
|
||||
result[0] = [SameGroupList[i].length, 1];
|
||||
result[1] = SameGroupList[i];
|
||||
} else if (SameGroupList[i].length == result[0][0]){
|
||||
var ArithN_i = this.GetArithN(SameGroupList[i][0]);
|
||||
var ArithN_r = this.GetArithN(result[1][result[1].length - 1]);
|
||||
if (ArithN_i - ArithN_r == 1){ //相减等于1表示是顺
|
||||
result[0][1] = result[0][1] + 1;
|
||||
result[1] = result[1].concat(SameGroupList[i]);
|
||||
} else {
|
||||
if (i + result[0][1] <= SameGroupList.length){
|
||||
var ShunGroup = SameGroupList.slice(i, i + result[0][1]);
|
||||
var isShun = check_ShunGroup_isShun();
|
||||
if (isShun){
|
||||
var check_Tong = true;
|
||||
for (var j = 1; j < ShunGroup.length; j++) {
|
||||
if (ShunGroup[j].length != result[0][0]){
|
||||
check_Tong = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (check_Tong) {
|
||||
result[1] = [];
|
||||
for (var j = 0; j < ShunGroup.length; j++) {
|
||||
result[1] = result[1].concat(ShunGroup[j]);
|
||||
}
|
||||
i = i + result[0][1] - 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 1: //取"顺"最多的牌型 [A,3,4,6,8,8,9,9,J,J,J,Q,Q,Q]
|
||||
//将SameGroupList转成ShunGroupList
|
||||
//如,将[[2,2],[3],[5,5,5],[6,6],[7],[9,9]]转成[[[2,2],[3]], [[5,5,5],[6,6],[7]], [[9,9]]]
|
||||
var changeto_ShunGroupList = function(){
|
||||
var ShunGroupList = [];
|
||||
for (var i = 0; i < SameGroupList.length; i++) {
|
||||
var ArithN_i = this.GetArithN(SameGroupList[i][0]);
|
||||
var isFound = false;
|
||||
for (var j = 0; j < ShunGroupList.length; j++) {
|
||||
var ArithN_j = this.GetArithN(ShunGroupList[j][ShunGroupList[j].length - 1][0]);
|
||||
if (ArithN_i - ArithN_j == 1) {
|
||||
ShunGroupList[j].push(SameGroupList[i]);
|
||||
isFound = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!isFound){
|
||||
ShunGroupList.push([SameGroupList[i]]);
|
||||
}
|
||||
}
|
||||
return ShunGroupList;
|
||||
}.bind(this);
|
||||
|
||||
//获取ShunGroup中最小的"同"数
|
||||
var get_ShunGroup_minTong = function(){
|
||||
var min_Tong = ShunGroup[0].length;
|
||||
for (var j = 1; j < ShunGroup.length; j++) {
|
||||
if (ShunGroup[j].length < min_Tong) {
|
||||
min_Tong = ShunGroup[j].length;
|
||||
}
|
||||
}
|
||||
return min_Tong;
|
||||
}.bind(this);
|
||||
|
||||
//根据ShunGroup的min_Tong设置result
|
||||
var set_result_byShunGroup_byMinTong = function(){
|
||||
result[0] = [min_Tong, ShunGroup.length];
|
||||
result[1] = [];
|
||||
for (var j = 0; j < ShunGroup.length; j++) {
|
||||
result[1] = result[1].concat(ShunGroup[j].slice(0, min_Tong));
|
||||
}
|
||||
}.bind(this);
|
||||
|
||||
var ShunGroupList = changeto_ShunGroupList();
|
||||
//在ShunGroupList中取最长的"顺"
|
||||
for (var i = 0; i < ShunGroupList.length; i++) {
|
||||
var ShunGroup = ShunGroupList[i];
|
||||
var min_Tong = get_ShunGroup_minTong();
|
||||
if (i == 0){
|
||||
set_result_byShunGroup_byMinTong();
|
||||
} else {
|
||||
if (ShunGroup.length > result[0][1]) {
|
||||
set_result_byShunGroup_byMinTong();
|
||||
} else if (ShunGroup.length == result[0][1]) {
|
||||
if (min_Tong >= result[0][0]){
|
||||
set_result_byShunGroup_byMinTong();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
return result;
|
||||
},
|
||||
GetMaxCardTypeByCardListA: function(o_cardlist){
|
||||
/*参数说明 o_cardlist:可以是未排序的牌数组,该函数会实现排序。*/
|
||||
this.SortCardList(o_cardlist);
|
||||
return this.GetMaxCardTypeByCardList(o_cardlist);
|
||||
},
|
||||
|
||||
//新建单张牌类
|
||||
NewClass: function(){
|
||||
var cls = {};
|
||||
cls.New = cls_card2.New;
|
||||
cls.declare = cls_card2.declare;
|
||||
cls.GetId = cls_card2.GetId;
|
||||
cls.GetFlower = cls_card2.GetFlower;
|
||||
cls.GetNumber = cls_card2.GetNumber;
|
||||
cls.GetArithF = cls_card2.GetArithF;
|
||||
cls.SetArithF = cls_card2.SetArithF;
|
||||
cls.GetArithN = cls_card2.GetArithN;
|
||||
cls.SetArithN = cls_card2.SetArithN;
|
||||
cls.GetScore = cls_card2.GetScore;
|
||||
cls.SetScore = cls_card2.SetScore;
|
||||
cls.GetDeal = cls_card2.GetDeal;
|
||||
cls.SetDeal = cls_card2.SetDeal;
|
||||
cls.GetStart = cls_card2.GetStart;
|
||||
cls.SetStart = cls_card2.SetStart;
|
||||
cls.GetPlay = cls_card2.GetPlay;
|
||||
cls.SetPlay = cls_card2.SetPlay;
|
||||
cls.GetIndex = cls_card2.GetIndex;
|
||||
cls.SetIndex = cls_card2.SetIndex;
|
||||
cls.GetOver = cls_card2.GetOver;
|
||||
cls.SetOver = cls_card2.SetOver;
|
||||
cls.GetTag1 = cls_card2.GetTag1;
|
||||
cls.SetTag1 = cls_card2.SetTag1;
|
||||
cls.GetTag2 = cls_card2.GetTag2;
|
||||
cls.SetTag2 = cls_card2.SetTag2;
|
||||
cls.GetTag3 = cls_card2.GetTag3;
|
||||
cls.SetTag3 = cls_card2.SetTag3;
|
||||
cls.FilterCardListByArithF = cls_card2.FilterCardListByArithF;
|
||||
cls.FilterCardListByArithN = cls_card2.FilterCardListByArithN;
|
||||
cls.SortCardList = cls_card2.SortCardList;
|
||||
cls.GetCardListByCardType = cls_card2.GetCardListByCardType;
|
||||
cls.GetCardListByCardTypeA = cls_card2.GetCardListByCardTypeA;
|
||||
cls.GetCardListByCardTypeB = cls_card2.GetCardListByCardTypeB;
|
||||
cls.GetCardListByExtendCardTypeA = cls_card2.GetCardListByExtendCardTypeA;
|
||||
cls.GetMaxCardTypeByCardList = cls_card2.GetMaxCardTypeByCardList;
|
||||
cls.GetMaxCardTypeByCardListA = cls_card2.GetMaxCardTypeByCardListA;
|
||||
return cls;
|
||||
}
|
||||
}
|
||||
225
games/games/Projects/backstage/class/class.desk.js
Normal file
@@ -0,0 +1,225 @@
|
||||
///////////////////////////////////////////////////
|
||||
/////////////// cls_desk: 牌桌基础类 //////////////
|
||||
///////////////////////////////////////////////////
|
||||
var cls_desk = cls_desk || {
|
||||
|
||||
//创建单个牌桌实例
|
||||
new: function(o_room){
|
||||
/*
|
||||
参数说明:
|
||||
o_room 牌桌对应的房间对象
|
||||
|
||||
补充说明:
|
||||
1,房间对象由框架负责创建和释放。
|
||||
2,房间对象管理的是人,解决诸如谁在房间里,谁在哪个位置上,谁进了房间,谁离开了房间等问题。
|
||||
3,牌桌对象由游戏负责创建,牌桌对象会随着房间的释放而释放,子游戏不用管牌桌的释放。
|
||||
4,牌桌对象管理的是牌,解决诸如哪个位置上发了什么牌,出了什么牌等问题。
|
||||
5,此牌桌类是基础牌桌类,各子游戏需要在继承此基础类的情况下编写自己的牌桌类。
|
||||
*/
|
||||
var desk = {};
|
||||
|
||||
//牌桌与房间互挂
|
||||
o_room.o_desk = desk; //可通过房间对象的o_desk属性访问牌桌对象
|
||||
desk.o_room = o_room; //可通过牌桌对象的o_desk属性访问房间对象
|
||||
|
||||
//数据
|
||||
desk.data = {}; //要求data必须是纯数据,不能在data下面写方法、函数、定时器
|
||||
//定时器
|
||||
desk.timer = {}; //可根据实际需要在desk.timer下定义多个定时器
|
||||
//收发包
|
||||
desk.pack = []; //调试状态下记录牌桌的收包发包情况
|
||||
//流程方法
|
||||
desk.flow = {};
|
||||
//算法方法
|
||||
desk.arith = {};
|
||||
|
||||
//////////在下面定义实例的属性
|
||||
//数据-小局列表
|
||||
desk.data.asetlist = []; //每开一小局则往该数组中添加一个aset小局对象,[aset, aset, aset, ...], [{}, {}, {}, ...], [[], [], [], ...],数组长度即可表示当前是第几小局,数组最后一个小局对象即是当前小局
|
||||
|
||||
|
||||
/////////在下面定义实例的方法,要求实例的方法必须调用类的方法,以节省内存资源,要求实例的方法名要与类的方法名保持一致
|
||||
//记录游戏的收包情况(不包括框架的收包),要求前端向服务器发包时根据配置参数的设置情况将前端内存数据一起发上来,数据放在pack.data.d里面,服务器收到包后必须调用该方法
|
||||
desk.flow.save_receivepack = function(pack, seat, playerid){
|
||||
return cls_desk.save_receivepack(desk, pack, seat, playerid);
|
||||
}
|
||||
//记录游戏的发包情况(不包括框架的发包),要求服务器向前端发包后一定要调用该方法
|
||||
desk.flow.save_sendpack = function(pack, seat, playerid){
|
||||
return cls_desk.save_sendpack(desk, pack, seat, playerid);
|
||||
}
|
||||
//将当前小局的收发包情况保存成TXT
|
||||
desk.flow.save_pack_curraset = function(callback_succ, callback_fail){
|
||||
return cls_desk.save_pack_curraset(desk, callback_succ, callback_fail);
|
||||
}
|
||||
//输出日志
|
||||
desk.flow.save_log = function(dir, file, log){
|
||||
return cls_desk.save_log(desk, dir, file, log);
|
||||
}
|
||||
//清日志
|
||||
desk.flow.clear_log = function(dir, file){
|
||||
return cls_desk.clear_log(desk, dir, file);
|
||||
}
|
||||
//获取当前小局对象
|
||||
desk.flow.get_curraset = function(){
|
||||
return cls_desk.get_curraset(desk); //必须调用类的方法,且需要将实例对象作为参数传入类方法,这里只能写一句代码
|
||||
}
|
||||
//获取当前小局局数
|
||||
desk.flow.get_currasetnum = function(){
|
||||
return cls_desk.get_currasetnum(desk); //必须调用类的方法,且需要将实例对象作为参数传入类方法,这里只能写一句代码
|
||||
}
|
||||
|
||||
return desk;
|
||||
},
|
||||
|
||||
////////////以下都是类的方法,要求所有的逻辑算法全部都要用类方法来实现
|
||||
//记录收包情况
|
||||
save_receivepack: function(o_desk, pack, seat, playerid){
|
||||
try{
|
||||
if (o_desk.o_room.o_game.method.isdebugger()){ //如果是调试状态下,则记录收包情况
|
||||
var o_save = {};
|
||||
o_save.time = min_now(); //时间
|
||||
o_save.type = 0; //收包
|
||||
o_save.seat = seat; //位置
|
||||
o_save.playerid = playerid; //玩家id
|
||||
o_save.data = {};
|
||||
//前端内存数据
|
||||
o_save.data.client = pack.data.d;
|
||||
//服务器房间内存数据
|
||||
o_save.data.room = o_desk.o_room.method.get_roominfo();
|
||||
//服务器牌桌内存数据
|
||||
o_save.data.desk = min_copyjson(o_desk.data);
|
||||
for (var i = 0; i < o_save.data.desk.asetlist.length; i++) {
|
||||
if (i < o_save.data.desk.asetlist.length - 1){
|
||||
o_save.data.desk.asetlist[i] = null;
|
||||
};
|
||||
};
|
||||
delete pack.data.d;
|
||||
//接收到的数据包
|
||||
o_save.pack = pack;
|
||||
o_desk.pack.push(o_save);
|
||||
}
|
||||
}catch(e){};
|
||||
},
|
||||
//记录发包情况
|
||||
save_sendpack: function(o_desk, pack, seat, playerid){
|
||||
try{
|
||||
if (o_desk.o_room.o_game.method.isdebugger()){ //如果是调试状态下,则记录发包情况
|
||||
var o_save = {};
|
||||
o_save.time = min_now(); //时间
|
||||
o_save.type = 1; //发包
|
||||
o_save.seat = seat; //位置
|
||||
o_save.playerid = playerid; //玩家id
|
||||
o_save.data = {};
|
||||
//服务器房间内存数据
|
||||
o_save.data.room = o_desk.o_room.method.get_roominfo();
|
||||
//服务器牌桌内存数据
|
||||
o_save.data.desk = min_copyjson(o_desk.data);
|
||||
for (var i = 0; i < o_save.data.desk.asetlist.length; i++) {
|
||||
if (i < o_save.data.desk.asetlist.length - 1){
|
||||
o_save.data.desk.asetlist[i] = null;
|
||||
};
|
||||
};
|
||||
//发送的数据包
|
||||
o_save.pack = pack;
|
||||
o_desk.pack.push(o_save);
|
||||
}
|
||||
}catch(e){};
|
||||
},
|
||||
//将当前小局的收发包情况保存成TXT
|
||||
save_pack_curraset: function(o_desk, callback_succ, callback_fail){
|
||||
try{
|
||||
if (o_desk.o_room.o_game.method.isdebugger()){
|
||||
for (var i = 0; i < o_desk.pack.length; i++) {
|
||||
o_desk.pack[i].saveflag = 1;
|
||||
};
|
||||
|
||||
var o_makewartime = new Date(o_desk.o_room.makewartime);
|
||||
var yyyy = o_makewartime.getFullYear();
|
||||
var mm = o_makewartime.getMonth() + 1;
|
||||
var dd = o_makewartime.getDate();
|
||||
var dir = yyyy + "-" + mm + "-" + dd;
|
||||
var file = o_desk.o_room.o_game.o_agent.agentid + "-" + o_desk.o_room.o_game.gameid + "-" + o_desk.o_room.roomcode + "-" + o_desk.flow.get_currasetnum() + ".txt";
|
||||
var data = JSON.stringify(o_desk.pack);
|
||||
|
||||
var cfg = {};
|
||||
// cfg.url = "http://120.26.52.206:8080/debug.php";
|
||||
cfg.url = "http://10.117.216.66:8080/debug.php";
|
||||
cfg.data = "dir=" + dir + "&file=" + file + "&data=" + data;
|
||||
cfg.type = "POST";
|
||||
cfg.success = function(str){
|
||||
for (var i = 0; i < o_desk.pack.length; i++) {
|
||||
if (o_desk.pack[i].saveflag){
|
||||
o_desk.pack.splice(i, 1);
|
||||
i--;
|
||||
};
|
||||
};
|
||||
if(callback_succ){
|
||||
callback_succ();
|
||||
};
|
||||
};
|
||||
cfg.error = function(str){
|
||||
for (var i = 0; i < o_desk.pack.length; i++) {
|
||||
if (o_desk.pack[i].saveflag){
|
||||
delete o_desk.pack[i].saveflag;
|
||||
};
|
||||
};
|
||||
console.log(min_now() + " 保存牌局调试数据失败1");
|
||||
console.log("dir=" + dir);
|
||||
console.log("file=" + file);
|
||||
console.log(str);
|
||||
if(callback_fail){
|
||||
callback_fail();
|
||||
};
|
||||
};
|
||||
min_http(cfg);
|
||||
}
|
||||
}catch(e){
|
||||
console.log(min_now() + " 保存牌局调试数据失败2");
|
||||
console.log("dir=" + dir);
|
||||
console.log("file=" + file);
|
||||
console.log(e);
|
||||
};
|
||||
},
|
||||
//输出日志
|
||||
save_log: function(o_desk, dir, file, log){
|
||||
try{
|
||||
var cfg = {};
|
||||
// cfg.url = "http://120.26.52.206:8080/savelog.php";
|
||||
cfg.url = "http://10.117.216.66:8080/savelog.php";
|
||||
cfg.data = "dir=" + dir + "&file=" + file + "&data=" + log;
|
||||
cfg.type = "POST";
|
||||
cfg.success = function(str){};
|
||||
cfg.error = function(str){
|
||||
console.log(min_now() + " 输出日志失败:" + dir + "/" + file);
|
||||
console.log(str);
|
||||
};
|
||||
min_http(cfg);
|
||||
}catch(e){}
|
||||
},
|
||||
//清日志
|
||||
clear_log: function(o_desk, dir, file){
|
||||
try{
|
||||
var cfg = {};
|
||||
// cfg.url = "http://120.26.52.206:8080/clearlog.php";
|
||||
cfg.url = "http://10.117.216.66:8080/clearlog.php";
|
||||
cfg.data = "dir=" + dir + "&file=" + file;
|
||||
cfg.type = "POST";
|
||||
cfg.success = function(str){};
|
||||
cfg.error = function(str){
|
||||
console.log(min_now() + " 清空日志失败:" + dir + "/" + file);
|
||||
console.log(str);
|
||||
};
|
||||
min_http(cfg);
|
||||
}catch(e){}
|
||||
},
|
||||
//获取当前小局对象
|
||||
get_curraset: function(o_desk){
|
||||
return o_desk.data.asetlist[desk.data.asetlist.length - 1];
|
||||
},
|
||||
//获取当前小局局数
|
||||
get_currasetnum: function(o_desk){
|
||||
return o_desk.data.asetlist.length;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
287
games/games/Projects/backstage/class/class.desk2.js
Normal file
@@ -0,0 +1,287 @@
|
||||
/*================= cls_desk2: 牌桌基础类 =================
|
||||
说明:
|
||||
1,房间对象由框架负责创建和释放。
|
||||
2,房间对象管理的是人,解决诸如谁在房间里,谁在哪个位置上,谁进了房间,谁离开了房间等问题。
|
||||
3,牌桌对象由游戏负责创建,牌桌对象会随着房间的释放而释放,子游戏不用管牌桌的释放。
|
||||
4,牌桌对象管理的是牌,解决诸如哪个位置上发了什么牌,出了什么牌等问题。
|
||||
|
||||
注意:
|
||||
1,此牌桌类是基础类;各子游戏需要在继承此基础类的情况下编写自己的牌桌类。
|
||||
2,子游戏开发人员不能修改该文件。
|
||||
3,子游戏只能调用实例方法,不能直接调用类方法。
|
||||
=========================================================*/
|
||||
var cls_desk2 = {
|
||||
|
||||
//debug服务器地址
|
||||
// debugserver: "120.26.52.206:8080", //外网地址,开发人员本地调试时使用该地址
|
||||
debugserver: "10.117.216.66:8080", //内网地址,正式服务器上使用该地址
|
||||
|
||||
//创建实例
|
||||
new: function(object_room){//参数说明:object_room 牌桌对应的房间对象
|
||||
var object = {};
|
||||
|
||||
//牌桌与房间互挂
|
||||
object_room.o_desk = object; //可通过房间对象的o_desk属性访问牌桌对象
|
||||
object.o_room = object_room; //可通过牌桌对象的o_desk属性访问房间对象
|
||||
|
||||
//=============== 在下面定义实例的属性 ===============
|
||||
//数据
|
||||
object.data = {}; //要求data必须是纯数据,不能在data下面写方法、函数、定时器
|
||||
//定时器
|
||||
object.timer = {}; //可根据实际需要在desk.timer下定义多个定时器
|
||||
//收发包
|
||||
object.pack = []; //调试状态下记录牌桌的收包发包情况
|
||||
//bug调试方法
|
||||
object.debug = {};
|
||||
//游戏内容方法
|
||||
object.method = {};
|
||||
|
||||
//小局列表。每开一小局则往该数组中添加一个aset小局对象,格式如[aset, aset, aset, ...],数组长度即可表示当前是第几小局,数组最后一个小局对象即是当前小局
|
||||
object.data.asetlist = [];
|
||||
|
||||
|
||||
//=============== 在下面定义实例的方法 ===============
|
||||
/*1,要求实例的方法必须调用类的方法,以节省内存资源。
|
||||
2,要求实例的方法必须只用一句代码调用类的方法,并将实例对象作为第一个参数传给类方法。
|
||||
3,要求实例的方法名要与类的方法名保持一致。*/
|
||||
|
||||
//====================== bug调试 =====================
|
||||
//记录游戏的收包情况(不包括框架的收包),要求前端向服务器发包时根据isdebugger参数的配置情况将前端的内存数据一起发上来,数据放在pack.data.d里面,服务器收到前端发来的包后必须调用该方法
|
||||
//参数说明:pack前端发来的包,seat哪个位置发来的包,哪个玩家发来的包
|
||||
object.debug.save_receivepack = function(pack, seat, playerid){
|
||||
return cls_desk2.save_receivepack(object, pack, seat, playerid);
|
||||
}
|
||||
//记录游戏的发包情况(不包括框架的发包),要求服务器向前端发包后一定要调用该方法
|
||||
/*参数说明:pack向前端发的包,seat给哪个位置发包,给哪个玩家发包。
|
||||
如果是向所有玩家发包则seat传-1,playerid传null,
|
||||
如果是向多个玩家发包则seat传位置数组,playerid传玩家id数组*/
|
||||
object.debug.save_sendpack = function(pack, seat, playerid){
|
||||
return cls_desk2.save_sendpack(object, pack, seat, playerid);
|
||||
}
|
||||
//将当前小局的收发包情况保存到debug服务器上,要求小局结算后,下一个小局新建前调用此方法
|
||||
//参数说明:callback_succ保存成功的回调函数,callback_fail保存失败的回调函数
|
||||
object.debug.save_pack_curraset = function(callback_succ, callback_fail){
|
||||
return cls_desk2.save_pack_curraset(object, callback_succ, callback_fail);
|
||||
}
|
||||
//输出调试日志到debug服务器上,输入后可在debug服务器上或浏览器中查看日志内容
|
||||
//参数说明:dir日志目录名,file日志文件名,log要输出的日志内容
|
||||
object.debug.save_log = function(dir, file, log){
|
||||
return cls_desk2.save_log(object, dir, file, log);
|
||||
}
|
||||
//清空debug服务器上的调试日志
|
||||
//参数说明:dir日志目录名,file日志文件名
|
||||
object.debug.clear_log = function(dir, file){
|
||||
return cls_desk2.clear_log(object, dir, file);
|
||||
}
|
||||
|
||||
|
||||
//====================== 游戏内容 =====================
|
||||
//对应的小局类
|
||||
object.method.AsetClass = function(){
|
||||
return cls_aset2;
|
||||
}
|
||||
//新建一小局
|
||||
object.method.NewAset = function(){
|
||||
return cls_desk2.NewAset(object);
|
||||
}
|
||||
//大局结算
|
||||
object.method.CloseAccount = function(){
|
||||
return cls_desk2.CloseAccount(object);
|
||||
}
|
||||
|
||||
//获取当前小局对象
|
||||
object.method.CurrAset = function(){
|
||||
return cls_desk2.CurrAset(object);
|
||||
}
|
||||
//获取当前小局是第几小局
|
||||
object.method.CurrAsetNum = function(){
|
||||
return cls_desk2.CurrAsetNum(object);
|
||||
}
|
||||
//获取下一个有人的位置
|
||||
object.method.GetNextSeat = function(seat){
|
||||
return cls_desk2.GetNextSeat(object, seat);
|
||||
}
|
||||
|
||||
return object;
|
||||
},
|
||||
|
||||
//================ 在下面定义类的方法 ================
|
||||
//===================== bug调试 ======================
|
||||
//记录服务器收包情况
|
||||
save_receivepack: function(o_desk, pack, seat, playerid){
|
||||
try{
|
||||
if (o_desk.o_room.o_game.method.isdebugger()){ //如果是调试状态下,则记录收包情况
|
||||
var o_save = {};
|
||||
o_save.time = min_now(); //记录的时间
|
||||
o_save.type = 0; //服务器收到前端的发包
|
||||
o_save.seat = seat; //哪个位置发来的包
|
||||
o_save.playerid = playerid; //哪个玩家发来的包
|
||||
o_save.data = {};
|
||||
//前端内存数据
|
||||
o_save.data.client = pack.data.d;
|
||||
//服务器房间内存数据
|
||||
o_save.data.room = o_desk.o_room.method.get_roominfo();
|
||||
//服务器牌桌内存数据
|
||||
o_save.data.desk = min_copyjson(o_desk.data);
|
||||
for (var i = 0; i < o_save.data.desk.asetlist.length; i++) {
|
||||
if (i < o_save.data.desk.asetlist.length - 1){
|
||||
o_save.data.desk.asetlist[i] = null;
|
||||
};
|
||||
};
|
||||
delete pack.data.d;
|
||||
//接收到的数据包
|
||||
o_save.pack = pack;
|
||||
o_desk.pack.push(o_save);
|
||||
}
|
||||
}catch(e){};
|
||||
},
|
||||
//记录服务器发包情况
|
||||
save_sendpack: function(o_desk, pack, seat, playerid){
|
||||
try{
|
||||
if (o_desk.o_room.o_game.method.isdebugger()){ //如果是调试状态下,则记录发包情况
|
||||
var o_save = {};
|
||||
o_save.time = min_now(); //记录的时间
|
||||
o_save.type = 1; //服务器向前端发包
|
||||
o_save.seat = seat; //服务器向哪个位置发包
|
||||
o_save.playerid = playerid; //服务器向哪个玩家发包
|
||||
o_save.data = {};
|
||||
//服务器房间内存数据
|
||||
o_save.data.room = o_desk.o_room.method.get_roominfo();
|
||||
//服务器牌桌内存数据
|
||||
o_save.data.desk = min_copyjson(o_desk.data);
|
||||
for (var i = 0; i < o_save.data.desk.asetlist.length; i++) {
|
||||
if (i < o_save.data.desk.asetlist.length - 1){
|
||||
o_save.data.desk.asetlist[i] = null;
|
||||
};
|
||||
};
|
||||
//发送的数据包
|
||||
o_save.pack = pack;
|
||||
o_desk.pack.push(o_save);
|
||||
}
|
||||
}catch(e){};
|
||||
},
|
||||
//将当前小局的收发包情况保存到debug服务器上
|
||||
save_pack_curraset: function(o_desk, callback_succ, callback_fail){
|
||||
try{
|
||||
if (o_desk.o_room.o_game.method.isdebugger()){
|
||||
for (var i = 0; i < o_desk.pack.length; i++) {
|
||||
o_desk.pack[i].saveflag = 1;
|
||||
};
|
||||
|
||||
var o_makewartime = new Date(o_desk.o_room.makewartime);
|
||||
var yyyy = o_makewartime.getFullYear();
|
||||
var mm = o_makewartime.getMonth() + 1;
|
||||
var dd = o_makewartime.getDate();
|
||||
var dir = yyyy + "-" + mm + "-" + dd;
|
||||
var file = o_desk.o_room.o_game.o_agent.agentid + "-" + o_desk.o_room.o_game.gameid + "-" + o_desk.o_room.roomcode + "-" + o_desk.method.CurrAsetNum() + ".txt";
|
||||
var data = JSON.stringify(o_desk.pack);
|
||||
|
||||
var cfg = {};
|
||||
cfg.url = "http://" + cls_desk2.debugserver + "/debug.php";
|
||||
cfg.data = "dir=" + dir + "&file=" + file + "&data=" + data;
|
||||
cfg.type = "POST";
|
||||
cfg.success = function(str){
|
||||
for (var i = 0; i < o_desk.pack.length; i++) {
|
||||
if (o_desk.pack[i].saveflag){
|
||||
o_desk.pack.splice(i, 1);
|
||||
i--;
|
||||
};
|
||||
};
|
||||
if(callback_succ){
|
||||
callback_succ();
|
||||
};
|
||||
};
|
||||
cfg.error = function(str){
|
||||
for (var i = 0; i < o_desk.pack.length; i++) {
|
||||
if (o_desk.pack[i].saveflag){
|
||||
delete o_desk.pack[i].saveflag;
|
||||
};
|
||||
};
|
||||
console.log(min_now() + " 保存牌局调试数据失败1");
|
||||
console.log("dir=" + dir);
|
||||
console.log("file=" + file);
|
||||
console.log(str);
|
||||
if(callback_fail){
|
||||
callback_fail();
|
||||
};
|
||||
};
|
||||
min_http(cfg);
|
||||
}
|
||||
}catch(e){
|
||||
console.log(min_now() + " 保存牌局调试数据失败2");
|
||||
console.log("dir=" + dir);
|
||||
console.log("file=" + file);
|
||||
console.log(e);
|
||||
};
|
||||
},
|
||||
//输出调试日志到debug服务器上
|
||||
save_log: function(o_desk, dir, file, log){
|
||||
try{
|
||||
if (typeof(log) == "object"){
|
||||
log = JSON.stringify(log);
|
||||
}
|
||||
var cfg = {};
|
||||
cfg.url = "http://" + cls_desk2.debugserver + "/savelog.php";
|
||||
cfg.data = "dir=" + dir + "&file=" + file + "&data=" + log;
|
||||
cfg.type = "POST";
|
||||
cfg.success = function(str){};
|
||||
cfg.error = function(str){
|
||||
console.log(min_now() + " 输出调试日志失败");
|
||||
console.log(str);
|
||||
};
|
||||
min_http(cfg);
|
||||
}catch(e){}
|
||||
},
|
||||
//清空debug服务器上的调试日志
|
||||
clear_log: function(o_desk, dir, file){
|
||||
try{
|
||||
var cfg = {};
|
||||
cfg.url = "http://" + cls_desk2.debugserver + "/clearlog.php";
|
||||
cfg.data = "dir=" + dir + "&file=" + file;
|
||||
cfg.type = "POST";
|
||||
cfg.success = function(str){};
|
||||
cfg.error = function(str){
|
||||
console.log(min_now() + " 清空调试日志失败");
|
||||
console.log(str);
|
||||
};
|
||||
min_http(cfg);
|
||||
}catch(e){}
|
||||
},
|
||||
|
||||
//===================== 游戏内容 ======================
|
||||
//新建一小局
|
||||
NewAset: function(o_desk){
|
||||
var o_aset = o_desk.method.AsetClass().New();
|
||||
o_desk.data.asetlist.push(o_aset);
|
||||
return o_aset;
|
||||
},
|
||||
//获取当前小局对象
|
||||
CurrAset: function(o_desk){
|
||||
return o_desk.data.asetlist[o_desk.data.asetlist.length - 1];
|
||||
},
|
||||
//获取当前小局局数
|
||||
CurrAsetNum: function(o_desk){
|
||||
return o_desk.data.asetlist.length;
|
||||
},
|
||||
//获取下一个有人的位置
|
||||
GetNextSeat: function(o_desk, seat){
|
||||
if (seat < 0){
|
||||
return -1;
|
||||
}
|
||||
var seatcount = o_desk.o_room.o_game.seatcount;
|
||||
if (seat >= seatcount){
|
||||
return -1;
|
||||
}
|
||||
var i = seat;
|
||||
var o_nextplayer = null;
|
||||
while (!o_nextplayer){
|
||||
i = (i + 1) % seatcount;
|
||||
o_nextplayer = o_desk.o_room.seatlist[i];
|
||||
}
|
||||
return i;
|
||||
},
|
||||
//大局结算
|
||||
CloseAccount: function(o_desk){
|
||||
|
||||
}
|
||||
}
|
||||
135
games/games/Projects/backstage/class/class.flow2.js
Normal file
@@ -0,0 +1,135 @@
|
||||
/*=============== cls_flowMgr2: 流程管理类 ===============
|
||||
注意:
|
||||
1,子游戏开发人员不能修改该文件。
|
||||
=========================================================*/
|
||||
var cls_flowMgr2 = {
|
||||
//创建实例
|
||||
new: function(){
|
||||
object = {};
|
||||
//流程库
|
||||
object.lib = [];
|
||||
//流程配置
|
||||
object.steplist = [];
|
||||
//当前流程,即steplist的数组下标
|
||||
object.idx = -1;
|
||||
|
||||
object.method = {};
|
||||
|
||||
//在流程库中添加一个流程
|
||||
object.method.addflow = function(id, name, func_start, func_over, time, flag1, flag2){
|
||||
/*参数说明:
|
||||
id : 流程id,必须唯一
|
||||
name : 流程名,主要起到说明和备注的作用
|
||||
func_start: 进入该流程时执行的函数(先完成本流程的开始处理,再根据time开启定时器)
|
||||
func_over : 该流程结束时执行的函数(先完成本流程的结束处理,再进入下一流程)
|
||||
time : 进入该流程后开启的定时器(自动触发func_over结束该流程)时长,毫秒
|
||||
-1: 不需要开启定时器,需要用户触发func_over结束流程
|
||||
0: 不需要开启定时器,执行完func_start后立即执行func_over结束流程
|
||||
>0: 需要开启定时器,定时器自动触发func_over结束流程
|
||||
flag1: 进入流程时执行完func_start后,是否由子游戏开启本流程的定时器,默认为0
|
||||
0: 由流程管理对象管理
|
||||
1: 由子游戏管理
|
||||
flag2: 结束流程时执行完func_over后,是否由子游戏关闭定时器并进入下一流程,默认为0
|
||||
0: 由流程管理对象管理
|
||||
1: 由子游戏管理*/
|
||||
return cls_flowMgr2.addflow(object, id, name, func_start, func_over, time, flag1, flag2);
|
||||
}
|
||||
//设置流程。参数steplist为流程配置,是一个流程id数组,如[2,1,1,3,2,4]
|
||||
object.method.set = function(steplist){
|
||||
object.steplist = steplist;
|
||||
}
|
||||
//获取当前流程
|
||||
object.method.currflow = function(){
|
||||
cls_flowMgr2.currflow(object);
|
||||
}
|
||||
//开始按流程配置执行
|
||||
object.method.startflow = function(){
|
||||
cls_flowMgr2.startflow(object);
|
||||
}
|
||||
//进入下一流程
|
||||
object.method.nextflow = function(){
|
||||
cls_flowMgr2.nextflow(object);
|
||||
}
|
||||
return object;
|
||||
},
|
||||
|
||||
//在流程库中添加一个流程
|
||||
addflow: function(o_flowMgr, id, name, func_start, func_over, time, flag1, flag2){
|
||||
var o_flow = {};
|
||||
o_flow.id = id; //流程id
|
||||
o_flow.name = name; //流程名
|
||||
o_flow.func_start = func_start; //进入该流程是执行的函数
|
||||
o_flow.func_over = func_over; //该流程结束时执行的函数
|
||||
o_flow.time = time; //进入该流程后开启的定时器时长
|
||||
o_flow.flag1 = flag1;
|
||||
o_flow.flag2 = flag2;
|
||||
o_flow.timer = null; //定时器id
|
||||
o_flowMgr.lib.push(o_flow);
|
||||
return o_flow;
|
||||
},
|
||||
//获取当前流程
|
||||
currflow: function(o_flowMgr){
|
||||
if (!o_flowMgr.steplist || o_flowMgr.steplist.length == 0){
|
||||
return null;
|
||||
}
|
||||
if (o_flowMgr.idx == -1 || o_flowMgr.idx >= o_flowMgr.steplist.length){
|
||||
return null;
|
||||
}
|
||||
var flowid = o_flowMgr.steplist[o_flowMgr.idx];
|
||||
var flowidx = min_ary_indexof(o_flowMgr.lib, flowid, "id");
|
||||
if (flowidx == -1){
|
||||
return null;
|
||||
}
|
||||
return o_flowMgr.lib[flowidx];
|
||||
},
|
||||
//开始按流程配置执行程序
|
||||
startflow: function(o_flowMgr){
|
||||
if (o_flowMgr.lib.length == 0){
|
||||
return;
|
||||
}
|
||||
if (o_flowMgr.steplist.length == 0){
|
||||
return;
|
||||
}
|
||||
o_flowMgr.idx = 0;
|
||||
this.exec(o_flowMgr);
|
||||
},
|
||||
//进入下一流程
|
||||
nextflow: function(o_flowMgr){
|
||||
var o_flow = this.currflow(o_flowMgr);
|
||||
if (o_flow){
|
||||
if (o_flow.func_over) {
|
||||
o_flow.func_over();
|
||||
}
|
||||
if (!o_flow.flag2){
|
||||
if (o_flow.timer){
|
||||
clearTimeout(o_flow.timer);
|
||||
o_flow.timer = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
o_flowMgr.idx = o_flowMgr.idx + 1;
|
||||
this.exec(o_flowMgr);
|
||||
},
|
||||
//执行当前流程
|
||||
exec: function(o_flowMgr){
|
||||
var o_flow = this.currflow(o_flowMgr);
|
||||
if (!o_flow){
|
||||
return;
|
||||
}
|
||||
if (!o_flow.func_start){
|
||||
return;
|
||||
}
|
||||
o_flow.func_start();
|
||||
if (o_flow.time == 0) {
|
||||
this.nextflow(o_flowMgr);
|
||||
} else if (o_flow.time > 0) {
|
||||
//需要开启定时器
|
||||
if (!o_flow.flag1) {
|
||||
if (o_flow.func_over) {
|
||||
o_flow.timer = setTimeout(o_flow.func_over, o_flow.time);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
70
games/games/Projects/backstage/class/class.mod.js
Normal file
@@ -0,0 +1,70 @@
|
||||
///////////////////////////////////////////////////
|
||||
//////////////cls_mod: 模块基础类//////////////////
|
||||
///////////////////////////////////////////////////
|
||||
var cls_mod = cls_mod || {
|
||||
//构造函数
|
||||
new: function(_str_modname, _str_routename, _obj_app) {
|
||||
/*
|
||||
_str_modname 模块名称
|
||||
_str_routename 模块的路由名称
|
||||
_obj_app 所属的应用对象
|
||||
*/
|
||||
|
||||
//创建一个实例
|
||||
var mod = {};
|
||||
|
||||
// ================= 实例的公有属性 ================= //
|
||||
//模块名称
|
||||
mod.modname = _str_modname;
|
||||
//路由名称
|
||||
mod.routename = _str_routename;
|
||||
//所属的应用
|
||||
mod.app = _obj_app;
|
||||
//将mod对象添加到app的模块列表中
|
||||
mod.app.modlist.push(mod);
|
||||
mod.app[_str_modname] = mod;
|
||||
|
||||
// ================= 实例的公有方法 ================= //
|
||||
//收包处理
|
||||
mod.DoPack = function(_msg) {
|
||||
return cls_mod.DoPack(mod, _msg);
|
||||
}
|
||||
|
||||
//输出mod
|
||||
cls_mod.OutputMod(mod);
|
||||
|
||||
return mod;
|
||||
},
|
||||
|
||||
DoPack: function(_obj_mod, _msg) {
|
||||
if (typeof(_msg) == "string") {
|
||||
_msg = JSON.parse(_msg); //转换json
|
||||
}
|
||||
//执行rpc
|
||||
if (_msg.rpc) {
|
||||
if (min_ExitsFunction(_obj_mod[_msg.rpc])) {
|
||||
return _obj_mod[_msg.rpc](_msg);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
OutputMod: function(_obj_mod) {
|
||||
if (typeof global !== "undefined")
|
||||
{} else {
|
||||
global = {};
|
||||
}
|
||||
|
||||
if (typeof module !== "undefined")
|
||||
{} else {
|
||||
module = {};
|
||||
module.exports = {};
|
||||
}
|
||||
|
||||
global[_obj_mod.modname] = _obj_mod;
|
||||
global[_obj_mod.modname].DoPack = _obj_mod.DoPack;
|
||||
|
||||
if (module) {
|
||||
module.exports[_obj_mod.modname] = _obj_mod;
|
||||
}
|
||||
}
|
||||
}
|
||||
93
games/games/Projects/backstage/class/class.mysql.js
Normal file
@@ -0,0 +1,93 @@
|
||||
///////////////////////////////////////////////////
|
||||
///////////// cls_mysql: 数据库操作 ///////////////
|
||||
///////////////////////////////////////////////////
|
||||
var cls_mysql = cls_mysql || {
|
||||
|
||||
//构造函数
|
||||
new: function(url, func_fail_sendpack){
|
||||
var mysql = {};
|
||||
//php地址
|
||||
mysql.url = url;
|
||||
//发生错误时的回包函数
|
||||
mysql.func_fail_sendpack = func_fail_sendpack;
|
||||
|
||||
//执行sql语句
|
||||
mysql.execsql = function(method, sql, para, func_succ, pack) {
|
||||
/*
|
||||
method: php方法名 execsql/opensql
|
||||
sql: 要执行的sql语句
|
||||
para: 要执行的sql语句的参数数组
|
||||
func_succ: sql语句执行成功后的回调函数
|
||||
pack: 客户端发来的数据包,执行失败的话会根据pack返回客户端执行失败的结果
|
||||
*/
|
||||
var data = {}
|
||||
data.m = method;
|
||||
data.s = sql;
|
||||
data.p = para;
|
||||
|
||||
var strdata = JSON.stringify(data);
|
||||
//将=号替换为^,php收到后再替换回来,以避免=号POST传参会截断的问题
|
||||
strdata = strdata.replace(/\=/g,"^");
|
||||
//将+号替换为#,php收到后再替换回来,以避免+号POST传参会截断的问题
|
||||
strdata = strdata.replace(/\+/g,"#");
|
||||
//将&号替换为!,php收到后再替换回来,以避免&号POST传参会截断的问题
|
||||
strdata = strdata.replace(/\&/g,"!");
|
||||
|
||||
var cfg = {};
|
||||
cfg.url = mysql.url;
|
||||
cfg.data = "data=" + strdata;
|
||||
cfg.type = "POST";
|
||||
cfg.success = function(str) {
|
||||
try {
|
||||
var result = JSON.parse(str);
|
||||
} catch(e) {
|
||||
console.log(min_now() + " 数据库执行结果转换json失败.");
|
||||
console.log(str);
|
||||
console.log(data);
|
||||
return;
|
||||
}
|
||||
|
||||
if (result.state != 0) {
|
||||
console.log(min_now() + " 请求" + mysql.url + "失败.");
|
||||
console.log(result);
|
||||
console.log(data);
|
||||
|
||||
if (pack) {
|
||||
console.log(JSON.stringify(pack));
|
||||
//返回客户端执行失败的结果
|
||||
if (mysql.func_fail_sendpack) {
|
||||
pack.data = {};
|
||||
pack.data.state = result.state;
|
||||
pack.data.error = result.error;
|
||||
mysql.func_fail_sendpack(pack);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
//执行sql成功执行回调函数
|
||||
// console.log(result);
|
||||
if (func_succ) {
|
||||
func_succ(result.data);
|
||||
}
|
||||
}
|
||||
};
|
||||
cfg.error = function(str){
|
||||
console.log(min_now() + " 请求" + mysql.url + "失败.");
|
||||
console.log(str);
|
||||
console.log(data);
|
||||
|
||||
if (pack) {
|
||||
console.log(JSON.stringify(pack));
|
||||
//返回客户端执行失败的结果
|
||||
if (mysql.func_fail_sendpack) {
|
||||
pack.data = {};
|
||||
pack.data.state = 99;
|
||||
pack.data.error = "请求数据库失败.";
|
||||
mysql.func_fail_sendpack(pack);
|
||||
}
|
||||
}
|
||||
};
|
||||
min_http(cfg);
|
||||
}
|
||||
return mysql;
|
||||
}
|
||||
}
|
||||
70
games/games/Projects/backstage/class/class.pai.js
Normal file
@@ -0,0 +1,70 @@
|
||||
///////////////////////////////////////////////////
|
||||
////////////////// cls_pai: 单张牌 ////////////////
|
||||
///////////////////////////////////////////////////
|
||||
var cls_pai = cls_pai || {
|
||||
|
||||
//创建单张牌实例
|
||||
new: function(id, score, dealowner){
|
||||
/*
|
||||
参数说明:
|
||||
id 牌的绝对id
|
||||
score 牌在游戏中的分值
|
||||
dealowner 发牌状态
|
||||
|
||||
扑克牌的统一编码规则:
|
||||
1,牌面花色的定义 5:王 4:黑桃 3:红心 2:梅花 1:方块
|
||||
2,牌面数值的定义 1:A 2:2 3:3 ... 9:9 10:10 11:J 12:Q 13:K 53:小王 54:大王
|
||||
*/
|
||||
var pai = {};
|
||||
|
||||
//属性
|
||||
pai.id = id; //绝对id,即数组下标,从0开始计数
|
||||
pai.score = score; //牌在游戏中的分值
|
||||
pai.dealowner = dealowner; //发牌状态
|
||||
//-1:规则去除的牌
|
||||
// 0:未发的牌,即底牌
|
||||
//>0:发牌发到谁手上,从1开始计数,即座位编号+1,座位编号是从0开始计数的
|
||||
pai.playround = -1; //出牌状态
|
||||
//-1:未出的牌
|
||||
// 0:埋牌
|
||||
//>0:牌是第几轮出出去的,从1开始计数
|
||||
pai.playindex = -1; //本轮中的出牌顺序,从1开始计数
|
||||
pai.playowner = -1; //出牌后被谁得到,与座位编号对应
|
||||
|
||||
//方法
|
||||
pai.method = {};
|
||||
|
||||
//牌面花色
|
||||
pai.method.get_flower = function(){
|
||||
return cls_pai.get_flower(pai);
|
||||
}
|
||||
|
||||
//牌面数值
|
||||
pai.method.get_number = function(){
|
||||
return cls_pai.get_number(pai);
|
||||
}
|
||||
|
||||
return pai;
|
||||
},
|
||||
|
||||
//获取牌面花色
|
||||
get_flower: function(o_pai) {
|
||||
var yu = o_pai.id % 54;
|
||||
if (yu == 52 || yu == 53){ //小王大王
|
||||
return 5;
|
||||
}
|
||||
return parseInt(yu / 13) + 1;
|
||||
},
|
||||
|
||||
//获取牌面数值
|
||||
get_number: function(o_pai) {
|
||||
var yu = o_pai.id % 54;
|
||||
if (yu == 52){ //小王
|
||||
return 53;
|
||||
}
|
||||
if (yu == 53){ //大王
|
||||
return 54;
|
||||
}
|
||||
return yu % 13 + 1;
|
||||
}
|
||||
}
|
||||
308
games/games/Projects/backstage/config/update中属性说明.txt
Normal file
@@ -0,0 +1,308 @@
|
||||
showmessage
|
||||
1,app启动提示,app用到。
|
||||
2,所有层都有该属性。
|
||||
|
||||
scrollmsg
|
||||
1,游戏中的滚动信息栏,游戏中用到。
|
||||
2,所有层都有该属性。
|
||||
|
||||
noticemsg
|
||||
1,游戏中的通知信息栏,以#号表示换行,游戏中用到。
|
||||
2,所有层都有该属性。
|
||||
|
||||
topupurl
|
||||
1,房卡充值的链接,该属性值不为空则跳转链接,游戏中用到。
|
||||
2,顶层、代理agent、游戏game、渠道channel都有该属性。
|
||||
|
||||
logimage
|
||||
1,log图片,游戏中用到。
|
||||
2,代理agent、游戏game、渠道channel都有该属性。
|
||||
|
||||
logimage2
|
||||
1,代理商的log图片,公众号页面中用到,页面右上角图标。
|
||||
2,代理agent有该属性。
|
||||
|
||||
sharename
|
||||
1,分享的内容名称,游戏中用到。
|
||||
2,游戏game、渠道channel都有该属性。
|
||||
|
||||
game_version
|
||||
1,游戏版本号,游戏热升级、游戏中登录拦截玩家时用到。
|
||||
2,游戏game、渠道channel、市场market都有该属性。
|
||||
|
||||
game_zip
|
||||
1,游戏zip文件,游戏热升级时用到。
|
||||
2,游戏game、渠道channel、市场market都有该属性。
|
||||
|
||||
game_size
|
||||
1,游戏zip文件大小,游戏大厅中用到。
|
||||
2,游戏game、渠道channel、市场market都有该属性。
|
||||
|
||||
game_hall_image
|
||||
1,大厅中子游戏的图标。
|
||||
2,游戏game有该属性。
|
||||
|
||||
game_hall_dir
|
||||
1,大厅中子游戏的目录。
|
||||
2,游戏game有该属性。
|
||||
|
||||
game_down_image
|
||||
1,下载页面的游戏图标。
|
||||
2,游戏game有该属性。
|
||||
|
||||
game_down_state
|
||||
1,下载页面的游戏状态,0-发布中 1-开发中 2-测试中。
|
||||
2,游戏game有该属性。
|
||||
|
||||
game_down_memo
|
||||
1,下载页面的游戏一句话描述。
|
||||
2,游戏game有该属性。
|
||||
|
||||
ios_defdownload_marketid
|
||||
1,苹果系统下载页面的对应的市场marketid。
|
||||
2,渠道channel有该属性。
|
||||
|
||||
and_defdownload_marketid
|
||||
1,安卓系统下载页面的对应的市场marketid。
|
||||
2,渠道channel有该属性。
|
||||
|
||||
app_version
|
||||
1,app版本号,app升级时用到。
|
||||
2,市场market有该属性。
|
||||
|
||||
app_download
|
||||
1,app下载地址,app升级时用到。
|
||||
2,市场market有该属性。
|
||||
|
||||
app_size
|
||||
1,app安装包大小,app升级时用到。
|
||||
2,市场market有该属性。
|
||||
|
||||
url_match
|
||||
1,比赛的链接地址。
|
||||
2,顶层、代理agent、游戏game都有该属性。
|
||||
|
||||
url_match2
|
||||
1,服务器比赛数据发送地址。
|
||||
2,顶层、代理agent、游戏game都有该属性。
|
||||
|
||||
html_buyroomcard
|
||||
1,公众号页面是否有购买房卡功能 1-没有 2-有。
|
||||
2,顶层、代理agent都有该属性。
|
||||
|
||||
html_applysales
|
||||
1,申请成为代理的方式 1-填写微信号并购买房卡 2-填写微信号。
|
||||
2,顶层、代理agent都有该属性。
|
||||
|
||||
sale_qq、sale_wechat、sale_tel
|
||||
1,代理后台页面显示的官方客服信息。
|
||||
2,顶层、代理agent都有该属性。
|
||||
|
||||
agentmode
|
||||
1,代理模式,1-无邀请码模式 2-有邀请码模式。
|
||||
2,顶层、代理agent都有该属性。
|
||||
|
||||
relagentid
|
||||
1,关联代理id,用于关联其他代理。
|
||||
2,代理agent都有该属性。
|
||||
|
||||
isclose
|
||||
1,关闭服务器标志,1-开启 2-关闭(不能创建和加入房间)。
|
||||
2,顶层、代理agent、游戏game都有该属性。
|
||||
|
||||
pushrate
|
||||
1,星星场房主抽成百分比,整数。
|
||||
2,顶层、代理agent、游戏game都有该属性。
|
||||
|
||||
player_server_tcp
|
||||
1,玩家服务器地址及端口号。
|
||||
2,顶层、代理agent都有该属性。
|
||||
|
||||
player_server_http
|
||||
1,玩家服务器地址及端口号。
|
||||
2,顶层、代理agent都有该属性。
|
||||
|
||||
game_server_http
|
||||
1,子游戏服务器地址及端口号。
|
||||
2,顶层、代理agent、游戏game都有该属性。
|
||||
|
||||
visitor_server_tcp
|
||||
1,游客服务器地址及端口号。
|
||||
2,顶层、代理agent都有该属性。
|
||||
|
||||
visitor_server_http
|
||||
1,游客服务器地址及端口号。
|
||||
2,顶层、代理agent都有该属性。
|
||||
|
||||
system_room
|
||||
1,星星争霸场系统房间列表。
|
||||
2,只有游戏game这层有该属性。
|
||||
3,结构为:
|
||||
[
|
||||
{
|
||||
"type": 2,
|
||||
"title": "初级场",
|
||||
"image": "",
|
||||
"roomtype": object,
|
||||
"online": 99,
|
||||
"robotGoldRange":[min,max],
|
||||
"removeRobot":0,//是否屏蔽机器人
|
||||
//"forbidEnter":0,//是否开战状态下屏蔽机器人
|
||||
roomRate:80,//机器人所占房间百分比
|
||||
ranMin:1,//随机机器人最小值
|
||||
ranMax:1,//随机机器人最大值
|
||||
roomLeave:0,//房间是否留一个真实玩家座位0不留1留
|
||||
}, {}, {}
|
||||
]
|
||||
|
||||
|
||||
isdebugger
|
||||
1,是否是调试状态 0:正式 1:调试。
|
||||
2,只有游戏game这层有该属性。
|
||||
|
||||
surrender_min
|
||||
1,星星场投降的最小数量。
|
||||
2,顶层、代理agent、游戏game都有该属性。
|
||||
|
||||
surrender_unit
|
||||
1,星星场投降的最小单位数。
|
||||
2,顶层、代理agent、游戏game都有该属性。
|
||||
|
||||
starName
|
||||
1,星星名称。
|
||||
2,顶层、代理agent都有该属性。
|
||||
|
||||
roomCardName
|
||||
1,房卡名称。
|
||||
2,顶层、代理agent都有该属性。
|
||||
|
||||
aset_rebate
|
||||
1,星星场房间小局系统抽成设置
|
||||
a,星星场房间才会触发小局抽成功能。
|
||||
b,如果触发了小局抽成功能则会按小局结算,大局结束后将不会进行大局结算。
|
||||
{
|
||||
infinite: [1, 1, 5], -- 无限局小局抽成设置,不设置表示无限局不进行小局抽成
|
||||
finitude: [1, 2, 10] -- 有限局小局抽成设置,不设置表示有限局不进行小局抽成
|
||||
|
||||
数组中,
|
||||
第一位:1-对大赢家抽成 2-对所有赢的人抽成 3-对所有玩家抽成
|
||||
第二位:1-按玩家分数的百分比(第三位数值)抽成 2-按倍数的百分比抽成
|
||||
第三位:抽成数值
|
||||
}
|
||||
2,顶层、代理agent都有该属性。
|
||||
|
||||
pushtoplayerid
|
||||
1,大局抽成的星星给谁,如果设置了则给设置的玩家,如果没设置则给房主。只对非星星场设置了星星限进的房间有效。
|
||||
是数组,格式为[普通房间的抽成玩家id, 短号房间的抽成玩家id]
|
||||
2,顶层、代理agent都有该属性。
|
||||
|
||||
pushto
|
||||
1,0-大局抽成的星星给到pushtoplayerid的玩家账号上。默认为0。
|
||||
1-大局抽成的星星给到pushtoplayerid对应的代理账号上。
|
||||
2-大局抽成的星星给到房主对应的代理账号上。
|
||||
2,顶层、代理agent都有该属性。
|
||||
|
||||
xxroomdeduct
|
||||
1,星星场是否要扣房卡。
|
||||
0:星星场房间不扣房卡。默认为0。
|
||||
1:星星场房间和房卡房间一样根据局数扣除房卡。
|
||||
2,顶层、代理agent都有该属性。
|
||||
|
||||
noticelimit
|
||||
1,玩家发布系统消息的金币数量限制,有这么多金币才能发系统消息。
|
||||
2,顶层、代理agent都有该属性。
|
||||
|
||||
noticecost
|
||||
1,玩家发布一次系统消息消耗的金币数量。
|
||||
2,顶层、代理agent都有该属性。
|
||||
|
||||
sysroom_playercount
|
||||
1,系统房间里机器人陪玩的真实玩家数量阈值。默认为20。
|
||||
真实玩家数量小于等于该阈值时,一个房间内一个玩家配N个机器人,不会出现真实玩家和真实玩家在同一房间的情况。
|
||||
真实玩家数量大于该阈值时,一个房间内可以进入多个真实玩家。
|
||||
2,顶层、代理agent、游戏game都有该属性。
|
||||
|
||||
showrebate
|
||||
1,系统房间是否提示金币抽成。0-不提示 1-提示,默认为0。
|
||||
2,顶层、代理agent都有该属性。
|
||||
|
||||
matchlist
|
||||
1,比赛排行榜
|
||||
[
|
||||
{
|
||||
"id": 2018010101, -- 比赛id,格式必须为年月日+序号
|
||||
"roomtype": [], -- 房间类型,根据子游戏的roomtype定义
|
||||
"matchname": "", -- 比赛名称
|
||||
"imageurl": "", -- 比赛图片地址,可以不配置,不配置时显示默认图片
|
||||
"beginTime": "2018-01-01 12:00", -- 比赛开始时间,精确到分钟
|
||||
"endTime": "2018-01-01 14:00", -- 比赛截止时间,精确到分钟
|
||||
"playercount": 100, -- 开始比赛的人数要求
|
||||
"playercount2": 10, -- 比赛开始后第一盘打完后再次排队达到多少人后再开始上桌
|
||||
"bean": 0, -- 参加的金币费用
|
||||
"roomcard": 0, -- 参加的房卡费用,要与roomtype中的房卡数量保持一致
|
||||
"topcount": 10, -- 取前几名
|
||||
"circulation": 0, -- 比赛循环次数 0:不循环 >0:再循环的次数
|
||||
"interval": 0, -- 比赛循环的间隔时长,精确到秒
|
||||
"gradename": "得分", -- 得分名称
|
||||
"memo1": "", -- 文字说明1(第一名奖励说明)
|
||||
"memo2": "", -- 文字说明2(比赛详情,以#作为换行符)
|
||||
"memo3": "", -- 文字说明3
|
||||
"haverobot": 0, -- 1:有机器人 <>1:没有机器人
|
||||
"status": 0, -- 0: 需要代理后台开通比赛 1:配置文件中直接开通
|
||||
"ranking": -- 排行榜内的系统成绩
|
||||
[
|
||||
{
|
||||
"min": 100, -- 最低分数,包含等于
|
||||
"max": 200, -- 最高分数,包含等于
|
||||
"count": 3 -- 系统成绩个数
|
||||
}
|
||||
]
|
||||
}, {}, {}
|
||||
]
|
||||
2,只有游戏game下有该属性。
|
||||
|
||||
|
||||
reportRobotGold
|
||||
纯机器人是否存储金币变动
|
||||
0 or 1(非0也可以)
|
||||
1.不配或者为0不存、非0存储
|
||||
2.顶层、代理层、游戏层
|
||||
|
||||
robotGoldRange
|
||||
机器人金币随机范围
|
||||
[num1,num2]
|
||||
1.不配或者为0按照与游戏内玩家金币数量相当、若配置则在num1、num2中随机(注:两个值差尽量大一点)
|
||||
2.顶层、代理层、游戏层
|
||||
|
||||
videoConfig
|
||||
视频房配置
|
||||
{
|
||||
type:1房卡2星星
|
||||
profitMode:1固定值,2百分比
|
||||
profit:百分比模式下如:50%则为50
|
||||
}
|
||||
无此属性为非视频房
|
||||
顶层、代理层、游戏层
|
||||
|
||||
rebateConfig
|
||||
1,大局结算抽成配置(只支持倍数百分比抽给系统)
|
||||
{
|
||||
from:抽谁的 1.大赢家 2.赢家 3.所有人
|
||||
value:抽多少(只支持倍数的百分比抽成),如50,抽倍数的50%
|
||||
}
|
||||
2,顶层、代理agent都有该属性。
|
||||
brRebateUnit
|
||||
1,百人vip房每多少人收取茶水费
|
||||
2,顶层、代理agent都有该属性。
|
||||
|
||||
smm_message
|
||||
1,手机短信验证码消息模板,默认:您的验证码是X。X表示验证码。
|
||||
2,顶层、代理agent都有该属性。
|
||||
|
||||
smm_timeout
|
||||
1,手机短信验证码时效,秒,默认60。
|
||||
2,顶层、代理agent都有该属性。
|
||||
|
||||
invitecodetype
|
||||
1,在游戏中绑定的邀请码(长度小于8时)的类型,0-个人代理id 1-玩家id,默认为0。
|
||||
2,顶层、代理agent都有该属性。
|
||||