Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.
 
 
 

667 рядки
9.8 KiB

  1. let events = require('../misc/events');
  2. const routerConfig = {
  3. signatures: {
  4. global: {
  5. clientConfig: {
  6. getClientConfig: {
  7. callback: true,
  8. data: []
  9. }
  10. },
  11. leaderboard: {
  12. requestList: {
  13. callback: true,
  14. data: [
  15. {
  16. key: 'offset',
  17. dataType: 'integer'
  18. },
  19. {
  20. key: 'prophecies',
  21. dataType: 'arrayOfStrings'
  22. }
  23. ]
  24. }
  25. },
  26. cons: {
  27. unzone: {
  28. callback: true,
  29. data: []
  30. }
  31. }
  32. },
  33. threadGlobal: {
  34. instancer: {
  35. clientAck: {
  36. callback: false,
  37. data: []
  38. }
  39. },
  40. rezoneManager: {
  41. clientAck: {
  42. callback: false,
  43. data: []
  44. }
  45. }
  46. },
  47. cpnMethods: {
  48. auth: {
  49. login: {
  50. callback: true,
  51. allowWhenIngame: false,
  52. data: [
  53. {
  54. key: 'username',
  55. dataType: 'string'
  56. },
  57. {
  58. key: 'password',
  59. dataType: 'string'
  60. }
  61. ]
  62. },
  63. register: {
  64. callback: true,
  65. allowWhenIngame: false,
  66. data: [
  67. {
  68. key: 'username',
  69. dataType: 'string'
  70. },
  71. {
  72. key: 'password',
  73. dataType: 'string'
  74. }
  75. ]
  76. },
  77. deleteCharacter: {
  78. callback: true,
  79. allowWhenIngame: false,
  80. data: [
  81. {
  82. key: 'name',
  83. dataType: 'string'
  84. }
  85. ]
  86. },
  87. getSkinList: {
  88. callback: true,
  89. data: []
  90. },
  91. createCharacter: {
  92. callback: true,
  93. allowWhenIngame: false,
  94. data: [
  95. {
  96. key: 'name',
  97. dataType: 'string'
  98. },
  99. {
  100. key: 'class',
  101. dataType: 'string'
  102. },
  103. {
  104. key: 'skinId',
  105. dataType: 'string'
  106. },
  107. {
  108. key: 'prophecies',
  109. dataType: 'arrayOfStrings'
  110. }
  111. ]
  112. },
  113. getCharacterList: {
  114. callback: true,
  115. allowWhenIngame: false,
  116. data: []
  117. },
  118. getCharacter: {
  119. callback: true,
  120. allowWhenIngame: false,
  121. data: [
  122. {
  123. key: 'name',
  124. dataType: 'string'
  125. }
  126. ]
  127. },
  128. play: {
  129. callback: true,
  130. allowWhenIngame: false,
  131. data: [
  132. {
  133. key: 'name',
  134. dataType: 'string'
  135. }
  136. ]
  137. }
  138. },
  139. player: {
  140. move: {
  141. callback: false,
  142. data: [
  143. {
  144. key: 'x',
  145. dataType: 'integer'
  146. },
  147. {
  148. key: 'y',
  149. dataType: 'integer'
  150. },
  151. {
  152. key: 'priority',
  153. dataType: 'boolean',
  154. optional: true
  155. }
  156. ]
  157. },
  158. castSpell: {
  159. callback: false,
  160. data: [
  161. {
  162. key: 'priority',
  163. dataType: 'boolean'
  164. },
  165. {
  166. key: 'target',
  167. dataType: 'integerNullOrObject',
  168. spec: [
  169. {
  170. key: 'x',
  171. dataType: 'integer'
  172. },
  173. {
  174. key: 'y',
  175. dataType: 'integer'
  176. }
  177. ]
  178. },
  179. {
  180. key: 'spell',
  181. dataType: 'integer'
  182. },
  183. {
  184. key: 'self',
  185. dataType: 'boolean',
  186. optional: true
  187. }
  188. ]
  189. },
  190. performAction: {
  191. callback: 'deferred',
  192. data: [
  193. {
  194. key: 'cpn',
  195. dataType: 'string'
  196. },
  197. {
  198. key: 'method',
  199. dataType: 'string'
  200. },
  201. {
  202. key: 'data',
  203. dataType: 'object'
  204. }
  205. ]
  206. }
  207. },
  208. social: {
  209. chat: {
  210. callback: false,
  211. data: [
  212. {
  213. key: 'message',
  214. dataType: 'string'
  215. },
  216. {
  217. key: 'type',
  218. dataType: 'string',
  219. optional: true
  220. },
  221. {
  222. key: 'subType',
  223. dataType: 'stringOrNull',
  224. optional: true
  225. },
  226. {
  227. key: 'item',
  228. dataType: 'object',
  229. optional: true
  230. }
  231. ]
  232. },
  233. getInvite: {
  234. callback: false,
  235. data: [
  236. {
  237. key: 'targetId',
  238. dataType: 'integer'
  239. }
  240. ]
  241. },
  242. acceptInvite: {
  243. callback: false,
  244. data: [
  245. {
  246. key: 'targetId',
  247. dataType: 'integer'
  248. }
  249. ]
  250. },
  251. declineInvite: {
  252. callback: false,
  253. data: [
  254. {
  255. key: 'targetId',
  256. dataType: 'integer'
  257. }
  258. ]
  259. },
  260. removeFromParty: {
  261. callback: false,
  262. data: [
  263. {
  264. key: 'id',
  265. dataType: 'integer'
  266. }
  267. ]
  268. },
  269. leaveParty: {
  270. callback: false,
  271. data: []
  272. }
  273. }
  274. },
  275. threadCpnMethods: {
  276. dialogue: {
  277. talk: {
  278. callback: false,
  279. data: [
  280. {
  281. key: 'target',
  282. dataType: 'integerOrString'
  283. },
  284. {
  285. key: 'state',
  286. dataType: 'numberOrString'
  287. }
  288. ]
  289. }
  290. },
  291. gatherer: {
  292. gather: {
  293. callback: false,
  294. data: [
  295. {
  296. key: 'targetId',
  297. dataType: 'integer'
  298. }
  299. ]
  300. }
  301. },
  302. quests: {
  303. complete: {
  304. callback: false,
  305. data: [
  306. {
  307. key: 'questId',
  308. dataType: 'integer'
  309. }
  310. ]
  311. }
  312. },
  313. player: {
  314. clearQueue: {
  315. callback: false,
  316. data: []
  317. }
  318. },
  319. inventory: {
  320. combineStacks: {
  321. callback: false,
  322. data: [
  323. {
  324. key: 'fromId',
  325. dataType: 'integer'
  326. },
  327. {
  328. key: 'toId',
  329. dataType: 'integer'
  330. }
  331. ]
  332. },
  333. splitStack: {
  334. callback: false,
  335. data: [
  336. {
  337. key: 'itemId',
  338. dataType: 'integer'
  339. },
  340. {
  341. key: 'stackSize',
  342. dataType: 'integer'
  343. }
  344. ]
  345. },
  346. useItem: {
  347. callback: false,
  348. data: [
  349. {
  350. key: 'itemId',
  351. dataType: 'integer'
  352. }
  353. ]
  354. },
  355. moveItem: {
  356. callback: false,
  357. data: [
  358. {
  359. key: 'moveMsgs',
  360. dataType: 'arrayOfObjects',
  361. spec: [
  362. {
  363. key: 'itemId',
  364. dataType: 'integer'
  365. },
  366. {
  367. key: 'targetPos',
  368. dataType: 'integer'
  369. }
  370. ]
  371. }
  372. ]
  373. },
  374. learnAbility: {
  375. callback: false,
  376. data: [
  377. {
  378. key: 'itemId',
  379. dataType: 'integer'
  380. },
  381. {
  382. key: 'slot',
  383. dataType: 'integer',
  384. optional: true
  385. }
  386. ]
  387. },
  388. unlearnAbility: {
  389. callback: false,
  390. data: [
  391. {
  392. key: 'itemId',
  393. dataType: 'integer'
  394. }
  395. ]
  396. },
  397. dropItem: {
  398. callback: false,
  399. data: [
  400. {
  401. key: 'itemId',
  402. dataType: 'integer'
  403. }
  404. ]
  405. },
  406. destroyItem: {
  407. callback: false,
  408. data: [
  409. {
  410. key: 'itemId',
  411. dataType: 'integer'
  412. }
  413. ]
  414. },
  415. salvageItem: {
  416. callback: false,
  417. data: [
  418. {
  419. key: 'itemId',
  420. dataType: 'integer'
  421. }
  422. ]
  423. },
  424. stashItem: {
  425. callback: false,
  426. data: [
  427. {
  428. key: 'itemId',
  429. dataType: 'integer'
  430. }
  431. ]
  432. },
  433. sortInventory: {
  434. callback: false,
  435. data: []
  436. }
  437. },
  438. equipment: {
  439. equip: {
  440. callback: false,
  441. data: [
  442. {
  443. key: 'itemId',
  444. dataType: 'integer'
  445. },
  446. {
  447. key: 'slot',
  448. dataType: 'string',
  449. optional: true
  450. }
  451. ]
  452. },
  453. unequip: {
  454. callback: false,
  455. data: [
  456. {
  457. key: 'itemId',
  458. dataType: 'integer'
  459. },
  460. {
  461. key: 'slot',
  462. dataType: 'string',
  463. optional: true
  464. }
  465. ]
  466. },
  467. setQuickSlot: {
  468. data: [
  469. {
  470. key: 'itemId',
  471. dataType: 'integer'
  472. },
  473. {
  474. key: 'slot',
  475. dataType: 'integer'
  476. }
  477. ]
  478. },
  479. useQuickSlot: {
  480. data: [
  481. {
  482. key: 'slot',
  483. dataType: 'integer'
  484. }
  485. ]
  486. },
  487. inspect: {
  488. callback: false,
  489. data: [
  490. {
  491. key: 'playerId',
  492. dataType: 'integer'
  493. }
  494. ]
  495. }
  496. },
  497. stash: {
  498. withdraw: {
  499. callback: false,
  500. data: [
  501. {
  502. key: 'itemId',
  503. dataType: 'integer'
  504. }
  505. ]
  506. },
  507. open: {
  508. callback: false,
  509. data: [
  510. {
  511. key: 'targetId',
  512. dataType: 'integer'
  513. }
  514. ]
  515. }
  516. },
  517. trade: {
  518. buySell: {
  519. callback: false,
  520. data: [
  521. {
  522. key: 'itemId',
  523. dataType: 'integer'
  524. },
  525. {
  526. key: 'action',
  527. dataType: 'string'
  528. }
  529. ]
  530. }
  531. },
  532. door: {
  533. lock: {
  534. callback: false,
  535. data: [
  536. {
  537. key: 'targetId',
  538. dataType: 'integer'
  539. }
  540. ]
  541. },
  542. unlock: {
  543. callback: false,
  544. data: [
  545. {
  546. key: 'targetId',
  547. dataType: 'integer'
  548. }
  549. ]
  550. }
  551. },
  552. wardrobe: {
  553. open: {
  554. callback: false,
  555. data: [
  556. {
  557. key: 'targetId',
  558. dataType: 'integer'
  559. }
  560. ]
  561. },
  562. apply: {
  563. callback: false,
  564. data: [
  565. {
  566. key: 'targetId',
  567. dataType: 'integer'
  568. },
  569. {
  570. key: 'skinId',
  571. dataType: 'string'
  572. }
  573. ]
  574. }
  575. },
  576. stats: {
  577. respawn: {
  578. callback: false,
  579. data: []
  580. }
  581. },
  582. passives: {
  583. tickNode: {
  584. callback: false,
  585. data: [
  586. {
  587. key: 'nodeId',
  588. dataType: 'integer'
  589. }
  590. ]
  591. },
  592. untickNode: {
  593. callback: false,
  594. data: [
  595. {
  596. key: 'nodeId',
  597. dataType: 'integer',
  598. optional: true
  599. }
  600. ]
  601. }
  602. },
  603. workbench: {
  604. open: {
  605. callback: false,
  606. data: [
  607. {
  608. key: 'targetId',
  609. dataType: 'integer'
  610. }
  611. ]
  612. },
  613. craft: {
  614. callback: false,
  615. data: [
  616. {
  617. key: 'targetId',
  618. dataType: 'integer'
  619. },
  620. {
  621. key: 'name',
  622. dataType: 'string'
  623. },
  624. {
  625. key: 'pickedItemIds',
  626. dataType: 'arrayOfIntegers'
  627. }
  628. ]
  629. },
  630. getRecipe: {
  631. data: [
  632. {
  633. key: 'targetId',
  634. dataType: 'integer'
  635. },
  636. {
  637. key: 'name',
  638. dataType: 'string'
  639. },
  640. {
  641. key: 'pickedItemIds',
  642. dataType: 'arrayOfIntegers',
  643. optional: true
  644. }
  645. ]
  646. }
  647. }
  648. }
  649. }
  650. };
  651. module.exports = {
  652. routerConfig,
  653. init: function () {
  654. routerConfig.allowed = {};
  655. routerConfig.allowTargetId = {};
  656. routerConfig.secondaryAllowed = {};
  657. routerConfig.secondaryAllowTargetId = {};
  658. routerConfig.globalAllowed = {};
  659. events.emit('onBeforeGetRouterSignatureConfig', routerConfig);
  660. }
  661. };