1. Server/src/
  2. char.h aç ve arat
  3. void SetGMLevel();
  4. altına ekle
  5. Kod:
  6. int GetChannel() const;
  7. char.cpp arat
  8. quest::CQuestManager::instance().LevelUp(GetPlayer ID());
  9. altına ekle
  10. Kod:
  11. // UpdateP2P TPacketGGLogin p;
  12. p.bHeader = HEADER_GG_LOGIN;
  13. strlcpy(p.szName, GetName(), sizeof(p.szName));
  14. p.dwPID = GetPlayerID();
  15. p.bEmpire = GetEmpire();
  16. p.lMapIndex = SECTREE_MANAGER::instance().GetMapIndex(GetX(), GetY());
  17. p.bChannel = g_bChannel;
  18. p.iLevel = GetLevel();
  19. P2P_MANAGER::instance().Send(&p, sizeof(TPacketGGLogin));
  20. arat
  21. BYTE CHARACTER::GetGMLevel() const
  22. altına ekle
  23. Kod:
  24. int CHARACTER::GetChannel() const{
  25. return g_bChannel;
  26. }
  27. arat
  28. TPacketGGLogin p;
  29. p.bHeader = HEADER_GG_LOGIN;
  30. strlcpy(p.szName, GetName(), sizeof(p.szName));
  31. p.dwPID = GetPlayerID();
  32. p.bEmpire = GetEmpire();
  33. p.lMapIndex = SECTREE_MANAGER::instance().GetMapIndex(GetX(), GetY());
  34. p.bChannel = g_bChannel;
  35. P2P_MANAGER::instance().Send(&p, sizeof(TPacketGGLogin));
  36. değiştir
  37. Kod:
  38. TPacketGGLogin p;
  39. p.bHeader = HEADER_GG_LOGIN;
  40. strlcpy(p.szName, GetName(), sizeof(p.szName));
  41. p.dwPID = GetPlayerID();
  42. p.bEmpire = GetEmpire();
  43. p.lMapIndex = SECTREE_MANAGER::instance().GetMapIndex(GetX(), GetY());
  44. p.bChannel = g_bChannel;
  45. p.iLevel = GetLevel();
  46. P2P_MANAGER::instance().Send(&p, sizeof(TPacketGGLogin));
  47. input_db.cpp
  48. Arat:
  49. TPacketGGLogin p;
  50. p.bHeader = HEADER_GG_LOGIN;
  51. strlcpy(p.szName, ch->GetName(), sizeof(p.szName));
  52. p.dwPID = ch->GetPlayerID();
  53. p.bEmpire = ch->GetEmpire();
  54. p.lMapIndex = SECTREE_MANAGER::instance().GetMapIndex(ch->GetX(), ch->GetY());
  55. p.bChannel = g_bChannel;
  56. P2P_MANAGER::instance().Send(&p, sizeof(TPacketGGLogin));
  57. Kod:
  58. Değiştir:
  59. TPacketGGLogin p;
  60. p.bHeader = HEADER_GG_LOGIN;
  61. strlcpy(p.szName, ch->GetName(), sizeof(p.szName));
  62. p.dwPID = ch->GetPlayerID();
  63. p.bEmpire = ch->GetEmpire();
  64. p.lMapIndex = SECTREE_MANAGER::instance().GetMapIndex(ch->GetX(), ch->GetY());
  65. p.bChannel = g_bChannel;
  66. p.iLevel = ch->GetLevel();
  67. P2P_MANAGER::instance().Send(&p, sizeof(TPacketGGLogin));
  68. packet.h
  69. arat
  70. typedef struct SPacketGGLogin
  71. {
  72. BYTE bHeader;
  73. char szName[CHARACTER_NAME_MAX_LEN + 1];
  74. DWORD dwPID;
  75. BYTE bEmpire;
  76. long lMapIndex;
  77. BYTE bChannel;
  78. } TPacketGGLogin;
  79. Kod:
  80. Değiştir:typedef struct SPacketGGLogin
  81. {
  82. BYTE bHeader;
  83. char szName[CHARACTER_NAME_MAX_LEN + 1];
  84. DWORD dwPID;
  85. BYTE bEmpire;
  86. long lMapIndex;
  87. BYTE bChannel;
  88. int iLevel;
  89. } TPacketGGLogin;
  90. p2p.cpp
  91. Arat (void P2P_MANAGER::Boot(LPDESC d)):
  92. p.bHeader = HEADER_GG_LOGIN;
  93. strlcpy(p.szName, ch->GetName(), sizeof(p.szName));
  94. p.dwPID = ch->GetPlayerID();
  95. p.bEmpire = ch->GetEmpire();
  96. p.lMapIndex = SECTREE_MANAGER::instance().GetMapIndex(ch->GetX(), ch->GetY());
  97. p.bChannel = g_bChannel;
  98. d->Packet(&p, sizeof(p));
  99. Değiştir:
  100. Kod:
  101. p.bHeader = HEADER_GG_LOGIN;
  102. strlcpy(p.szName, ch->GetName(), sizeof(p.szName));
  103. p.dwPID = ch->GetPlayerID();
  104. p.bEmpire = ch->GetEmpire();
  105. p.lMapIndex = SECTREE_MANAGER::instance().GetMapIndex(ch->GetX(), ch->GetY());
  106. p.bChannel = g_bChannel;
  107. p.iLevel = ch->GetLevel();
  108. d->Packet(&p, sizeof(p));
  109. [/CODE]
  110. Arat (void P2P_MANAGER::Login(LPDESC d, const TPacketGGLogin * p)):
  111. pkCCI->lMapIndex = p->lMapIndex;
  112. pkCCI->pkDesc = d;
  113. pkCCI->bChannel = p->bChannel;
  114. sys_log(0, "P2P: Login %s", pkCCI->szName);
  115. CGuildManager::instance().P2PLoginMember(pkCCI->dwPID);
  116. CPartyManager::instance().P2PLogin(pkCCI->dwPID, pkCCI->szName);
  117. Kod:
  118. Değiştir:
  119. pkCCI->lMapIndex = p->lMapIndex;
  120. pkCCI->pkDesc = d;
  121. pkCCI->bChannel = p->bChannel;
  122. pkCCI->iLevel = p->iLevel;
  123. sys_log(0, "P2P: Login %s", pkCCI->szName);
  124. CGuildManager::instance().P2PLoginMember(pkCCI->dwPID);
  125. CPartyManager::instance().P2PLogin(pkCCI->dwPID, pkCCI->szName);
  126. p2p.h
  127. Arat:
  128. typedef struct _CCI
  129. {
  130. char szName[CHARACTER_NAME_MAX_LEN + 1];
  131. DWORD dwPID;
  132. BYTE bEmpire;
  133. long lMapIndex;
  134. BYTE bChannel;
  135. LPDESC pkDesc;
  136. } CCI;
  137. Kod:
  138. Değiştir:
  139. typedef struct _CCI
  140. {
  141. char szName[CHARACTER_NAME_MAX_LEN + 1];
  142. DWORD dwPID;
  143. BYTE bEmpire;
  144. long lMapIndex;
  145. BYTE bChannel;
  146. LPDESC pkDesc;
  147. int iLevel;
  148. } CCI;
  149. cmd_general.cpp
  150. müsait biryere ekleyin
  151. [CODE]ACMD(do_bilgial){
  152. char arg1[256];
  153. one_argument(argument, arg1, sizeof(arg1));
  154. if (!*arg1)
  155. return;
  156. int iTargetEmpire = 0;
  157. int iTargetLevel = 0;
  158. int iTargetChannel = 0;
  159. LPCHARACTER tch = CHARACTER_MANAGER::instance().FindPC(arg1);
  160. if (tch)
  161. {
  162. iTargetEmpire = (int)tch->GetEmpire();
  163. iTargetLevel = tch->GetLevel();
  164. iTargetChannel = tch->GetChannel();
  165. }
  166. else {
  167. CCI * pkCCI = P2P_MANAGER::instance().Find(arg1);
  168. if (pkCCI)
  169. {
  170. iTargetEmpire = (int)pkCCI->bEmpire;
  171. iTargetLevel = pkCCI->iLevel;
  172. iTargetChannel = (int)pkCCI->bChannel;
  173. }
  174. else {
  175. ch->ChatPacket(CHAT_TYPE_INFO, "Hedef oyuncu: %s suan offline", arg1);
  176. return;
  177. }
  178. }
  179. ch->ChatPacket(CHAT_TYPE_COMMAND, "bilgiver %s %d %d %d", arg1, iTargetEmpire, iTargetLevel, iTargetChannel);
  180. }
  181. Arat
  182. Cmd.cpp
  183. ACMD(do_refine_rod);
  184. altına
  185. Kod:
  186. ACMD(do_bilgial);
  187. ---
  188. { "joy", do_emotion, 0, POS_FIGHTING, GM_PLAYER },
  189. altınada
  190. Kod:
  191. { "bilgial", do_bilgial, 0, POS_DEAD, GM_PLAYER },
  192. Client/userinterface/pythonnetworkstreamcommand.cpp
  193. arat
  194. else if (!strcmpi(szCmd, "mobile_auth"))
  195. {
  196. PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "OnMobileAuthority", Py_BuildValue("()"));
  197. }
  198. Kod:
  199. Ekle:
  200. else if (!strcmpi(szCmd, "bilgiver"))
  201. {
  202. if (5 != TokenVector.size())
  203. {
  204. TraceError("CPythonNetworkStream::ServerCommand(c_szCommand=%s) - Strange Parameter Count : %d", c_szCommand, TokenVector.size());
  205. return;
  206. }
  207. const std::string & c_rstrName = TokenVector[1].c_str();
  208. int iEmpire = atoi(TokenVector[2].c_str());
  209. int iLevel = atoi(TokenVector[3].c_str());
  210. int iChannel = atoi(TokenVector[4].c_str());
  211. PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "BINARY_BilgiIsle", Py_BuildValue("(siii)", c_rstrName.c_str(), iEmpire, iLevel, iChannel));
  212. }
  213. /root
  214. game.py
  215. Arat:
  216. def BINARY_UpdateLovePoint(self, lovePoint):
  217. if self.interface.wndMessenger:
  218. self.interface.wndMessenger.OnUpdateLovePoint(love Point)
  219. if self.affectShower:
  220. self.affectShower.OnUpdateLovePoint(lovePoint)
  221. Kod:
  222. Ekle:
  223. def BINARY_BilgiIsle(self, targetName, targetEmpire, targetLevel, targetChannel):
  224. self.interface.BilgileriEkle(targetName, targetEmpire, targetLevel, targetChannel)
  225. interfaceModule.py
  226. Arat:
  227. def MinimizeWhisperDialog(self, name):
  228. if 0 != name:
  229. self.__MakeWhisperButton(name)
  230. self.CloseWhisperDialog(name)
  231. Kod:
  232. Altına ekle:
  233. def BilgileriEkle(self, name, empire, level, channel):
  234. try:
  235. dlgWhisper = self.whisperDialogDict[name]
  236. dlgWhisper.SetToolTipForBilgi(name, empire, level, channel)
  237. except:
  238. import dbg, sys
  239. (type, msg, tb)=sys.exc_info()
  240. dbg.TraceError("interface.BilgileriEkle - Failed to find key | %s:%s" % (type, msg))
  241. whisperdialog.py
  242. Arat:
  243. {
  244. "name" : "titlename",
  245. "type" : "text",
  246. "x" : 3,
  247. "y" : 3,
  248. "text" : uiScriptLocale.WHISPER_NAME,
  249. },
  250. Kod:
  251. Üstüne ekle:
  252. {
  253. "name" : "hiddenbutton",
  254. "type" : "button",
  255. "x" : 0,
  256. "y" : 0,
  257. "text" : "",
  258. "default_image" : "d:/ymir work/ui/public/hidden.tga",
  259. "over_image" : "d:/ymir work/ui/public/hidden.tga",
  260. "down_image" : "d:/ymir work/ui/public/hidden.tga",
  261. },
  262. uiwhisper.py
  263. Kod:
  264. importların altına ekle:import uiToolTip
  265. empireList = ["NULL", "Shinsoo", "Chunjo", "Jinno"]
  266. Arat:
  267. self.titleName = GetObject("titlename")
  268. Kod:
  269. Altına ekle:
  270. self.titleHiddenButton = GetObject("hiddenbutton")
  271. Arat:
  272. def OpenWithTarget(self, targetName):
  273. chat.CreateWhisper(targetName)
  274. chat.SetWhisperBoxSize(targetName, self.GetWidth() - 60, self.GetHeight() - 90)
  275. self.chatLine.SetFocus()
  276. self.titleName.SetText(targetName)
  277. self.targetName = targetName
  278. self.textRenderer.SetTargetName(targetName)
  279. self.titleNameEdit.Hide()
  280. self.ignoreButton.Show()
  281. self.reportButton.Show()
  282. self.acceptButton.Hide()
  283. self.gamemasterMark.Hide()
  284. self.minimizeButton.Show()
  285. Kod:
  286. Altına ekle:
  287. self.SetToolTipForBilgi(targetName, 0, 0, 0)
  288. net.SendChatPacket("/bilgial %s" % targetName)
  289. Arat:
  290. def OpenWithoutTarget(self, event):
  291. self.eventAcceptTarget = event
  292. self.titleName.SetText("")
  293. self.titleNameEdit.SetText("")
  294. self.titleNameEdit.SetFocus()
  295. self.targetName = 0
  296. self.titleNameEdit.Show()
  297. self.ignoreButton.Hide()
  298. self.reportViolentWhisperButton.Hide()
  299. self.acceptButton.Show()
  300. self.minimizeButton.Hide()
  301. Kod:
  302. Altına ekle:
  303. self.titleHiddenButton.Hide()
  304. Arat:
  305. def AcceptTarget(self):
  306. name = self.titleNameEdit.GetText()
  307. if len(name) <= 0:
  308. self.Close()
  309. return
  310. if None != self.eventAcceptTarget:
  311. self.titleNameEdit.KillFocus()
  312. self.eventAcceptTarget(name)
  313. Kod:
  314. Değiştir:
  315. def AcceptTarget(self):
  316. name = self.titleNameEdit.GetText()
  317. if len(name) <= 0:
  318. self.Close()
  319. return
  320. if None != self.eventAcceptTarget:
  321. self.titleNameEdit.KillFocus()
  322. self.eventAcceptTarget(name)
  323. if not self.titleHiddenButton.IsShow():
  324. self.titleHiddenButton.Show()
  325. self.SetToolTipForBilgi(name, 0, 0, 0)
  326. net.SendChatPacket("/bilgial %s" % name)
  327. Arat:
  328. def Close(self):
  329. Kod:
  330. Üstüne ekle:
  331. def __CreateGameTypeToolTip(self, name, empire, level, channel):
  332. tooltipItem = uiToolTip.ToolTip()
  333. tooltipItem.ClearToolTip()
  334. if not empire and not level and not channel:
  335. tooltipItem.AppendTextLine("Oyuncu %s'in bilgileri henuz hazir degil." % name)
  336. else:
  337. tooltipItem.AppendTextLine("Krallik: %s Kralligi" % empireList[empire])
  338. tooltipItem.AppendTextLine("Seviye: %d" % level)
  339. tooltipItem.AppendTextLine("Kanal: %d" % channel)
  340. return tooltipItem
  341. def SetToolTipForBilgi(self, name, empire, level, channel):
  342. self.titleHiddenButton.SetToolTipWindow(self.__CreateGameTypeToolTip(name, empire, level, channel))