Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Проекты > Проекты на Blitz3D

Проекты на Blitz3D Обсуждение будущих проектов, демок, набор команды и т.п.

Ответ
 
Опции темы
Старый 13.08.2007, 01:21   #91
Leito
Танчики 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
Leito
Танчики Developer
 
Регистрация: 29.01.2007
Сообщений: 539
Написано 16 полезных сообщений
(для 23 пользователей)
Re: Логово Тайна Конопли

ап...
(Offline)
 
Ответить с цитированием
Старый 24.02.2008, 23:47   #93
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: Логово Тайна Конопли

Ты бы хоть пару каментов оставил! А то тут чёрт не разберёт...
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Старый 07.12.2008, 01:21   #94
Leito
Танчики Developer
 
Регистрация: 29.01.2007
Сообщений: 539
Написано 16 полезных сообщений
(для 23 пользователей)
Re: Логово Тайна Конопли

ыыыыы
(Offline)
 
Ответить с цитированием
Старый 07.12.2008, 01:44   #95
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: Логово Тайна Конопли

ыыыыы
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Старый 07.12.2008, 02:04   #96
Tadeus
Троллота
 
Регистрация: 09.07.2007
Сообщений: 1,829
Написано 554 полезных сообщений
(для 1,772 пользователей)
Ответ: Логово Тайна Конопли

аЫЫЫЫ?
(Offline)
 
Ответить с цитированием
Старый 07.12.2008, 03:53   #97
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Логово Тайна Конопли

фак мой моск!
почём генератор-обфускатор кода, результат работы которого продемонстрирован выше?
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо impersonalis за это полезное сообщение:
johnk (07.12.2008), tormoz (07.12.2008)
Старый 07.12.2008, 18:19   #98
tormoz
Гигант индустрии
 
Аватар для tormoz
 
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений
(для 4,437 пользователей)
Ответ: Логово Тайна Конопли

какая компрессия данных !
__________________
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
dimanche13 (07.12.2008)
Старый 07.12.2008, 19:03   #99
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 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 за это полезное сообщение:
Dzirt (28.01.2009), johnk (27.01.2009)
Старый 27.01.2009, 22:57   #100
Leito
Танчики Developer
 
Регистрация: 29.01.2007
Сообщений: 539
Написано 16 полезных сообщений
(для 23 пользователей)
Re: Логово Тайна Конопли

Ну просто ЫЫЫЫЫ, и не ипет как говориться
(Offline)
 
Ответить с цитированием
Старый 28.01.2009, 21:30   #101
Dzirt
Элита
 
Аватар для Dzirt
 
Регистрация: 16.01.2008
Сообщений: 1,800
Написано 958 полезных сообщений
(для 3,833 пользователей)
Ответ: Логово Тайна Конопли

Пиписька у тебя немного короче на вид,но не менее крута...(вы уж извените за такой пост )
(Offline)
 
Ответить с цитированием
Старый 28.01.2009, 21:36   #102
Leito
Танчики Developer
 
Регистрация: 29.01.2007
Сообщений: 539
Написано 16 полезных сообщений
(для 23 пользователей)
Re: Логово Тайна Конопли

закройте чтоли тему:D
(Offline)
 
Ответить с цитированием
Старый 28.01.2009, 22:11   #103
SBJoker
Злобный Админ
 
Аватар для SBJoker
 
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений
(для 9,330 пользователей)
Ответ: Логово Тайна Конопли

Сам тут некропостингом занимается, а потом закрыть просит..чудно...
__________________
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо SBJoker за это полезное сообщение:
johnk (28.01.2009), Leito (29.01.2009)
Старый 28.01.2009, 22:27   #104
Leito
Танчики Developer
 
Регистрация: 29.01.2007
Сообщений: 539
Написано 16 полезных сообщений
(для 23 пользователей)
Re: Ответ: Логово Тайна Конопли

Сообщение от SBJoker Посмотреть сообщение
Сам тут некропостингом занимается, а потом закрыть просит..чудно...
"некропостингом" - :D

вот такие чудности бывают...
(Offline)
 
Ответить с цитированием
Старый 28.01.2009, 23:35   #105
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: Логово Тайна Конопли

Сообщение от Dzirt Посмотреть сообщение
Пиписька у тебя немного короче на вид,но не менее крута...(вы уж извените за такой пост )
C момента последнего поста та пиписька заметно выросла: начала поддерживать кавычкий, различает простые функции типа 2+1, 3*2 и т.д.
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сглаживание углов (Вопрос к специалистам) Flash 3D-программирование 7 30.05.2009 16:43
Тайна конопли 2 или (R = (1+sin(t))*(1-.9*abs(sin(4*t)))*(.9+.05*cos(200*t))) HolyDel Проекты на Blitz3D 18 06.08.2008 18:33
Формула конопли HolyDel Болтовня 14 05.11.2007 18:14
Поиск фалов ISKATEL 3D-программирование 6 17.07.2007 17:48


Часовой пояс GMT +4, время: 18:05.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com