machine.lua

main 149 lines · 6.7 KB Raw
Alex Alex Commit Server upload 18/10/2026 23:38
1local MACHINE_SELECT = {
2 [01] = {NAME = "Machine #01", LEVEL = 040, COIN_TYPE = 01, COIN_PRICE = 10, GOLD_PRICE = 010000, RARE = {00, 01}, DESC = "Chance de vim raridade: COMUM a MELHORADO."};
3 [02] = {NAME = "Machine #02", LEVEL = 085, COIN_TYPE = 01, COIN_PRICE = 20, GOLD_PRICE = 040000, RARE = {00, 02}, DESC = "Chance de vim raridade: COMUM a RARO."};
4 [03] = {NAME = "Machine #03", LEVEL = 130, COIN_TYPE = 01, COIN_PRICE = 30, GOLD_PRICE = 070000, RARE = {01, 02}, DESC = "Chance de vim raridade: MELHORADO a RARO."};
5
6
7
8
9}
10local TASK_POINTS_NAME = {
11 [01] = "Branco";
12 [02] = "Amarelo";
13 [03] = "Azul";
14}
15local AMULET_ID = {
16 [01] = {1001, 1002, 1008, 1016, 1005},
17 [02] = {1001, 1002, 1008, 1016, 1005, 1017, 1018, 1007},
18 [03] = {1001, 1002, 1008, 1016, 1005, 1017, 1018, 1007, 1019, 1020, 1021},
19 [04] = {1001, 1002, 1008, 1016, 1005, 1017, 1018, 1007, 1019, 1020, 1021, 1000, 1003, 1004, 1009},
20 [05] = {1001, 1002, 1008, 1016, 1005, 1017, 1018, 1007, 1019, 1020, 1021, 1000, 1003, 1004, 1009, 1006, 1014, 1015},
21 [06] = {1001, 1002, 1008, 1016, 1005, 1017, 1018, 1007, 1019, 1020, 1021, 1000, 1003, 1004, 1009, 1006, 1014, 1015, 1010, 1011, 1012, 1013},
22 [07] = {1001, 1002, 1008, 1016, 1005, 1017, 1018, 1007, 1019, 1020, 1021, 1000, 1003, 1004, 1009, 1006, 1014, 1015, 1010, 1011, 1012, 1013},
23}
24function onSay(player, words, param)
25 local split = param:splitTrimmed(" ")
26 local INDEX = tonumber(split[01])
27 local PlayerCoins = 0
28 local PlayerGold = PlayerGoldCoins(player, 00)
29 local NeedCoins = MACHINE_SELECT[INDEX].COIN_PRICE
30 local GoldCoins = MACHINE_SELECT[INDEX].GOLD_PRICE
31 local CoinsType = 0
32
33 if player:getLevel() < MACHINE_SELECT[INDEX].LEVEL then
34
35 return false
36 end
37 if MACHINE_SELECT[INDEX].COIN_TYPE == 01 then
38 PlayerCoins = player:getStorageValue(_SYSTEM.TASK[00].TASK_COIN_1)
39 CoinsType = 01
40 elseif MACHINE_SELECT[INDEX].COIN_TYPE == 02 then
41 PlayerCoins = player:getStorageValue(_SYSTEM.TASK[00].TASK_COIN_2)
42 CoinsType = 02
43 elseif MACHINE_SELECT[INDEX].COIN_TYPE == 03 then
44 PlayerCoins = player:getStorageValue(_SYSTEM.TASK[00].TASK_COIN_3)
45 CoinsType = 03
46 end
47 if _DEBUG_MODE then
48 print("[TALK - MACHINE AMULET] " ..player:getName().. " - Usando Machine Amulet (" ..split[01].. ")")
49 end
50 if _CHEATS.MACHINE_SORT_FREE == false then
51 if PlayerGold >= GoldCoins then
52 if PlayerCoins >= NeedCoins then
53 local iid = AMULET_ID[INDEX][math.random(01, #AMULET_ID[INDEX])]
54 local slo = 01
55 local rar = math.random(MACHINE_SELECT[INDEX].RARE[01], MACHINE_SELECT[INDEX].RARE[02])
56 local sta = 00
57 local qnt = 01
58 local ext = 00
59
60 if doBackpack(player, 00, slo, ext, 01) then
61 if doBackpack(player, 01, slo, ext, 0, iid, rar, sta) then
62 if CoinsType == 01 then
63 player:setStorageValue(_SYSTEM.TASK[00].TASK_COIN_1, (player:getStorageValue(_SYSTEM.TASK[00].TASK_COIN_1) - NeedCoins))
64 elseif CoinsType == 02 then
65 player:setStorageValue(_SYSTEM.TASK[00].TASK_COIN_2, (player:getStorageValue(_SYSTEM.TASK[00].TASK_COIN_2) - NeedCoins))
66 elseif CoinsType == 03 then
67 player:setStorageValue(_SYSTEM.TASK[00].TASK_COIN_3, (player:getStorageValue(_SYSTEM.TASK[00].TASK_COIN_3) - NeedCoins))
68 end
69 PlayerGoldCoins(player, 01, GoldCoins)
70 --player:setStorageValue(_SYSTEM.GOLD_COIN, (PlayerGold - GoldCoins))
71
72
73 player:getPosition():sendMagicEffect(14)
74 if player:getStorageValue(_QUESTLOG[95].UID_01) == 02 then
75 player:setStorageValue(_QUESTLOG[95].UID_01, 100)
76 player:setStorageValue(_QUESTLOG[96].UID_01, 01)
77 player:setStorageValue(_QUESTLOG[97].UID_01, 01)
78
79 player:addExperience(15000, true, true)
80 player:getPosition():sendMagicEffect(14)
81 player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Seu Quest Log foi atualizado.")
82 end
83 end
84 else
85 player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Sua Backpack esta cheia.")
86 player:getPosition():sendMagicEffect(03)
87 return false
88 end
89 -- DESAFIO
90 if player:getStorageValue(_DESAFIOS[00].DESAFIO_ID) > 00 then
91 if INDEX == 01 then
92 onPlayerDesafios(player, 58, 01)
93 elseif INDEX == 02 then
94 onPlayerDesafios(player, 59, 01)
95 elseif INDEX == 03 then
96 onPlayerDesafios(player, 60, 01)
97 elseif INDEX == 04 then
98 onPlayerDesafios(player, 61, 01)
99 elseif INDEX == 05 then
100 onPlayerDesafios(player, 62, 01)
101 elseif INDEX == 06 then
102 onPlayerDesafios(player, 63, 01)
103 elseif INDEX == 07 then
104 onPlayerDesafios(player, 64, 01)
105 end
106 end
107 else
108
109 end
110 else
111
112 end
113 else
114 local iid = math.random(1000, 1017)
115 local slo = 01
116 local rar = math.random(MACHINE_SELECT[INDEX].RARE[01], MACHINE_SELECT[INDEX].RARE[02])
117 local sta = 00
118 local qnt = 01
119 local ext = 00
120
121 if doBackpack(player, 00, slo, ext, 01) then
122 if doBackpack(player, 01, slo, ext, 0, iid, rar, sta) then
123 PlayerTokenCoins(player, CoinsType, NeedCoins, 01)
124 PlayerGoldCoins(player, 01, GoldCoins)
125 --player:setStorageValue(_SYSTEM.GOLD_COIN, (PlayerGold - GoldCoins))
126
127
128 player:getPosition():sendMagicEffect(14)
129 if player:getStorageValue(_QUESTLOG[95].UID_01) == 02 then
130 player:setStorageValue(_QUESTLOG[95].UID_01, 100)
131 player:setStorageValue(_QUESTLOG[96].UID_01, 01)
132 player:setStorageValue(_QUESTLOG[97].UID_01, 01)
133
134 player:addExperience(35000, true, true)
135 player:getPosition():sendMagicEffect(14)
136 player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Seu Quest Log foi atualizado.")
137 end
138 end
139 else
140 player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Sua Backpack esta cheia.")
141 player:getPosition():sendMagicEffect(03)
142 return false
143 end
144 end
145
146 doBackpack(player, 11)
147 return false
148end
149
Top