1. ********************************************SERVERSRC********************************************
  2. common/service.h
  3. #define REMOTE_TRADE_SYSTEM
  4. ekle.
  5. exchange.cpp aç ve arat ;
  6. if (iDist >= EXCHANGE_MAX_DISTANCE)
  7. değiştir;
  8. #ifdef REMOTE_TRADE_SYSTEM
  9. // if (iDist >= EXCHANGE_MAX_DISTANCE)
  10. // return false;
  11. #else
  12. if (iDist >= EXCHANGE_MAX_DISTANCE)
  13. return false;
  14. #endif
  15. gamesrc/cmd.cpp aç ve arat
  16. ACMD(do_mall_close);
  17. altına ekle;
  18. #ifdef REMOTE_TRADE_SYSTEM
  19. ACMD(do_uzaktan_ticaret);
  20. ACMD(do_uzaktan_ticaret_hayir);
  21. ACMD(do_uzaktan_ticaret_kabul);
  22. #endif
  23. arat;
  24. { "mall_close", do_mall_close, 0, POS_DEAD, GM_PLAYER },
  25. altına ekle;
  26. #ifdef REMOTE_TRADE_SYSTEM
  27. { "uzaktan_ticaret", do_uzaktan_ticaret, 0, POS_DEAD, GM_PLAYER },
  28. { "uzaktan_ticaret_hayir", do_uzaktan_ticaret_hayir, 0, POS_DEAD, GM_PLAYER },
  29. { "uzaktan_ticaret_kabul", do_uzaktan_ticaret_kabul, 0, POS_DEAD, GM_PLAYER },
  30. #endif
  31. cmd_general.cpp aç ve arat;
  32. ACMD(do_unmount)
  33. kod bloğu bitimine ekle;
  34. #ifdef REMOTE_TRADE_SYSTEM
  35. ACMD(do_uzaktan_ticaret_hayir)
  36. {
  37. char hedef[256];
  38. one_argument(argument, hedef, sizeof(hedef));
  39. LPCHARACTER kimsin = CHARACTER_MANAGER::instance().FindPC(hedef);
  40. CCI * farklich = P2P_MANAGER::instance().Find(hedef);
  41. /////////////////////////////////////////////////////////////////////////
  42. if(ch->IsDead() || ch->GetMyShop() || ch->GetShopOwner() || ch->IsOpenSafebox() || ch->IsCubeOpen() || ch->IsAcceOpen() || ch->GetOfflineShopOwner())
  43. {
  44. ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("다른 거래중(창고,교환,상점)에는 개인상점을 사용할 수 없습니다."));
  45. return;
  46. }
  47. if (ch->GetMapIndex() >= 10000 || ch->GetMapIndex() == 201 || ch->GetMapIndex() == 113 || ch->GetMapIndex() == 207 || ch->GetMapIndex() == 216 || ch->GetMapIndex() == 217 || ch->GetMapIndex() == 235 || ch->GetMapIndex() == 241 || ch->GetMapIndex() == 223 || ch->GetMapIndex() == 353 || ch->GetMapIndex() == 354 || ch->GetMapIndex() == 355 || ch->GetMapIndex() == 357 || ch->GetMapIndex() == 212 || ch->GetMapIndex() == 241 || ch->GetMapIndex() == 352 || ch->GetMapIndex() == 66 || ch->GetMapIndex() == 246 || ch->GetMapIndex() == 4 || ch->GetMapIndex() == 24 || ch->GetMapIndex() == 44 || ch->GetMapIndex() == 81 || ch->GetMapIndex() == 103 || ch->GetMapIndex() == 105 || ch->GetMapIndex() == 112 || ch->GetMapIndex() == 114 || ch->GetMapIndex() == 118 || ch->GetMapIndex() == 119 || ch->GetMapIndex() == 120 || ch->GetMapIndex() == 121 || ch->GetMapIndex() == 122 || ch->GetMapIndex() == 123 || ch->GetMapIndex() == 124 || ch->GetMapIndex() == 125 || ch->GetMapIndex() == 126 || ch->GetMapIndex() == 127 || ch->GetMapIndex() == 128 || ch->GetMapIndex() == 181 || ch->GetMapIndex() == 182 || ch->GetMapIndex() == 183 || ch->GetMapIndex() == 200)
  48. {
  49. ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("BU_HARITADA_UZAKTAN_TICARET_ACILAMAZ"));
  50. return;
  51. }
  52. if (!ch)
  53. return;
  54. if (!ch->IsPC())
  55. return;
  56. if (ch->IsHack())
  57. return;
  58. if (kimsin == ch)
  59. {
  60. return;
  61. }
  62. if (!*hedef)
  63. {
  64. ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("HATALI_KULLANIM"));
  65. return;
  66. }
  67. if (kimsin)
  68. {
  69. kimsin->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s ADLI_OYUNCU_UZAKTAN_TICARETI_REDDETTI"), ch->GetName());
  70. }
  71. else if (!kimsin)
  72. {
  73. if (farklich)
  74. {
  75. ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s ADLI_OYUNCU_ILE_AYNI_CHDE_DEGILSIN"), kimsin->GetName());
  76. return;
  77. }
  78. else
  79. {
  80. ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s ADLI_OYUNCU_OYUNDA_DEGIL"), hedef);
  81. }
  82. }
  83. }
  84. ACMD(do_uzaktan_ticaret_kabul)
  85. {
  86. char hedef[256];
  87. one_argument(argument, hedef, sizeof(hedef));
  88. LPCHARACTER kimsin = CHARACTER_MANAGER::instance().FindPC(hedef);
  89. CCI * farklich = P2P_MANAGER::instance().Find(hedef);
  90. /////////////////////////////////////////////////////////////////
  91. if(ch->IsDead() || ch->GetMyShop() || ch->GetShopOwner() || ch->IsOpenSafebox() || ch->IsCubeOpen() || ch->IsAcceOpen() || ch->GetOfflineShopOwner())
  92. {
  93. ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("다른 거래중(창고,교환,상점)에는 개인상점을 사용할 수 없습니다."));
  94. return;
  95. }
  96. if (ch->GetMapIndex() >= 10000 || ch->GetMapIndex() == 201 || ch->GetMapIndex() == 113 || ch->GetMapIndex() == 207 || ch->GetMapIndex() == 216 || ch->GetMapIndex() == 217 || ch->GetMapIndex() == 235 || ch->GetMapIndex() == 241 || ch->GetMapIndex() == 223 || ch->GetMapIndex() == 353 || ch->GetMapIndex() == 354 || ch->GetMapIndex() == 355 || ch->GetMapIndex() == 357 || ch->GetMapIndex() == 212 || ch->GetMapIndex() == 241 || ch->GetMapIndex() == 352 || ch->GetMapIndex() == 66 || ch->GetMapIndex() == 246 || ch->GetMapIndex() == 4 || ch->GetMapIndex() == 24 || ch->GetMapIndex() == 44 || ch->GetMapIndex() == 81 || ch->GetMapIndex() == 103 || ch->GetMapIndex() == 105 || ch->GetMapIndex() == 112 || ch->GetMapIndex() == 114 || ch->GetMapIndex() == 118 || ch->GetMapIndex() == 119 || ch->GetMapIndex() == 120 || ch->GetMapIndex() == 121 || ch->GetMapIndex() == 122 || ch->GetMapIndex() == 123 || ch->GetMapIndex() == 124 || ch->GetMapIndex() == 125 || ch->GetMapIndex() == 126 || ch->GetMapIndex() == 127 || ch->GetMapIndex() == 128 || ch->GetMapIndex() == 181 || ch->GetMapIndex() == 182 || ch->GetMapIndex() == 183 || ch->GetMapIndex() == 200)
  97. {
  98. ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("BU_HARITADA_UZAKTAN_TICARET_ACILAMAZ"));
  99. return;
  100. }
  101. if (!ch)
  102. return;
  103. if (!ch->IsPC())
  104. return;
  105. if (ch->IsHack())
  106. return;
  107. if (kimsin == ch)
  108. {
  109. return;
  110. }
  111. if (!*hedef)
  112. {
  113. ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("HATALI_KULLANIM"));
  114. return;
  115. }
  116. if (kimsin)
  117. {
  118. ch->ExchangeStart(kimsin);
  119. }
  120. else if (!kimsin)
  121. {
  122. if (farklich)
  123. {
  124. ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s ADLI_OYUNCU_ILE_AYNI_CHDE_DEGILSIN"), kimsin->GetName());
  125. return;
  126. }
  127. else
  128. {
  129. ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s ADLI_OYUNCU_OYUNDA_DEGIL"), hedef);
  130. }
  131. }
  132. }
  133. ACMD(do_uzaktan_ticaret)
  134. {
  135. char arg1[256];
  136. one_argument(argument, arg1, sizeof(arg1));
  137. LPCHARACTER kimsin = CHARACTER_MANAGER::instance().FindPC(arg1);
  138. ////////////////////////////////////////////////////////////////////
  139. if(ch->IsDead() || ch->GetMyShop() || ch->GetShopOwner() || ch->IsOpenSafebox() || ch->IsCubeOpen() || ch->IsAcceOpen() || ch->GetOfflineShopOwner())
  140. {
  141. ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("다른 거래중(창고,교환,상점)에는 개인상점을 사용할 수 없습니다."));
  142. return;
  143. }
  144. if (ch->GetMapIndex() >= 10000 || ch->GetMapIndex() == 201 || ch->GetMapIndex() == 113 || ch->GetMapIndex() == 207 || ch->GetMapIndex() == 216 || ch->GetMapIndex() == 217 || ch->GetMapIndex() == 235 || ch->GetMapIndex() == 241 || ch->GetMapIndex() == 223 || ch->GetMapIndex() == 353 || ch->GetMapIndex() == 354 || ch->GetMapIndex() == 355 || ch->GetMapIndex() == 357 || ch->GetMapIndex() == 212 || ch->GetMapIndex() == 241 || ch->GetMapIndex() == 352 || ch->GetMapIndex() == 66 || ch->GetMapIndex() == 246 || ch->GetMapIndex() == 4 || ch->GetMapIndex() == 24 || ch->GetMapIndex() == 44 || ch->GetMapIndex() == 81 || ch->GetMapIndex() == 103 || ch->GetMapIndex() == 105 || ch->GetMapIndex() == 112 || ch->GetMapIndex() == 114 || ch->GetMapIndex() == 118 || ch->GetMapIndex() == 119 || ch->GetMapIndex() == 120 || ch->GetMapIndex() == 121 || ch->GetMapIndex() == 122 || ch->GetMapIndex() == 123 || ch->GetMapIndex() == 124 || ch->GetMapIndex() == 125 || ch->GetMapIndex() == 126 || ch->GetMapIndex() == 127 || ch->GetMapIndex() == 128 || ch->GetMapIndex() == 181 || ch->GetMapIndex() == 182 || ch->GetMapIndex() == 183 || ch->GetMapIndex() == 200)
  145. {
  146. ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("BU_HARITADA_UZAKTAN_TICARET_ACILAMAZ"));
  147. return;
  148. }
  149. if (!*arg1)
  150. return;
  151. if (!ch)
  152. return;
  153. if (!ch->IsPC())
  154. return;
  155. if (ch->IsHack())
  156. return;
  157. if (kimsin == ch)
  158. {
  159. ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("KENDINE_UZAKTAN_TICARET_ATAMASSIN"));
  160. return;
  161. }
  162. if (kimsin == NULL || !kimsin)
  163. {
  164. CCI* farklich = P2P_MANAGER::instance().Find(arg1);
  165. if (!farklich || farklich == NULL)
  166. {
  167. ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("상대방이 온라인 상태가 아닙니다."));
  168. return;
  169. }
  170. else
  171. {
  172. if (farklich->bChannel != g_bChannel)
  173. {
  174. ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("상대방이 %d 채널에 있습니다. (현재 채널 %d)"), farklich->bChannel, g_bChannel);
  175. return;
  176. }
  177. else
  178. {
  179. ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("AYNI_HARITADA_DEGILSINIZ"));
  180. return;
  181. }
  182. }
  183. }
  184. else
  185. {
  186. if (kimsin->IsBlockMode(BLOCK_EXCHANGE))
  187. {
  188. kimsin->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s ADLI_OYUNCU_UZAKTAN_TICARETI_REDDETT?"),ch->GetName());
  189. return;
  190. }
  191. if (kimsin->IsHack())
  192. {
  193. ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("OYUNCU_ZATEN_TICARET_YAPIYOR"));
  194. return;
  195. }
  196. if (kimsin)
  197. kimsin->ChatPacket(CHAT_TYPE_COMMAND, "sorgu %s %d", ch->GetName(), ch->GetLevel());
  198. }
  199. }
  200. #endif
  201. clientsrc/pythonnetworkstreamphasegame.cpp
  202. if (pCharacterInstance)
  203. CPythonExchange::Instance().SetTargetName(pCharacterInstance->GetNameString());
  204. CPythonExchange::Instance().SetTargetLevel(pCharacterInstance->GetLevel());
  205. bul değiştir
  206. if (pCharacterInstance)
  207. {
  208. CPythonExchange::Instance().SetTargetName(pCharacterInstance->GetNameString());
  209. CPythonExchange::Instance().SetTargetLevel(pCharacterInstance->GetLevel());
  210. }
  211. ********************************************SERVERSRC********************************************
  212. game.py aç ve arat
  213. "ConsoleEnable" : self.__Console_Enable,
  214. altına ekle;
  215. "sorgu" : self.Uzaktan_ticaret_soru,
  216. arat;
  217. # END_OF_WEDDING
  218. altına ekle veya game.py en alta fark etmez;
  219. def Uzaktan_ticaret_soru(self, isim, level):
  220. uzaktan_sorusu = uiCommon.QuestionDialog()
  221. uzaktan_sorusu.SetText("|cffFDD017|H|h" + str(isim)+ "|cff00ccff" + "(Lv."+str(level)+")"+ "|h|r" + " Seninle uzaktan ticaret yapmak istiyor.")
  222. uzaktan_sorusu.SetAcceptEvent(lambda arg=TRUE: self.kabul(isim))
  223. uzaktan_sorusu.SetCancelEvent(lambda arg=FALSE: self.hayir(isim))
  224. uzaktan_sorusu.Open()
  225. self.uzaktan_sorusu = uzaktan_sorusu
  226. return
  227. def kabul(self, isim):
  228. net.SendChatPacket("/uzaktan_ticaret_kabul " + str(isim))
  229. self.uzaktan_sorusu.Close()
  230. def hayir(self, isim):
  231. net.SendChatPacket("/uzaktan_ticaret_hayir " + str(isim))
  232. self.uzaktan_sorusu.Close()
  233. uiwhisper.py aç ve arat
  234. def ReportViolentWhisper(self):
  235. net.SendChatPacket("/reportviolentwhisper " + self.targetName)
  236. altına ekle;
  237. def uzaktanticaret_black(self):
  238. net.SendChatPacket("/uzaktan_ticaret " + self.targetName)
  239. arat; self.titleNameEdit.Show()
  240. altına ekle; self.uzaktan.Hide()
  241. arat; self.minimizeButton.Show()
  242. altına ekle;
  243. self.uzaktan.Show()
  244. self.uzaktan.SetText("U.Ticaret")
  245. arat;
  246. self.titleNameEdit.Hide()
  247. altına ekle;
  248. self.uzaktan.Hide()
  249. arat;
  250. self.sendButton = None
  251. altına ekle;
  252. self.uzaktan = None
  253. arat;
  254. self.titleNameEdit.SetEscapeEvent(ui.__mem_func__(self.Close))
  255. altına ekle;
  256. self.uzaktan.SetEvent(ui.__mem_func__(self.uzaktanticaret_black))
  257. arat;
  258. self.minimizeButton = GetObject("minimizebutton")
  259. altına ekle;
  260. self.uzaktan = GetObject("uzaktan")
  261. uiscript/whisperdialog.py aç ve arat;
  262. {
  263. "name" : "acceptbutton",
  264. "type" : "button",
  265. "x" : 145,
  266. "y" : 10,
  267. "text" : uiScriptLocale.OK,
  268. "default_image" : "d:/ymir work/ui/public/small_thin_button_01.sub",
  269. "over_image" : "d:/ymir work/ui/public/small_thin_button_02.sub",
  270. "down_image" : "d:/ymir work/ui/public/small_thin_button_03.sub",
  271. },
  272. altına ekle;
  273. {
  274. "name" : "uzaktan",
  275. "type" : "button",
  276. "x" : 197,
  277. "y" : 10,
  278. "default_image" : "d:/ymir work/ui/public/small_thin_button_01.sub",
  279. "over_image" : "d:/ymir work/ui/public/small_thin_button_02.sub",
  280. "down_image" : "d:/ymir work/ui/public/small_thin_button_03.sub",
  281. },
  282. locale_String.txt
  283. "HATALI_KULLANIM";
  284. "[Bilgi] Bunu yapamassın";
  285. "%s ADLI_OYUNCU_UZAKTAN_TICARETI_REDDETTI";
  286. "[Bilgi] %s adlı oyuncu uzaktan ticareti reddetti!";
  287. "%s ADLI_OYUNCU_ILE_AYNI_CHDE_DEGILSIN";
  288. "[Bilgi] %s adlı oyuncu ile aynı ch'de değilsin!";
  289. "%s ADLI_OYUNCU_OYUNDA_DEGIL";
  290. "[Bilgi] %s adlı oyuncu oyunda aktif değil!";
  291. "AYNI_HARITADA_DEGILSINIZ";
  292. "[Bilgi] Uzaktan ticaret gönderebilmek için aynı haritada değilsiniz!";
  293. "OYUNCU_ZATEN_TICARET_YAPIYOR";
  294. "[Bilgi] Oyuncu zaten ticaret yapıyor!";
  295. "BU_HARITADA_UZAKTAN_TICARET_ACILAMAZ";
  296. "[Bilgi] Bu haritada uzaktan ticaret kullanamassın!";
  297. "KENDINE_UZAKTAN_TICARET_ATAMASSIN";
  298. "[Bilgi] Kendine uzaktan ticaret atamassın!";
  299. "%s ADLI_OYUNCUYA_UZAKTAN_TICARET_GONDERILDI";
  300. "[Bilgi] %s adlı oyuncuya uzaktan ticaret gönderildi.";