|
3D-программирование Вопросы, касающиеся программирования 3D мира |
20.01.2008, 19:02
|
#1
|
Знающий
Регистрация: 02.11.2007
Сообщений: 255
Написано 27 полезных сообщений (для 43 пользователей)
|
Смена Weapon"нов
Вот выкладываю исходник)))Может кто подправит,улучшит код
;RaYEngineX - Weapons Module
;gun1_hud=LoadImage("data\textures\hud\weapon\pm.bmp")
;ScaleImage gun1_hud,0.4,0.4
Global GUN3_LOOPSOUND
Global GUN4_LOOPSOUND
Global gun1
Global gun2
Global gun3
Global gun4
Global gun1_show=1
Global gun2_show=1
Global gun3_show=1
Global gun4_show=1
Global gun1_pickup=1
Global gun2_pickup=1
Global gun3_pickup=1
Global gun4_pickup=1
Global gun1_patron=42
Global gun2_patron=20
Global gun3_patron=96
Global gun4_patron=367
Global gun1_magazin=GetIniItem$("Data\cfg\weapons.ini","gun1","magazine")
Global gun2_magazin=GetIniItem$("Data\cfg\weapons.ini","gun2","magazine")
Global gun3_magazin=GetIniItem$("Data\cfg\weapons.ini","gun3","magazine")
Global gun4_magazin=GetIniItem$("Data\cfg\weapons.ini","gun4","magazine")
Global gun1_info=GetIniItem$("Data\cfg\weapons.ini","gun1","info")
Global gun2_info=GetIniItem$("Data\cfg\weapons.ini","gun2","info")
Global gun3_info=GetIniItem$("Data\cfg\weapons.ini","gun3","info")
Global gun4_info=GetIniItem$("Data\cfg\weapons.ini","gun4","info")
Global gun1_hud=LoadImage("data\textures\hud\weapons\"+GetIniItem$("Data\cfg\weapons.ini","gun1","image"))
Global gun2_hud=LoadImage("data\textures\hud\weapons\"+GetIniItem$("Data\cfg\weapons.ini","gun2","image"))
Global gun3_hud=LoadImage("data\textures\hud\weapons\"+GetIniItem$("Data\cfg\weapons.ini","gun3","image"))
Global gun4_hud=LoadImage("data\textures\hud\weapons\"+GetIniItem$("Data\cfg\weapons.ini","gun4","image"))
Global pistol_shot=LoadSound("data\sound\weapon\pm\shot.ogg")
Global reload=LoadSound("data\sound\weapon\pm\reload.ogg")
Global relaod_delay_gun1=0
Global relaod_delay_gun2=0
Global relaod_delay_gun3=0
Global relaod_delay_gun4=0
Global gun_select=0
;Global shot_sp=LoadSprite ("data\textures\fx\shot.jpg",1)
;EntityParent shot_sp,cam
Function Weapon_Load()
gun1=ALoadAnimMesh("DATA\MODEL\weapons\"+GetIniItem$("Data\cfg\weapons.ini","gun1","model")+"\model.b3d",0,2)
PositionEntity gun1,0,-10,0
ScaleEntity gun1,.5,.5,.5
RotateEntity gun1,-90,0,-180
LoadAnimSeq gun1, "DATA\MODEL\weapons\"+GetIniItem$("Data\cfg\weapons.ini","gun1","model")+"\idle.b3d"
LoadAnimSeq gun1, "DATA\MODEL\weapons\"+GetIniItem$("Data\cfg\weapons.ini","gun1","model")+"\shot.b3d"
LoadAnimSeq gun1, "DATA\MODEL\weapons\"+GetIniItem$("Data\cfg\weapons.ini","gun1","model")+"\reload.b3d"
Animate gun1, 1,.3, 1
EntityParent gun1,cam
PositionEntity gun1,-1,-4,-15
gun2=ALoadAnimMesh("DATA\MODEL\weapons\"+GetIniItem$("Data\cfg\weapons.ini","gun2","model")+"\model.b3d",0,2)
PositionEntity gun2,0,-10,0
ScaleEntity gun2,.5,.5,.5
RotateEntity gun2,-90,0,-180
LoadAnimSeq gun2, "DATA\MODEL\weapons\"+GetIniItem$("Data\cfg\weapons.ini","gun2","model")+"\idle.b3d"
LoadAnimSeq gun2, "DATA\MODEL\weapons\"+GetIniItem$("Data\cfg\weapons.ini","gun2","model")+"\shot.b3d"
LoadAnimSeq gun2, "DATA\MODEL\weapons\"+GetIniItem$("Data\cfg\weapons.ini","gun2","model")+"\reload.b3d"
Animate gun2, 1,.3, 1
EntityParent gun2,cam
PositionEntity gun2,-1,-4,-15
;AK 47
gun3=ALoadAnimMesh("DATA\MODEL\weapons\"+GetIniItem$("Data\cfg\weapons.ini","gun3","model")+"\model.b3d",0,2)
PositionEntity gun3,0,-10,0
ScaleEntity gun3,.5,.5,.5
RotateEntity gun3,-90,0,-180
LoadAnimSeq gun3, "DATA\MODEL\weapons\"+GetIniItem$("Data\cfg\weapons.ini","gun3","model")+"\idle.b3d"
LoadAnimSeq gun3, "DATA\MODEL\weapons\"+GetIniItem$("Data\cfg\weapons.ini","gun3","model")+"\shot.b3d"
LoadAnimSeq gun3, "DATA\MODEL\weapons\"+GetIniItem$("Data\cfg\weapons.ini","gun3","model")+"\reload.b3d"
Animate gun3, 1,.3, 1
EntityParent gun3,cam
PositionEntity gun3,-1,-4,-15
;Groza
gun4=ALoadAnimMesh("MODEL\weapons\"+GetIniItem$("Data\cfg\weapons.ini","gun4","model")+"\model.b3d",0,1)
PositionEntity gun4,0,-10,0
ScaleEntity gun4,.5,.5,.5
RotateEntity gun4,-90,0,-180
LoadAnimSeq gun4, "MODEL\weapons\"+GetIniItem$("Data\cfg\weapons.ini","gun4","model")+"\idle.b3d"
LoadAnimSeq gun4, "MODEL\weapons\"+GetIniItem$("Data\cfg\weapons.ini","gun4","model")+"\shot.b3d"
LoadAnimSeq gun4, "MODEL\weapons\"+GetIniItem$("Data\cfg\weapons.ini","gun4","model")+"\reload.b3d"
Animate gun4, 1,.3, 1
EntityParent gun4,cam
PositionEntity gun4,-1,-4,-15
HideEntity gun1
HideEntity gun2
HideEntity gun3
HideEntity gun4
End Function
Function UpdateWeapon()
MHIT=MouseHit(1)
RELOAD_KEY=KeyHit(19)
MDOWN=MouseDown(1)
If relaod_delay_gun1=0 And relaod_delay_gun2=0 And relaod_delay_gun3=0 And relaod_delay_gun4=0 Then player_dblxanie=player_dblxanie+1
If player_dblxanie=>200 Then player_dblxanie=1
If player_dblxanie=190 Then Animate gun1, 1,.3, 1
If player_dblxanie=190 Then Animate gun2, 1,.3, 1
If player_dblxanie=190 Then Animate gun3, 1,.3, 1
If player_dblxanie=190 Then Animate gun4, 1,.3, 1
If relaod_delay_gun1>0 Then relaod_delay_gun1=relaod_delay_gun1-1
If relaod_delay_gun2>0 Then relaod_delay_gun2=relaod_delay_gun2-1
If relaod_delay_gun3>0 Then relaod_delay_gun3=relaod_delay_gun3-1
If relaod_delay_gun4>0 Then relaod_delay_gun4=relaod_delay_gun4-1
;(GUN1)
If gun_select=1 And gun1_show=1 And gun1_patron>0 And gun1_magazin=0 And RELOAD_KEY=1 And gun1_pickup=1 Then
If gun1_patron>12 Then gun1_magazin=12
If gun1_patron<12 Then
gun1_magazin=gun1_patron
gun1_patron=0
EndIf
PlaySound reload
Animate gun1, 3,.65,3
relaod_delay_gun1=140
EndIf
If gun_select=1 And gun1_show=1 And MHIT=1 And gun1_magazin>0 And gun1_pickup=1 And relaod_delay_gun1=0 Then
If gun1_patron>0 Then gun1_patron=gun1_patron-1
gun1_magazin=gun1_magazin-1
PlaySound pistol_shot
Animate gun1, 3,1, 2
EndIf
;(GUN2)
If gun_select=2 And gun2_show=1 And gun2_patron>0 And gun2_magazin=0 And RELOAD_KEY=1 And gun2_pickup=1 Then
If gun2_patron>8 Then gun2_magazin=8
If gun2_patron<8 Then
gun2_magazin=gun2_patron
gun2_patron=0
EndIf
PlaySound reload
Animate gun2, 3,.65,3
relaod_delay_gun2=110
EndIf
If gun_select=2 And gun2_show=1 And MHIT=1 And gun2_magazin>0 And gun2_pickup=1 And relaod_delay_gun2=0 Then
If gun2_patron>0 Then gun2_patron=gun2_patron-1
gun2_magazin=gun2_magazin-1
PlaySound pistol_shot
Animate gun2, 3,1, 2
EndIf
;(GUN3)
;ZOOM
gun3_zoom=0
gun3_zoom=MouseDown(2)
If gun_select=3 And gun3_show=1 And gun3_zoom=1 Then PositionEntity gun3,5.5,-.25,-11:show_cr2=1:HideEntity gun3:CameraZoom cam,5
If gun_select=3 And gun3_show=1 And gun3_zoom=0 Then PositionEntity gun3,0,-10,0:show_cr2=0:ShowEntity gun3:CameraZoom cam,1
;?????????? ??? ?????(???? ?? ????????????)
GUN3_LOOPSOUND=GUN3_LOOPSOUND+1
If GUN3_LOOPSOUND>8 Then GUN3_LOOPSOUND=1
;??????????? ????????
If gun_select=3 And gun3_show=1 And gun3_patron>0 And gun3_magazin=0 And RELOAD_KEY=1 And gun3_pickup=1 Then
If gun3_patron>30 Then gun3_magazin=30
If gun3_patron<30 Then
gun3_magazin=gun3_patron
gun3_patron=0
EndIf
PlaySound reload
Animate gun3, 3,.55,3
relaod_delay_gun3=190
EndIf
If gun_select=3 And gun3_show=1 And MDOWN=1 And GUN3_LOOPSOUND=1 And gun3_magazin>0 And gun3_pickup=1 And relaod_delay_gun3=0 Then
If gun3_patron>0 Then gun3_patron=gun3_patron-1
gun3_magazin=gun3_magazin-1
PlaySound pistol_shot
Animate gun3, 3,1, 2
EndIf
;(GUN3)
;(GUN4)
;ZOOM
gun4_zoom=0
gun4_zoom=MouseDown(2)
If gun_select=4 And gun4_show=1 And gun4_zoom=1 Then PositionEntity gun4,5.5,-18,4
If gun_select=4 And gun4_show=1 And gun4_zoom=0 Then PositionEntity gun4,0,-15,0
;?????????? ??? ?????(???? ?? ????????????)
GUN4_LOOPSOUND=GUN4_LOOPSOUND+1
If GUN4_LOOPSOUND>8 Then GUN4_LOOPSOUND=1
;??????????? ????????
If gun_select=4 And gun4_show=1 And gun4_patron>0 And gun4_magazin=0 And RELOAD_KEY=1 And gun4_pickup=1 Then
If gun4_patron>30 Then gun4_magazin=30
If gun4_patron<30 Then
gun4_magazin=gun4_patron
gun4_patron=0
EndIf
PlaySound reload
Animate gun4, 3,.55,3
relaod_delay_gun4=190
EndIf
If gun_select=4 And gun4_show=1 And MDOWN=1 And GUN4_LOOPSOUND=1 And gun4_magazin>0 And gun4_pickup=1 And relaod_delay_gun4=0 Then
If gun4_patron>0 Then gun4_patron=gun4_patron-1
gun4_magazin=gun4_magazin-1
PlaySound pistol_shot
Animate gun4, 3,1, 2
EndIf
If gun_select=1 And gun1_show=1 And gun1_pickup=1 Then
ShowEntity gun1
HideEntity gun2
HideEntity gun3
HideEntity gun4
EndIf
If gun_select=2 And gun2_show=1 And gun2_pickup=1 Then
ShowEntity gun2
HideEntity gun1
HideEntity gun3
HideEntity gun4
EndIf
If gun_select=3 And gun3_show=1 And gun3_pickup=1 Then
ShowEntity gun3
HideEntity gun1
HideEntity gun2
HideEntity gun4
EndIf
If gun_select=4 And gun4_show=1 And gun4_pickup=1 Then
ShowEntity gun4
HideEntity gun1
HideEntity gun3
HideEntity gun2
EndIf
If KeyHit(2) Then gun_select=1
If KeyHit(3) Then gun_select=2
If KeyHit(4) Then gun_select=3
If KeyHit(5) Then gun_select=4
If MouseHit(3) Then gun_select=4
If KeyHit(15)
If gun1_show=0 And gun2_show=0 And gun3_show=0 And gun4_show=0
gun1_show=1
gun2_show=1
gun3_show=1
gun4_show=1
Else
gun1_show=0
gun2_show=0
gun3_show=0
gun4_show=0
EndIf
EndIf
If gun1_pickup=0
HideEntity gun1
EndIf
If gun2_pickup=0
HideEntity gun2
EndIf
If gun3_pickup=0
HideEntity gun3
EndIf
If gun4_pickup=0
HideEntity gun4
EndIf
If gun1_show=0
HideEntity gun1
EndIf
If gun2_show=0
HideEntity gun2
EndIf
If gun3_show=0
HideEntity gun3
EndIf
If show_cr2=1 And gun_select=3
HideEntity gun3
EndIf
If gun4_show=0
HideEntity gun4
EndIf
End Function
Сразу говорю код не тестил может даже что то упустил!
Кому не лень пользуйтесь!))))
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо Genius за это полезное сообщение:
|
|
20.01.2008, 19:11
|
#2
|
scientist.alien
Регистрация: 12.02.2007
Сообщений: 2,098
Написано 1,030 полезных сообщений (для 2,593 пользователей)
|
Ответ: Смена Weapon"нов
Как всегда, возжигаешь:
А не проще ли было бы некоторые данные (pickup, show, patron) внести в массив? ;-)
P.S.
(для тех, кто не понял моего ч0рного юмора: движок С.Т.А.Л.К.Е.Р.а носит название XRay Engine)
__________________
Public service announcement: вы можете заблокировать отображение сообщений определённого пользователя, добавив его ник в список игнорируемых.
Tau lab. We LOVE you. We MADE you.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
20.01.2008, 19:16
|
#3
|
Знающий
Регистрация: 02.11.2007
Сообщений: 255
Написано 27 полезных сообщений (для 43 пользователей)
|
Re: Ответ: Смена Weapon"нов
А не проще ли было бы некоторые данные (pickup, show, patron) внести в массив? ;-)
P.S.
(для тех, кто не понял моего ч0рного юмора: движок С.Т.А.Л.К.Е.Р.а носит название XRay Engine)
[/quote]
НУ каму как!
|
(Offline)
|
|
20.01.2008, 19:23
|
#4
|
|
Ответ: Смена Weapon"нов
оооооййййй, ... очень очень плохой код имхо
|
|
|
20.01.2008, 19:30
|
#5
|
Знающий
Регистрация: 02.11.2007
Сообщений: 255
Написано 27 полезных сообщений (для 43 пользователей)
|
Re: Смена Weapon"нов
Да я знаю что плохой)))) еслиб он был хороший яб не выкладывал его!Вообще я ща пищу новый код оружия который реал тайм работает тоесть код я написал - вот и всё в папке cfg\weapons\ создал файл cfg.ini хотя сделаю что он сам создовался и там в этой же папке создал файл ak47.ini в этом файле создал все даные о вепоне ак47 тоесть модель инфу сокок потрон мощь и т.д и в файле cfg.ini инклужу ak47.ini вот и всё игра сама считывает данные а саму вепону добовлять игроку через квест или купить у продовца!
|
(Offline)
|
|
20.01.2008, 19:32
|
#6
|
Гигант индустрии
Регистрация: 04.08.2006
Сообщений: 2,642
Написано 53 полезных сообщений (для 92 пользователей)
|
Ответ: Смена Weapon"нов
А нах галимый код выкладывать со словами "вот вам люди. пользуйтесь" ? Человек неопытный может подумать, что этот код нормальный и заюзает его...
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
20.01.2008, 19:33
|
#7
|
Знающий
Регистрация: 02.11.2007
Сообщений: 255
Написано 27 полезных сообщений (для 43 пользователей)
|
Re: Смена Weapon"нов
Ну воопервы человеку не опытныму это подайдет так как этот код рабочий!
|
(Offline)
|
|
20.01.2008, 19:39
|
#8
|
|
Ответ: Смена Weapon"нов
Код называецца "смерть перфомансу"!
|
|
|
20.01.2008, 19:40
|
#9
|
Гигант индустрии
Регистрация: 04.08.2006
Сообщений: 2,642
Написано 53 полезных сообщений (для 92 пользователей)
|
Ответ: Смена Weapon"нов
Да нафиг! 300 строк для смены оружия...
Ну воопервы человеку не опытныму это подайдет так как этот код рабочий!
|
Сразу говорю код не тестил может даже что то упустил!
|
|
(Offline)
|
|
20.01.2008, 19:47
|
#10
|
Знающий
Регистрация: 02.11.2007
Сообщений: 255
Написано 27 полезных сообщений (для 43 пользователей)
|
Re: Ответ: Смена Weapon"нов
Сообщение от Raiter
Да нафиг! 300 строк для смены оружия...
|
Я его протестил уже!Всё работает только надо модельки с анимацией и ini.bb
|
(Offline)
|
|
20.01.2008, 20:24
|
#11
|
Нуждающийся
Регистрация: 17.05.2006
Сообщений: 72
Написано 2 полезных сообщений (для 4 пользователей)
|
Ответ: Смена Weapon"нов
ЖЖошь. Типы умеещь использовать?
Const MAX_WEAPONS=10
Dim Weapons.TWeapon(MAX_WEAPONS)
Type TWeapon
End Type
Type TWeaponPickup
End Type
Type TWeaponAmmoPickup
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
20.01.2008, 20:38
|
#12
|
Знающий
Регистрация: 09.11.2006
Сообщений: 256
Написано 2 полезных сообщений (для 2 пользователей)
|
Ответ: Смена Weapon"нов
я так понял он решил похвастаться но как сказали что это не код,а хз что то сразу оправдываться типа я знаю.
а зачем вопще писать плохой и сложный код?
|
(Offline)
|
|
20.01.2008, 20:59
|
#13
|
Мастер
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений (для 252 пользователей)
|
Ответ: Смена Weapon"нов
Чего до___лись до человека? Пишет как умеет, делится кодом. Я заметил странную тенденцию нападать на неопытных, обсерать их и унижать на этом форуме. А про типы знают не все. Начинающие уж точно- не знают. Раз уж такие умные напишите в теме свои менеджеры оружия. А мы посмотрим. Да и человек чему-нибудь понаучится.
|
(Offline)
|
|
20.01.2008, 21:54
|
#14
|
Нуждающийся
Регистрация: 17.05.2006
Сообщений: 72
Написано 2 полезных сообщений (для 4 пользователей)
|
Ответ: Смена Weapon"нов
Сообщение от dimanche13
Чего до___лись до человека? Пишет как умеет, делится кодом. Я заметил странную тенденцию нападать на неопытных, обсерать их и унижать на этом форуме. А про типы знают не все. Начинающие уж точно- не знают. Раз уж такие умные напишите в теме свои менеджеры оружия. А мы посмотрим. Да и человек чему-нибудь понаучится.
|
Его никто не унижает и не обсирает. Просто зачем забивать форум ненужными кодами которые все равно никто не будет использовать? И лучше бы он этот код выложил на своём сайте(а он у него 100% есть) а сайт поставил в подпись.
|
(Offline)
|
|
20.01.2008, 21:55
|
#15
|
Знающий
Регистрация: 02.11.2007
Сообщений: 255
Написано 27 полезных сообщений (для 43 пользователей)
|
Re: Ответ: Смена Weapon"нов
Сообщение от dimanche13
Чего до___лись до человека? Пишет как умеет, делится кодом. Я заметил странную тенденцию нападать на неопытных, обсерать их и унижать на этом форуме. А про типы знают не все. Начинающие уж точно- не знают. Раз уж такие умные напишите в теме свои менеджеры оружия. А мы посмотрим. Да и человек чему-нибудь понаучится.
|
СПАСИБА)!
Да и правда раз вы такие крутые покажите на что способны!
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 19:48.
|