Jump to content

WIP - The Companion friendly Hobbit Home


Pellape

Recommended Posts

So why do I get these errors in the first place? Because I am incompetent of course 50905320308_efe5a3ff02_o.png
I think like an old school line basic programmer and not like a database technician. So I have to rethink my own role now as this is a database program after all and should be made such one.

I did add to many variables and unnecessary arrays. Let me give a simple mistake when adding stuff to the database, as I did that with counting up and down shorts:

Set NumberOfItems = NumberOfItems + 1
Set NumberOfItems = NumberOfItems - 1

Set NumberofChests = NumberofChests + 1
Set NumberofChests = NumberofChests - 1

and then store those is separate arrays as I thought I am god and have full control and that was the best solution - Well forget it Pekka... :wink:

So the correct way to do it in this case with databases (Arrays) is:

Set AmmountOfChests to ar_Size ChestArr

Set NumberOfObjectsDatabase to ar_Size ObjectArr

and this really obvious solution should make the Sorter scripts fool proof and it should avoid getting those let errors occur at all if checked right that is.

What I keep forgetting is also the Indian number called 0 and stop thinking like a Roman where the lowest number is I. ar_Size do return -1 if there's nothing in it.

Well time for a break and some Unity.

 

Daggerfall

I did discover yesterday that they did take stuff from ESO and added it to Daggerfall in the DREAM mod. :wink:

50927642632_ee3af9b485_o.jpg

Damn the dungeons in Daggerfall Unity is so damn beautiful and they looks much more nicer then Morrowind ever did.

50926837343_651be885e8_o.jpg

 

Those textures are not flat as they are deeper then I ever seen in Oblivion. I have not peeked at the Normal maps for them, but they are extremely well made.

 

The interface looks so damn good as well compared to vanilla. I did noticed yesterday that the icons are sprites as the horse in the icon do wiggle its tail. The size of that bloody mod is 3.6 Gb but Unity have never crashed so far, which Oblivion did 4 times tonight while checking my scripts.

50927649547_4ffb7ef4ca_o.jpg

 

This is my ugly mage and I will never allow him to use another outfit than Leather. Maybe I give him a robe later instead? Well my mages in Ultima Online did use Leather as well, so I guess he can keep it under his future robe. Playing a mage in Daggerfall is a bit easier than I first thought. Time to play it and continue with the database tomorrow,

Edited by Pellape
Link to comment
Share on other sites

  • Replies 406
  • Created
  • Last Reply

Top Posters In This Topic

Short report - I hope at least...

 

There is some things I now regret. Adding all chests from a single object and the mod is published so I cannot go in and delete any chests but I can make new objects, add them to my dummy cell, make a spell called rename Chests. That spell will:

  1. Move all objects to the new chest
  2. take all current coordinates and angles
  3. Delete the old chest
  4. Move the new chest to its new place using the old ones coordinates and angles.

I could add an array with Labels, in case you wanna list your databse and if all containers are named "Chest" it will not make any sense at all. Setname sets the name to the object and not reference. ;)

Labels is a way to go around it but as they do not have anything with reality to do, they will only decrease the immersion.

 

--------------------------

I am still debugging my Sorter and have added a lot of debug info in the scripts just a minute ago. I plan to continue debugging one more hour max for this day.

Edited by Pellape
Link to comment
Share on other sites

I have looked in my scripts to see what I thought about when I made them and I did miss one thing and it was in which every object should belong too. I did that in the beginning while pointing at a chestindex, which is the correct way to do it when handle databases but why store an index in a array and then take out the subject stored in that array to put it into a short and use that short to point at another array while I can just store the bloody reference to that array immediate? The sorting code will get more optimal that way as well as I do prefer speed over anything in this script and it will also make it easier to make in the first place.

 

I never forget when I did a course in databases when I educated myself 1996 to become a computer technician and that teacher, who also where my head teacher and me did dislike each others a lot as well as he is a bloody cold blooded ass really, if he is still alive that is. I did only come along with him one day and that was the day we graduated as then it was possible to actually talk any sense with him. Well never mind... That is his headache and problems, not mine really. We have asses everywhere more or less... :D We did had many cool and fun teachers though

 

The first thing he told us was:

-Remember one thing about this course. It will not be an easy road as it is on University level, not your level but lets get started.

 

He was damn right about that really... :wink:

 

We did more complex databases with pointers here and there and everywhere as when you make complex databases, making them the way I will do now would make them extremely huge and RAM demanded, not only RAM but think about a huge square database, how much disk space would it not use? So databases must have pointers when several different lists will cooperate and deliver a proper result to the user. There will be only 2 lists after all, well 3 really.

  • Objects List
  • Chests List
  • Chest-Objects List

List 1 and 3 will have the same amount of objects. List 3 is the one that would have the index numbers for list 2 in the first place, which I now skip. The references will be stored both in the Chest List and in the Chest-Objects List but only 1 unique reference in the chest list and at several places at the Chest-Objects List that is the glue that ties an object to a chest. - Cheating... :wink:

 

So how did it go for me in that bloody course... Well I did not get top grade for sure but I did manage to pass it, not more but my goal was to get highest possible scores in everything. It was as hard as he said it would be. So damn frustrating to get it right and I got a bit pissed when I couldn't do it better or get a higher score but I was not worth it. We all had the same problems with it, so I was not alone so we just had to accept it.

 

---------------

One more thing. The biggest difference between an array and a field in a real database is that the field have a static size, and it is that size that makes the indexes of fields, not a number that indexes an array or whatever. That doesn't make real databases easier to handle anyway....

Edited by Pellape
Link to comment
Share on other sites

So. What have I done now? I added more checks and more shorts to avoid gaps at all while indexing, while I try to add something to an array. Optimizing has a price but safety must go first. Been reading through everything. Is it needed to be so damn much code to sort stuff from inventory to a bloody container? - Yes it is needed. I will add these bloody scripts here when I am done so you can see all this crap for yourself. :D So much code, doing almost nothing at all except checking, double checking and checking again... I have commented it as well as otherwise I can't follow it myself really as my brain do have a limit. I wish now that I had made this as a yEd flow chart from the start, not just start coding like a horny dog...

---------------------------------------------
Flow Control
That reminds me of: When I used the Atari Computer, I was also engaged in the Atari Community of Sweden and later was member of the board for a period as well. So we decided to make a programming team and use a language called GFA Basic and at that point I was useless as a coder as I had only used line basic and where able to make small simple apps and that's it. Graphics was something new to me and I did not have a clue about what it was we where doing there at all but I did learn one thing. Flow Control.

First of all: What is our purpose with this new team? Well to make small useful apps we agreed about and release them under the team name (which I have forgottten)
How do we do that and how do we start?

Well we all went silent and completely NULL - So our GFA basic head coder suggested: Lets make a bloody 15 slide puzzle so before we start to code, lets use post-it and a pen. So we started to make a flow, put post-it all over the place but did we ever get started with coding it? No way, not a single row of GFA. I was hoping to learn some GFA but didn't learn anything else then how to make flows. :D This was years before I started with C++ as I bought a book called: Ansi C for Dummies as I told myself. I must learn C as it is the fastest language in the world, even faster then Assembler as we can never make codes faster in a mutlicore CPU with Assembler then C does really, not if the CPU is more modern than 386 as then Assembler is faster.

 

I have tried Assembler for 386 and it is hopeless. Intel CPU's sux and I do not understand how anyone can make anything with it.

I also tried Assembler for Motorola and that CPU, all Motorola types are easier to understand what they are doing each clock cycle than 386.

 

What a bunch of crap

Why do I type all this crap... Well I am bidding my time as I do not want to beta test my current scripts, so I do everything else but that. Trying to find ways to put it more into the future, trying to get the time to pass... 50905320308_efe5a3ff02_o.png

 

Will we learn anything from this 30 year old story? I think so. I do remember that I felt it was crap, writing stuff at post-it when I wanted to get started with coding as fast as possible but we did the right thing, making a flow and that's the whole point with the crap, to never forget it, which I keep doing. I was also so damn bored at those meetings, which I never forget, the boredom that is... :wink:

Edited by Pellape
Link to comment
Share on other sites

Drake my savior and guide. We should worship you as the new messiahs. Well you are bigger than he ever was anyway... :wink: I bet he was short... Now some will burn my mods... :/

 

Using the Offset makes the debugging to be as easy as a walk in a park. I slowly remove bugs, one by one or rather add code that is missing in the fist place. All errors is when my codes try to handle arrays without data, so I now add better checking, which I now mentioned so many times over and over but it still feels so great to solve them and have full control and I am so bloody happy, not ending up with wtf is this but rather -> aha, oki. I add this and that, tweaking it more and more?

 

I can add and remove chests and also sort them now but they still produce some minor errors that I now will correct. :D

 

It looks so cool and I will make a video later. When you add a chest, I use the Open effectshader at them and when you remove it, I use Disintegrate and that spell is a destruction spell as well, so you train magery in the same time you sort your own crap out, which this game is all about -> Using your skills.

Edited by Pellape
Link to comment
Share on other sites

DAMN!!!!!!

 

o_O o_O

 

It is not my codes that causes many of the bugs. It is OBSE and i just made a bugreport. katawful also pointed at similar issues with other similar functions

 

This is what I wrote in it:

-----------------------------------------

 

I use v21.8
Very odd. When I use GetNumItems it return 1 if the container is empty so I did a check:
Let NumberOfItemsKeep := PekKeepOneItemRef.GetNumItems

Let TempObject := PekKeepOneItemRef.GetInventoryObject NumberOfItemsKeep

Printc "NumberOfItems = %.0f - NotIncludeObject = %i %n" NumberOfItemsKeep TempObject TempObject
Here is the result:
NumberOfItems = 1 - NotIncludeObject = 00000000 <no name>
Number of Items should be 0. It might counted the chest, as I guess getinventoryobject seems do that time to time... :wink:
Well to solve it, if eval ( NotIncludeObject == NULL ) -> Let NumberOfItems -= 1 - Solved.
Edited by Pellape
Link to comment
Share on other sites

Man, don't call me such things. I'm far from a Messiah or whatever of modding. I just know a few things about it and have a habit of telling them to everybody who asks.

 

Back in the days that was the norm around here and everybody did it. Nowadays... only few of those I passed it on to even seem to share it with others still.

I'm by far not the first who knew all of this, everybody, but don't let me be the last. I won't be around forever. You need to also pass this knowledge along, else it'll be lost at some point in time.

 

But back to topic, I'm afraid I'm seeing another mistake. No idea exactly why "GetNumItems" returns 1 here, if you say the container should be empty. But GetInventoryObject is again "zero-based". You asking it to give you item #1, when it's item #0 you're interested in, can only fail when there's exactly 1 item inside. You want to know what "GetInventoryObject 0" is but are asking for 1 instead. It would be really interesting to know what "0" is now. Could it even be there's just an unplayable token, as from Maskar's, inside?

Link to comment
Share on other sites

You are of course right as it is the devs of OBSE that came up with this brilliant debugging idea that we should worship. :D

But still, I am extremely grateful that you did show me the way. ;) Thanks again Drake. It might be one of the best tips I ever got at least this Oblivion period,

 

No. But I have suspected it in another container I have. When I find Maskar's tokens, they do show them self clearly as a token and I do peek in MOO a lot, so I immidiataly suspected MOO when I looted public containers. What he does when MOO initiates is to scan every LevelList, exchanhing some items to be MOO specific, like parchments and tools, adding MOO stuff to them and that is the reason he also want us to run it last, after the batch patch. So he adds stuff to already perfect LL which is cool really. But he do not go inside my house and add stuff in my containers for sure as it is nor the containers he is editing as it is the LevelLists.

 

This is not an OBSE bug anyway I guess. I had similar problems before I started with xOBSE and the xOBSE team callsit the mysterious ghost object and I guess it is a game bug, not OBSE but OBSE finds that object. I also guess only 2 players reads my rubbish in this thread, so I should make a separate thread about it, and it is you and OblivionAddicted. :)

Link to comment
Share on other sites

I see at least a couple of EngineBugFixes fixes that seem to be related to similar to what you describe Pekka. That has me wondering what (if any) effect the xOBSE team's fixes will have on EBF (if there is in fact any overlap between the root case of the EBF fixed problems and the one that you're mentioning here).

 

I'll post in your new thread too, just in case you're right and only Drake, OA and me are readers of this thread. :tongue:

Link to comment
Share on other sites

Yes, that thought did cross my mind as well. That it is a engine bug and that we find it with OBSE.

I do not mind if few reads my crap anyway as I do write so much of it. When I was secretary in the Swedish Atari association, they did complain over that my protocols where so detailed as it took them forever to read the rubbish... :wink: I guess my articles I wrote in our Atari Magazin was the same, to long and to detailed. I will check if google have any old covers still...

Damn. I forgot I did had classes in it in C: Look at the last red line: My real name is Per-Erik and I used to have a C school, Atari specific. I had forgotten about that completely... I just wanted to find a bloody cover to show you and I did and I wanted to share how to use C on the Atari to our readers, dealing with windows and making programs to work in a multitasking environment, which Atari did not have from the beginning at all. :D DAMN... Well it doesn't matter now as who wants to use a bloody old 16-bit computer anyway? The biggest benefit was that it was easy to understand that Motorola CPU as it was so simple and straight made.

50939217308_1d0062d5ed_o.png

 

C had a huge impact on me for sure when that world got opened for me.

Edited by Pellape
Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.

×
×
  • Create New...