update with ambush

This commit is contained in:
shoopea 2019-10-20 17:03:54 +08:00
parent 99b211e4d9
commit c7bc56a06b
3 changed files with 140 additions and 130 deletions

259
def.go
View File

@ -395,135 +395,136 @@ const (
castleShark = 6 castleShark = 6
castleWolf = 7 castleWolf = 7
objSubTypeUser = 101 objSubTypeUser = 101
objSubTypeGuild = 201 objSubTypeGuild = 201
objSubTypeMessageUnknown = 301 objSubTypeMessageUnknown = 301
objSubTypeMessageWar = 302 // from Chat Wars Reports (not done) objSubTypeMessageWar = 302 // from Chat Wars Reports (not done)
objSubTypeMessageMiniWar = 303 // FIXME DELETE objSubTypeMessageMiniWar = 303 // FIXME DELETE
objSubTypeMessageGuildWar = 304 // from Chat Wars Reports (not done) objSubTypeMessageGuildWar = 304 // from Chat Wars Reports (not done)
objSubTypeMessageReportReq = 305 // /report (done) objSubTypeMessageReportReq = 305 // /report (done)
objSubTypeMessageReportAck = 306 // result from /report (done) objSubTypeMessageReportAck = 306 // result from /report (done)
objSubTypeMessageGReportReq = 307 // /g_report (done) objSubTypeMessageGReportReq = 307 // /g_report (done)
objSubTypeMessageGReportAck = 308 // result from /g_report (not done) objSubTypeMessageGReportAck = 308 // result from /g_report (not done)
objSubTypeMessageQuestResult = 309 // result from going to quest (not done) objSubTypeMessageQuestResult = 309 // result from going to quest (not done)
objSubTypeMessageDuelFight = 310 // result from going to duel fight (done) objSubTypeMessageDuelFight = 310 // result from going to duel fight (done)
objSubTypeMessageHeroReq = 311 // /hero (done) objSubTypeMessageHeroReq = 311 // /hero (done)
objSubTypeMessageHeroAck = 312 // result from /hero (not done) objSubTypeMessageHeroAck = 312 // result from /hero (not done)
objSubTypeMessageMeReq = 313 // 🏅Me (done) objSubTypeMessageMeReq = 313 // 🏅Me (done)
objSubTypeMessageMeAck = 314 // result from 🏅Me (done) objSubTypeMessageMeAck = 314 // result from 🏅Me (done)
objSubTypeMessageInventoryReq = 315 // /inv (done) objSubTypeMessageInventoryReq = 315 // /inv (done)
objSubTypeMessageInventoryAck = 316 // result from /inv (not done) objSubTypeMessageInventoryAck = 316 // result from /inv (not done)
objSubTypeMessagePillageInc = 317 // random incoming pillage (done) objSubTypeMessagePillageInc = 317 // random incoming pillage (done)
objSubTypeMessagePillageGo = 318 // ack from /go (done) objSubTypeMessagePillageGo = 318 // ack from /go (done)
objSubTypeMessagePillageTimeout = 319 // ack from lack of /go (done) objSubTypeMessagePillageTimeout = 319 // ack from lack of /go (done)
objSubTypeMessagePillageWin = 320 // pillage successfully intercepted (done) objSubTypeMessagePillageWin = 320 // pillage successfully intercepted (done)
objSubTypeMessagePillageLoss = 321 // pillage not intercepted (done) objSubTypeMessagePillageLoss = 321 // pillage not intercepted (done)
objSubTypeMessageTributeInc = 322 // request for a /pledge (not done) objSubTypeMessageTributeInc = 322 // request for a /pledge (not done)
objSubTypeMessageTributeAck = 323 // pledge accepted (not done) objSubTypeMessageTributeAck = 323 // pledge accepted (not done)
objSubTypeMessageAuctionAnnounce = 324 // from Boris and Co, Ltd (done) objSubTypeMessageAuctionAnnounce = 324 // from Boris and Co, Ltd (done)
objSubTypeMessageAuctionUpdReq = 325 // /l_123456 msg (not done) objSubTypeMessageAuctionUpdReq = 325 // /l_123456 msg (not done)
objSubTypeMessageAuctionUpdAck = 326 // result from /l_123456 (not done) objSubTypeMessageAuctionUpdAck = 326 // result from /l_123456 (not done)
objSubTypeMessageTimeAck = 327 // result from /time (done) objSubTypeMessageTimeAck = 327 // result from /time (done)
objSubTypeMessageTimeReq = 328 // /time (done) objSubTypeMessageTimeReq = 328 // /time (done)
objSubTypeMessageGo = 329 // /go (done) objSubTypeMessageGo = 329 // /go (done)
objSubTypeMessagePledge = 330 // /pledge (done) objSubTypeMessagePledge = 330 // /pledge (done)
objSubTypeMessageGoQuestReq = 331 // 🌲Forest or 🍄Swamp or ⛰Valley (not done) objSubTypeMessageGoQuestReq = 331 // 🌲Forest or 🍄Swamp or ⛰Valley (not done)
objSubTypeMessageGoFastFight = 332 // ▶Fast fight (not done) objSubTypeMessageGoFastFight = 332 // ▶Fast fight (not done)
objSubTypeMessageGoArena = 333 // 📯Arena (not done) objSubTypeMessageGoArena = 333 // 📯Arena (not done)
objSubTypeMessageTop = 334 // any /topXX (not done) objSubTypeMessageTop = 334 // any /topXX (not done)
objSubTypeMessageMenu = 335 // main menu (not done) objSubTypeMessageMenu = 335 // main menu (not done)
objSubTypeMessageBuyReq = 336 // /wtb_xx (done) objSubTypeMessageBuyReq = 336 // /wtb_xx (done)
objSubTypeMessageSellReq = 337 // /wts_xx (done) objSubTypeMessageSellReq = 337 // /wts_xx (done)
objSubTypeMessageOrderbookReq = 338 // /t_xx (done) objSubTypeMessageOrderbookReq = 338 // /t_xx (done)
objSubTypeMessageOrderbookAck = 339 // orderbook summary (not done) objSubTypeMessageOrderbookAck = 339 // orderbook summary (not done)
objSubTypeMessageWithdrawReq = 340 // /g_withdraw (done) objSubTypeMessageWithdrawReq = 340 // /g_withdraw (done)
objSubTypeMessageWithdrawCode = 341 // code to receive (done) objSubTypeMessageWithdrawCode = 341 // code to receive (done)
objSubTypeMessageWithdrawRcv = 342 // Withdraw "received" msg (done) objSubTypeMessageWithdrawRcv = 342 // Withdraw "received" msg (done)
objSubTypeMessageStockReq = 343 // /stock (done) objSubTypeMessageStockReq = 343 // /stock (done)
objSubTypeMessageStockAck = 344 // result from /stock (not done) objSubTypeMessageStockAck = 344 // result from /stock (not done)
objSubTypeMessageMiscReq = 345 // /misc (done) objSubTypeMessageMiscReq = 345 // /misc (done)
objSubTypeMessageMiscAck = 346 // result from /misc (not done) objSubTypeMessageMiscAck = 346 // result from /misc (not done)
objSubTypeMessageUnionWar = 347 // from Chat Wars Reports (not done) objSubTypeMessageUnionWar = 347 // from Chat Wars Reports (not done)
objSubTypeMessageTUReportReq = 348 // /tu_report (not done) objSubTypeMessageTUReportReq = 348 // /tu_report (not done)
objSubTypeMessageTUReportAck = 349 // result from /tu_report (not done) objSubTypeMessageTUReportAck = 349 // result from /tu_report (not done)
objSubTypeMessageTimeout = 350 // generic timeout for action objSubTypeMessageTimeout = 350 // generic timeout for action
objSubTypeMessageGoQuestAck = 351 // confirm quest destination/busyness (done) objSubTypeMessageGoQuestAck = 351 // confirm quest destination/busyness (done)
objSubTypeMessageGRolesReq = 352 // /g_roles (done) objSubTypeMessageGRolesReq = 352 // /g_roles (done)
objSubTypeMessageGRolesAck = 353 // result from /g_roles (done) objSubTypeMessageGRolesAck = 353 // result from /g_roles (done)
objSubTypeMessageGStockResReq = 354 // /g_stock_res (done) objSubTypeMessageGStockResReq = 354 // /g_stock_res (done)
objSubTypeMessageGStockAlchReq = 355 // /g_stock_alch (done) objSubTypeMessageGStockAlchReq = 355 // /g_stock_alch (done)
objSubTypeMessageGStockMiscReq = 356 // /g_stock_misc (done) objSubTypeMessageGStockMiscReq = 356 // /g_stock_misc (done)
objSubTypeMessageGStockRecReq = 357 // /g_stock_rec (done) objSubTypeMessageGStockRecReq = 357 // /g_stock_rec (done)
objSubTypeMessageGStockPartReq = 358 // /g_stock_parts (done) objSubTypeMessageGStockPartReq = 358 // /g_stock_parts (done)
objSubTypeMessageGStockOthReq = 359 // /g_stock_other (done) objSubTypeMessageGStockOthReq = 359 // /g_stock_other (done)
objSubTypeMessageGStockAnyAck = 360 // result from any /g_stock_xxx (done) objSubTypeMessageGStockAnyAck = 360 // result from any /g_stock_xxx (done)
objSubTypeMessageGStockReq = 361 // /g_stock (done) objSubTypeMessageGStockReq = 361 // /g_stock (done)
objSubTypeMessageGStockAck = 362 // result from /g_stock (done) objSubTypeMessageGStockAck = 362 // result from /g_stock (done)
objSubTypeMessageBusy = 363 // too busy now objSubTypeMessageBusy = 363 // too busy now
objSubTypeMessageResStockReq = 364 // 📦Resources or /stock (done) objSubTypeMessageResStockReq = 364 // 📦Resources or /stock (done)
objSubTypeMessageAlchStockReq = 365 // ⚗Alchemy (done) objSubTypeMessageAlchStockReq = 365 // ⚗Alchemy (done)
objSubTypeMessageMiscStockReq = 366 // 🗃Misc or /misc (done) objSubTypeMessageMiscStockReq = 366 // 🗃Misc or /misc (done)
objSubTypeMessageEquipStockReq = 367 // 🏷Equipment (done) objSubTypeMessageEquipStockReq = 367 // 🏷Equipment (done)
objSubTypeMessageCraftStockReq = 368 // ⚒Crafting (done) objSubTypeMessageCraftStockReq = 368 // ⚒Crafting (done)
objSubTypeMessageStockEmpty = 369 // [empty] (done) objSubTypeMessageStockEmpty = 369 // [empty] (done)
objSubTypeMessageStockAnyAck = 370 // list of stock (done) objSubTypeMessageStockAnyAck = 370 // list of stock (done)
objSubTypeMessageGDepositReq = 371 // /g_deposit xx y (done) objSubTypeMessageGDepositReq = 371 // /g_deposit xx y (done)
objSubTypeMessageGDepositAck = 372 // Deposited successfully: xx (y) (done) objSubTypeMessageGDepositAck = 372 // Deposited successfully: xx (y) (done)
objSubTypeMessageAttackReq = 373 // Attack (done) objSubTypeMessageAttackReq = 373 // Attack (done)
objSubTypeMessageAttackAck = 374 // Read for attack, select target (done) objSubTypeMessageAttackAck = 374 // Read for attack, select target (done)
objSubTypeMessageAttackTargetReq = 375 // Castle selection (done) objSubTypeMessageAttackTargetReq = 375 // Castle selection (done)
objSubTypeMessageAttackTargetAck = 376 // Castle confirmation (done) objSubTypeMessageAttackTargetAck = 376 // Castle confirmation (done)
objSubTypeMessageDefendReq = 377 // Defend (done) objSubTypeMessageDefendReq = 377 // Defend (done)
objSubTypeMessageDefendAck = 378 // Defend confirmation (done) objSubTypeMessageDefendAck = 378 // Defend confirmation (done)
objSubTypeMessageBack = 379 // Back (done) objSubTypeMessageBack = 379 // Back (done)
objSubTypeMessageCastleReq = 380 // Castle (done) objSubTypeMessageCastleReq = 380 // Castle (done)
objSubTypeMessageCastleAck = 381 // Castle msg (not done) objSubTypeMessageCastleAck = 381 // Castle msg (not done)
objSubTypeMessageExchangeReq = 382 // ⚖Exchange (done) objSubTypeMessageExchangeReq = 382 // ⚖Exchange (done)
objSubTypeMessageExchangeAck = 383 // List of deals (done) objSubTypeMessageExchangeAck = 383 // List of deals (done)
objSubTypeMessageEquipGearReq = 384 // /on_item (done) objSubTypeMessageEquipGearReq = 384 // /on_item (done)
objSubTypeMessageEquipGearAck = 385 // Item equipped (done) objSubTypeMessageEquipGearAck = 385 // Item equipped (done)
objSubTypeMessageUnequipGearReq = 386 // /off_item (done) objSubTypeMessageUnequipGearReq = 386 // /off_item (done)
objSubTypeMessageUnequipGearAck = 387 // Item unequipped (done) objSubTypeMessageUnequipGearAck = 387 // Item unequipped (done)
objSubTypeMessageNoStamina = 388 // Not enough stamina. (done) objSubTypeMessageNoStamina = 388 // Not enough stamina. (done)
objSubTypeMessageOrderbookSearch = 389 // /t <something> objSubTypeMessageOrderbookSearch = 389 // /t <something>
objSubTypeMessageQuestReq = 390 // quest objSubTypeMessageQuestReq = 390 // quest
objSubTypeMessageQuestAck = 391 // forest/swamp/valley/arena objSubTypeMessageQuestAck = 391 // forest/swamp/valley/arena
objSubTypeMessageBattle = 392 // wind is howling objSubTypeMessageBattle = 392 // wind is howling
objSubTypeMessageOrderCancelReq = 393 // /rm_xxx objSubTypeMessageOrderCancelReq = 393 // /rm_xxx
objSubTypeMessageOrderCancelAck = 394 // Cancelling order objSubTypeMessageOrderCancelAck = 394 // Cancelling order
objSubTypeMessageStaminaRestored = 395 // Stamina Restored objSubTypeMessageStaminaRestored = 395 // Stamina Restored
objSubTypeMessageTopReq = 394 objSubTypeMessageTopReq = 396
objSubTypeJobPillage = 601 objSubTypeMessageQuestResultAmbush = 397 // result from going to quest with ambush (not done)
objSubTypeJobTribute = 602 objSubTypeJobPillage = 601
objSubTypeJobStatus = 603 objSubTypeJobTribute = 602
objSubTypeJobGWithdraw = 604 objSubTypeJobStatus = 603
objSubTypeJobGStock = 605 objSubTypeJobGWithdraw = 604
objSubTypeJobRescanMsg = 606 objSubTypeJobGStock = 605
objSubTypeJobSetJobDone = 607 objSubTypeJobRescanMsg = 606
objSubTypeJobMsgClient = 608 objSubTypeJobSetJobDone = 607
objSubTypeJobMsgRefresh = 609 objSubTypeJobMsgClient = 608
objSubTypeJobBackupExport = 610 objSubTypeJobMsgRefresh = 609
objSubTypeJobBackupImport = 611 objSubTypeJobBackupExport = 610
objSubTypeJobGDeposit = 612 objSubTypeJobBackupImport = 611
objSubTypeJobGDepositForward = 613 objSubTypeJobGDeposit = 612
objSubTypeJobSaveRes = 614 objSubTypeJobGDepositForward = 613
objSubTypeJobVaultUserStatus = 615 objSubTypeJobSaveRes = 614
objSubTypeJobVaultItemStatus = 616 objSubTypeJobVaultUserStatus = 615
objSubTypeItemResource = 701 objSubTypeJobVaultItemStatus = 616
objSubTypeItemAlch = 702 objSubTypeItemResource = 701
objSubTypeItemMisc = 703 objSubTypeItemAlch = 702
objSubTypeItemRecipe = 704 objSubTypeItemMisc = 703
objSubTypeItemPart = 705 objSubTypeItemRecipe = 704
objSubTypeItemOther = 706 objSubTypeItemPart = 705
objSubTypeItemUnique = 707 objSubTypeItemOther = 706
objSubTypeCastle = 801 objSubTypeItemUnique = 707
objSubTypeFair = 901 objSubTypeCastle = 801
objSubTypeUnion = 1001 objSubTypeFair = 901
objSubTypeTribute = 1101 objSubTypeUnion = 1001
objSubTypeExperience = 1201 objSubTypeTribute = 1101
objSubTypeQuestForest = 1301 objSubTypeExperience = 1201
objSubTypeQuestSwamp = 1302 objSubTypeQuestForest = 1301
objSubTypeQuestValley = 1303 objSubTypeQuestSwamp = 1302
objSubTypeQuestValley = 1303
objJobStatusCallBack = -1 objJobStatusCallBack = -1
objJobStatusNew = 0 objJobStatusNew = 0

View File

@ -364,7 +364,15 @@ func resetMsgParsingRules() {
`Foray is a dangerous activity\\. Someone can notice you and may beat you up\\. But if you go unnoticed, you will acquire a lot of loot\\.\\n\\n` + `Foray is a dangerous activity\\. Someone can notice you and may beat you up\\. But if you go unnoticed, you will acquire a lot of loot\\.\\n\\n` +
`📯Arena (🔒){0,1}\\n` + `📯Arena (🔒){0,1}\\n` +
`Arena isn't a place for the weak\\. Here you fight against other players and if you stand victorious, you acquire precious experience\\.$") `Arena isn't a place for the weak\\. Here you fight against other players and if you stand victorious, you acquire precious experience\\.$")
,(5000, ` + strconv.Itoa(objSubTypeMessageQuestResultAmbush) + `, "Quest Res with Ambush and loot", "^You met some hostile creatures\\. Be careful:\\n` +
`(?P<Monsters>(([0-9] x ){0,1}[a-zA-Z ]* lvl\\.[0-9]*\\n{0,1})+)\\n` +
`It's an ambush! Loot is locked till the end of the fight:\\n` +
`(?P<Loot>([a-zA-Z ]* \\([0-9]+\\)\\n{0,1})+*)\\n` +
`/fight_[a-zA-Z0-9]+$")
,(5000, ` + strconv.Itoa(objSubTypeMessageQuestResultAmbush) + `, "Quest Res with Ambush and no loot", "^You met some hostile creatures\\. Be careful:\\n` +
`(?P<Monsters>(([0-9] x ){0,1}[a-zA-Z ]* lvl\\.[0-9]*\\n{0,1})+)\\n` +
`It's an ambush!\\n\\n` +
`/fight_[a-zA-Z0-9]+$")
;`) ;`)
failOnError(err, "resetMsgParsingRules : populate table msg_rules") failOnError(err, "resetMsgParsingRules : populate table msg_rules")

1
sql.go
View File

@ -464,6 +464,7 @@ func initDB() {
,(` + strconv.Itoa(objSubTypeMessageGReportReq) + `, "g_report_req", "Player guilds war report request", ` + strconv.Itoa(objTypeMessage) + `) ,(` + strconv.Itoa(objSubTypeMessageGReportReq) + `, "g_report_req", "Player guilds war report request", ` + strconv.Itoa(objTypeMessage) + `)
,(` + strconv.Itoa(objSubTypeMessageGReportAck) + `, "g_report_ack", "Player guilds war report ack", ` + strconv.Itoa(objTypeMessage) + `) ,(` + strconv.Itoa(objSubTypeMessageGReportAck) + `, "g_report_ack", "Player guilds war report ack", ` + strconv.Itoa(objTypeMessage) + `)
,(` + strconv.Itoa(objSubTypeMessageQuestResult) + `, "quest_res", "Quest result", ` + strconv.Itoa(objTypeMessage) + `) ,(` + strconv.Itoa(objSubTypeMessageQuestResult) + `, "quest_res", "Quest result", ` + strconv.Itoa(objTypeMessage) + `)
,(` + strconv.Itoa(objSubTypeMessageQuestResultAmbush) + `, "quest_res_ambush", "Quest result with Ambush", ` + strconv.Itoa(objTypeMessage) + `)
,(` + strconv.Itoa(objSubTypeMessageDuelFight) + `, "duel_fight", "Duel fight result", ` + strconv.Itoa(objTypeMessage) + `) ,(` + strconv.Itoa(objSubTypeMessageDuelFight) + `, "duel_fight", "Duel fight result", ` + strconv.Itoa(objTypeMessage) + `)
,(` + strconv.Itoa(objSubTypeMessageHeroReq) + `, "hero_req", "Hero summary request", ` + strconv.Itoa(objTypeMessage) + `) ,(` + strconv.Itoa(objSubTypeMessageHeroReq) + `, "hero_req", "Hero summary request", ` + strconv.Itoa(objTypeMessage) + `)
,(` + strconv.Itoa(objSubTypeMessageHeroAck) + `, "hero_ack", "Hero summary ack", ` + strconv.Itoa(objTypeMessage) + `) ,(` + strconv.Itoa(objSubTypeMessageHeroAck) + `, "hero_ack", "Hero summary ack", ` + strconv.Itoa(objTypeMessage) + `)