Ticket #1555: cheats.patch
File cheats.patch, 3.7 KB (added by , 12 years ago) |
---|
-
gui/session/messages.js
9 9 const MAX_NUM_NOTIFICATION_LINES = 3; 10 10 var notifications = []; 11 11 var notificationsTimers = []; 12 var cheatList = parseJSONData("simulation/data/cheats.json").Cheats; 12 13 13 14 // Notifications 14 15 function handleNotifications() … … 195 196 } 196 197 197 198 var message = escapeText(msg.text); 198 199 199 200 var formatted; 200 201 202 var isCheat = false; 203 201 204 switch (msg.type) 202 205 { 203 206 case "connect": … … 207 210 formatted = "[color=\"" + playerColor + "\"]" + username + "[/color] has left the game."; 208 211 break; 209 212 case "message": 210 console.write("<" + username + "> " + message); 211 formatted = "<[color=\"" + playerColor + "\"]" + username + "[/color]> " + message; 213 if (!g_IsNetworked) 214 { 215 for (var i = 0; i < cheatList.length; i++) 216 { 217 if (message.indexOf(cheatList[i].Name)>-1) 218 { 219 if (cheatList[i].IsNumbered) 220 { 221 var number = message.substr(cheatList[i].Name.length+1, message.length-1).valueOf(); 222 if (!(number > 0)) 223 number=cheatList[i].DefaultNumber; 224 } 225 else 226 { 227 var number = undefined; 228 } 229 Engine.PostNetworkCommand({"type": "cheat", "action": cheatList[i].Action, "number": number , "player": n}); 230 isCheat = true; 231 } 232 } 233 } 234 if (!isCheat) 235 { 236 console.write("<" + username + "> " + message); 237 formatted = "<[color=\"" + playerColor + "\"]" + username + "[/color]> " + message; 238 } 212 239 break; 213 240 default: 214 241 error("Invalid chat message '" + uneval(msg) + "'"); -
simulation/data/cheats.json
1 { 2 "Cheats": 3 [ 4 { 5 "Name": "iwantpizza", 6 "Action": "addfood", 7 "IsNumbered": true, 8 "DefaultNumber": 1000 9 }, 10 { 11 "Name": "bringmemyaxe", 12 "Action": "addwood", 13 "IsNumbered": true, 14 "DefaultNumber": 1000 15 }, 16 { 17 "Name": "yourmoneyoryourlife", 18 "Action": "addmetal", 19 "IsNumbered": true, 20 "DefaultNumber": 1000 21 }, 22 { 23 "Name": "iseeamountainhere", 24 "Action": "addstone", 25 "IsNumbered": true, 26 "DefaultNumber": 1000 27 }, 28 { 29 "Name": "jamejam", 30 "Action": "revealmap", 31 "IsNumbered": false 32 } 33 ] 34 } -
simulation/helpers/Commands.js
31 31 case "debug-print": 32 32 print(cmd.message); 33 33 break; 34 34 35 35 case "chat": 36 36 var cmpGuiInterface = Engine.QueryInterface(SYSTEM_ENTITY, IID_GuiInterface); 37 37 cmpGuiInterface.PushNotification({"type": "chat", "player": player, "message": cmd.message}); 38 38 break; 39 39 40 case "cheat": 41 if (cmd.action == "addfood") 42 { 43 cmpPlayer.AddResource("food", cmd.number); 44 } 45 else if (cmd.action == "addwood") 46 { 47 cmpPlayer.AddResource("wood", cmd.number); 48 } 49 else if (cmd.action == "addmetal") 50 { 51 cmpPlayer.AddResource("metal", cmd.number); 52 } 53 else if (cmd.action == "addstone") 54 { 55 cmpPlayer.AddResource("stone", cmd.number); 56 } 57 else if (cmd.action == "revealmap") 58 { 59 var cmpRangeManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_RangeManager); 60 cmpRangeManager.SetLosRevealAll(-1, true); 61 } 62 break; 63 40 64 case "quit": 41 65 // Let the AI exit the game for testing purposes 42 66 var cmpGuiInterface = Engine.QueryInterface(SYSTEM_ENTITY, IID_GuiInterface);