outofmage
Fedaykin-
Posts
120 -
Joined
-
Last visited
Reputation
8 NeutralRecent Profile Visitors
5,596 profile views
-
Holding the last hand of stock
outofmage replied to outofmage's topic in Railroad Tycoon 2 Discussion
Hi Batchman. If you want to do it right, you need to buy back ALL but the last 1,000 share. You can find shares outstanding in your finance book page, just above the annual dividend, the number MUST be 1,000. Don't forget, you own 2,000 share in the beginning, you need to sell them to allow your company to buy them back. -
Holding the last hand of stock
outofmage replied to outofmage's topic in Railroad Tycoon 2 Discussion
Hi, Maglev. If you still want to try this, you can do it on Heatland US. Beginning options are Omaha&Lincoln or Chicago&Gary. Build single track and middle size station can control the budget under $500K. Issue a bond, buy back all the stock but the last hand (don't forget to sell your beginning 2,000 share in the buy-back process), resign as chairman, the "share holder's committee" will buy two engines to run between the two cities. Then you buy the only 1,000 share for $2K. In another way. Just issue the bond, buy back all the stock but the last hand, resign as chairman. The committee will connect two cities and buy two engines. -
Engine Age and Replacement
outofmage replied to jeffryfisher's topic in Railroad Tycoon 2 Discussion
Happy to see your posts again after so long, jeff. I replace the engines on a planned pace. I usually take a peek in the Editor to see which engines are available for this map before I play, pick my favorite ones to cover the playing years. Then I look at the time span each engine would serve and 'cut' each engine's serving period into reasonable pieces depends on their reliability and costs. For example, in North America map I currently play on. I plan to play from 1830 to at least 2000. These are engines I picked and their serving periods. passenger trains: 1831-1837 John Bull no rep. 1837-1848 Prussian 1842 rep. 1848-1868 America-C 1858 rep. 1868-1902 8-wheel 1880 rep. 1892 rep. 1902-1935 Atlantic 1918 rep. 1935-1990 GG1 1952 rep. 1970 rep. 1990-forever E111 every 15 years fright trains: 1877-1905 consolidation 1886 rep. 1895 rep. 1905-1919 Camelback no rep. 1919-1935 Mikado no rep. 1935-1990 GG1 1952 rep. 1970 rep. 1990-forever E111 every 15 years I plan these ahead and think about pros and cons against each choices during a period, then I can do a replacement plan. I have trouble choosing between consolidation and Mogul for freight trains in 1895 replacement, I believe the reliability of consolidation can make up the speed disadvantage to Mogul. Over all, I have a strong lean to reliability because I anticipate a big game and the tracks must be busy, so I cannot stand a broken train in the way. I also choose Atlantic over Pacific between 1918-1935 for the same reason. -
loco, I just test the companyId=playerId issue when you choose to cycle both companies and players. I also got the same result with you and I will try to explain why this is happening with my tests here. As you mentioned, there will be only 3 entries if the game has 3 companies currently even though we expect 3*4=12 entries if there are 4 players. I believe it's because when you choose to test against both players and companies, the 'playerControlledCompany=CompanyId' is indicated. To be precise, the program writes 'players INNER JOIN companies WHERE Players.playerControlledCompanyId=Companis.CompanyId' when you compile the trigger leaving both players and companies checked, maybe this statement is always included in every event. To confirm this theory, I design my test as this: I create a map with 3 players, and each player has a company. I set the player cash as $80K, $800K, $8,000K, and the company cash as #100K, $1,000K, $10,000K. So player cash is lower than their own company, but some players have more cash than other players' company. only one event for this map: test against all players test against all companies test monthly trigger: PlayerCash>CompanyCash effect: GameWin3 I just tested it, at first, nothing happens, but after 7 months, player #1 wins. Because the company controlled by the first player gets not enough interest to cover the overhead and salary, its cash drops down below player #1's cash and triggers the event. This confirms that the playControlledCompanyId=CompanyId is always indicated as long as you check both players and companies. Primary key needs to be defined as a result of joining of two tables, game designers chose CompanyId as the primary key, leaving playerId useless. This is further confirmed when I remove some of existing maps 'playerControlledCompanyId=CompanyId' term and everything still works fine.
-
Jeff, that's a very good idea, to do it one time for all. But I doubt there might be a bug in it. The first player's PV1 could be set as 0 before GV1 add 1. However, since this event is triggered every year, the first player's PV1 will be override as 4 (assuming there are 4 players in total) in second year. Adding an event to initialize PV1 as -1 and change the trigger to PV1<0 should fix this bug. In the other case, if GV1 add 1 before setting PV1 to 1 instead of 0, which means PV1 is the true value of playerId, there won't be this bug. Hopefully all we have done here can help other map creators to full fill their design purpose later. Edit: I also notice that what you have done is similar to what loco has done in his 'PlayerId in events' thread in post #2
-
Jeff, I want to clear more about my intention of my post in #16. This method is to actually replace the function of player Id, not only to answer akuenzi's question from the first post. I agree that your method in post #11 works for this scenario, solve Ak's problem. However, to find a more universal answer, extra mechanic is needed. What if we have no idea how much cash this player has, and we still want to apply some effects on to a pre-defined player anyway? For example, as we talked about before, we want to assign a territory to a defined player. Although it is impossible due to the basic mechanic of the game, this is actually some map creators trying to accomplish, so I think my method can be used here. What map creator used to do is to add restrict to the map forbidding company creation and assign each human player's company and AI's companies to their own territories. This means if you want to assign territory, you will have to force player to stick with one company, otherwise you can't take full control of each player's territory access. This reduces the flexibility of map design. With the PlayerControlledCompanyId trigger and the replacement of playerId technique, we can assign territory to a company created by pre-defined player every time, which means assign territory access to a player. Although we are already able to take full control of human's territory access by checking against only human player, but we can in practice also restrict each AI with its own territory even if we destroy or merge his company through the example I will present below. Thus we increase map design flexibility. Here is what I designed, and this has been tested. The task is to assign #2 player #6 territory full access every time he creates a company. As usual, it takes one GV and one PV. event #1 test against all players check every time a company is created trigger: GameVariable1<2 and PlayerVariable1=0 effect: set PlayerVariable1 100 Add GameVariable1 +1 ----------------------------- event #2 test against all players test against all companies test against territory id=6 check every time a company is created trigger: GameVariable1=2 and PlayerVariable1=0 and PlayerControlledCompanyId=CompanyId effect: set PlayerVariable1 100 add GameVariable1 +1 territory allow all: do it ----------------------------- event #3 test against all players check every time a company is created trigger: true effect: set PlayerVariable1 1 add PlayerVariable1 -1 set GameVariable1 1 add GameVariable1 -1 This method can be used at least in Mad King map and Free four all map. P.S. Akuenzi, I can feel my English skill has improved as I hang around more on this forum. It's been a fun time.
-
Jeff, I admit 4 events are little too much. But in post #16, I have a better version which can compact into 2 events. Yes, if the human player happens to be #2 player, it will give the human player cash. I try to solve this problem with more universally usable solution. This method not only answer the OP's question, but can actually replace the function of playerId, including human player's. This method can be used in both single and multi player games, it is able to apply any effect to any player(given his playerId) at any time. In other words, we have the technique to replace playerId with one GV and one PV and 2 events(without init event). Thank you for pointing out the flaws in my solution and all these efforts in confirming that the player Id does not work.
-
loco, the information of this thread is indeed very much for someone to comprehend over one night. I can sum it up our solutions for you. The OP's question is how to give #2 player some cash at a particular time not get the money he has. I solve this problem in post #12 and #16 introducing two methods. They are all working, I've tested them. In post #11, jeff introduced a method to go around the player Id issue, he just give some money to the player who is running low in cash not directly to a particular player id. Because akuenzi's intention is to give this computer some money so it can come back to the game. Akuenzi simply does not want a dead AI. In post #15, akuenzi adopt jeff's solution and this case is closed. But in this post, he also mentioned how to apply effects to a player with certain Id, which is solved in #16 by me. Other things are also mentioned such as assign territory access to a company, not a player; replace Game Variables with Territory Variables to expand game-scale variables; player Id bug seems not fixable by modding EXE file and so forth. Jeff has lots of posts explaining his thought process trying to solve the original problem, but with no direct solution but confirm the Player Id does not work. Of course my final solution in #16 is not perfect, it can be improved with some adjustment.
-
I just got a better solution. It still takes 2 variable but takes 3 events and won't be limited by the starting date of the game. It's easier to understand and can replace the function of playerId too. #1 event check at the end of each month trigger: GameYearMonth=188101 effect: Set GameVariable1 to 2 #2 event check against all players check at the end of each month trigger: GameVariable1>0 and PlayerVariable1=0 and GameYearMonth=188101 effect: Add GameVariable1 -1 Set PlayerVariable1=100 #3 event check against all players check at the end of each month trigger: GameVariable1=0 and PlayerVairable1=0 and GameYearMonth=188101 effect: Add GameVariable1 -1 [effect you want to apply to this player] Here is some explanation of my design. GV acts as a counter. Every time an effect is applied to a player, GV will count down once, until you hit the target player to apply some "true effect" other than just set Player Variable away from 0. As counter can be set to any number, you can remove the first event so you leave GV as default 0, and in #3 event's trigger change GameVariable1=0 to GameVariable1 =-2. It works the same. However, it can't set access rights to a particular territory for a company controlled by an AI. You can only set this to a particular CompanyId or human player's company or all the computers companies. PlayerId can only effect player cash, player variables,if this player controlled by human, player character and deactive player.
-
I got the answer you need. It will take one Game Variable and one Player Variable and 4 events. Say we arrange GameVariable1 and PlayerVariable1 for this task. You need to place these events as ordered below: event #1: test against multiple players(include human and computer) check at the end of each month trigger: GameVariable1<1 and PlayerVariable1<1 and GameYearMonth>=188011 and GameYearMonth<188101 effect: Set GameVariable1 to 100, Set PlayerVariable1 to 100 event #2: test against multiple players(include human and computer) check at the end of each month trigger: GameVariable1>1 effect: Set GameVariable1 to -99 event #3: test against multiple players(include human and computer) check at the end of each month trigger: GameVariable1<1 and PlayerVariable1<1 GameYearMonth=188101 effect: Set GameVariable1 to 100, Add PlayerCash +1,000,000 event #4: test against multiple players(include human and computer) check at the end of each month trigger: GameVariable1>1 effect: Set GameVariable1 to -99 Notice: Yes, event #2 and event #4 are the same, they are not typo. With these, by the end of Jan 1881, $1,000K will be added to #2 player. You can modify this task by changing the date of #1 and #3 event with the formula: StartingYearMonth=TargetYearMonth-PlayerIdMonths. In this case: 188011=188101-2. If you want to add cash to #5 player in 190508, 190508-5=190503, which means the starting date in the #1 event should be 190503.
-
That's why the game is usually limited in 20 or 30 years. After that, you will have too much money, and with that kind of money, you don't need to do anything to keep a company alive. If you like to continue playing after winning a prize, which is very common among the old players, because we need to extend the game as much as possible to experience something new. I suggest you to pay dividend. You can reduce the cash holding by company to a point when railroad operational profit takes back the major part of your total profit against the interest revenue just like in the early stage of the game. You can force yourself to pay dividend just like the debt owner forces you to pay interest. After all, for a sustainable business, stock dividend and bond interest are not that different. I believe a company should be a pure source of profits from railroad industry, not a bank account. If you don't pay dividend, well, actually you should do, only because you reserve the profits to invest and expand to get more dividend later. If you don't need capital to invest, pay your share holders. If you valid my idea, you won't ask for a "no interest option", because you already have the "no dividend option". Lower interest actually means lower efficient use of money. No interest means zero efficient of capital, and I don't like this idea.
-
Yes, I have skype, but never use it. How can we get in touch via Skype?
-
A lot is going on here. I want ask how do you start this game? Since you mentioned you played this game 10 years ago, did you start from a saving or a completely new game? Because you may not remember which route you chose 10 years ago before you play the scenario and proceed to connect N.O. to L.A. while the actual requirement is connecting St. Louis and Sacramento. BTW, you can't choose which route you connect in the game, you must choose it from the campaign board where the old man is talking. No matter which option you choose, the news will always congratulation to you when you make any connection, but not the credit for winning. If it's not this reason, maybe it's still because the trains are not fully loaded as you set the first 2 trains as yellow. Do you know that the dinning car does not give you credit for transporting? If you set up 2 passenger 1 mail and 1 dinning, yellow light, you may only get 2 goods loaded and depart. Even you set 3 passenger 1 mail and 1 dinning, 2 loaded cargo are still able to depart. If so, you might only haul 4 cargo with the first 2 trains. The third train may not arrive on time. BTW, do you know you can check how many goods a train is hauling are loaded or empty? You can count them and see if there are 6 cargo on the way. If a train is running slow, not directly indicates it's fully loaded, empty cars still weigh 2/3 of loaded cars for passenger and mail.
-
Check if your train is fully loaded when they depart from station. Deliver an empty cargo won't give you money or the credit for transporting this load. You can eliminate empty hauls by setting up the signal lights from green to red.
-
1. If you have trouble controlling AI, you can try my last hand of stock method. 2. I don't like to merge AI's crap either. At least if I merge an AI, I am planning to destroy my company too. 3. I have never tried this. 4. That's quite creative, maybe you need to save/load to find out which route computer prefer to connect, then mess up with the terro they tend to build tracks on. 5. If you want to block AI's trains, you can buy a cheap train and run on AI's busiest track, then press Ctrl+B, your train will break on AI's track and block the track. You don't need to build track across AI's railroad, and it's not going to work if AI build their track first. The priority will always be local trains>foreign trains. But broken trains will always have higher priority despite the track ownership (with normal throttle). j7n's method will also work, but you need to seduce AI onto your track to do so, but this method is permanent, mine needs to press Ctrl+B every 5 or 6 months. 6. You can bulldoze your own industry, but not within station's radius owned by other company. Even if you can, I believe it's more of your lost than AI's. AI can always get 80% of base value even this station does not demand this cargo at all, so they still get quite some revenue, but you lost half of the purchase price paid for this industry and a stable stream of income every year.