Advertisement
vampir

Kino

Jun 16th, 2011
1,639
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 18.38 KB | None | 0 0
  1. ### Eclipse Workspace Patch 1.0
  2. #P L2J_Ephion
  3. Index: java/com/l2jserver/gameserver/network/clientpackets/RequestBypassToServer.java
  4. ===================================================================
  5. --- java/com/l2jserver/gameserver/network/clientpackets/RequestBypassToServer.java  (revision 54)
  6. +++ java/com/l2jserver/gameserver/network/clientpackets/RequestBypassToServer.java  (working copy)
  7. @@ -33,7 +34,9 @@
  8.  import com.l2jserver.gameserver.model.actor.instance.L2MerchantSummonInstance;
  9.  import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
  10.  import com.l2jserver.gameserver.model.entity.Hero;
  11. +import com.l2jserver.gameserver.model.entity.Kino;
  12.  import com.l2jserver.gameserver.model.entity.L2Event;
  13.  import com.l2jserver.gameserver.network.SystemMessageId;
  14.  import com.l2jserver.gameserver.network.communityserver.CommunityServerThread;
  15.  import com.l2jserver.gameserver.network.communityserver.writepackets.RequestShowCommunityBoard;
  16. @@ -147,6 +152,10 @@
  17.                 }
  18.                 catch (NumberFormatException nfe) {}
  19.             }
  20. +           else if (_command.startsWith("kino")){
  21. +               Kino newKino = new Kino();
  22. +               newKino.addNumbersByCommand(activeChar,_command.substring(5));
  23. +           }
  24.             else if (_command.startsWith("summon_"))
  25.             {
  26.                 if(!activeChar.validateBypass(_command))
  27. Index: java/com/l2jserver/gameserver/GameServer.java
  28. ===================================================================
  29. --- java/com/l2jserver/gameserver/GameServer.java   (revision 54)
  30. +++ java/com/l2jserver/gameserver/GameServer.java   (working copy)
  31. @@ -120,6 +121,7 @@
  32.  import com.l2jserver.gameserver.model.PartyMatchRoomList;
  33.  import com.l2jserver.gameserver.model.PartyMatchWaitingList;
  34.  import com.l2jserver.gameserver.model.entity.Hero;
  35. +import com.l2jserver.gameserver.model.entity.Kino;
  36.  import com.l2jserver.gameserver.model.entity.TvTManager;
  37.  import com.l2jserver.gameserver.model.olympiad.Olympiad;
  38.  import com.l2jserver.gameserver.network.L2GameClient;
  39. @@ -379,7 +381,9 @@
  40.         SkillHandler.getInstance();
  41.         UserCommandHandler.getInstance();
  42.         VoicedCommandHandler.getInstance();
  43. +       Kino newKino = new Kino();
  44. +       newKino.startKino();
  45.         if (Config.L2JMOD_ALLOW_WEDDING)
  46.             CoupleManager.getInstance();
  47.        
  48. Index: java/com/l2jserver/Config.java
  49. ===================================================================
  50. --- java/com/l2jserver/Config.java  (revision 54)
  51. +++ java/com/l2jserver/Config.java  (working copy)
  52. @@ -34,6 +34,7 @@
  53.  import java.net.UnknownHostException;
  54.  import java.util.ArrayList;
  55.  import java.util.Arrays;
  56. +import java.util.LinkedList;
  57.  import java.util.List;
  58.  import java.util.StringTokenizer;
  59.  import java.util.logging.Level;
  60. @@ -720,6 +721,14 @@
  61.     public static int L2JMOD_DUALBOX_CHECK_MAX_PLAYERS_PER_IP;
  62.     public static int L2JMOD_DUALBOX_CHECK_MAX_OLYMPIAD_PARTICIPANTS_PER_IP;
  63.     public static TIntIntHashMap L2JMOD_DUALBOX_CHECK_WHITELIST;
  64. +   public static boolean KINO_ALLOWED;
  65. +   public static int KINO_TIME;
  66. +   public static int KINO_ITEM_ID;
  67. +   public static long KINO_ITEM_AMMOUNT;
  68. +   public static int KINO_MAX_NUMBER;
  69. +   public static int KINO_NUMBERS_AMMOUNT;
  70. +   public static List<Integer[]> KINO_PRICE;
  71. +  
  72.    
  73.     //--------------------------------------------------
  74.     // NPC Settings
  75. @@ -2475,6 +2484,35 @@
  76.                             }
  77.                         }
  78.                     }
  79. +                   KINO_ALLOWED = Boolean.parseBoolean(L2JModSettings.getProperty("KinoAllowed", "False"));
  80. +                   KINO_TIME = Integer.parseInt(L2JModSettings.getProperty("KinoTime", "30"));
  81. +                   KINO_ITEM_ID = Integer.parseInt(L2JModSettings.getProperty("KinoItemId", "57"));
  82. +                   KINO_ITEM_AMMOUNT = Long.parseLong(L2JModSettings.getProperty("KinoItemAmmount", "1000000"));
  83. +                   KINO_MAX_NUMBER = Integer.parseInt(L2JModSettings.getProperty("KinoMaxNumber", "80"));
  84. +                   KINO_NUMBERS_AMMOUNT = Integer.parseInt(L2JModSettings.getProperty("KinoNumbersAmmount", "4"));
  85. +                   if(KINO_ALLOWED){
  86. +                       String[] kinoPriceSplit = L2JModSettings.getProperty("KinoPrice", "").split(";");
  87. +                       KINO_PRICE = new LinkedList<Integer[]>();
  88. +                       for (String number : kinoPriceSplit)
  89. +                       {
  90. +                           String[] numbersSplit = number.split(",");
  91. +                           try
  92. +                           {
  93. +                               Integer[] numbersTable = new Integer[3];
  94. +                               numbersTable[0] = Integer.parseInt(numbersSplit[0]);
  95. +                               numbersTable[1] = Integer.parseInt(numbersSplit[1]);
  96. +                               numbersTable[2] = Integer.parseInt(numbersSplit[2]);
  97. +                               KINO_PRICE.add(numbersTable);
  98. +                           }
  99. +                           catch (NumberFormatException nfe)
  100. +                           {
  101. +                               if (!number.isEmpty())
  102. +                               {
  103. +                                   _log.warning(StringUtil.concat("[KinoPriceList]: invalid config property -> Price List \"", numbersSplit[0], "\"", numbersSplit[1], "\"", numbersSplit[3]));
  104. +                               }
  105. +                           }
  106. +                       }
  107. +                   }
  108.                 }
  109.                 catch (Exception e)
  110.                 {
  111. Index: java/com/l2jserver/gameserver/model/entity/Kino.java
  112. ===================================================================
  113. --- java/com/l2jserver/gameserver/model/entity/Kino.java    (revision 0)
  114. +++ java/com/l2jserver/gameserver/model/entity/Kino.java    (revision 0)
  115. @@ -0,0 +1,271 @@
  116. +/*
  117. + * This program is free software: you can redistribute it and/or modify it under
  118. + * the terms of the GNU General Public License as published by the Free Software
  119. + * Foundation, either version 3 of the License, or (at your option) any later
  120. + * version.
  121. + *
  122. + * This program is distributed in the hope that it will be useful, but WITHOUT
  123. + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
  124. + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
  125. + * details.
  126. + *
  127. + * You should have received a copy of the GNU General Public License along with
  128. + * this program. If not, see <http://www.gnu.org/licenses/>.
  129. + */
  130. +package com.l2jserver.gameserver.model.entity;
  131. +
  132. +import java.sql.Connection;
  133. +import java.sql.PreparedStatement;
  134. +import java.sql.ResultSet;
  135. +import java.util.LinkedList;
  136. +import java.util.List;
  137. +
  138. +import com.l2jserver.Config;
  139. +import com.l2jserver.L2DatabaseFactory;
  140. +import com.l2jserver.gameserver.Announcements;
  141. +import com.l2jserver.gameserver.ThreadPoolManager;
  142. +import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
  143. +import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
  144. +import com.l2jserver.util.StringUtil;
  145. +
  146. +/**
  147. + * @author Vampir
  148. + *
  149. + */
  150. +public class Kino
  151. +{
  152. +   private static boolean canChoose = false;
  153. +   private static List<Integer[]> choosenNumbers = new LinkedList<Integer[]>();
  154. +   private static List<Integer[]> itemsAlreadyWon = new LinkedList<Integer[]>();
  155. +  
  156. +   private class mainCounter implements Runnable
  157. +   {
  158. +       @Override
  159. +       public void run()
  160. +       {
  161. +           canChoose = false;
  162. +           Integer randomNumbers[] = new Integer[Config.KINO_NUMBERS_AMMOUNT];
  163. +           for(int i=0;i<Config.KINO_NUMBERS_AMMOUNT;i++){
  164. +               boolean check = true;
  165. +               while(check){
  166. +                   int liczba = (int) Math.round((Math.random()*(Config.KINO_MAX_NUMBER-1)+1));
  167. +                   for(int y = 0;y<i;y++)
  168. +                       if(liczba == randomNumbers[y])
  169. +                           check = false;;
  170. +                   if(check){
  171. +                       randomNumbers[i] = liczba;
  172. +                       check = false;
  173. +                   }else
  174. +                       check = true;
  175. +               }
  176. +           };
  177. +           announceNumbers(randomNumbers);
  178. +           try{Thread.sleep(Config.KINO_TIME*1000*2);}catch (InterruptedException e){}
  179. +           getWinners(randomNumbers);
  180. +           announceBestWinners(randomNumbers);
  181. +           try{Thread.sleep(Config.KINO_TIME*1000*2);}catch (InterruptedException e){}
  182. +           choosenNumbers.clear();
  183. +           canChoose = true;
  184. +           Announcements.getInstance().announceToAll("Next period of kino game just Started!");
  185. +           ThreadPoolManager.getInstance().scheduleGeneral(new mainCounter(), (Config.KINO_TIME-2)*1000*60);
  186. +       }
  187. +   }
  188. +  
  189. +   public void goodHtml(L2PcInstance activeChar){
  190. +           NpcHtmlMessage adminReply = new NpcHtmlMessage(10);
  191. +           String qboxes = "";
  192. +           String action = "";
  193. +           for(int i = 0;i<Config.KINO_NUMBERS_AMMOUNT;i++){
  194. +               qboxes += "Number "+ (i+1) +":<edit var=\"number"+ i +"\" width=120 height=15><br>";
  195. +               action += "$number"+ i + " ";
  196. +           }
  197. +           giveItem(activeChar);
  198. +           final StringBuilder replyMSG = StringUtil.startAppend(
  199. +                   1000,
  200. +                   "<html><head><title>Kino</title></head><body>",
  201. +                   "<br><center>Choose your numbers:</center><br>",
  202. +                   qboxes,
  203. +                   "<button value=\"Buy Ticket\" action=\"bypass -h kino "+ action +"\" width=65 height=21 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\">",
  204. +                   "<br>P.S. Remember that only numbers from 1 to "+ Config.KINO_MAX_NUMBER +" are allowed to be chosen.",
  205. +                   "<br>P.S.S One ticket Cost "+ Config.KINO_ITEM_AMMOUNT + " "+ activeChar.getInventory().getItemByItemId(Config.KINO_ITEM_ID).getName(),
  206. +                   "</html></body>"
  207. +           );
  208. +           adminReply.setHtml(replyMSG.toString());
  209. +           activeChar.sendPacket(adminReply);
  210. +   }
  211. +  
  212. +   public void otherHtmls(L2PcInstance activeChar, String msg){
  213. +       giveItem(activeChar);
  214. +       NpcHtmlMessage adminReply = new NpcHtmlMessage(10);
  215. +       final StringBuilder replyMSG = StringUtil.startAppend(
  216. +               1000,
  217. +               "<html><head><title>Kino</title></head><body>",
  218. +               "<br><center>"+ msg +"</center><br>",
  219. +               "</html></body>"
  220. +       );
  221. +       adminReply.setHtml(replyMSG.toString());
  222. +       activeChar.sendPacket(adminReply);
  223. +   }
  224. +  
  225. +   public boolean alreadyVoted(Integer objectId){
  226. +       for(Integer[] numbers : choosenNumbers)
  227. +           if(numbers[0].equals(objectId))
  228. +               return true;
  229. +       return false;
  230. +   }
  231. +  
  232. +   public void addNumbersByCommand(L2PcInstance activeChar, String command)
  233. +   {
  234. +       Integer[] table = new Integer[Config.KINO_NUMBERS_AMMOUNT];
  235. +       int spaces = 0;
  236. +       int number = 0;
  237. +       int max = 9;
  238. +       if(Config.KINO_MAX_NUMBER<9)
  239. +           max = Config.KINO_MAX_NUMBER;
  240. +       boolean wrong = false;
  241. +       for(int i = 0;i<command.length();i++){
  242. +           try{
  243. +           if(command.substring(i, i+1).equals(" ")){
  244. +               if(command.length()-1 == i || command.substring(i+1, i+2).equals(" "))
  245. +                   wrong = true;
  246. +               spaces ++;
  247. +           }else{
  248. +                   if(command.length()-1 == i ||command.substring(i+1, i+2).equals(" ")){
  249. +                       for(int x = 1;x<=max;x++)
  250. +                           if(command.substring(i, i+1).equals(x+""))
  251. +                               table[number] = Integer.parseInt(command.substring(i, i+1));
  252. +                   }else{
  253. +                       for(int x = 10;x<=Config.KINO_MAX_NUMBER;x++){
  254. +                           if(command.length()-1 != i+1 && !command.substring(i+2, i+3).equals(" "))
  255. +                               wrong = true;
  256. +                           if(command.substring(i, i+2).equals(x+""))
  257. +                               table[number] = Integer.parseInt(command.substring(i, i+2));
  258. +                       }
  259. +                       i ++;
  260. +                   }
  261. +                   if(table[number] != null)
  262. +                       number ++;
  263. +                   else
  264. +                       wrong = true;
  265. +               }
  266. +           }catch(IndexOutOfBoundsException e){
  267. +               wrong = true;
  268. +           }
  269. +       }
  270. +       for(int i = 1;i<table.length;i++)
  271. +           for(int x = 0;x<i;x++)
  272. +               if(table[i] == table[x])
  273. +                   wrong = true;
  274. +       if(spaces<=Config.KINO_NUMBERS_AMMOUNT-1 && !wrong){
  275. +           activeChar.getInventory().destroyItem("For Ticket", Config.KINO_ITEM_ID, Config.KINO_ITEM_AMMOUNT, activeChar, this);
  276. +           activeChar.sendMessage("You bought ticket.");
  277. +           addNumbers(activeChar.getObjectId(),table);
  278. +       }else
  279. +           otherHtmls(activeChar, "You gave wrong Numbers!");
  280. +   }
  281. +  
  282. +   private void giveItem(L2PcInstance activeChar){
  283. +       List<Integer[]> tablesToDelete = new LinkedList<Integer[]>();
  284. +       for(Integer[] table : itemsAlreadyWon)
  285. +           if(table[0].equals(activeChar.getObjectId())){
  286. +               activeChar.getInventory().addItem("Winning Item", table[1], table[2], activeChar, this);
  287. +               activeChar.sendMessage("You won: "+ activeChar.getInventory().getItemByItemId(table[1]).getItemName());
  288. +               tablesToDelete.add(table);
  289. +           }
  290. +       for(Integer[] table :tablesToDelete)
  291. +           itemsAlreadyWon.remove(table);
  292. +   }
  293. +  
  294. +   private void addNumbers(Integer objectId, Integer[] numbers){
  295. +       Integer[] tableNumbers = new Integer[Config.KINO_NUMBERS_AMMOUNT+1];
  296. +       tableNumbers[0] = objectId;
  297. +       for(int i = 1;i<=Config.KINO_NUMBERS_AMMOUNT;i++)
  298. +           tableNumbers[i] = numbers[(i-1)];
  299. +       choosenNumbers.add(tableNumbers);
  300. +   }
  301. +  
  302. +   private void announceBestWinners(Integer[] randomNumbers)
  303. +   {
  304. +       String winText = "Winners are: ";
  305. +       int firstTextNumber = winText.length();
  306. +       for(Integer[] numbers : choosenNumbers){
  307. +           int goodNumbers = 0;
  308. +           for(Integer number: numbers)
  309. +               if(numbers[0] != number)
  310. +                   for(Integer randomNumber : randomNumbers)
  311. +                       if(number == randomNumber)
  312. +                           goodNumbers++;
  313. +           if(goodNumbers == Config.KINO_MAX_NUMBER)
  314. +               winText += getWinner(numbers[0]) + ", ";
  315. +       }
  316. +       if(winText.length() > firstTextNumber)
  317. +           Announcements.getInstance().announceToAll(winText.substring(0, winText.length()-1));
  318. +       else
  319. +           Announcements.getInstance().announceToAll("There are no Winners!");
  320. +   }
  321. +
  322. +   private String getWinner(Integer charId)
  323. +   {
  324. +       String winText = "";
  325. +       Connection con = null;
  326. +       try
  327. +       {
  328. +           con = L2DatabaseFactory.getInstance().getConnection();
  329. +           PreparedStatement statement = con.prepareStatement("SELECT char_name FROM characters WHERE charId="+charId);
  330. +           ResultSet rset = statement.executeQuery();
  331. +           if(rset.next())
  332. +           {
  333. +               winText = rset.getString("char_name");
  334. +           }
  335. +           rset.close();
  336. +           statement.close();
  337. +       }
  338. +       catch (Exception e)
  339. +       {
  340. +               System.out.println("Error at getWinner in Kino.java " +e);
  341. +       }
  342. +       finally
  343. +       {
  344. +               L2DatabaseFactory.close(con);
  345. +       }
  346. +       return winText;
  347. +   }
  348. +
  349. +   private void announceNumbers(Integer[] randomNumbers)
  350. +   {
  351. +       String message = "Lucky Numbers are: ";
  352. +       for(Integer number: randomNumbers)
  353. +           message += number + ", ";
  354. +       Announcements.getInstance().announceToAll(message);
  355. +   }
  356. +
  357. +   private void getWinners(Integer[] numbers){
  358. +       for(Integer[] people : choosenNumbers){
  359. +           int goodNumbers = 0;
  360. +           for(int i = 1;i<people.length;i++)
  361. +               for(int y = 0;y<numbers.length;y++)
  362. +                   if(people[i] == numbers[y])
  363. +                       goodNumbers ++;
  364. +           for(Integer[] items : Config.KINO_PRICE)
  365. +               if(goodNumbers == items[0]){
  366. +                   Integer[] table = new Integer[3];
  367. +                   table[0] = people[0];
  368. +                   table[1] = items[1];
  369. +                   table[2] = items[2];
  370. +                   itemsAlreadyWon.add(table);
  371. +               }
  372. +       }
  373. +   }
  374. +
  375. +   public void startKino()
  376. +   {
  377. +       if(Config.KINO_ALLOWED){
  378. +           ThreadPoolManager.getInstance().scheduleGeneral(new mainCounter(), (Config.KINO_TIME-2)*1000*60);
  379. +           canChoose = true;
  380. +       }
  381. +   }
  382. +  
  383. +   public boolean canChoose(){
  384. +       return canChoose;
  385. +   }
  386. +}
  387. Index: data/scripts/handlers/MasterHandler.java
  388. ===================================================================
  389. --- data/scripts/handlers/MasterHandler.java    (revision 7978)
  390. +++ data/scripts/handlers/MasterHandler.java    (working copy)
  391. @@ -246,12 +247,15 @@
  392.  import handlers.voicedcommandhandlers.Debug;
  393.  import handlers.voicedcommandhandlers.Lang;
  394.  import handlers.voicedcommandhandlers.TvTVoicedInfo;
  395. +import handlers.voicedcommandhandlers.VoicedKino;
  396.  import handlers.voicedcommandhandlers.Wedding;
  397.  import handlers.voicedcommandhandlers.stats;
  398.  
  399. @@ -540,6 +545,8 @@
  400.     private static void loadVoicedHandlers()
  401.     {
  402.         VoicedCommandHandler.getInstance().registerVoicedCommandHandler(new stats());
  403. +       VoicedCommandHandler.getInstance().registerVoicedCommandHandler(new VoicedKino());
  404.         if (Config.L2JMOD_ALLOW_WEDDING)
  405.             VoicedCommandHandler.getInstance().registerVoicedCommandHandler(new Wedding());
  406.         if (Config.BANKING_SYSTEM_ENABLED)
  407. Index: data/scripts/handlers/voicedcommandhandlers/VoicedKino.java
  408. ===================================================================
  409. --- data/scripts/handlers/voicedcommandhandlers/VoicedKino.java (revision 0)
  410. +++ data/scripts/handlers/voicedcommandhandlers/VoicedKino.java (revision 0)
  411. @@ -0,0 +1,52 @@
  412. +/**
  413. + *
  414. + */
  415. +package handlers.voicedcommandhandlers;
  416. +
  417. +import com.l2jserver.Config;
  418. +import com.l2jserver.gameserver.handler.IVoicedCommandHandler;
  419. +import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
  420. +import com.l2jserver.gameserver.model.entity.Kino;
  421. +
  422. +/**
  423. + * @author Vampir
  424. + *
  425. + */
  426. +public class VoicedKino implements IVoicedCommandHandler
  427. +{
  428. +       private final String[] _voicedCommands =
  429. +       {
  430. +           "kino"
  431. +       };
  432. +      
  433. +       /**
  434. +        *
  435. +        * @see com.l2jserver.gameserver.handler.IVoicedCommandHandler#useVoicedCommand(java.lang.String, com.l2jserver.gameserver.model.actor.instance.L2PcInstance, java.lang.String)
  436. +        */
  437. +       public boolean useVoicedCommand(String command, L2PcInstance activeChar, String params)
  438. +       {
  439. +           if (command.equalsIgnoreCase("kino")){
  440. +               Kino x = new Kino();
  441. +               if(x.canChoose())
  442. +                   if(!x.alreadyVoted(activeChar.getObjectId()))
  443. +                       if(activeChar.getInventory().getItemByItemId(Config.KINO_ITEM_ID) != null && activeChar.getInventory().getItemByItemId(Config.KINO_ITEM_ID).getCount()>= Config.KINO_ITEM_AMMOUNT)
  444. +                           x.goodHtml(activeChar);
  445. +                       else
  446. +                           x.otherHtmls(activeChar,"You do not have enough items to buy ticket.");
  447. +                   else
  448. +                       x.otherHtmls(activeChar,"You already bought a ticket!");
  449. +               else
  450. +                   x.otherHtmls(activeChar,"You can not buy ticket right now!");
  451. +           }
  452. +           return true;
  453. +       }
  454. +      
  455. +       /**
  456. +        *
  457. +        * @see com.l2jserver.gameserver.handler.IVoicedCommandHandler#getVoicedCommandList()
  458. +        */
  459. +       public String[] getVoicedCommandList()
  460. +       {
  461. +           return _voicedCommands;
  462. +       }
  463. +}
  464.  
  465. Index: java/config/l2jmods.properties
  466. ===================================================================
  467. --- java/config/l2jmods.properties  (revision 54)
  468. +++ java/config/l2jmods.properties  (working copy)
  469. @@ -426,3 +426,39 @@
  470.  # will be 1+2=3. Use 0 or negative value for unlimited number of connections.
  471.  # Default: 127.0.0.1,0 (no limits from localhost)
  472.  DualboxCheckWhitelist = 127.0.0.1,0
  473. +
  474. +
  475. +# ---------------------------------------------------------------------------
  476. +# Kino
  477. +# ---------------------------------------------------------------------------
  478. +# Do you want to allow Kino games?
  479. +# Default: False
  480. +KinoAllowed = True
  481. +
  482. +# Time of each period in minutes.
  483. +# Default: 30
  484. +KinoTime = 30
  485. +
  486. +# Id of item that players need to pay for a ticket.
  487. +# Default: 57
  488. +KinoItemId = 57
  489. +
  490. +# How much of this items are needed to buy a ticket.
  491. +# Default: 1000000
  492. +KinoItemAmmount = 1000000
  493. +
  494. +# Whats the max number that players can choose.
  495. +# Default: 80
  496. +KinoMaxNumber = 80
  497. +
  498. +# How much numbers players have to choose.
  499. +# Default: 4
  500. +KinoNumbersAmmount = 4
  501. +
  502. +# Prices for each Number. First number mean how much good numbers player had
  503. +# Second number is Id of item, third is ammount of this item. write \ after
  504. +# making new line, dont write ; at the end
  505. +# Example:
  506. +KinoPrice = 2,57,2500;2,1467,5000;2,1468,200;\
  507. +           3,57,5000;3,1467,11;\
  508. +           4,57,33333333;4,1468,444
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement