|
Проекты на Blitz3D Обсуждение будущих проектов, демок, набор команды и т.п. |
13.08.2007, 01:21
|
#91
|
Танчики Developer
Регистрация: 29.01.2007
Сообщений: 539
Написано 16 полезных сообщений (для 23 пользователей)
|
это демонстрация меню. а не игры.
то что осталось за кадром) оброботка команд скриптовой системы. я добрый учитесь))
Function GameScript(Command$)
If Left(command$,9)="setreport" Then
b=11
a$=""
c$=""
d$=""
g$=""
e=0
f=0
While a<>"."
c$=c$+a$
a$=Mid(Command$,b,1)
b=b+1
Wend
a$=""
While a<>"."
d$=d$+a$
a$=Mid(Command$,b,1)
b=b+1
Wend
a$=""
While a<>"."
g$=g$+a$
a$=Mid(Command$,b,1)
b=b+1
Wend
p$=Mid(Command$,b,Len(Command$)-b+1)
setreport(p$,Int(c$),Int(d$),Int(g$))
End If
If Left(command$,2)="if" Then
QDSL=0
b=4
a$=""
c$=""
d$=""
e=0
While c$<>"then"
If c$="and"
QDSL=QDSL+1: DimScrLet(QDSL)=1
End If
If c$="or"
QDSL=QDSL+1: DimScrLet(QDSL)=0
End If
c$=""
While Mid(command$,b,1)<>"("
b=b+1
Wend
b=b+1
While Mid(command$,b,1)<>")"
a$=Mid(command$,b,1)
c$=c$+a$
b=b+1
Wend
e=ControlCondition(c$)
QDSL=QDSL+1
If e=1
DimScrLet(QDSL)=1
Else
DimScrLet(QDSL)=0
End If
b=b+1
While Mid(command$,b,1)=" "
b=b+1
Wend
c$=Mid(command$,b,1)
a$=""
While a$<>" "
c$=c$+a$
b=b+1
a$=Mid(command$,b,1)
If a$="" a$=" "
Wend
Wend
If QDSL=1
ScrLet=DimScrLet(QDSL)
Else
i=0
While QDSL>i+2
i=i+2
If DimScrLet(i)=0
If DimScrLet(i-1)=1 Or DimScrLet(i+1)=1 DimScrLet(i-1)=1 Else DimScrLet(i-1)=0
For j=i To QDSL-2
DimScrLet(j)=DimScrLet(j+2)
Next
i=i-2
QDSL=QDSL-2
End If
Wend
While QDSL>1
If DimScrLet(1)=1 And DimScrLet(3)=1 DimScrLet(1)=1 Else DimScrLet(1)=0
For j=2 To QDSL-2
DimScrLet(j)=DimScrLet(j+2)
Next
QDSL=QDSL-2
Wend
ScrLet=DimScrLet(1)
End If
End If
If Left(command$,4)="!end" Then
ScrLet=1
End If
If Left(command$,5)="trade" Then
If gamescr=7
norep=8
TalkUD1=0
TalkUD2=0
TalkNum=-2
;Bagtime()
;pppp$="qt"
TalkIS=0
Menu10Com$=Command$
Else
GameScr=11
c$=Mid(command$,7,Len(command$)-6)
For i=1 To QN
If NPC(i)\ID$ = c$ f=i
Next
Menu11NTN=f
TargetBx1=0
TargetBy1=0
TargetBx2=0
TargetBy2=0
Bup1=0
Bup2=0
WhoseInv=2
Submenu10status=0
QSellThings=0
QBuyThings=0
For i=1 To Qthings
InvImage(i)=LoadImage("DATA\textures\Image\Inventory\Things\"+Inventory(i)\ID+".bmp")
ScaleImage InvImage(i),GK#,GK#
Next
For i=1 To NPC(Menu11NTN)\Qthings
InvImage2(i)=LoadImage("DATA\textures\Image\Inventory\Things\"+NPC(Menu11NTN)\Inv[i]\ID+".bmp")
ScaleImage InvImage2(i),GK#,GK#
Next
Ib1=LoadImage("data\textures\menu\Menu11\b1.bmp")
Ib2=LoadImage("data\textures\menu\Menu11\b2.bmp")
ScaleImage ib1,GK#,GK#
ScaleImage ib2,GK#,GK#
Ib3=LoadImage("data\textures\Menu\Menu11\b41.bmp")
Ib4=LoadImage("data\textures\Menu\Menu11\b42.bmp")
Ib5=LoadImage("data\textures\Menu\Menu11\b51.bmp")
Ib6=LoadImage("data\textures\Menu\Menu11\b52.bmp")
Ib7=LoadImage("data\textures\Menu\Menu11\b61.bmp")
Ib8=LoadImage("data\textures\Menu\Menu11\b62.bmp")
Ib9=LoadImage("data\textures\Menu\Menu11\b71.bmp")
Ib10=LoadImage("data\textures\Menu\Menu11\b72.bmp")
Ib17=LoadImage("data\textures\Menu\Menu11\b81.bmp")
Ib18=LoadImage("data\textures\Menu\Menu11\b82.bmp")
Ib19=LoadImage("data\textures\Menu\Menu11\b3.bmp")
Ib20=LoadImage("data\textures\Menu\Menu11\b11.bmp")
Ib21=LoadImage("data\textures\Menu\Menu11\b9.bmp")
Ib23=LoadImage("data\textures\Menu\Menu11\b101.bmp")
Ib24=LoadImage("data\textures\Menu\Menu11\b102.bmp")
Ib25=LoadImage("data\textures\Menu\Menu11\d11.bmp")
Ib26=LoadImage("data\textures\Menu\Menu11\d12.bmp")
ScaleImage ib3,GK#,GK#
ScaleImage ib4,GK#,GK#
ScaleImage ib5,GK#,GK#
ScaleImage ib6,GK#,GK#
ScaleImage ib7,GK#,GK#
ScaleImage ib8,GK#,GK#
ScaleImage ib9,GK#,GK#
ScaleImage ib10,GK#,GK#
ScaleImage ib17,GK#,GK#
ScaleImage ib18,GK#,GK#
ScaleImage ib19,GK#,GK#
ScaleImage ib20,GK#,GK#
ScaleImage ib21,GK#,GK#
ScaleImage ib23,GK#,GK#
ScaleImage ib24,GK#,GK#
ScaleImage ib25,GK#,GK#
ScaleImage ib26,GK#,GK#
Ib11=LoadImage("data\textures\Menu\Menu11\c1.bmp")
Ib12=LoadImage("data\textures\Menu\Menu11\c2.bmp")
Ib13=LoadImage("data\textures\Menu\Menu11\c12.bmp")
Ib14=LoadImage("data\textures\Menu\Menu11\c22.bmp")
Ib15=LoadImage("data\textures\Menu\Menu11\c3.bmp")
Ib16=LoadImage("data\textures\Menu\Menu11\c4.bmp")
ScaleImage ib11,GK#,GK#
ScaleImage ib12,GK#,GK#
ScaleImage ib13,GK#,GK#
ScaleImage ib14,GK#,GK#
ScaleImage ib15,GK#,GK#
ScaleImage ib16,GK#,GK#
;------???? ???? ? ????------
ppa=MilliSecs()-pa
For i=1 To QN
eea(i)=MilliSecs()-ea(i)
Next
;--------------------------------
End If
End If
If Left(command$,2)="nt" Then
norep=2
TalkUD1=0
TalkUD2=0
TalkNum=Mid(Command$,4,Len(Command$)-3)
; pppp$="nt"
TalkIS=0
End If
If Left(command$,2)="qt" Then
norep=8
TalkUD1=0
TalkUD2=0
If TalkNum<>-2 TalkNum=-1
; Bagtime()
; pppp$="qt"
TalkIS=0
End If
If Left(command$,9)="addrecord" Then
b=11
a$=""
c$=""
d$=""
e=0
f=0
While a<>"."
c$=c$+a$
a$=Mid(Command$,b,1)
b=b+1
Wend
d$=Mid(command$,b,Len(command$)-b+1)
For i=1 To Qrec
If Records(i,0)=Int(c$) e=i
Next
If e=0
Qrec=Qrec+1
Records(Qrec,0)=Int(Float(c$))
Records(Qrec,1000)=Records(Qrec,1000)+1
Records(Qrec,Records(Qrec,1000))=Int(d$)
Else
For i=1 To Records(e,1000)
If Records(e,i)=Int(d$) f=1
Next
If f=0
Records(e,1000)=Records(e,1000)+1
Records(e,Records(e,1000))=Int(d$)
End If
End If
End If
If Left(command$,12)="changerecord" Then
b=14
a$=""
c$=""
d$=""
e=0
f=0
While a<>"."
c$=c$+a$
a$=Mid(Command$,b,1)
b=b+1
Wend
d$=Mid(command$,b,Len(command$)-b+1)
For i=1 To Qrec
If Records(i,0)=Int(c$) e=i
Next
If e<>0
Records(e,1001)=Int(d$)
End If
command$=""
End If
If Left(command$,9)="addscript" Then
e=0
d$=Right(command$,Len(command$)-10)
For i=1 To QSL
If ScriptsList(i)=Int(Float(d$)) e=1
Next
If ScriptsControlStatus=0
If e=0
QSL=QSL+1
ScriptsList(QSL)=Int(Float(d$))
End If
Else
If e=0
QTARS=QTARS+1
TempAddRemoveScripts(QTARS,1)=Int(Float(d$))
TempAddRemoveScripts(QTARS,2)=1
End If
End If
End If
If Left(command$,12)="removescript" Then
e=0
d$=Right(command$,Len(command$)-13)
For i=1 To QSL
If ScriptsList(i)=Int(Float(d$)) e=i
Next
If ScriptsControlStatus=0
If e<>0
QSL = QSL - 1
For i=e To QSL
ScriptsList(i)=ScriptsList(i+1)
Next
ScriptsList(QSL+1)=0
End If
Else
If e<>0
QTARS=QTARS+1
TempAddRemoveScripts(QTARS,1)=Int(Float(d$))
TempAddRemoveScripts(QTARS,2)=0
End If
End If
End If
If Left(command$,7)="addtalk" Then
b=8
a$=""
c$=""
d$=""
f=0
e=0
While a<>"."
b=b+1
c$=c$+a$
a$=Mid(Command$,b,1)
Wend
d$=Mid(command$,b+1,Len(command$)-b)
For i=1 To QN
If NPC(i)\ID$ = c$
f=i
End If
Next
For i=1 To NPC(f)\QT
If NPC(f)\Talk[i]=Int(Float(d$)) e=1
Next
If e=0 And f<>0
NPC(f)\QT = NPC(f)\QT + 1
NPC(f)\Talk[NPC(f)\QT]=Int(Float(d$))
End If
End If
If Left(command$,10)="removetalk" Then
b=11
a$=""
c$=""
d$=""
f=0
e=0
While a<>"."
b=b+1
c$=c$+a$
a$=Mid(Command$,b,1)
Wend
d$=Mid(command$,b+1,Len(command$)-b)
For i=1 To QN
If NPC(i)\ID$ = c$
f=i
End If
Next
For i=1 To NPC(f)\QT
If NPC(f)\Talk[i]=Int(Float(d$)) e=i
Next
If e<>0 And f<>0
NPC(f)\QT = NPC(f)\QT - 1
For i=e To NPC(f)\QT
NPC(f)\Talk[i]=NPC(f)\Talk[i+1]
Next
NPC(f)\Talk[NPC(f)\QT+1]=0
End If
End If
If Left(command$,14)="changemaintalk" Then
b=15
a$=""
c$=""
d$=""
f=0
While a<>"."
b=b+1
c$=c$+a$
a$=Mid(Command$,b,1)
Wend
d$=Mid(command$,b+1,Len(command$)-b)
For i=1 To QN
If NPC(i)\ID$ = c$
f=i
End If
Next
If f<>0
NPC(f)\maintalk=Int(Float(d$))
End If
command$=""
End If
If Left(command$,10)="addbuyitem" Then
PriceRel=0
b=11
a$=""
c$=""
d$=""
While a<>"."
b=b+1
c$=c$+a$
a$=Mid(Command$,b,1)
Wend
d$=Mid(command$,b+1,Len(command$)-b)
For i=1 To QBuyThings
If BuyThings(i)\ID = Int(Float(c$)) And d$<>"" Then
BuyThings(i)\quantity = BuyThings(i)\quantity+Int(Float(d$))
d$=""
End If
Next
If d$<>"" Then
QBuyThings=QBuyThings+1
BuyThings(QBuyThings)=New TypeInventory
BuyThings(QBuyThings)\ID=Int(Float(c$))
BuyThings(QBuyThings)\quantity=Int(Float(d$))
End If
If (gamescr=11) And d$<>""
For i=1 To QBuyThings
If i<>QBuyThings FreeImage BuyThingsImage(i)
BuyThingsImage(i)=LoadImage("DATA\textures\Image\Inventory\Things\"+BuyThings(i)\ID+".bmp")
ScaleImage BuyThingsImage(i),GK#,GK#
Next
End If
End If
If Left(command$,11)="addsellitem" Then
PriceRel=0
b=12
a$=""
c$=""
d$=""
While a<>"."
b=b+1
c$=c$+a$
a$=Mid(Command$,b,1)
Wend
d$=Mid(command$,b+1,Len(command$)-b)
For i=1 To QSellThings
If SellThings(i)\ID = Int(Float(c$)) And d$<>"" Then
SellThings(i)\quantity = SellThings(i)\quantity+Int(Float(d$))
d$=""
End If
Next
If d$<>"" Then
QSellThings=QSellThings+1
SellThings(QSellThings)=New TypeInventory
SellThings(QSellThings)\ID=Int(Float(c$))
SellThings(QSellThings)\quantity=Int(Float(d$))
End If
If (gamescr=11) And d$<>""
For i=1 To QSellThings
If i<>QSellThings FreeImage SellThingsImage(i)
SellThingsImage(i)=LoadImage("DATA\textures\Image\Inventory\Things\"+SellThings(i)\ID+".bmp")
ScaleImage SellThingsImage(i),GK#,GK#
Next
End If
End If
If Left(command$,13)="removebuyitem" Then
PriceRel=0
b=14
a$=""
c$=""
d$=""
h=0
While a<>"."
b=b+1
c$=c$+a$
a$=Mid(Command$,b,1)
Wend
d$=Mid(command$,b+1,Len(command$)-b)
For i=1 To QBuyThings
If BuyThings(i)\ID = Int(Float(c$)) And d$<>"" Then
BuyThings(i)\quantity = BuyThings(i)\quantity-Int(Float(d$))
If BuyThings(i)\quantity<=0 Then
QBuyThings=QBuyThings-1
TargetBx1=0
TargetBy1=0
Bup1=0
For j=i To QBuyThings
BuyThings(j)\ID = BuyThings(j+1)\ID
BuyThings(j)\quantity = BuyThings(j+1)\quantity
Next
h=1
End If
d$=""
End If
Next
If gamescr=11 And h=1
For i=1 To QBuyThings
FreeImage BuyThingsImage(i)
BuyThingsImage(i)=LoadImage("DATA\textures\Image\Inventory\Things\"+BuyThings(i)\ID+".bmp")
ScaleImage BuyThingsImage(i),GK#,GK#
Next
FreeImage BuyThingsImage(QBuyThings+1)
End If
End If
If Left(command$,14)="removesellitem" Then
PriceRel=0
b=15
a$=""
c$=""
d$=""
h=0
While a<>"."
b=b+1
c$=c$+a$
a$=Mid(Command$,b,1)
Wend
d$=Mid(command$,b+1,Len(command$)-b)
For i=1 To QSellThings
If SellThings(i)\ID = Int(Float(c$)) And d$<>"" Then
SellThings(i)\quantity = SellThings(i)\quantity-Int(Float(d$))
If SellThings(i)\quantity<=0 Then
QSellThings=QSellThings-1
TargetBx2=0
TargetBy2=0
Bup2=0
For j=i To QSellThings
SellThings(j)\ID = SellThings(j+1)\ID
SellThings(j)\quantity = SellThings(j+1)\quantity
Next
h=1
End If
d$=""
End If
Next
If gamescr=11 And h=1
For i=1 To QSellThings
FreeImage SellThingsImage(i)
SellThingsImage(i)=LoadImage("DATA\textures\Image\Inventory\Things\"+SellThings(i)\ID+".bmp")
ScaleImage SellThingsImage(i),GK#,GK#
Next
FreeImage SellThingsImage(QSellThings+1)
End If
End If
If Left(command$,7)="additem" Then
b=8
a$=""
c$=""
d$=""
c1$=""
While a<>"."
b=b+1
c$=c$+a$
a$=Mid(Command$,b,1)
Wend
c1$=c$
a$=""
c$=""
While a<>"."
b=b+1
c$=c$+a$
a$=Mid(Command$,b,1)
Wend
d$=Mid(command$,b+1,Len(command$)-b)
If c1$="hero"
For i=1 To Qthings
If Inventory(i)\ID = Int(Float(c$)) And d$<>"" Then
Inventory(i)\quantity = Inventory(i)\quantity+Int(Float(d$))
d$=""
End If
Next
If d$<>"" Then
Qthings=Qthings+1
Inventory(Qthings)=New TypeInventory
Inventory(Qthings)\ID=Int(Float(c$))
Inventory(Qthings)\quantity=Int(Float(d$))
End If
If (gamescr=6 Or gamescr=10 Or gamescr=11 Or gamescr=12) And d$<>""
For i=1 To Qthings
If i<>Qthings FreeImage InvImage(i)
InvImage(i)=LoadImage("DATA\textures\Image\Inventory\Things\"+Inventory(i)\ID+".bmp")
ScaleImage InvImage(i),GK#,GK#
Next
End If
Else
f=0
For i=1 To QN
If NPC(i)\ID$ = c1$
f=i
End If
Next
If f<>0
For i=1 To NPC(f)\Qthings
If NPC(f)\Inv[i]\ID = Int(Float(c$)) And d$<>"" Then
NPC(f)\Inv[i]\quantity = NPC(f)\Inv[i]\quantity+Int(Float(d$))
d$=""
End If
Next
If d$<>"" Then
NPC(f)\Qthings=NPC(f)\Qthings+1
NPC(f)\Inv[NPC(f)\Qthings]=New TypeInventory
NPC(f)\Inv[NPC(f)\Qthings]\ID=Int(Float(c$))
NPC(f)\Inv[NPC(f)\Qthings]\quantity=Int(Float(d$))
End If
If (gamescr=10 Or gamescr=11) And d$<>""
For i=1 To NPC(f)\Qthings
If i<>NPC(f)\Qthings FreeImage InvImage2(i)
InvImage2(i)=LoadImage("DATA\textures\Image\Inventory\Things\"+NPC(f)\Inv[i]\ID+".bmp")
ScaleImage InvImage2(i),GK#,GK#
Next
End If
Else
For i=1 To QC
If cont(i)\ID$ = c1$
f=i
End If
Next
If f<>0
For i=1 To cont(f)\Qthings
If cont(f)\Inv[i]\ID = Int(Float(c$)) And d$<>"" Then
cont(f)\Inv[i]\quantity = cont(f)\Inv[i]\quantity+Int(Float(d$))
d$=""
End If
Next
If d$<>"" Then
cont(f)\Qthings=cont(f)\Qthings+1
cont(f)\Inv[cont(f)\Qthings]=New TypeInventory
cont(f)\Inv[cont(f)\Qthings]\ID=Int(Float(c$))
cont(f)\Inv[cont(f)\Qthings]\quantity=Int(Float(d$))
End If
If gamescr=12 And d$<>""
For i=1 To cont(f)\Qthings
If i<>cont(f)\Qthings FreeImage InvImage2(i)
InvImage2(i)=LoadImage("DATA\textures\Image\Inventory\Things\"+cont(f)\Inv[i]\ID+".bmp")
ScaleImage InvImage2(i),GK#,GK#
Next
End If
End If
End If
End If
End If
If Left(command$,10)="removeitem" Then
b=11
a$=""
c$=""
d$=""
c1$=""
h=0
While a<>"."
b=b+1
c$=c$+a$
a$=Mid(Command$,b,1)
Wend
c1$=c$
a$=""
c$=""
While a<>"."
b=b+1
c$=c$+a$
a$=Mid(Command$,b,1)
Wend
d$=Mid(command$,b+1,Len(command$)-b)
If c1$="hero"
For i=1 To Qthings
If Inventory(i)\ID = Int(Float(c$)) And d$<>"" Then
Inventory(i)\quantity = Inventory(i)\quantity-Int(Float(d$))
If inventory(i)\quantity<=0 Then
Qthings=Qthings-1
TargetBx=0
TargetBy=0
Bup=0
TargetBx1=0
TargetBy1=0
Bup1=0
For j=i To Qthings
Inventory(j)\ID = Inventory(j+1)\ID
Inventory(j)\quantity = Inventory(j+1)\quantity
Next
h=1
End If
d$=""
End If
Next
If (gamescr=6 Or gamescr=10 Or gamescr=11 Or gamescr=12) And h=1
For i=1 To Qthings
FreeImage InvImage(i)
InvImage(i)=LoadImage("DATA\textures\Image\Inventory\Things\"+Inventory(i)\ID+".bmp")
ScaleImage InvImage(i),GK#,GK#
Next
FreeImage InvImage(Qthings+1)
End If
Else
f=0
For i=1 To QN
If NPC(i)\ID$ = c1$
f=i
End If
Next
If f<>0
For i=1 To NPC(f)\Qthings
If NPC(f)\Inv[i]\ID = Int(Float(c$)) And d$<>"" Then
NPC(f)\Inv[i]\quantity = NPC(f)\Inv[i]\quantity-Int(Float(d$))
If NPC(f)\Inv[i]\quantity<=0 Then
NPC(f)\Qthings=NPC(f)\Qthings-1
TargetBx2=0
TargetBy2=0
Bup2=0
For j=i To NPC(f)\Qthings
NPC(f)\Inv[j]\ID = NPC(f)\Inv[j+1]\ID
NPC(f)\Inv[j]\quantity = NPC(f)\Inv[j+1]\quantity
Next
h=1
End If
d$=""
End If
Next
If gamescr=10 Or gamescr=11 And h=1
For i=1 To NPC(f)\Qthings
FreeImage InvImage2(i)
InvImage2(i)=LoadImage("DATA\textures\Image\Inventory\Things\"+NPC(f)\Inv[i]\ID+".bmp")
ScaleImage InvImage2(i),GK#,GK#
Next
FreeImage InvImage2(NPC(f)\Qthings+1)
End If
Else
For i=1 To QC
If cont(i)\ID$ = c1$
f=i
End If
Next
If f<>0
For i=1 To cont(f)\Qthings
If cont(f)\Inv[i]\ID = Int(Float(c$)) And d$<>"" Then
cont(f)\Inv[i]\quantity = cont(f)\Inv[i]\quantity-Int(Float(d$))
If cont(f)\Inv[i]\quantity<=0 Then
cont(f)\Qthings=cont(f)\Qthings-1
TargetBx2=0
TargetBy2=0
Bup2=0
For j=i To cont(f)\Qthings
cont(f)\Inv[j]\ID = cont(f)\Inv[j+1]\ID
cont(f)\Inv[j]\quantity = cont(f)\Inv[j+1]\quantity
Next
h=1
End If
d$=""
End If
Next
If gamescr=12 And h=1
For i=1 To cont(f)\Qthings
FreeImage InvImage2(i)
InvImage2(i)=LoadImage("DATA\textures\Image\Inventory\Things\"+cont(f)\Inv[i]\ID+".bmp")
ScaleImage InvImage2(i),GK#,GK#
Next
FreeImage InvImage2(cont(f)\Qthings+1)
End If
End If
End If
End If
End If
If Left(command$,6)="change" Then
b=8
a$=""
c$=""
d$=""
g$=""
e=0
f=0
While a<>"." And a<>"="
c$=c$+a$
a$=Mid(Command$,b,1)
b=b+1
Wend
e=1
If a<>"="
e=2
a$=""
While a<>"." And a<>"="
d$=d$+a$
a$=Mid(Command$,b,1)
b=b+1
Wend
If a$<>"="
e=3
a$=""
While a<>"="
g$=g$+a$
a$=Mid(Command$,b,1)
b=b+1
Wend
End If
End If
p$=Mid(Command$,b,Len(Command$)-b+1)
Select e
Case 1
Select c$
Case "QH"
QH=CalcExp(p$)
If QH>24 QH=QH-24
Select QH
Case 1 licol=50:licol2=1
Case 2 licol=67:licol2=1
Case 3 licol=84:licol2=1
Case 4 licol=101:licol2=1
Case 5 licol=118:licol2=1
Case 6 licol=135:licol2=1
Case 7 licol=152:licol2=1
Case 8 licol=169:licol2=1
Case 9 licol=186:licol2=1
Case 10 licol=203:licol2=1
Case 11 licol=221:licol2=1
Case 12 licol=238:licol2=1
Case 13 licol=255:licol2=0
Case 14 licol=238:licol2=0
Case 15 licol=221:licol2=0
Case 16 licol=203:licol2=0
Case 17 licol=186:licol2=0
Case 18 licol=169:licol2=0
Case 19 licol=152:licol2=0
Case 20 licol=135:licol2=0
Case 21 licol=118:licol2=0
Case 22 licol=101:licol2=0
Case 23 licol=84:licol2=0
Case 24 licol=67:licol2=0
End Select
End Select
If Right(c$,1)="#"
ScriptsVar#(Int(Left(c$,Len(c$)-1)))=CalcExp(p$)
End If
Case 2
Select c$
Case "hero"
Select d$
Case "anim" Player(0)\Anim=CalcExp(p$)
Case "st" Player(0)\St=CalcExp(p$)
Case "con" Player(0)\con=CalcExp(p$)
Case "dex" Player(0)\dex=CalcExp(p$)
Case "sd" Player(0)\sd=CalcExp(p$)
Case "gd" Player(0)\gd=CalcExp(p$)
Case "la" Player(0)\la=CalcExp(p$)
Case "ha" Player(0)\ha=CalcExp(p$)
Case "ac" Player(0)\ac=CalcExp(p$)
Case "ev" Player(0)\ev=CalcExp(p$)
Case "tr" Player(0)\tr=CalcExp(p$)
Case "dam" Player(0)\dam=CalcExp(p$)
Case "asp" Player(0)\asp=CalcExp(p$)
Case "speed" Player(0)\speed#=CalcExp(p$)
Case "def" Player(0)\def=CalcExp(p$)
Case "realhp" Player(0)\realhp=CalcExp(p$)
Case "maxhp" Player(0)\maxhp=CalcExp(p$)
Case "crit" Player(0)\crit=CalcExp(p$)
Case "weight" Player(0)\weight=CalcExp(p$)
Case "wed" Player(0)\wed=CalcExp(p$)
Case "wec" Player(0)\wec=CalcExp(p$)
Case "was" Player(0)\was=CalcExp(p$)
Case "wet" Player(0)\wet=CalcExp(p$)
Case "ard" Player(0)\ard=CalcExp(p$)
Case "art" Player(0)\art=CalcExp(p$)
Case "distat" Player(0)\distat=CalcExp(p$)
Case "dac" Player(0)\dac=CalcExp(p$)
Case "dev" Player(0)\dev=CalcExp(p$)
Case "ex" Player(0)\Ex=CalcExp(p$)
Case "lvlexp" Player(0)\lvlexp=CalcExp(p$)
Case "level" Player(0)\Level=CalcExp(p$)
Case "charpoints" Player(0)\CharPoints=CalcExp(p$)
Case "skillpoints" Player(0)\SkillPoints=CalcExp(p$)
Case "deadmovietime" Player(0)\DeadMovieTime=CalcExp(p$)
Case "movetype" Player(0)\MoveType=CalcExp(p$)
Case "qthings" Qthings=CalcExp(p$)
Case "yaw"
Player(0)\Yaw#=CalcExp(p$)
RotateEntity Player(0)\mesh1,0,Player(0)\Yaw#,0
Case "x" PositionEntity Player(0)\mesh1,CalcExp(p$),EntityY#(Player(0)\mesh1),EntityZ#(Player(0)\mesh1)
Case "y" PositionEntity Player(0)\mesh1,EntityX#(Player(0)\mesh1),CalcExp(p$),EntityZ#(Player(0)\mesh1)
Case "z" PositionEntity Player(0)\mesh1,EntityX#(Player(0)\mesh1),EntityY#(Player(0)\mesh1),CalcExp(p$)
Case "scalex"
Player(0)\ScaleX#=CalcExp(p$)
ScaleEntity Player(0)\mesh1,Player(0)\ScaleX,Player(0)\ScaleY,Player(0)\ScaleZ
Case "scaley"
Player(0)\ScaleY#=CalcExp(p$)
ScaleEntity Player(0)\mesh1,Player(0)\ScaleX,Player(0)\ScaleY,Player(0)\ScaleZ
Case "scalez"
Player(0)\ScaleZ#=CalcExp(p$)
ScaleEntity Player(0)\mesh1,Player(0)\ScaleX,Player(0)\ScaleY,Player(0)\ScaleZ
Case "alpha"
Player(0)\alpha#=CalcExp(p$)
EntityAlpha Player(0)\mesh1,Player(0)\alpha#
End Select
End Select
Case 3
Select c$
Case "NPC"
For i=1 To QN
If NPC(i)\ID$ = d$
f=i
End If
Next
Select g$
Case "usetalk" NPC(f)\UseTalk=CalcExp(p$)
Case "anim" NPC(f)\Anim=CalcExp(p$)
Case "typeai" NPC(f)\TypeAI=CalcExp(p$)
Case "dam" NPC(f)\Dam=CalcExp(p$)
Case "asp" NPC(f)\Asp=CalcExp(p$)
Case "speed" NPC(f)\Speed#=CalcExp(p$)
Case "def" NPC(f)\Def=CalcExp(p$)
Case "realhp" NPC(f)\realhp=CalcExp(p$)
Case "maxhp" NPC(f)\MaxHp=CalcExp(p$)
Case "crit" NPC(f)\Crit=CalcExp(p$)
Case "distat" NPC(f)\distat=CalcExp(p$)
Case "ex" NPC(f)\Ex=CalcExp(p$)
Case "look" NPC(f)\look=CalcExp(p$)
; Case "number" NPC(f)\Number=CalcExp(p$)
Case "weight" NPC(f)\weight=CalcExp(p$)
Case "alive" NPC(f)\Alive=CalcExp(p$)
Case "aggr" NPC(f)\aggr=CalcExp(p$)
Case "maintalk" NPC(f)\maintalk=CalcExp(p$)
Case "qt" NPC(f)\QT=CalcExp(p$)
Case "qthings" NPC(f)\Qthings=CalcExp(p$)
Case "yaw"
NPC(f)\Yaw#=CalcExp(p$)
RotateEntity NPC(f)\mesh1,0,NPC(f)\Yaw#,0
Case "x" PositionEntity NPC(f)\mesh1,CalcExp(p$),EntityY#(NPC(f)\mesh1),EntityZ#(NPC(f)\mesh1)
Case "y" PositionEntity NPC(f)\mesh1,EntityX#(NPC(f)\mesh1),CalcExp(p$),EntityZ#(NPC(f)\mesh1)
Case "z" PositionEntity NPC(f)\mesh1,EntityX#(NPC(f)\mesh1),EntityY#(NPC(f)\mesh1),CalcExp(p$)
Case "scalex"
NPC(f)\ScaleX#=CalcExp(p$)
ScaleEntity NPC(f)\mesh1,NPC(f)\ScaleX,NPC(f)\ScaleY,NPC(f)\ScaleZ
Case "scaley"
NPC(f)\ScaleY#=CalcExp(p$)
ScaleEntity NPC(f)\mesh1,NPC(f)\ScaleX,NPC(f)\ScaleY,NPC(f)\ScaleZ
Case "scalez"
NPC(f)\ScaleZ#=CalcExp(p$)
ScaleEntity NPC(f)\mesh1,NPC(f)\ScaleX,NPC(f)\ScaleY,NPC(f)\ScaleZ
Case "alpha"
NPC(f)\alpha#=CalcExp(p$)
EntityAlpha NPC(f)\mesh1,NPC(f)\alpha#
End Select
Case "cont"
For i=1 To QC
If Cont(i)\ID$ = d$
f=i
End If
Next
Select g$
Case "yaw"
cont(f)\Yaw#=CalcExp(p$)
RotateEntity cont(f)\mesh,0,cont(f)\Yaw#,0
Case "x" PositionEntity cont(f)\mesh,CalcExp(p$),EntityY#(cont(f)\mesh),EntityZ#(cont(f)\mesh)
Case "y" PositionEntity cont(f)\mesh,EntityX#(cont(f)\mesh),CalcExp(p$),EntityZ#(cont(f)\mesh)
Case "z" PositionEntity cont(f)\mesh,EntityX#(cont(f)\mesh),EntityY#(cont(f)\mesh),CalcExp(p$)
Case "scalex"
cont(f)\ScaleX#=CalcExp(p$)
ScaleEntity cont(f)\mesh,cont(f)\ScaleX,cont(f)\ScaleY,cont(f)\ScaleZ
Case "scaley"
cont(f)\ScaleY#=CalcExp(p$)
ScaleEntity cont(f)\mesh,cont(f)\ScaleX,cont(f)\ScaleY,cont(f)\ScaleZ
Case "scalez"
cont(f)\ScaleZ#=CalcExp(p$)
ScaleEntity cont(f)\mesh,cont(f)\ScaleX,cont(f)\ScaleY,cont(f)\ScaleZ
Case "alpha"
cont(f)\alpha#=CalcExp(p$)
EntityAlpha cont(f)\mesh,cont(f)\alpha#
End Select
Case "mesh"
For i=1 To Qmesh
If Omesh(i)\ID$ = d$
f=i
End If
Next
Select g$
Case "yaw"
OMesh(f)\Yaw#=CalcExp(p$)
RotateEntity OMesh(f)\mesh,0,OMesh(f)\Yaw#,0
Case "x" PositionEntity OMesh(f)\mesh,CalcExp(p$),EntityY#(OMesh(f)\mesh),EntityZ#(OMesh(f)\mesh)
Case "y" PositionEntity OMesh(f)\mesh,EntityX#(OMesh(f)\mesh),CalcExp(p$),EntityZ#(OMesh(f)\mesh)
Case "z" PositionEntity OMesh(f)\mesh,EntityX#(OMesh(f)\mesh),EntityY#(OMesh(f)\mesh),CalcExp(p$)
Case "scalex"
OMesh(f)\ScaleX#=CalcExp(p$)
ScaleEntity OMesh(f)\mesh,OMesh(f)\ScaleX,OMesh(f)\ScaleY,OMesh(f)\ScaleZ
Case "scaley"
OMesh(f)\ScaleY#=CalcExp(p$)
ScaleEntity OMesh(f)\mesh,OMesh(f)\ScaleX,OMesh(f)\ScaleY,OMesh(f)\ScaleZ
Case "scalez"
OMesh(f)\ScaleZ#=CalcExp(p$)
ScaleEntity OMesh(f)\mesh,OMesh(f)\ScaleX,OMesh(f)\ScaleY,OMesh(f)\ScaleZ
Case "alpha"
OMesh(f)\alpha#=CalcExp(p$)
EntityAlpha OMesh(f)\mesh,OMesh(f)\alpha#
End Select
End Select
End Select
End If
If Left(command$,8)="boatmove" Then
b=9
a$=""
c$=""
d$=""
e=0
While a<>"."
b=b+1
c$=c$+a$
a$=Mid(Command$,b,1)
Wend
e=Int(Float(c$))
c$=""
a$=""
While a<>"."
b=b+1
c$=c$+a$
a$=Mid(Command$,b,1)
Wend
boat(e)\X=Int(Float(c$))
d$=Mid(command$,b+1,Len(command$)-b)
boat(e)\Z=Int(Float(d$))
boat(e)\moving=1
For j=1 To QN
If NPC(j)\ID$ = boat(e)\NPCname$
f=j
End If
Next
Animate FindChild(NPC(f)\mesh2,"hero"),1,.25
Animate FindChild(NPC(f)\mesh2,"weapon"),1,.25
EntityAlpha FindChild(NPC(f)\mesh2,"hero"),1
EntityAlpha FindChild(NPC(f)\mesh2,"weapon"),1
EntityAlpha FindChild(NPC(f)\mesh1,"hero"),0
EntityAlpha FindChild(NPC(f)\mesh1,"weapon"),0
End If
End Function
Остальная часть скриптов.
Function LoadScriptsCommand()
file=ReadFile("DATA\text\scripts.txt")
QSC=0
QHS=0
While Not Eof(file)
QSC=QSC+1
ScriptsCommand$(QSC)=ReadLine(file)
If Left(ScriptsCommand$(QSC),11)="beginscript"
QHS=QHS+1
HeadScripts(QHS,1)=Int(Right(ScriptsCommand$(QSC),Len(ScriptsCommand$(QSC))-12))
HeadScripts(QHS,2)=QSC
End If
Wend
CloseFile(file)
End Function
Function ScriptsControl()
ScriptsControlStatus=1
For i=1 To QSL
For j=1 To QHS
If HeadScripts(j,1)=ScriptsList(i)
a=HeadScripts(j,2)
k=a+1
QTS=0
While ScriptsCommand$(k)<>"endscript"
TempScripts$(k-a)=ScriptsCommand$(k)
k=k+1
QTS=QTS+1
Wend
If QTS<>0
ScrLet=1
For k=1 To QTS
If ScrLet=1
GameScript(TempScripts$(k))
Else
GameScript("!"+TempScripts$(k))
End If
Next
End If
End If
Next
Next
ScriptsControlStatus=0
For i=1 To QTARS
If TempAddRemoveScripts(i,2)=1
gamescript("addscript."+Str(TempAddRemoveScripts(i,1)))
Else
gamescript("removescript."+Str(TempAddRemoveScripts(i,1)))
End If
Next
QTARS=0
End Function
Function ControlCondition(Condition$)
e=0
a$=""
b=1
c$=""
d$=""
p1=0
p2=0
While e=0
c$=c$+a$
a$=Mid(Condition$,b,1)
b=b+1
If a$="=" Or a$="<" Or a=">" Or a="!" Or a="\" Or a="/" e=1
Wend
d$=Mid(Condition$,b,Len(Condition$)-b+1)
p1=CalcExp(c$)
p2=CalcExp(d$)
Select a$
Case "=" If p1=p2 Return 1 Else Return 0
Case "<" If p1<p2 Return 1 Else Return 0
Case ">" If p1>p2 Return 1 Else Return 0
Case "!" If p1<>p2 Return 1 Else Return 0
Case "\" If p1>=p2 Return 1 Else Return 0
Case "/" If p1<=p2 Return 1 Else Return 0
End Select
End Function
Function TransVar#(var$)
check=0
Select var$
Case "QH"
Return QH
check=1
Case "gamescr"
Return GameScr
check=1
Case "millisecs"
Return MilliSecs()
check=1
End Select
If Right(var$,1)="#"
Return ScriptsVar#(Int(Left(var$,Len(var$)-1)))
End If
If Left(var$,10)="searchitem" Then
b=11
e=0
a$=""
c$=""
d$=""
g$=""
While a<>"."
b=b+1
g$=g$+a$
a$=Mid(var$,b,1)
Wend
a$=""
While a<>"."
b=b+1
c$=c$+a$
a$=Mid(var$,b,1)
Wend
a=""
d$=Mid(var$,b+1,Len(var$)-b)
If g$="hero"
For i=1 To Qthings
If inventory(i)\ID=Int(c$) And inventory(i)\quantity>=Int(Float(d$))
e=1
End If
Next
Else
f=0
For i=1 To QN
If NPC(i)\ID$ = g$
f=i
End If
Next
If f<>0
For i=1 To NPC(f)\Qthings
If NPC(f)\inv[i]\ID=Int(c$) And NPC(f)\inv[i]\quantity>=Int(Float(d$))
e=1
End If
Next
Else
For i=1 To QC
If Cont(i)\ID$ = g$
f=i
End If
Next
If f<>0
For i=1 To cont(f)\Qthings
If cont(f)\inv[i]\ID=Int(c$) And cont(f)\inv[i]\quantity>=Int(Float(d$))
e=1
End If
Next
End If
End If
End If
Return e
check=1
End If
If Left(var$,5)="equip"
b=7
c$=""
a$=""
d$=""
While a$<>"."
c$=c$+a$
a$=Mid(var$,b,1)
b=b+1
Wend
d$=Mid(var$,b,Len(var$)-b+1)
e=0
If Int(c$)=0
If equip(0)\ID=Int(d$) e=1
Else
If equip(1)\ID=Int(d$) e=1
End If
Return e
check=1
End If
If Left(var$,8)="opencont"
d$=Right(var$,Len(var$)-9)
e=0
If GameScr=12
If cont(Menu12NTC)\ID$=d$ e=1
End If
Return e
check=1
End If
If Left(var$,8)="tradeNPC"
d$=Right(var$,Len(var$)-9)
e=0
If GameScr=11
If NPC(Menu11NTN)\ID$=d$ e=1
End If
Return e
check=1
End If
If Left(var$,10)="visibility"
visib#=constant("visibility_degrees")
b=12
a$=""
c$=""
d$=""
f=0
While a$<>"."
c$=c$+a$
a$=Mid(var$,b,1)
b=b+1
Wend
d$=Mid(var$,b,Len(var$)-b+1)
For i=1 To QN
If NPC(i)\ID$=c$ f=i
Next
px1#=EntityX#(NPC(f)\mesh1,1)
pz1#=EntityZ#(NPC(f)\mesh1,1)
pyaw#=EntityYaw#(NPC(f)\mesh1,1)
plook#=NPC(f)\look
If d$="hero"
px2#=EntityX#(player(0)\mesh1,1)
pz2#=EntityZ#(player(0)\mesh1,1)
Else
For i=1 To QN
If NPC(i)\ID$=d$ f=i
Next
px2#=EntityX#(NPC(f)\mesh1,1)
pz2#=EntityZ#(NPC(f)\mesh1,1)
End If
dist#=Sqr((px1#-px2#)*(px1#-px2#)+(pz1#-pz2#)*(pz1#-pz2#))
If dist<plook#
rot#=180+rotate(px1#,pz1#,px2#,pz2#)
pyaw1#=pyaw# - visib#/2
pyaw2#=pyaw# + visib#/2
If pyaw2#>=180 And rot#<0 rot#=rot# + 360
If pyaw1#<-180 And rot#>0 rot#=rot# - 360
If pyaw1#<rot# And pyaw2#>rot#
Return 1
Else
Return 0
End If
Else
Return 0
End If
check=1
End If
If Left(var$,3)="NPC"
b=5
a$=""
c$=""
d$=""
f=0
While a$<>"."
c$=c$+a$
a$=Mid(var$,b,1)
b=b+1
Wend
d$=Mid(var$,b,Len(var$)-b+1)
For i=1 To QN
If NPC(i)\ID$ = c$
f=i
End If
Next
Select d$
Case "usetalk" Return NPC(f)\UseTalk
Case "anim" Return NPC(f)\Anim
Case "typeai" Return NPC(f)\TypeAI
Case "dam" Return NPC(f)\Dam
Case "asp" Return NPC(f)\Asp
Case "speed" Return NPC(f)\Speed#
Case "def" Return NPC(f)\Def
Case "realhp" Return NPC(f)\realhp
Case "maxhp" Return NPC(f)\MaxHp
Case "crit" Return NPC(f)\Crit
Case "distat" Return NPC(f)\distat
Case "ex" Return NPC(f)\Ex
Case "look" Return NPC(f)\look
; Case "number" Return NPC(f)\Number
Case "weight" Return NPC(f)\weight
Case "scalex" Return NPC(f)\ScaleX#
Case "scaley" Return NPC(f)\ScaleY#
Case "scalez" Return NPC(f)\ScaleZ#
Case "yaw" Return NPC(f)\Yaw#
Case "alive" Return NPC(f)\Alive
Case "maintalk" Return NPC(f)\maintalk
Case "qt" Return NPC(f)\QT
Case "qthings" Return NPC(f)\Qthings
Case "x" Return EntityX#(NPC(f)\mesh1)
Case "y" Return EntityY#(NPC(f)\mesh1)
Case "z" Return EntityZ#(NPC(f)\mesh1)
End Select
check=1
End If
If Left(var$,4)="cont"
b=6
a$=""
c$=""
d$=""
f=0
While a$<>"."
c$=c$+a$
a$=Mid(var$,b,1)
b=b+1
Wend
d$=Mid(var$,b,Len(var$)-b+1)
For i=1 To QC
If cont(i)\ID$ = c$
f=i
End If
Next
Select d$
Case "scalex" Return cont(f)\ScaleX#
Case "scaley" Return cont(f)\ScaleY#
Case "scalez" Return cont(f)\ScaleZ#
Case "yaw" Return cont(f)\Yaw#
Case "x" Return EntityX#(cont(f)\mesh)
Case "y" Return EntityY#(cont(f)\mesh)
Case "z" Return EntityZ#(cont(f)\mesh)
End Select
check=1
End If
If Left(var$,4)="mesh"
b=6
a$=""
c$=""
d$=""
f=0
While a$<>"."
c$=c$+a$
a$=Mid(var$,b,1)
b=b+1
Wend
d$=Mid(var$,b,Len(var$)-b+1)
For i=1 To Qmesh
If Omesh(i)\ID$ = c$
f=i
End If
Next
Select d$
Case "scalex" Return Omesh(f)\ScaleX#
Case "scaley" Return Omesh(f)\ScaleY#
Case "scalez" Return Omesh(f)\ScaleZ#
Case "yaw" Return Omesh(f)\Yaw#
Case "x" Return EntityX#(Omesh(f)\mesh)
Case "y" Return EntityY#(Omesh(f)\mesh)
Case "z" Return EntityZ#(Omesh(f)\mesh)
End Select
check=1
End If
If Left(var$,4)="hero"
d$=Mid(var$,6,Len(var$)-5)
Select d$
Case "anim" Return Player(0)\Anim
Case "st" Return Player(0)\St
Case "con" Return Player(0)\con
Case "dex" Return Player(0)\dex
Case "sd" Return Player(0)\sd
Case "gd" Return Player(0)\gd
Case "la" Return Player(0)\la
Case "ha" Return Player(0)\ha
Case "ac" Return Player(0)\ac
Case "ev" Return Player(0)\ev
Case "tr" Return Player(0)\tr
Case "dam" Return Player(0)\dam
Case "asp" Return Player(0)\asp
Case "speed" Return Player(0)\speed#
Case "def" Return Player(0)\def
Case "realhp" Return Player(0)\realhp
Case "maxhp" Return Player(0)\maxhp
Case "crit" Return Player(0)\crit
Case "weight" Return Player(0)\weight
Case "wed" Return Player(0)\wed
Case "wec" Return Player(0)\wec
Case "was" Return Player(0)\was
Case "wet" Return Player(0)\wet
Case "ard" Return Player(0)\ard
Case "art" Return Player(0)\art
Case "distat" Return Player(0)\distat
Case "dac" Return Player(0)\dac
Case "dev" Return Player(0)\dev
Case "ex" Return Player(0)\Ex
Case "lvlexp" Return Player(0)\lvlexp
Case "level" Return Player(0)\Level
Case "charpoints" Return Player(0)\CharPoints
Case "skillpoints" Return Player(0)\SkillPoints
Case "deadmovietime" Return Player(0)\DeadMovieTime
Case "movetype" Return Player(0)\MoveType
Case "qthings" Return Qthings
Case "x" Return EntityX#(Player(0)\mesh1)
Case "y" Return EntityY#(Player(0)\mesh1)
Case "z" Return EntityZ#(Player(0)\mesh1)
Case "scalex" Return Player(0)\ScaleX#
Case "scaley" Return Player(0)\ScaleY#
Case "scalez" Return Player(0)\ScaleZ#
Case "yaw" Return Player(0)\Yaw#
End Select
check=1
End If
If check=0 Return Float#(var$)
End Function
Function CalcExp#(var$)
QDCE=0
b=1
a$=" "
c$=""
While b=<Len(var$)+1
Select a$
Case "+"
QDCE=QDCE+1: DimCalcExp(QDCE)=1
Case "-"
QDCE=QDCE+1: DimCalcExp(QDCE)=2
Case "*"
QDCE=QDCE+1: DimCalcExp(QDCE)=3
Case "/"
QDCE=QDCE+1: DimCalcExp(QDCE)=4
End Select
a$=""
c$=""
While a$<>"+" And a$<>"-" And a$<>"*" And a$<>"/" And b=<Len(var$)+1
c$=c$+a$
a$=Mid(var$,b,1)
b=b+1
Wend
QDCE=QDCE+1
DimCalcExp(QDCE)=TransVar(c$)
Wend
i=0
While QDCE>i+2
i=i+2
If DimCalcExp(i)=4
DimCalcExp(i-1)=DimCalcExp(i-1)/DimCalcExp(i+1)
For j=i To QDCE-2
DimCalcExp(j)=DimCalcExp(j+2)
Next
i=i-2
QDCE=QDCE-2
End If
Wend
i=0
While QDCE>i+2
i=i+2
If DimCalcExp(i)=3
DimCalcExp(i-1)=DimCalcExp(i-1)*DimCalcExp(i+1)
For j=i To QDCE-2
DimCalcExp(j)=DimCalcExp(j+2)
Next
i=i-2
QDCE=QDCE-2
End If
Wend
i=0
While QDCE>i+2
i=i+2
If DimCalcExp(i)=2
DimCalcExp(i-1)=DimCalcExp(i-1)-DimCalcExp(i+1)
For j=i To QDCE-2
DimCalcExp(j)=DimCalcExp(j+2)
Next
i=i-2
QDCE=QDCE-2
End If
Wend
i=0
While QDCE>i+2
i=i+2
If DimCalcExp(i)=1
DimCalcExp(i-1)=DimCalcExp(i-1)+DimCalcExp(i+1)
For j=i To QDCE-2
DimCalcExp(j)=DimCalcExp(j+2)
Next
i=i-2
QDCE=QDCE-2
End If
Wend
Return DimCalcExp#(1)
End Function
|
(Offline)
|
|
24.02.2008, 23:44
|
#92
|
Танчики Developer
Регистрация: 29.01.2007
Сообщений: 539
Написано 16 полезных сообщений (для 23 пользователей)
|
Re: Логово Тайна Конопли
ап...
|
(Offline)
|
|
24.02.2008, 23:47
|
#93
|
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,742
Написано 5,461 полезных сообщений (для 15,675 пользователей)
|
Ответ: Логово Тайна Конопли
Ты бы хоть пару каментов оставил! А то тут чёрт не разберёт...
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**
* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена
|
(Offline)
|
|
07.12.2008, 01:21
|
#94
|
Танчики Developer
Регистрация: 29.01.2007
Сообщений: 539
Написано 16 полезных сообщений (для 23 пользователей)
|
Re: Логово Тайна Конопли
ыыыыы
|
(Offline)
|
|
07.12.2008, 01:44
|
#95
|
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,742
Написано 5,461 полезных сообщений (для 15,675 пользователей)
|
Ответ: Логово Тайна Конопли
ыыыыы
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**
* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена
|
(Offline)
|
|
07.12.2008, 02:04
|
#96
|
Троллота
Регистрация: 09.07.2007
Сообщений: 1,829
Написано 554 полезных сообщений (для 1,772 пользователей)
|
Ответ: Логово Тайна Конопли
аЫЫЫЫ?
|
(Offline)
|
|
07.12.2008, 03:53
|
#97
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Ответ: Логово Тайна Конопли
фак мой моск!
почём генератор-обфускатор кода, результат работы которого продемонстрирован выше?
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо impersonalis за это полезное сообщение:
|
|
07.12.2008, 18:19
|
#98
|
Гигант индустрии
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений (для 4,437 пользователей)
|
Ответ: Логово Тайна Конопли
какая компрессия данных !
__________________
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
07.12.2008, 19:03
|
#99
|
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,742
Написано 5,461 полезных сообщений (для 15,675 пользователей)
|
Ответ: Логово Тайна Конопли
Ну, дайте и я пиписькой померяюсь
Function LoadDialogPresets(filename$)
; Функция, загружающая пресеты из текстового файла.
Local Comment ; Отвечает за каменты. Текст внутри камертов не учитывается
Local Quot ; Отвечает за кавычки. Текст в кавычках, даже соответствующий операторам, не учитывается.
File = OpenFile(filename)
If File Then
; Читаем строки по очереди
Repeat
L$ = ReadLine(File)
CommentStart = 1 ; символ начала длинного камента
; Ищем каменты и выкидываем их.
For i = 1 To Len(L)
S$ = Mid(L, i,1)
Select S
Case Chr(34) ; Кавычки
If Not Comment Then
Quot = Not Quot ; Открываем или закрываем кавычки
End If
Case "{" ; Открыт длинный камент
If Not Quot Then
If Comment = 0 Then Comment = 1
CommentStart = i
End If
Case "}" ; Закрыт длинный камент
If Not Quot Then
If Comment = 1 Then Comment = 0 ; Если был включен длинный камент, выключаем его
L = Mid(L,1,CommentStart-1)+Mid(L,i+1, Len(L)) ; Выкидываем его нахер
i = CommentStart-1
End If
Case "/" ; Возможно, короткий камент
S$ = Mid(L, i,2)
Select S
Case "//" ; Если это короткий камент, то отрезаем полностью строку справа от этого знака.
L = Mid(L,1,i-1)
Exit
End Select
End Select
If i = Len(L) And Comment Then
L = Mid(L,1,CommentStart-1)
End If
Next
If Not L = "" Then ; Непосредственно ищем и выполняем команды.
Quot = 0
CommandStart = 1
ParametersStart = 1
For i = 1 To Len(L)
S$ = Mid(L, i,1)
Select S
Case Chr(34) ; Кавычки
Quot = Not Quot
Case "(" ; Команда окончена, начаты параметры
If Not Quot
Command$ = Mid(L,CommandStart, i-CommandStart)
ParametersStart = i+1
End If
Case ")" ; Параметры оконцены, можно их читать
If Not Quot
Parameters$ = Mid(L,ParametersStart, i-ParametersStart)
CommandStart = i+1
; Обрабатываем команду
; Выкидываем пробелы
Command = Replace(command," ","")
ScriptParseParameters(parameters, 1)
; тут выполняем команду
Select Upper(command)
Case "VERSION"
If Upper(ScriptParameters(0)) <> Upper(GameVersion) Then
MB = api_MessageBox (0, "Версия файла диалога: "+Chr(34)+filename+Chr(34)+" - "+Chr(34)+ScriptParameters(0)+Chr(34)+Chr(13)+"Версия игры: "+Chr(34)+GameVersion+Chr(34)+Chr(13)+"Несовпадение версий игры и скрипта может быть причиной ошибок!"+Chr(13)+"Желаете продолжить загрузку данного скрипта?","Несовпадение версий", 48+4)
If MB = 7 Then
Return 0
End If
End If
Case "GAME"
If Upper(ScriptParameters(0)) <> Upper(GameName) Then
MB = api_MessageBox (0, "Файла диалога: "+Chr(34)+filename+Chr(34)+" создан для игры "+Chr(34)+ScriptParameters(0)+Chr(34)+Chr(13)+"Игра: "+Chr(34)+GameName+Chr(34)+Chr(13)+"Несовпадение версий игры и скрипта может быть причиной ошибок!"+Chr(13)+"Желаете продолжить загрузку данного скрипта?","Несовпадение версий", 48+4)
If MB = 7 Then
Return 0
End If
End If
Case "DIALOG"
If DialogProc = 0 Then
DialogProc = 1
; Обнуляем массив параметров ответов
For k=1 To 10
For j=0 To 2
LDP(k,j)= ""
Next
Next
; Выкидываем все прошлые значения
DPQuest$ = ""
DPDuration$ = ""
If ScriptParameters(0) <> "" Then
DPID$ = ScriptParameters(0)
Else
api_MessageBox (0, "Ошибка в файле "+Chr(34)+filename+Chr(34)+" в строке №"+Lnum+Chr(13)+"При объявлении диалога ОБЯЗАТЕЛЬНО нужно указать его идентификатор!","Ошибка в синтаксисе", 16)
End If
Else
api_MessageBox (0, "Ошибка в файле "+Chr(34)+filename+Chr(34)+" в строке №"+Lnum+Chr(13)+"Объявление одного диалога невозможно внутри объявления другого!","Ошибка в синтаксисе", 16)
End If
Case "SETQUEST"
DPQuest$ = ScriptParameters(0)
Case "SETDURATION"
DPDur$ = Int(ScriptParameters(0))
Case "ADDANSWER"
; Выясняем ближайшее пустое значенеи массива
For k=1 To 10
If LDP(k,0) = "" Then
LDP(k,0)=ScriptParameters(0)
LDP(k,1)=ScriptParameters(1)
LDP(k,2)=ScriptParameters(2)
Exit
End If
Next
Case "END"
Select Upper(ScriptParameters(0))
Case "DIALOG"
CreateDialogPreset(DPID, DPQuest, DPDur, LDP(1,0),Int(LDP(1,1)),LDP(1,2), LDP(2,0),Int(LDP(2,1)),LDP(2,2), LDP(3,0),Int(LDP(3,1)),LDP(3,2), LDP(4,0),Int(LDP(4,1)),LDP(4,2), LDP(5,0),Int(LDP(5,1)),LDP(5,2), LDP(6,0),Int(LDP(6,1)),LDP(6,2), LDP(7,0),Int(LDP(7,1)),LDP(7,2), LDP(8,0),Int(LDP(8,1)),LDP(8,2), LDP(9,0),Int(LDP(9,1)),LDP(9,2), LDP(10,0),Int(LDP(10,1)),LDP(10,2))
DialogProc = 0
Case ""
; Конец всея
Return
Default
api_MessageBox (0, "Неизвестная команда: "+Chr(34)+command+" "+ScriptParameters(0)+Chr(34)+Chr(13)+"в файле: "+Chr(34)+filename+Chr(34)+Chr(13)+"Проверьте синтаксис!","Моя твоя не понимай!", 16)
End Select
Default
api_MessageBox (0, "Неизвестная команда: "+Chr(34)+command+Chr(34)+Chr(13)+"в файле: "+Chr(34)+filename+Chr(34)+Chr(13)+"Проверьте синтаксис!","Моя твоя не понимай!", 16)
End Select
End If
End Select
Next
End If
Until Eof(File)
Else
; Файл по какой-то причине не был загружен
api_MessageBox (0, "Не найден файл диалогов: "+Chr(34)+filename+Chr(34)+Chr(13)+"Проверьте путь!","Савсем нет файлу, насяйника (", 16)
End If
End Function
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**
* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо ABTOMAT за это полезное сообщение:
|
|
27.01.2009, 22:57
|
#100
|
Танчики Developer
Регистрация: 29.01.2007
Сообщений: 539
Написано 16 полезных сообщений (для 23 пользователей)
|
Re: Логово Тайна Конопли
Ну просто ЫЫЫЫЫ, и не ипет как говориться
|
(Offline)
|
|
28.01.2009, 21:30
|
#101
|
Элита
Регистрация: 16.01.2008
Сообщений: 1,800
Написано 958 полезных сообщений (для 3,833 пользователей)
|
Ответ: Логово Тайна Конопли
Пиписька у тебя немного короче на вид,но не менее крута...(вы уж извените за такой пост )
|
(Offline)
|
|
28.01.2009, 21:36
|
#102
|
Танчики Developer
Регистрация: 29.01.2007
Сообщений: 539
Написано 16 полезных сообщений (для 23 пользователей)
|
Re: Логово Тайна Конопли
закройте чтоли тему:D
|
(Offline)
|
|
28.01.2009, 22:11
|
#103
|
Злобный Админ
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений (для 9,330 пользователей)
|
Ответ: Логово Тайна Конопли
Сам тут некропостингом занимается, а потом закрыть просит..чудно...
__________________
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо SBJoker за это полезное сообщение:
|
|
28.01.2009, 22:27
|
#104
|
Танчики Developer
Регистрация: 29.01.2007
Сообщений: 539
Написано 16 полезных сообщений (для 23 пользователей)
|
Re: Ответ: Логово Тайна Конопли
Сообщение от SBJoker
Сам тут некропостингом занимается, а потом закрыть просит..чудно...
|
"некропостингом" - :D
вот такие чудности бывают...
|
(Offline)
|
|
28.01.2009, 23:35
|
#105
|
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,742
Написано 5,461 полезных сообщений (для 15,675 пользователей)
|
Ответ: Логово Тайна Конопли
Сообщение от Dzirt
Пиписька у тебя немного короче на вид,но не менее крута...(вы уж извените за такой пост )
|
C момента последнего поста та пиписька заметно выросла: начала поддерживать кавычкий, различает простые функции типа 2+1, 3*2 и т.д.
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**
* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 10:26.
|