Project - Desert (w.t.)
Es geht vorran ...

Hallo...
ist ja doch schon länger her mit dem letzten Eintrag ...
hab irgendwie nie zeit dafür gefunden, aber es wurde munter weitergearbeitet,
zumindest soviel wie es meine zeit zuließ
Ich habe einige Dinge geändert und überarbeitet, zb :
- Fonts hinzugefügt
- Das HUD ist erstmal fertig
- LUA ist vollständig integriert (Menüs, Waffen ... zb. werden damit geregelt)
- 3 Waffen integriert, mit Animationen
- Das Animationssystem muss noch überarbeitet werden
- Dann sind Tonnen an Kleinigkeiten entfernt, und hinzugekommen, die mir die Arbeit erleichtern sollen
- Ein Waypoint System ist erstellt, allerdings fehlt noch das wesentliche (es fehlt mir da noch eine
Idee, wie ich die Richtung im HUD anzeigen soll, falls ihr vorschläge habt immer her damit ^^)
- Der Editor wird nicht weiterentwickelt da der neue Leadwerks Editor alles kann was ich benötige
und alles andere kann man per LUA Script selbst einfügen
Wen es interessiert -> Waffe P90 :
Code: [AUSKLAPPEN]
so und zum Schluss noch ein paar Bilder, nichts bewegendes aber immerhin etwas ^^
Auf dem letzten sieht man noch das message System.
sooo das war es auch schon wieder, bis zum nächsten mal
ist ja doch schon länger her mit dem letzten Eintrag ...

hab irgendwie nie zeit dafür gefunden, aber es wurde munter weitergearbeitet,
zumindest soviel wie es meine zeit zuließ

Ich habe einige Dinge geändert und überarbeitet, zb :
- Fonts hinzugefügt
- Das HUD ist erstmal fertig
- LUA ist vollständig integriert (Menüs, Waffen ... zb. werden damit geregelt)
- 3 Waffen integriert, mit Animationen
- Das Animationssystem muss noch überarbeitet werden
- Dann sind Tonnen an Kleinigkeiten entfernt, und hinzugekommen, die mir die Arbeit erleichtern sollen
- Ein Waypoint System ist erstellt, allerdings fehlt noch das wesentliche (es fehlt mir da noch eine
Idee, wie ich die Richtung im HUD anzeigen soll, falls ihr vorschläge habt immer her damit ^^)
- Der Editor wird nicht weiterentwickelt da der neue Leadwerks Editor alles kann was ich benötige
und alles andere kann man per LUA Script selbst einfügen
Wen es interessiert -> Waffe P90 :
Code: [AUSKLAPPEN]
------------------------------------------------------------
-- Sunfall Weapon script
-- Creator : eXodius
-- Date : 30.09.09
------------------------------------------------------------
-- Imports
Import("abstract::keycodes.lua")
Import("abstract::const.lua")
-- Locals
local _DoReload = 0
local _Reload = false
local _ReloadTimer = 0
local _AnimOld = 0
local _AnimSpeed = 0.5
local _AnimTrans = 0.5
-- Functions
function weapon_init(_hWeapon)
-- Set weapon infos
_hWeapon._hItem_Name = 'P90'
-- Load the model file
if (_hWeapon:SetGunModels("abstract::weapon_p90.gmf","abstract::hand_p90.gmf") == 1) then
-- Positioning weapon
_hWeapon._hWeapon_Gun:SetScalef(0.015, 0.015, 0.015)
_hWeapon._hWeapon_Gun:SetRotationf(40.0, 0.0, 0.0)
_hWeapon._hWeapon_Gun:SetPositionf(0.16, -0.23, -0.008) --0.09,-0.22,0.12
-- Register animations
_hWeapon._hWeapon_GunBody:RegisterAnimSequence(0.0, 29.0, 1.0, WEP_ANIM_SELECT, "")
_hWeapon._hWeapon_GunBody:RegisterAnimSequence(30.0, 54.0, 1.0, WEP_ANIM_IDLE, "")
_hWeapon._hWeapon_GunBody:RegisterAnimSequence(55.0, 69.0, 1.0, WEP_ANIM_MOVE, "")
_hWeapon._hWeapon_GunBody:RegisterAnimSequence(70.0, 75.0, 1.0, WEP_ANIM_FIRE_START, "")
_hWeapon._hWeapon_GunBody:RegisterAnimSequence(76.0, 80.0, 1.0, WEP_ANIM_FIRE_AUTO, "")
_hWeapon._hWeapon_GunBody:RegisterAnimSequence(81.0, 84.0, 1.0, WEP_ANIM_FIRE_END, "")
_hWeapon._hWeapon_GunBody:RegisterAnimSequence(85.0, 189.0, 1.0, WEP_ANIM_RELOAD, "")
_hWeapon._hWeapon_GunBody:RegisterAnimSequence(190.0, 222.0, 1.0, WEP_ANIM_COCK, "")
_hWeapon._hWeapon_GunBody:RegisterAnimSequence(223.0, 245.0, 1.0, WEP_ANIM_PUTAWAY, "")
_hWeapon._hWeapon_GunBody._hBody_Name = "GUN_P90"
else
return
end
-- Set fields
_hWeapon._hItem_Mass = 3.0 -- weight
_hWeapon._hWeapon_KeyBinding = KEY_3 -- key binding
_hWeapon._hWeapon_ArrayPos = 2
_hWeapon._hWeapon_ShootIDLE = 67
_hWeapon._hWeapon_Shoots = 50
_hWeapon._hWeapon_Magazin = 50
_hWeapon._hWeapon_Damage = 50
_hWeapon._hWeapon_AutoReload = true
_hWeapon._hWeapon_ShootDistance = 200.0 -- m
_hWeapon._hWeapon_Firespot = Vec3(0.16, -0.23, 1.0 +_hWeapon._hWeapon_ShootDistance)
-- HUD
_hWeapon:SetHUDImage("abstract::hud_p90.dds")
-- Sounds
_hWeapon._hWeapon_Sound_Fire = LoadSoundSource("abstract::p90_fire.ogg",SOUND_TYPE_EFFECT)
_hWeapon._hWeapon_Sound_Reload = LoadSoundSource("abstract::p90_reload.ogg", SOUND_TYPE_EFFECT)
_hWeapon._hWeapon_Sound_Dryfire = LoadSoundSource("abstract::p90_dryfire.ogg", SOUND_TYPE_EFFECT)
_hWeapon._hWeapon_Sound_Putaway = LoadSoundSource("abstract::p90_putaway.ogg", SOUND_TYPE_EFFECT)
_hWeapon._hWeapon_Sound_Retrieve = LoadSoundSource("abstract::p90_retrieve.ogg", SOUND_TYPE_EFFECT)
_hWeapon._hWeapon_Sound_Zoom = LoadSoundSource("abstract::p90_zoom.ogg", SOUND_TYPE_EFFECT)
-- Set locals
_hWeapon._hWeapon_Position = _hWeapon._hWeapon_Gun.position
-- Return
return
end
function weapon_set(_hWeapon)
-- the player have collected the same weapon now set the ammo to his weapon
_hWeapon._hWeapon_Magazin = _hWeapon._hWeapon_Magazin + 50
end
function weapon_update(_hWeapon, _hPlayer)
-- Walk
if (_hPlayer._hPlayer_Move ~= 0 or _hPlayer._hPlayer_Strafe ~= 0) then
if (_hPlayer._hPlayer_RunMode == 1) then
_hWeapon._hWeapon_CurrentAnimation = WEP_ANIM_MOVE
_AnimSpeed = 1.0
else
_hWeapon._hWeapon_CurrentAnimation = WEP_ANIM_MOVE
_AnimSpeed = 0.5
end
else
_hWeapon._hWeapon_CurrentAnimation = WEP_ANIM_IDLE
_AnimSpeed = 0.5
end
-- Reload
if (KeyHit(KEY_R) == 1 and _hWeapon._hWeapon_Magazin>0) then
_ReloadTimer = Millisecs()
_DoReload = 1
end
-- Shoot & Reload
if (MouseDown(MOUSE_LEFT)==1 and _DoReload == 0) then
-- Do reload animation
if (_hWeapon._hWeapon_Shoots>=1) then
_hWeapon:Shoot()
elseif (_hWeapon._hWeapon_Shoots==0 and _hWeapon._hWeapon_AutoReload == 1 and _hWeapon._hWeapon_Magazin>0) then
_ReloadTimer = Millisecs()
_DoReload = 1
elseif (_hWeapon._hWeapon_Shoots==0 and _hWeapon._hWeapon_Magazin==0) then
if (_hWeapon._hWeapon_Sound_Dryfire~=nil and _hWeapon._hWeapon_Sound_Dryfire:Playing() == 0) then
_hWeapon._hWeapon_Sound_Dryfire:Play()
end
end
elseif (_DoReload==1) then
if (_hWeapon._hWeapon_Sound_Reload~=nil) then
_hWeapon._hWeapon_Sound_Reload:Play()
end
_hWeapon._hWeapon_CurrentAnimation = WEP_ANIM_RELOAD
_AnimTrans = 1.0
_AnimSpeed = 0.4
if (Millisecs()-_ReloadTimer > _hWeapon._hWeapon_ReloadTime) then
_Reload = true
_DoReload=2
end
end
-- Reload
if (_Reload==true and _DoReload==2) then
if (_hWeapon._hWeapon_Magazin > _hWeapon._hWeapon_Shoots_Max) then
_hWeapon._hWeapon_Magazin = _hWeapon._hWeapon_Magazin - (_hWeapon._hWeapon_Shoots_Max-_hWeapon._hWeapon_Shoots)
_hWeapon._hWeapon_Shoots = _hWeapon._hWeapon_Shoots+(_hWeapon._hWeapon_Shoots_Max-_hWeapon._hWeapon_Shoots)
else
_hWeapon._hWeapon_Shoots = _hWeapon._hWeapon_Magazin
_hWeapon._hWeapon_Magazin = 0
end
_Reload = false
_DoReload = 0
end
-- Zoom
if (MouseDown(MOUSE_RIGHT)==1) then
if (_hWeapon._hWeapon_Sound_Zoom~=nil and _hWeapon._hWeapon_Zoom == false)then
_hWeapon._hWeapon_Sound_Zoom:Play()
end
_hWeapon._hWeapon_Zoom = true
else
_hWeapon._hWeapon_Zoom = false
end
-- Update Anims
if (_hWeapon._hWeapon_CurrentAnimation ~= _AnimOld) then
_hWeapon:StopAnim(_AnimOld,1.0)
_hWeapon:AnimateWeapon(_hWeapon._hWeapon_CurrentAnimation,0, _AnimTrans, _AnimSpeed)
_AnimOld = _hWeapon._hWeapon_CurrentAnimation
end
-- Return
return
end
-- Sunfall Weapon script
-- Creator : eXodius
-- Date : 30.09.09
------------------------------------------------------------
-- Imports
Import("abstract::keycodes.lua")
Import("abstract::const.lua")
-- Locals
local _DoReload = 0
local _Reload = false
local _ReloadTimer = 0
local _AnimOld = 0
local _AnimSpeed = 0.5
local _AnimTrans = 0.5
-- Functions
function weapon_init(_hWeapon)
-- Set weapon infos
_hWeapon._hItem_Name = 'P90'
-- Load the model file
if (_hWeapon:SetGunModels("abstract::weapon_p90.gmf","abstract::hand_p90.gmf") == 1) then
-- Positioning weapon
_hWeapon._hWeapon_Gun:SetScalef(0.015, 0.015, 0.015)
_hWeapon._hWeapon_Gun:SetRotationf(40.0, 0.0, 0.0)
_hWeapon._hWeapon_Gun:SetPositionf(0.16, -0.23, -0.008) --0.09,-0.22,0.12
-- Register animations
_hWeapon._hWeapon_GunBody:RegisterAnimSequence(0.0, 29.0, 1.0, WEP_ANIM_SELECT, "")
_hWeapon._hWeapon_GunBody:RegisterAnimSequence(30.0, 54.0, 1.0, WEP_ANIM_IDLE, "")
_hWeapon._hWeapon_GunBody:RegisterAnimSequence(55.0, 69.0, 1.0, WEP_ANIM_MOVE, "")
_hWeapon._hWeapon_GunBody:RegisterAnimSequence(70.0, 75.0, 1.0, WEP_ANIM_FIRE_START, "")
_hWeapon._hWeapon_GunBody:RegisterAnimSequence(76.0, 80.0, 1.0, WEP_ANIM_FIRE_AUTO, "")
_hWeapon._hWeapon_GunBody:RegisterAnimSequence(81.0, 84.0, 1.0, WEP_ANIM_FIRE_END, "")
_hWeapon._hWeapon_GunBody:RegisterAnimSequence(85.0, 189.0, 1.0, WEP_ANIM_RELOAD, "")
_hWeapon._hWeapon_GunBody:RegisterAnimSequence(190.0, 222.0, 1.0, WEP_ANIM_COCK, "")
_hWeapon._hWeapon_GunBody:RegisterAnimSequence(223.0, 245.0, 1.0, WEP_ANIM_PUTAWAY, "")
_hWeapon._hWeapon_GunBody._hBody_Name = "GUN_P90"
else
return
end
-- Set fields
_hWeapon._hItem_Mass = 3.0 -- weight
_hWeapon._hWeapon_KeyBinding = KEY_3 -- key binding
_hWeapon._hWeapon_ArrayPos = 2
_hWeapon._hWeapon_ShootIDLE = 67
_hWeapon._hWeapon_Shoots = 50
_hWeapon._hWeapon_Magazin = 50
_hWeapon._hWeapon_Damage = 50
_hWeapon._hWeapon_AutoReload = true
_hWeapon._hWeapon_ShootDistance = 200.0 -- m
_hWeapon._hWeapon_Firespot = Vec3(0.16, -0.23, 1.0 +_hWeapon._hWeapon_ShootDistance)
-- HUD
_hWeapon:SetHUDImage("abstract::hud_p90.dds")
-- Sounds
_hWeapon._hWeapon_Sound_Fire = LoadSoundSource("abstract::p90_fire.ogg",SOUND_TYPE_EFFECT)
_hWeapon._hWeapon_Sound_Reload = LoadSoundSource("abstract::p90_reload.ogg", SOUND_TYPE_EFFECT)
_hWeapon._hWeapon_Sound_Dryfire = LoadSoundSource("abstract::p90_dryfire.ogg", SOUND_TYPE_EFFECT)
_hWeapon._hWeapon_Sound_Putaway = LoadSoundSource("abstract::p90_putaway.ogg", SOUND_TYPE_EFFECT)
_hWeapon._hWeapon_Sound_Retrieve = LoadSoundSource("abstract::p90_retrieve.ogg", SOUND_TYPE_EFFECT)
_hWeapon._hWeapon_Sound_Zoom = LoadSoundSource("abstract::p90_zoom.ogg", SOUND_TYPE_EFFECT)
-- Set locals
_hWeapon._hWeapon_Position = _hWeapon._hWeapon_Gun.position
-- Return
return
end
function weapon_set(_hWeapon)
-- the player have collected the same weapon now set the ammo to his weapon
_hWeapon._hWeapon_Magazin = _hWeapon._hWeapon_Magazin + 50
end
function weapon_update(_hWeapon, _hPlayer)
-- Walk
if (_hPlayer._hPlayer_Move ~= 0 or _hPlayer._hPlayer_Strafe ~= 0) then
if (_hPlayer._hPlayer_RunMode == 1) then
_hWeapon._hWeapon_CurrentAnimation = WEP_ANIM_MOVE
_AnimSpeed = 1.0
else
_hWeapon._hWeapon_CurrentAnimation = WEP_ANIM_MOVE
_AnimSpeed = 0.5
end
else
_hWeapon._hWeapon_CurrentAnimation = WEP_ANIM_IDLE
_AnimSpeed = 0.5
end
-- Reload
if (KeyHit(KEY_R) == 1 and _hWeapon._hWeapon_Magazin>0) then
_ReloadTimer = Millisecs()
_DoReload = 1
end
-- Shoot & Reload
if (MouseDown(MOUSE_LEFT)==1 and _DoReload == 0) then
-- Do reload animation
if (_hWeapon._hWeapon_Shoots>=1) then
_hWeapon:Shoot()
elseif (_hWeapon._hWeapon_Shoots==0 and _hWeapon._hWeapon_AutoReload == 1 and _hWeapon._hWeapon_Magazin>0) then
_ReloadTimer = Millisecs()
_DoReload = 1
elseif (_hWeapon._hWeapon_Shoots==0 and _hWeapon._hWeapon_Magazin==0) then
if (_hWeapon._hWeapon_Sound_Dryfire~=nil and _hWeapon._hWeapon_Sound_Dryfire:Playing() == 0) then
_hWeapon._hWeapon_Sound_Dryfire:Play()
end
end
elseif (_DoReload==1) then
if (_hWeapon._hWeapon_Sound_Reload~=nil) then
_hWeapon._hWeapon_Sound_Reload:Play()
end
_hWeapon._hWeapon_CurrentAnimation = WEP_ANIM_RELOAD
_AnimTrans = 1.0
_AnimSpeed = 0.4
if (Millisecs()-_ReloadTimer > _hWeapon._hWeapon_ReloadTime) then
_Reload = true
_DoReload=2
end
end
-- Reload
if (_Reload==true and _DoReload==2) then
if (_hWeapon._hWeapon_Magazin > _hWeapon._hWeapon_Shoots_Max) then
_hWeapon._hWeapon_Magazin = _hWeapon._hWeapon_Magazin - (_hWeapon._hWeapon_Shoots_Max-_hWeapon._hWeapon_Shoots)
_hWeapon._hWeapon_Shoots = _hWeapon._hWeapon_Shoots+(_hWeapon._hWeapon_Shoots_Max-_hWeapon._hWeapon_Shoots)
else
_hWeapon._hWeapon_Shoots = _hWeapon._hWeapon_Magazin
_hWeapon._hWeapon_Magazin = 0
end
_Reload = false
_DoReload = 0
end
-- Zoom
if (MouseDown(MOUSE_RIGHT)==1) then
if (_hWeapon._hWeapon_Sound_Zoom~=nil and _hWeapon._hWeapon_Zoom == false)then
_hWeapon._hWeapon_Sound_Zoom:Play()
end
_hWeapon._hWeapon_Zoom = true
else
_hWeapon._hWeapon_Zoom = false
end
-- Update Anims
if (_hWeapon._hWeapon_CurrentAnimation ~= _AnimOld) then
_hWeapon:StopAnim(_AnimOld,1.0)
_hWeapon:AnimateWeapon(_hWeapon._hWeapon_CurrentAnimation,0, _AnimTrans, _AnimSpeed)
_AnimOld = _hWeapon._hWeapon_CurrentAnimation
end
-- Return
return
end
so und zum Schluss noch ein paar Bilder, nichts bewegendes aber immerhin etwas ^^





Auf dem letzten sieht man noch das message System.
sooo das war es auch schon wieder, bis zum nächsten mal
Lua ...

Hey leute...
Ich habe mich letzte Woche dazu entschlossen auf LUA umzusteigen und dieses
vorhaben sogleich umgesetzt.
Soweit so gut,, nach anfänglichen Schwierigkeiten habe ich es nun auch geschafft das alles,
außer der Editor, wie vorher lauffähig ist.
Hier einmal das neue Menu Script :
Code: [AUSKLAPPEN]
Soviel dazu, allerdings hab ich nun ja noch meine "alte Script engine" und möchte euch die zu Verfügung stellen.
Ich habe ein 'Test.bmx' beigelegt und etwas dokumentiert falls fragen auftauchen dann bitte per pm melden. Des weitern liegt eine 'Lizenz.txt' bei, die ihr euch durchlesen solltet wenn ihr die
Script engine in euren Projekten benutzen möchtet.
Download : Hier
Wenn einer von euch nen guten Webspace hoster kennt so möge er ihn mir bitte nennen, bei dem ich
gerade bin der hat Archiv Downloads gesperrt -.-
das wars für heute
Ich habe mich letzte Woche dazu entschlossen auf LUA umzusteigen und dieses
vorhaben sogleich umgesetzt.
Soweit so gut,, nach anfänglichen Schwierigkeiten habe ich es nun auch geschafft das alles,
außer der Editor, wie vorher lauffähig ist.
Hier einmal das neue Menu Script :
Code: [AUSKLAPPEN]
-- Main menu Script
-- Edited : eXodius
-- -----------------------------------------
-- Load Resources
local _img_menu_frame = LoadImage('abstract::GUI_IMAGE_Frame.dds')
local _img_btn_frame = LoadImage('abstract::GUI_IMAGE_BTN_Back.dds')
--local _img_btn_frame_over = LoadImage('abstract::GUI_IMAGE_BTN_Back_over.dds')
Import('abstract::lang.lua')
-- Locals
-- Menu frame
local hSize = {Width=300, Height=400}
local hPos = {X=(GraphicsWidth()-hSize.Width)/2, Y=(GraphicsHeight()-hSize.Height)/2}
-- Button
local _hSizeW = 200 ;_hSizeH = 35
local hPosX = (hSize.Width-_hSizeW)/2 ;hPosY = 120
-- Create Menu
local MainMenu = CreateMenu('GUI_MENU_MAIN', false)
MainMenu:SetMenuImage(_img_menu_frame)
MainMenu:SetMenuRect(NewSrcFrame():SetShape(hPos.X, hPos.Y, hSize.Width, hSize.Height))
-- Create Buttons
buttons={}
for index = 1, 5, 1 do
buttons[index]={}
buttons[index] = MainMenu:CreateButton(Lang.ger[index], NewSrcFrame():SetShape(hPosX, hPosY+(_hSizeH+2)*index, _hSizeW, _hSizeH), true)
buttons[index]:SetImageBlend(true)
buttons[index]:SetImage(_img_btn_frame)
buttons[index]:SetScript(GetCurrentScript(), "Button_Update", "Action_Exit")
end
-- Update Function
function Button_Update(_hGadget)
-- Update
if (_hGadget == nil) then
return
end
if (_hGadget._hGadget_MouseOver == 1) then
if (_hGadget._hGadget_MouseClick == 1) then
_hGadget:SetImageColor(Color(204 ,153 ,18 ,255))
else
_hGadget:SetImageColor(Color(125 ,125 ,125 ,255))
end
else
_hGadget:SetImageColor(Color(255, 255, 255, 255))
end
-- Return
return
end
-- Action function
function Action_Exit(_hGadget)
-- Do action
Terminate()
-- Return
return
end
-- Edited : eXodius
-- -----------------------------------------
-- Load Resources
local _img_menu_frame = LoadImage('abstract::GUI_IMAGE_Frame.dds')
local _img_btn_frame = LoadImage('abstract::GUI_IMAGE_BTN_Back.dds')
--local _img_btn_frame_over = LoadImage('abstract::GUI_IMAGE_BTN_Back_over.dds')
Import('abstract::lang.lua')
-- Locals
-- Menu frame
local hSize = {Width=300, Height=400}
local hPos = {X=(GraphicsWidth()-hSize.Width)/2, Y=(GraphicsHeight()-hSize.Height)/2}
-- Button
local _hSizeW = 200 ;_hSizeH = 35
local hPosX = (hSize.Width-_hSizeW)/2 ;hPosY = 120
-- Create Menu
local MainMenu = CreateMenu('GUI_MENU_MAIN', false)
MainMenu:SetMenuImage(_img_menu_frame)
MainMenu:SetMenuRect(NewSrcFrame():SetShape(hPos.X, hPos.Y, hSize.Width, hSize.Height))
-- Create Buttons
buttons={}
for index = 1, 5, 1 do
buttons[index]={}
buttons[index] = MainMenu:CreateButton(Lang.ger[index], NewSrcFrame():SetShape(hPosX, hPosY+(_hSizeH+2)*index, _hSizeW, _hSizeH), true)
buttons[index]:SetImageBlend(true)
buttons[index]:SetImage(_img_btn_frame)
buttons[index]:SetScript(GetCurrentScript(), "Button_Update", "Action_Exit")
end
-- Update Function
function Button_Update(_hGadget)
-- Update
if (_hGadget == nil) then
return
end
if (_hGadget._hGadget_MouseOver == 1) then
if (_hGadget._hGadget_MouseClick == 1) then
_hGadget:SetImageColor(Color(204 ,153 ,18 ,255))
else
_hGadget:SetImageColor(Color(125 ,125 ,125 ,255))
end
else
_hGadget:SetImageColor(Color(255, 255, 255, 255))
end
-- Return
return
end
-- Action function
function Action_Exit(_hGadget)
-- Do action
Terminate()
-- Return
return
end
Soviel dazu, allerdings hab ich nun ja noch meine "alte Script engine" und möchte euch die zu Verfügung stellen.
Ich habe ein 'Test.bmx' beigelegt und etwas dokumentiert falls fragen auftauchen dann bitte per pm melden. Des weitern liegt eine 'Lizenz.txt' bei, die ihr euch durchlesen solltet wenn ihr die
Script engine in euren Projekten benutzen möchtet.
Download : Hier
Wenn einer von euch nen guten Webspace hoster kennt so möge er ihn mir bitte nennen, bei dem ich
gerade bin der hat Archiv Downloads gesperrt -.-
das wars für heute
Editor gedeiht ^^

Hey,
habe die letzte Woche mit der arbeit am Editor verbracht ...
Im Moment kann man Objekte erstellen / löschen, ausrichten am Terrain / Grid oder frei, Farbe,
Textur, Position/Größe/Rotation ändern.
Das mit der Position/Größe/ Rotation ändern funktioniert im Moment leider nur über
Eingabe über das Sidepanel, werde das aber nächste Wochen ändern
so zum Abschluss noch ein kleines bild vom Editor [1280x777]
werde dann wenn alles geht, auch mal ein video machen ^^
Main Framework :
Files : 30
Lines : 10312
Code : 5803
habe die letzte Woche mit der arbeit am Editor verbracht ...
Im Moment kann man Objekte erstellen / löschen, ausrichten am Terrain / Grid oder frei, Farbe,
Textur, Position/Größe/Rotation ändern.
Das mit der Position/Größe/ Rotation ändern funktioniert im Moment leider nur über
Eingabe über das Sidepanel, werde das aber nächste Wochen ändern

so zum Abschluss noch ein kleines bild vom Editor [1280x777]

werde dann wenn alles geht, auch mal ein video machen ^^
Main Framework :
Files : 30
Lines : 10312
Code : 5803
World Builder ...

Guten abend ^^,
Heute möchte ich euch den Level Editor vorstellen mit dem wenn er fertig ist
das "ganze" spiel erstellt wird dh.(Objekte setzen, Musik einem bereich zuweisen, Waypoints für ki setzen,
lichter positionieren, Script Event trigger erstellen, und noch viel mehr)
Aber erstmal ein Update :
- Käfer in der Script engine verjagt, hoffe das waren die letzten -.-
- Console neu geschrieben
- Dynamischen himmel eingefügt, es werden 2 Dateiene benötigt
eine für die obere Farbe und eine für unten, im Moment verwende ich ein Würfel später soll eine
Halbkugel benutzt werden.
- Viele kleine Bugs beseitig im Main Framework
- Man kann das ingame Menü per Script erstellen bsp :
Code: [AUSKLAPPEN]
Das sieht dann folgendermaßen aus [1278x718]:
und zum Schluss noch der Editor in der jetzigen Version [1680x1050] :
(Die Versionsnummer im Titel ist nicht ganz richtig der ist wahrscheinlich erst 0.1 oder so ^^)
So das wars erstmal ... naja fast
Main Framework :
Files : 30
Lines : 10334
Code : 5799
Heute möchte ich euch den Level Editor vorstellen mit dem wenn er fertig ist
das "ganze" spiel erstellt wird dh.(Objekte setzen, Musik einem bereich zuweisen, Waypoints für ki setzen,
lichter positionieren, Script Event trigger erstellen, und noch viel mehr)
Aber erstmal ein Update :
- Käfer in der Script engine verjagt, hoffe das waren die letzten -.-
- Console neu geschrieben
- Dynamischen himmel eingefügt, es werden 2 Dateiene benötigt
eine für die obere Farbe und eine für unten, im Moment verwende ich ein Würfel später soll eine
Halbkugel benutzt werden.
- Viele kleine Bugs beseitig im Main Framework
- Man kann das ingame Menü per Script erstellen bsp :
Code: [AUSKLAPPEN]
// Main menu script
// Edited : eXodius
// -----------------------------------------
// Define Fucntions
define Button_Update;
define Action_Exit;
// Locals
private flt hPosY = 120;
// Create Menu
private obj MainMenu = CreateMenu("GUI_MENU_MAIN", false);
SetMenuImage(MainMenu, GUI_Menu_Frame);
SetMenuFrame(MainMenu, Frame(515, 235, 250, 250));
// Create Button : New Game
private obj MainMenu_Button_NG = AddButton(MainMenu, "Neues Spiel", Frame(40, hPosY, 170, 21), true);
SetGadgetFunctions(MainMenu_Button_NG, *Button_Update, *Action_Exit);
SetGadgetImage(MainMenu_Button_NG, GUI_Button_Image);
hPosY:++25;
/// Create Button : Load Game
private obj MainMenu_Button_LG = AddButton(MainMenu, "Spiel Laden", Frame(40, hPosY, 170, 21), true);
SetGadgetFunctions(MainMenu_Button_LG, *Button_Update, *Action_Exit);
SetGadgetImage(MainMenu_Button_LG, GUI_Button_Image);
hPosY:++25;
// Create Button : Settings
private obj MainMenu_Button_ST = AddButton(MainMenu, "Einstellungen", Frame(40, hPosY, 170, 21), true);
SetGadgetFunctions(MainMenu_Button_ST, *Button_Update, *Action_Exit);
SetGadgetImage(MainMenu_Button_ST, GUI_Button_Image);
hPosY:++25;
// Create Button : Settings
private obj MainMenu_Button_CR = AddButton(MainMenu, "Credits", Frame(40, hPosY, 170, 21), true);
SetGadgetFunctions(MainMenu_Button_CR, *Button_Update, *Action_Exit);
SetGadgetImage(MainMenu_Button_CR, GUI_Button_Image);
hPosY:++25;
// Create Button : Exit
private obj MainMenu_Button_Exit = AddButton(MainMenu, "Beenden", Frame(40, hPosY, 170, 21), true);
SetGadgetFunctions(MainMenu_Button_Exit, *Button_Update, *Action_Exit);
SetGadgetImage(MainMenu_Button_Exit, GUI_Button_Image);
// Update Function
private Function Button_Update(obj _hGadget, flt _hClick, flt _hOver)
// Update
if (_hOver==1)
if (_hClick==true)
SetGadgetColor(_hGadget, 65, 65, 65, 255);
setGadgetTextColor(_hGadget, 175, 175,175, 255);
else
SetGadgetColor(_hGadget, 200, 200, 200, 255);
setGadgetTextColor(_hGadget, 0, 0, 0, 255);
endif
else
setGadgetTextColor(_hGadget, 65, 65, 65, 255);
SetGadgetColor(_hGadget, 255, 255, 255, 255);
endif
EndFunction
// Action function
private Function Action_Exit(obj _hGadget)
// Do action
Terminate();
endfunction
// Edited : eXodius
// -----------------------------------------
// Define Fucntions
define Button_Update;
define Action_Exit;
// Locals
private flt hPosY = 120;
// Create Menu
private obj MainMenu = CreateMenu("GUI_MENU_MAIN", false);
SetMenuImage(MainMenu, GUI_Menu_Frame);
SetMenuFrame(MainMenu, Frame(515, 235, 250, 250));
// Create Button : New Game
private obj MainMenu_Button_NG = AddButton(MainMenu, "Neues Spiel", Frame(40, hPosY, 170, 21), true);
SetGadgetFunctions(MainMenu_Button_NG, *Button_Update, *Action_Exit);
SetGadgetImage(MainMenu_Button_NG, GUI_Button_Image);
hPosY:++25;
/// Create Button : Load Game
private obj MainMenu_Button_LG = AddButton(MainMenu, "Spiel Laden", Frame(40, hPosY, 170, 21), true);
SetGadgetFunctions(MainMenu_Button_LG, *Button_Update, *Action_Exit);
SetGadgetImage(MainMenu_Button_LG, GUI_Button_Image);
hPosY:++25;
// Create Button : Settings
private obj MainMenu_Button_ST = AddButton(MainMenu, "Einstellungen", Frame(40, hPosY, 170, 21), true);
SetGadgetFunctions(MainMenu_Button_ST, *Button_Update, *Action_Exit);
SetGadgetImage(MainMenu_Button_ST, GUI_Button_Image);
hPosY:++25;
// Create Button : Settings
private obj MainMenu_Button_CR = AddButton(MainMenu, "Credits", Frame(40, hPosY, 170, 21), true);
SetGadgetFunctions(MainMenu_Button_CR, *Button_Update, *Action_Exit);
SetGadgetImage(MainMenu_Button_CR, GUI_Button_Image);
hPosY:++25;
// Create Button : Exit
private obj MainMenu_Button_Exit = AddButton(MainMenu, "Beenden", Frame(40, hPosY, 170, 21), true);
SetGadgetFunctions(MainMenu_Button_Exit, *Button_Update, *Action_Exit);
SetGadgetImage(MainMenu_Button_Exit, GUI_Button_Image);
// Update Function
private Function Button_Update(obj _hGadget, flt _hClick, flt _hOver)
// Update
if (_hOver==1)
if (_hClick==true)
SetGadgetColor(_hGadget, 65, 65, 65, 255);
setGadgetTextColor(_hGadget, 175, 175,175, 255);
else
SetGadgetColor(_hGadget, 200, 200, 200, 255);
setGadgetTextColor(_hGadget, 0, 0, 0, 255);
endif
else
setGadgetTextColor(_hGadget, 65, 65, 65, 255);
SetGadgetColor(_hGadget, 255, 255, 255, 255);
endif
EndFunction
// Action function
private Function Action_Exit(obj _hGadget)
// Do action
Terminate();
endfunction
Das sieht dann folgendermaßen aus [1278x718]:

