Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2017
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.61 KB | None | 0 0
  1. ACMD(do_monarch_transfer)
  2. {
  3.     if (true == LC_IsYMIR() || true == LC_IsKorea())
  4.         return;
  5.  
  6.     char arg1[256];
  7.     one_argument(argument, arg1, sizeof(arg1));
  8.  
  9.     if (!*arg1)
  10.     {
  11.         ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("»çżëąý: transfer <name>"));
  12.         return;
  13.     }
  14.  
  15.     if (!CMonarch::instance().IsMonarch(ch->GetPlayerID(), ch->GetEmpire()))
  16.     {
  17.         ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("±şÁÖ¸¸ŔĚ »çżë °ˇ´ÉÇŃ ±â´ÉŔÔ´Ď´Ů"));
  18.         return;
  19.     }
  20.  
  21.     //±şÁÖ ÄđŸŔÓ °Ë»ç
  22.     if (!ch->IsMCOK(CHARACTER::MI_TRANSFER))
  23.     {
  24.         ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%d ĂĘ°Ł ÄđŸŔÓŔĚ ŔűżëÁßŔÔ´Ď´Ů."), ch->GetMCLTime(CHARACTER::MI_TRANSFER));
  25.         return;
  26.     }
  27.  
  28.     //±şÁÖ żöÇÁ şńżë
  29.     const int WarpPrice = 10000;
  30.  
  31.     //±şÁÖ ±ą°í °Ë»ç
  32.     if (!CMonarch::instance().IsMoneyOk(WarpPrice, ch->GetEmpire()))
  33.     {
  34.         int NationMoney = CMonarch::instance().GetMoney(ch->GetEmpire());
  35.         ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("±ą°íżˇ µ·ŔĚ şÎÁ·ÇŐ´Ď´Ů. ÇöŔç : %u ÇĘżä±Ýľ× : %u"), NationMoney, WarpPrice);
  36.         return;
  37.     }
  38.  
  39.  
  40.     LPCHARACTER tch = CHARACTER_MANAGER::instance().FindPC(arg1);
  41.  
  42.     if (!tch)
  43.     {
  44.         CCI * pkCCI = P2P_MANAGER::instance().Find(arg1);
  45.  
  46.         if (pkCCI)
  47.         {
  48.             if (pkCCI->bEmpire != ch->GetEmpire())
  49.             {
  50.                 ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("´Ů¸Ą Á¦±ą ŔŻŔú´Â ĽŇČŻÇŇ Ľö ľř˝Ŕ´Ď´Ů."));
  51.                 return;
  52.             }
  53.             if (pkCCI->bChannel != g_bChannel)
  54.             {
  55.                 ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s ´ÔŔş %d äłÎżˇ Á˘ĽÓ Áß ŔÔ´Ď´Ů. (ÇöŔç äłÎ: %d)"), arg1, pkCCI->bChannel, g_bChannel);
  56.                 return;
  57.             }
  58.             if (!IsMonarchWarpZone(pkCCI->lMapIndex))
  59.             {
  60.                 ch->ChatPacket (CHAT_TYPE_INFO, LC_TEXT("ÇŘ´ç ÁöżŞŔ¸·Î Ŕ̵żÇŇ Ľö ľř˝Ŕ´Ď´Ů."));
  61.                 return;
  62.             }
  63.             if (!IsMonarchWarpZone(ch->GetMapIndex()))
  64.             {
  65.                 ch->ChatPacket (CHAT_TYPE_INFO, LC_TEXT("ÇŘ´ç ÁöżŞŔ¸·Î ĽŇČŻÇŇ Ľö ľř˝Ŕ´Ď´Ů."));
  66.                 return;
  67.             }
  68.  
  69.             TPacketGGTransfer pgg;
  70.  
  71.             pgg.bHeader = HEADER_GG_TRANSFER;
  72.             strlcpy(pgg.szName, arg1, sizeof(pgg.szName));
  73.             pgg.lX = ch->GetX();
  74.             pgg.lY = ch->GetY();
  75.  
  76.             P2P_MANAGER::instance().Send(&pgg, sizeof(TPacketGGTransfer));
  77.             ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s ´ÔŔ» ĽŇČŻÇĎż´˝Ŕ´Ď´Ů."), arg1);
  78.  
  79.             //±şÁÖ µ· »č°¨
  80.             CMonarch::instance().SendtoDBDecMoney(WarpPrice, ch->GetEmpire(), ch);
  81.             //ÄđŸŔÓ ĂʱâČ­
  82.             ch->SetMC(CHARACTER::MI_TRANSFER);
  83.         }
  84.         else
  85.         {
  86.             ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("ŔÔ·ÂÇϽŠŔ̸§Ŕ» °ˇÁř »çżëŔÚ°ˇ ľř˝Ŕ´Ď´Ů."));
  87.         }
  88.  
  89.         return;
  90.     }
  91.  
  92.  
  93.     if (ch == tch)
  94.     {
  95.         ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("ŔÚ˝ĹŔ» ĽŇČŻÇŇ Ľö ľř˝Ŕ´Ď´Ů."));
  96.         return;
  97.     }
  98.  
  99.     if (tch->GetEmpire() != ch->GetEmpire())
  100.     {
  101.         ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("´Ů¸Ą Á¦±ą ŔŻŔú´Â ĽŇČŻÇŇ Ľö ľř˝Ŕ´Ď´Ů."));
  102.         return;
  103.     }
  104.     if (!IsMonarchWarpZone(tch->GetMapIndex()))
  105.     {
  106.         ch->ChatPacket (CHAT_TYPE_INFO, LC_TEXT("ÇŘ´ç ÁöżŞŔ¸·Î Ŕ̵żÇŇ Ľö ľř˝Ŕ´Ď´Ů."));
  107.         return;
  108.     }
  109.     if (!IsMonarchWarpZone(ch->GetMapIndex()))
  110.     {
  111.         ch->ChatPacket (CHAT_TYPE_INFO, LC_TEXT("ÇŘ´ç ÁöżŞŔ¸·Î ĽŇČŻÇŇ Ľö ľř˝Ŕ´Ď´Ů."));
  112.         return;
  113.     }
  114.  
  115.     //tch->Show(ch->GetMapIndex(), ch->GetX(), ch->GetY(), ch->GetZ());
  116.     tch->WarpSet(ch->GetX(), ch->GetY(), ch->GetMapIndex());
  117.  
  118.     //±şÁÖ µ· »č°¨
  119.     CMonarch::instance().SendtoDBDecMoney(WarpPrice, ch->GetEmpire(), ch);
  120.     //ÄđŸŔÓ ĂʱâČ­
  121.     ch->SetMC(CHARACTER::MI_TRANSFER);
  122. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement