SmileyCountry >>> 2010 >May 7 -Jails and City Halls must now have the same owner -Jails can't be build without a City Hall -Can no longer Buy/Sell things for 0c to other's buildings ... closes trading without taxes loophole -Username must start with letter now (bug avoidance) >May 5 -Fixed EverySec loop crashing and stopping to run (caused loss of persistance, and infinite death state) -You now have to be in a building to trade with it (Right click, press E, or F) >May 4 -Debug cheats are now only allowed from accounts connecting from localhost --Means when I'm debugging locally I can debug easily with all accounts, but when I'm connected to the real server, I have to play the game as intended >May 3 -No more warmup for Bow -Ghost can't do damage with default tools anymore -Eating Apples while Ghost won't crash you -Ghost/Unconscious ticker now has Second accuracy (from Minute before) -Unconscious time lowered to 20sec -When respawning as ghost, health is set to 200 -HP Damage Popups on Obj/Bldgs are now centered, and the delta is sent explicity so the client will no longer miss-guess / not show at all -Added Healing Popup for repairing Buildings -Added HP popups for player damage -All damage is now +-20% random -You now get 1...3 Logs from sawing Trees -There is now a chance of getting an Apple from chopping Trees -You are now told when you obtain items -Active Minutes is now properly logged >May 2 -Added Player States -Start as Alive -When you die, you go Unconscious -Less than a minute later, you respawn as a Ghost (in Jail, if there is one) -You stay a Ghost for 150 seconds, can't fight in that state -Server: Fixed trade requests getting buildings reguardless of area >April 25 -Projectiles hurt players now -Player who die just get insta warped into jail or to the top left corner (WorkInProgress behaviour) >April 16 -Cy tuned the sounds: Saw, Club, NotReady >April 9 -When selling more to a building than it can afford to pay you for, both the sub- and total are now red >April 8 -Fixed Club having 0 maxDist >April 6 -Player HP in database and shown on mouse hover over player >April 5 -Forests grow more randomly (Up to 10 Parenting Trees will attemp to spawn a Sapling. If less than max were spawned, one will spawn randomly) -MaxTrees is now double size of area in one dimension (50x50 area = 100 trees) just to try it -Buildings have Descriptions and warn owners of bad ideas >April 4 -Added Projectiles, with live server tracking -Added Bow and Handgun (mostly to test slow vs fast projectiles) -Added Bow Armory ( 1 Plank-> 12 Bows) ... Later there shall be Arrow items and co. for ammo -Added Handgun Armory ( 2 Clubs-> 1 Handgun) -Club Armory converts 2 Logs to 1 Club now, but club does double damage -Server: Lots of refactoring -Note: MoveIt's Speed = Pixels/Sec*~9.4 >April 3a -Trees should really not spawn on non-dirt/grass now >April 3 -Removed green border from Selection_Mod (like Shovel uses) >April 2 -Cooldown works! -Added Sound for: Cool down not expired, sale, hatchet, saw, club, bow -Sawmill/Club Armory now convert as many items per hour as they have tiles (Bigger Building, more conversion) -Grass now grows on dirt after 5 minutes >March 30 -New Rock Terrain >March 29 -New Building Wall Graphic >March 28d -New Log/Apple graphic -Updated Title FAQ -Lowered health of a few objects >March 28c "Damage" -Added Item:Club, Building:Club Armory -Club Armory converts Logs->Clubs at 1:1, 20 times per hour (same speed+rate for Sawmill now) -You can now heal buildings by hitting them with a Hammer (need one plank per 48 hp, will heal as much as possible) -New Sapling graphic -Colorized Building roofs -Fixed Sawmill icon being pink -Worsened by hand ratio of Log->Plank from 3:1 to 4:1 (Sawmill still at 1:1) >March 28b -Build/Trade Menus now close on Walk/AreaChange -Fixed: Seeing warmup when trying to use item, even when it will fail due to not having a selection -Fixed: Not being allowed to useitem by clicking under Build Menu, even when hidden -Fixed: Terrain alterations apearing to happen in all areas, not just intended -Fixed: People don't get killed when changing areas >March 28a -Can Move with Arrow Keys in addition now -Hold F1 to see the pre-game FAQ in-game -Removed Ctrl+Y and other default MMF2 hotkeys that didn't make sense >March 28 "Economy" -Changed Version to be 2 bytes, new server now requires version "1" of client (all previous releases were 0[1byte]) -Log->Plank conversion by hand takes 3 Logs to 1 Plank now (Use Sawmills instead, if available!) -Added Notes to Title screen (until there is a tutorial) -Fixed Register screen claiming password is optional -Prevent building more than 1 City Hall / Jail per area -Fixed Equipped Item sending bad data when your inventory contents shifted >March 18 -Client/Server: Owner is now allowed to do disallowed buy/Sells (good idea?) -Made Sawmill automatically convert Log->Plank 5/hr 1:1 -Each city hall generates 20 coins per hour for now (Later: Change rate based on existing time) -On Building Destroy, transfers items/cash to owner -On Construct, gives Budget to builder; owner keeps ownership >March 17 -Server: Implemented Buy/Sell on server, replies with chat error msgs when appropriate >March 16 -Client/Server: Implemented Adjust Budget -Client sends Buy/Sell (Server understands, but not implemented) >March 9 -Added EncodeVeryLong and such functions to Client -Server: implemented SetPrice >March 8 -SetPrice message almost sent to server, partially understood --Client needs EncodeVeryLong function >March 7 -Did most of BuySell GUI -Fixed bug with client looking at wrong BuildTypeID -All building types allow a tradeScrn now >March 6 -Client understands BuySell init message now >January 31 [Server] -Fixed objects being allowed to occupy the bottom/right row/collumn on non 50x50 areas >January 29 [Client/Server] -Removed Jacuzzi from being buildable outside [Client] -Prevented clicks on Inventory causing actions on things behind it -Centered Menu F12 pop-up, and removed window frame -Reusing that sub-frame (from Menu) for Trade pop-up [Server] -Replies to client shop requests with buildings (Budget, Item Amounts, Prices) >January 26 [Client/Server] -Added BuySellList to Buildings.ini (Each building will have a static list of things ppl can buy/sell there) --Some things can only be bought OR sold, not both [Server] -Added SQL table for BuySell list (related to generic inventories) >>>> 2009 >November 1 [Client/Server] -Client is now told his coins + displays them -Client can now request trade by right clicking a Building --Server replies with Building budget+inventory contents [Client] -Trimmed non-sense from inquiry msg to obj/bldg [Server] -Added function to getBudget, getBounty, getInvMsg from InvID -Added " to sendBudget from cli obj >October 31 [Client/Server] -Added error message when you don't have enough planks to make something [Server] -Added support for Tree growth in all areas (area list read in from sql) -Prevented players from digging outside of area -Moved from Python 2.5 to 2.6 -Replaced md5 with hashlib.md5 >July 23 [Client] -Fixed client from trying to act/dig on terrain outside of area (right/bottom) [Server] -Redid Inventory Tables --UserInventory is now generic: inventories(id,coins,bount) + inventoryContent(inventoryID,items) --Everything that has inventories now uses the same tables, no matter if it's a person or a building --Trading would be easy: Just update each item's owner inventoryID -Objs/Buildings table don't have budgets/coins anymore -Buildings now have inventories (created+destroyed with building, starting at ConJob) -Hovering over building shows Coins in building inventory >June 10 (a) -3hrs [Server/Client] -Added support for Changing Areas live/in-game -Added "/warp AreaName" debug command to warp to area of that name [Client] -Added support for custom area sizes (smaller than 50,50) >June 10 -3hrs [Server] -Added support for sending messages to everyone in an area (not just the whole server) -Support for being in different areas, keeping messages seperate -Added warning if user is in non-existing area [DB] -Added areas table: areaName, xSize, ySize [Non 50x50 tile areas are not yet supported] >May 20 -Added Joined/Left messages -Server logs IPs now >May 16 "Private Alpha" >May 16: Code6 -Polishing: Title Screen, Fixed up Settings again, adding Server switching shortcut -Added Planks Needed to obj ConJobs hoverOver -Done with HoverOver for Obj/Building/Player -Buildings now follow Obj convention wrt ConJobs -BuildingTypeInt is always what is to be constructed -bConJob >May 15: Code6 -Started on HoverOver info boxes -Improved Settings Window: Fullscreen, DisableAmbientSounds -Removed HUD layer from Login screen >May 13: Code6 -Added color-coded use-on selection -Added Materials_Planks required for Objects -Changed Color of BGSelecter based on UseOn type -...See forum >May 3: Code6 -Added Settings Window -Added option to change scrolling type: Look-Ahead, Dead-On, Per-Screen -Made Per-Screen scrolling default (low CPU) -Fixed New Users being spawned in areas called: '''Sandbox''' and such, which are different from Sandbox --DO NOT RELY ON SQLiteAdmin to set Default values!!! Make python put in defaults! -Added Item's Quantity to client Inventory >February 19: Code6 -Digging has short Warmup now -smoked up this SQL: select itemType,(select count(*) from userInventory B where A.userID=B.userID and A.itemType=B.itemType) as quantity from userInventory A where A.userID=4 group by A.itemType which gets all of user4's ItemTypes, and how many of each he has -Why not just store it in the DB like this? Because I still like having the option for each item to have specific modifyable properties - Maybe something as lame as a random Quality of an Apple when you pick it (although I don't want that) -Either way, we have the ability to do add item properties later like this, so let's go with it -adding this to server, got new inventory message format ready to be sent to client -have no actually made server send it or client understand it >February 4(?): Code6 -added collision >February 3: Code6 -Added distinguishing betweeen different Objects, when it comes to what Items do Hatchet on Tree = Harvest, on Sign = Harm -Client: Added Warm Up support/GFX (used by Harvesting trees) >February 1: Code6 -Added Chatting (T to talk, disables all key input while active, ESC to abort) -Added Regex to make sure Usernames are alphanumeric >January 31: Code6 -Server loads in UseOnObject/Building... -When using an item on an Object/Building, if the item's UseOn is Harm, the Obj/Bld will be damaged -Obj/Buildings die when they have 0 or less HP -Obj/Buildings decay 1/48th of their HP every hour, will not die from decay -Can now hold shift while placing a con job to not leave con job placing mode, so you can place another -made inventory use $ActiveModDir, not hardcoded relative path >January 29: Code6 -Added Constructing Objects -Can only place objects in the building type you were in when you poped the Build Menu (or outside) -Redid how Construction Jobs are stored in DB -All ConJobs were buildings, but since you can't have a building in a building, that was a bad idea -So now type1 of both Objs/Bldgs is a Con Job for that respective thing -For Objects, all ConJobs now also sent their target/goal typeID -This allows the client to know how big that particular ConJob is -It also means the client can show a nice little picture of the object-to-be, transparent [Client] -Fixed some bugs with respect to object construction on -Added support for ConJob objects -Object's ActivePicture's ObjID will be that of the goalObjectID, not 1, for conjobs (have boolean to tell them apart) -AreaArray stores obj type at that X,Y as 1 for conJobs -Show picture of their goalObj, just very transparent to show them to be a ConJob >January 28: Code6 -Added Ambient Forest sound depending on how many trees are near you, panned left/right -Added Sound for footsteps -Added ObjectID and BuildingID to AreaArray (much faster to look up via X,Y that way, than check every object's X,Y to then get it's type there) -Actually had to do this to make checking how many trees are near the player not lag the game -Added Making Con Jobs for Objects >January 27: Code6 -Started work on loading pictures for building Objects in build menu context sensative to what Building you are in, if any -Changed Tree spawning code to only spawn one sapling at a time, trying only up to 10, now randomly sorted, existing trees per minute -Fixed Z-order of Objects (lower Objects are now in front of Objects above them) -Fixed not being able to use OnTerrain Equip under ConJob buildings >January 24: Code6 -Made Building's health be tiles*48*PlanksPerTile (so 48 per planks is used) --Decay will later be 1hp per tiles*PlanksPerTile per hour, so it will take 48hours to deplete any building of HP >January 23: Code6 -Added Sapling -Added organic Tree growth over time >January 22: Code6 -Fixed DiagOK being ingored when using the Mouse to select anything with Equip -Blacklisted BuildingWalls from being selected (Walls spawn/die with Building as one) -Blocked using anything on Terrain inside Buildings -Added support for Replacing Buildings and Objects when just sending a normal Set msg (no need to delete) -You can now Build Buildings (Hammer), and kill them (Hatchet) -Client will properly set up all walls, terrain in a Building (Server is blacklisted from mass sending BuildingFloor/BuildingWalls seperately) -Client will properly nuke all terrain and all objects inside a building when the building dies >January 21: Code6 -Rewrote BGSelector select tile via walking or mouse moving from scratch, thanks to the GridArray --BG Selector is now the only object used (no more ObjectSelector object) --Supports Buildings, Objects, Terrain --Mouse can hover over any part of a Building/Object, and it will highlight if ANY part of that Obj/Blng is close enough to the player --BGSelector is no longer Deactivated if the Mouse is moved without moving the BGSelector to somewhere new ---Whole Picture of Obj/Blng is highlighted, but distance is based soley on where the object/bldng actually is (uses GridArray only, not collision hack) >January 20: Code6 -Fixed Construct Jobs bottom X,Ys being sent instead of the top ones (bad SQL statement in server) -Build menu is brought up with B now (not hammer, which is for repairing/construction) >January 19: Code6 [Client] -Can now use ESC to abort Construction Marking, close Build Menu -Right click to abort Constr Marking -Added Receiving/Deleting Buildings [Server] -Added OBJECT_DATA array, with extended info from Objects.ini; same with Buildings.ini -PutObject function now puts in the Object in every X,Y of the area, as it should --Delete Object already did this -Added making Construction Jobs -Buildings sent at login >January 18 : Code6 -Added "Look Ahead" scrolling -Added Mouse Look scrolling (hold Alt to mouse look) -Added AreaArray, which gives info on every gridXY of the area, like bolCollision, terrainID, so on -Added Construction selection box dragging -Made Construction box turn red if target construction area is invalid -Fixed Frame being harded with size of 32*50x32*50 >January 18 : Cy -Changed terrain to 48x48 -Redid Smiley -Redid Tree -Added Wooden Floor gfx for Buildings >January 14 : Code6 -Touched up Building ideas -Client Loads in Buildings_Int->Name into NVO -Selecting the Hammer from the Inventory now pops up the Build Menu -Build Menu populates itself with Building icons properly (later you can switch tabs to Objects/Buildings) -Blank Inventory slots are still shown (if there is a max inventory later, limit it by that) >January 12 : Code6 -Jotted down ideas about Buildings >January ? : Korjon -Did work on MMF2 socket extension >January 5 : Code6 -Server loads in int->name->int info from Items.ini and Objects.ini -Added userInventory SQL table -Items are given to people when they are make guest accounts (if they insta-register, they are screwed) -Users are sent their actual list of items -Using items already worked fueled by actual userInventory now, thanks to awesome future-safe code by Korjon -Can now Hammer anywhere to make a Sign appear (hack until there's a build menu) >January 4 : Code6 -Temp disabled initially just dir changing when trying to move until we fix it up -Fixed various 64x64 tilesize bugs (32 was hardcoded in some places) -Still didn't take time to understand inventory code, but understand it enough to do following: -When getting SetInventory message from server, ItemNames are gotten from Items.ini -Loaded in basic info from Items.ini into NamedVariableObject -BGSelecter/Object selector now respect UseOnTerrain/Object, MaxDist, DiagOK from items.ini, loaded on InvSelect -Replaced filter to filter by Equip, Consumable, Usable -Can now nuke any object with the hammer -no way to make objects yet :P