und zum Schluss noch der Editor in der jetzigen Version [1680x1050] :

(Die Versionsnummer im Titel ist nicht ganz richtig der ist wahrscheinlich erst 0.1 oder so ^^)
So das wars erstmal ... naja fast
Main Framework :
Files : 30
Lines : 10334
Code : 5799
Es gibt neues zu berichten !

Hallo,
nachdem ich mich schon wirklich lange mit keinen interessanten nachrichten gemeldet habe
nun etwas neues...und vllt ein wenig interessanter ^^
Ich arbeitet schon seit 4 Wochen an dem Projekt weiter, habe in der zeit viele Bugs behoben
der Script engine neue Fähigkeiten eingehaucht und auch einen Animation Editor geschrieben.
Desweiteren habe ich mit dem Game Editor angefangen, Nun aber Details :
Main Framework :
- Viele Bugs behoben
- Grundgerüst bereinigt
- Vorbereitungen für die MT Unterstützung
Script Engine :
- 2 Bugs behoben ( wegen Tippfehler -.-)
- Funktion und Variablen Pointer hinzugefügt
Code: [AUSKLAPPEN]
Body Loader :
- Neu hinzugefügte Klasse, Beinhaltet Laderoutine und alle Informationen für Animationen
man kann zb. eine Animation so aufrufen : tMyBody.Animate("WALK",hLoopMode), Bodys werden
mithilfe von Scripts geladen, in diesen werden auch die Animationen definiert.
Code: [AUSKLAPPEN]
So ab heute gibt es einen kleinen Framework überblick
Files : 29
Lines : 9550
Code : 5302 (ohne Kommentare und Leere zeilen)
und zum Abschluss 2 bilderchen
Der Hauptcharakter des Spiels
Der Bodyeditor
so mehr heut nicht
nachdem ich mich schon wirklich lange mit keinen interessanten nachrichten gemeldet habe
nun etwas neues...und vllt ein wenig interessanter ^^
Ich arbeitet schon seit 4 Wochen an dem Projekt weiter, habe in der zeit viele Bugs behoben
der Script engine neue Fähigkeiten eingehaucht und auch einen Animation Editor geschrieben.
Desweiteren habe ich mit dem Game Editor angefangen, Nun aber Details :
Main Framework :
- Viele Bugs behoben
- Grundgerüst bereinigt
- Vorbereitungen für die MT Unterstützung
Script Engine :
- 2 Bugs behoben ( wegen Tippfehler -.-)
- Funktion und Variablen Pointer hinzugefügt
Code: [AUSKLAPPEN]
// ------------------------------
// Test function pointer
private ptr FuncPtr = *Print;
private chr Var = "bla";
private ptr VarPtr = *Var;
// ------------------------------
// Aufrufen von allen
&VarPtr = "Hello from Pointer !";
&FuncPtr("Pointer: " + &VarPtr);
Print(Var);
// Test function pointer
private ptr FuncPtr = *Print;
private chr Var = "bla";
private ptr VarPtr = *Var;
// ------------------------------
// Aufrufen von allen
&VarPtr = "Hello from Pointer !";
&FuncPtr("Pointer: " + &VarPtr);
Print(Var);
Body Loader :
- Neu hinzugefügte Klasse, Beinhaltet Laderoutine und alle Informationen für Animationen
man kann zb. eine Animation so aufrufen : tMyBody.Animate("WALK",hLoopMode), Bodys werden
mithilfe von Scripts geladen, in diesen werden auch die Animationen definiert.
Code: [AUSKLAPPEN]
// Bodyscript createt with BodyEditor
// Date : 04 Jun 2009
// Time : 16:04:16
// --------------------------------------------------------
private Function _InitBody(Object _hBody)
// Set body model
SetBodyModel(_hBody, "Abstract::char_body.gmf");
SetBodyRotation(_hBody, vec3(0.0, 180.0, 0.0));
// Create Animations
RegisterAnimation(_hBody, ANIM_STAND, 0.000000000, 1.000000000, 1, "");
RegisterAnimation(_hBody, ANIM_IDLE, 0.000000000, 400.000000, 1, "");
RegisterAnimation(_hBody, ANIM_WALK, 401.000000, 441.000000, 1, "");
RegisterAnimation(_hBody, ANIM_HURT, 442.000000, 481.000000, 1, "");
// Return
Return ;
EndFunction
// --------------------------------------------------------
// Date : 04 Jun 2009
// Time : 16:04:16
// --------------------------------------------------------
private Function _InitBody(Object _hBody)
// Set body model
SetBodyModel(_hBody, "Abstract::char_body.gmf");
SetBodyRotation(_hBody, vec3(0.0, 180.0, 0.0));
// Create Animations
RegisterAnimation(_hBody, ANIM_STAND, 0.000000000, 1.000000000, 1, "");
RegisterAnimation(_hBody, ANIM_IDLE, 0.000000000, 400.000000, 1, "");
RegisterAnimation(_hBody, ANIM_WALK, 401.000000, 441.000000, 1, "");
RegisterAnimation(_hBody, ANIM_HURT, 442.000000, 481.000000, 1, "");
// Return
Return ;
EndFunction
// --------------------------------------------------------
So ab heute gibt es einen kleinen Framework überblick
Files : 29
Lines : 9550
Code : 5302 (ohne Kommentare und Leere zeilen)
und zum Abschluss 2 bilderchen


so mehr heut nicht
Mal was anderes ...

liebe Leser, heute gibt es noch nichts neues vom Projekt.
ich musste mich vorgestern mal bissel ablenken und hab ein Internetradio Player
programmiert für mein Lieblingssender www.Technobase.fm.
Es fehlen zwar noch einige dinge aber ich mach da immer mal weiter wenn ich lust habe ^^.
Bild :
Zur Bedienung : In dem Fenster sind oben 5 Buttons mit den man die sender umstellen kann.
Darunter steht der Name und die Musikrichtungen die auf dem sender gespielt werden.
Es werden im Moment noch keinerlei Fehlermeldungen ausgegeben, wenn der Player einfach abstützt
nachdem ihr ihn gestartet habt oder auf ein anderes Sender Symbol geklickt habt, ist der sender wahrscheinlich nicht verfügbar oder ihr habt keine Verbindung zum Internet...
Feedback ist erwünscht & have fun
Download :
Hier
ps.: die Bilder von meinem Projekt sind wegen eines webspace Umzuges erstmal offline,
es kommen aber bald neue.
stay tuned
ich musste mich vorgestern mal bissel ablenken und hab ein Internetradio Player
programmiert für mein Lieblingssender www.Technobase.fm.
Es fehlen zwar noch einige dinge aber ich mach da immer mal weiter wenn ich lust habe ^^.
Bild :

Zur Bedienung : In dem Fenster sind oben 5 Buttons mit den man die sender umstellen kann.
Darunter steht der Name und die Musikrichtungen die auf dem sender gespielt werden.
Es werden im Moment noch keinerlei Fehlermeldungen ausgegeben, wenn der Player einfach abstützt
nachdem ihr ihn gestartet habt oder auf ein anderes Sender Symbol geklickt habt, ist der sender wahrscheinlich nicht verfügbar oder ihr habt keine Verbindung zum Internet...
Feedback ist erwünscht & have fun
Download :
Hier
ps.: die Bilder von meinem Projekt sind wegen eines webspace Umzuges erstmal offline,
es kommen aber bald neue.
stay tuned
Weiter gehts, aber ...

So, heut gibt es wieder bessere nachrichten
Also ich kann euch sagen das die letzten Wochen echt anstrengen waren .... aber jetzt hab ich endlich wieder zeit für mein Projekt und werde diese nutzen. Leider musste ich am Montag feststellen das
es auf einmal einige Fehler gab/gibt nach dem update der Leadwerks engine ... aber diese waren schnell gefunden und teilweise behoben.
Bei BlitzMax gibt es ja nun auch etwas neues nämlich, Thread Unterstützung, da ich dies auch gern nutzen würde werde ich noch einige Änderungen an dem Framework vornehmen müssen, außerdem
muss ich endlich mal etwas zeit in den Editor stecken mit dem man dann später Levels erstellen können soll ...
aber das wird schon.
Aber es gibt dann doch noch etwas interessantes, Xeres der mir bei der Story usw.. behilflich ist hat die
erste Mission und einige Hintergrund Informationen fertig gestellt, desweiteren hat mir grafe noch eine zusätzliche Waffe gebastelt diese werdet ihr auch bald hier sehen können,
beiden möchte ich für ihre Bemühungen nochmals danken
so, heute leider nicht mehr, aber bald ....
Gruß

Also ich kann euch sagen das die letzten Wochen echt anstrengen waren .... aber jetzt hab ich endlich wieder zeit für mein Projekt und werde diese nutzen. Leider musste ich am Montag feststellen das
es auf einmal einige Fehler gab/gibt nach dem update der Leadwerks engine ... aber diese waren schnell gefunden und teilweise behoben.
Bei BlitzMax gibt es ja nun auch etwas neues nämlich, Thread Unterstützung, da ich dies auch gern nutzen würde werde ich noch einige Änderungen an dem Framework vornehmen müssen, außerdem
muss ich endlich mal etwas zeit in den Editor stecken mit dem man dann später Levels erstellen können soll ...

Aber es gibt dann doch noch etwas interessantes, Xeres der mir bei der Story usw.. behilflich ist hat die
erste Mission und einige Hintergrund Informationen fertig gestellt, desweiteren hat mir grafe noch eine zusätzliche Waffe gebastelt diese werdet ihr auch bald hier sehen können,
beiden möchte ich für ihre Bemühungen nochmals danken

so, heute leider nicht mehr, aber bald ....
Gruß
Pause...

Heute gibts leider nicht wirklich erfreuliche nachrichten,
aufgrund von viel arbeit, krankheit und noch dazu der demnächst anstehenden Zwischenprüfung bei mir
habe ich die letze zeit nicht an dem Projekt weiterarbeiten können.
Ich hoffe das ich bald weitermachen kann, um euch endlich mal was spielbares geben zu können.
mfg
aufgrund von viel arbeit, krankheit und noch dazu der demnächst anstehenden Zwischenprüfung bei mir
habe ich die letze zeit nicht an dem Projekt weiterarbeiten können.
Ich hoffe das ich bald weitermachen kann, um euch endlich mal was spielbares geben zu können.

mfg
Bilder nachschub ...

Hallo,
Ich habe den heutigen Tag damit verbracht die, eigentlich schon von Anfang an vorhandene
GUI zu überarbeiten und wieder funktionstüchtig zu bekommen.
Dies ist mir soweit auch gelungen, allerdings fehlt noch das laden von Image-Fonts, deswegen
habe ich das setzen des Textes erstmal so 'reingepfuscht'
.
Nun ja hier sehr ihr das InGame Menü mit einem Button, über den man das Spiel Beenden kann.
Einmal im normal zustand und dann wenn man mit der Maus drüber fährt.
PS:Das Menü ist trotzdem noch sehr WIP, das endgültige InGame Menü wird anders aussehn...
mfg....
Ich habe den heutigen Tag damit verbracht die, eigentlich schon von Anfang an vorhandene
GUI zu überarbeiten und wieder funktionstüchtig zu bekommen.
Dies ist mir soweit auch gelungen, allerdings fehlt noch das laden von Image-Fonts, deswegen
habe ich das setzen des Textes erstmal so 'reingepfuscht'

Nun ja hier sehr ihr das InGame Menü mit einem Button, über den man das Spiel Beenden kann.
Einmal im normal zustand und dann wenn man mit der Maus drüber fährt.
PS:Das Menü ist trotzdem noch sehr WIP, das endgültige InGame Menü wird anders aussehn...
mfg....
Taschenlampe Reloaded ;)

Habe heute das erste Item, nach langem rumwerkeln in der Script engine
und dem restlichen Framework, zum laufen bekommen.
Dabei habe ich ein Dutzend Fehler in der Script engine gefunden ... tztztz naja die waren einmal
Auf den ersten Bilder meines Woklogs konnte man sie schon sehen, allerdings noch
Hardcoded nun per Script :
Code: [AUSKLAPPEN]
aussehn tut es wie die auf dem ersten Screenshot also noch keine neuen Bilder... to be continued
und dem restlichen Framework, zum laufen bekommen.
Dabei habe ich ein Dutzend Fehler in der Script engine gefunden ... tztztz naja die waren einmal

Auf den ersten Bilder meines Woklogs konnte man sie schon sehen, allerdings noch
Hardcoded nun per Script :
Code: [AUSKLAPPEN]
// Item : FlashLight
// Created : 28/01/09
// Scripting : eXodius
// ----------------------
// Def vars
public flt _hFlashLight_Toggle=0;
public object _hFlashLight_Model=-1;
// Functions
private Function _GetInfo(object _tItem)
// Set Item properties
SetItemFeature(_tItem, ID_ITEM_NAME, "Tachenlampe");
SetItemFeature(_tItem, ID_ITEM_MASS, 0.15);
SetItemFeature(_tItem, ID_ITEM_ANCHOR, "MATRIX");
SetItemFeature(_tItem, ID_ITEM_USEABLE, 25);
_hFlashLight_Model = CreateSpotLight(8.0);
SetItemModel(_tItem, _hFlashLight_Model);
SetItemRunEvent(_tItem, "PLAYER_EVENT_UPDATE");
return;
EndFunction
private Function _OnUpdate(object _tItem)
// Toggle between 0 and 1
if (KeyHit(KEY_F)==1)
if (_hFlashLight_Toggle==1)
_hFlashLight_Toggle = 0;
Else
_hFlashLight_Toggle = 1;
EndIF
EndIf
// update light show mode
SetLightMode(_hFlashLight_Model, _hFlashLight_Toggle);
return;
EndFunction
private Function _OnDelete(object _tItem)
// Destroy
DestroyItem(_tItem);
return;
EndFunction
// Created : 28/01/09
// Scripting : eXodius
// ----------------------
// Def vars
public flt _hFlashLight_Toggle=0;
public object _hFlashLight_Model=-1;
// Functions
private Function _GetInfo(object _tItem)
// Set Item properties
SetItemFeature(_tItem, ID_ITEM_NAME, "Tachenlampe");
SetItemFeature(_tItem, ID_ITEM_MASS, 0.15);
SetItemFeature(_tItem, ID_ITEM_ANCHOR, "MATRIX");
SetItemFeature(_tItem, ID_ITEM_USEABLE, 25);
_hFlashLight_Model = CreateSpotLight(8.0);
SetItemModel(_tItem, _hFlashLight_Model);
SetItemRunEvent(_tItem, "PLAYER_EVENT_UPDATE");
return;
EndFunction
private Function _OnUpdate(object _tItem)
// Toggle between 0 and 1
if (KeyHit(KEY_F)==1)
if (_hFlashLight_Toggle==1)
_hFlashLight_Toggle = 0;
Else
_hFlashLight_Toggle = 1;
EndIF
EndIf
// update light show mode
SetLightMode(_hFlashLight_Model, _hFlashLight_Toggle);
return;
EndFunction
private Function _OnDelete(object _tItem)
// Destroy
DestroyItem(_tItem);
return;
EndFunction
aussehn tut es wie die auf dem ersten Screenshot also noch keine neuen Bilder... to be continued