Jump to content


  • Content Count

  • Joined

  • Last visited

Community Reputation

83 Excellent

About GorzenDev

  • Rank
    Advanced Member
  • Birthday 09/25/1986

Profile Information

  • Gender
  • Location
  • Interests

Recent Profile Visitors

2,669 profile views
  1. i used to do something like this... this will only add keyinfo to the Keys table when a key is actually used. to make it work you would need to add a call to PreUpdate() in your main loop. to check a key's state you would call eg: IsKeyUp(Key.W) or IsKeyDown(Key.W). function SetKeyboardInfoPack() local pack = { Keys = {}, -- FlushKeyInfo = function (self, resetHit, key) if key ~= nil then local nHit = 0 if self.Keys[key] ~= nil and resetHit == false then nHit = self.Keys[key].hit end self.Keys[key] = {down = false, up = false, hit = nHit} else local nHit = 0 for key,value in pairs(self.Keys) do if resetHit == false then nHit = self.Keys[key].hit end self.Keys[key] = {down = false, up = false, hit = nHit} end end end, -- PreUpdate = function (self) self:RefreshKeyStates() end, -- IsKeyDown = function (self, key) --create a key record if not already exists and check the keystate if self.Keys[key] == nil then self.Keys[key] = {down = false, up = false, hit = 0} self:RefreshKey(key) end --return keystate return self.Keys[key].down end, -- IsKeyUp = function (self, key) --create a key record if not already exists and check the keystate if self.Keys[key] == nil then self.Keys[key] = {down = false, up = false, hit = 0} self:RefreshKey(key) end --return keystate return self.Keys[key].up end, Keyhits = function (self, key) --create a key record if not already exists and check the keystate if self.Keys[key] == nil then self.Keys[key] = {down = false, up = false, hit = 0} self:RefreshKey(key) end --return keystate return self.Keys[key].hit end, -- RefreshKeyStates = function (self) for key,value in pairs(self.Keys) do self:RefreshKey(key) end end, RefreshKey = function (self, key) if key ~= nil then if self.Keys[key] ~= nil then if window:KeyDown(key) then self.Keys[key].down = true self.Keys[key].up = false elseif self.Keys[key].down == true then --last state down self.Keys[key].down = false self.Keys[key].up = true self.Keys[key].hit = self.Keys[key].hit + 1 elseif self.Keys[key].up == true then --last state up self.Keys[key].down = false self.Keys[key].up = false end end end end } -- return pack end
  2. they all definitly work no doubt about it. are you certain that the variable you try to read/write actually exists in the widget script?? i assume you are looking for. widget:SetFloat("radius", 2); widget:GetFloat("radius"); REMEMBER !!! call widget:Redraw() when you change a variable's value. often you would think "hey this does not work" while it usually does work but is not updated yet 😉
  3. The BaseActor class i use to derive actors from. Use it just like you would use a entity script. Attach actor to a entity. baseActor = new BaseActor(); entity->SetActor(baseActor); BaseActor.h #include "Leadwerks.h" using namespace Leadwerks; const enum class ActorType : char { Base, Player, NPC}; class BaseActor : public Actor { //Built-in extendable functions // //virtual void EndAnimation(const int sequence); virtual void Sleep(); //virtual void Wake(); virtual void Attach(); //virtual void Detach(); //virtual void Collision(Entity* entity, const Vec3& position, const Vec3& normal, float speed); virtual void UpdateWorld(); virtual void UpdatePhysics(); //virtual void UpdateMatrix(); virtual void PostRender(Context* context); //virtual void Draw(); //virtual void DrawEach(Camera* camera); //virtual void ReceiveSignal(const std::string& inputname, Entity* sender); public: ActorType actorType = ActorType::Base; BaseActor(); virtual ~BaseActor(); }; BaseActor.cpp #include "BaseActor.h" BaseActor::BaseActor() { } BaseActor::~BaseActor() { } void BaseActor::Attach() { // //System::Print("BaseActor Attached."); } void BaseActor::Sleep() { // //System::Print("BaseActor Sleep."); } void BaseActor::UpdateWorld() { //System::Print("BaseActor UpdateWorld."); } void BaseActor::UpdatePhysics() { //System::Print("BaseActor UpdatePhysics."); } void BaseActor::PostRender(Context* context) { // }
  4. Definition Entity.h virtual int FindAnimationSequence(const std::string& sequence);//lua Entity::FindAnimationSequence("sequencename")
  5. whenevver i loose my motivation i actually force myself to do at least 4 hours of coding each week. which in turn motivates me because i progress. (even if its just small progress) this brings me in a vicious circle that keeps me going.
  6. You could always edit the "common" template and remove the files you dont want to be copied. Dont forget to backup before editing.
  7. create your own "BlankProject" template its very easy and saves you a lot of time. i remember i made a post somewhere on how to do it.
  8. The style system change results in a lot of manual source updating and since i make use of the GUI system in basicly all of my projects, that's alot of code to change. Maiby i will have to write a small tool that does it for me... i guess notepad++ could achieve it nonetheless nice work on the update.
  9. GorzenDev

    Project Release

    I decided to release the source/project for my GUIEditor. its an unfinished project and not at all optimized, although it is usable. you mite have to upgrade the source project to the latest version. written in c++. the project includes some custom gui scripts found in /Scripts/GUI/Custom. and a FileDialog i designed using widgets. GUIEditor.rar enjoy
  10. you could create your own pre-post processor function in your main.lua, and have that execute when you want.
  11. happy hollidays everybody and a safe and thrilling new year.

  12. i'm thinking this is due to NVIDIA trying to force/overwrite game settings when you manually set them. try using default nvidia settings and let leadwerks do its thing...
  13. It all started with a game called 'legend of mir', some guy got a hold of the sourcecodes and decided to release those. (source codes where in delphi 7) with my knowledge of the game i started to search through the project to find references of spells that i knew the mechanics of and slowly i started to understand the basics of how such spells worked. The obvious next step for me whas to add my own custom spell to the game, compile/run and jump for joy. how excited i whas that i just pulled that off some 16 years later i still am just as excited and i learned a few extra languages. i do admit i never went to school for this.
  14. what's with these advertising bots lately ?
    is there something we can do to block such a person?

    1. Show previous comments  4 more
    2. gamecreator
    3. martyj


      @gamecreator IP.B doesn't send spammers.

      Spammers exist on the internet everywhere

      From my past experience of running an IP.B forum there was a strong correlation between IP.B's spam block filters and the current subscription status of our software.

      IP.B is set up so that you have to pay a fee to continue to get software upgrades (makes sense), but if you don't want upgrades you don't need to pay this fee. I always had a major spam issue whenever our subscription ran out. (Could be wrong as it was a personal experience and not a measured experience).

      @Josh, do you have re-captcha on the sign up page?

    4. gamecreator


      Ah gotcha.  Thanks for the clarification.  Though I still wonder how that would work if they have something like 2 million users.  They have subscriptions expiring literally every day of the year.

  15. GorzenDev


    that is one option. i recommend moving the event loop outside of the menu file though. then call processevent(event) with a return value on any table that needs to process events. for example in my current c++ project i actualy have a class called GUIManager which holds the event loop. which in turn calls other gui classes to update and grab events. when that call returns true then the event is processed and there is no need to call other classes with that event. example code(C++) : //Handle GUI events while (EventQueue::Peek()) { Event event = EventQueue::Wait(); // //Update menu UI events if (!gamemenu->Hidden()) { //exit game if (gamemenu->ProcessEvent(event) == false) return false; } //update game UI events if (!gameui->Hidden()) gameui->ProcessEvent(event); }
  • Create New...