PDA

View Full Version : [JX] xin code add random ???



trungkhuyen
14-02-13, 04:43 PM
Các bạn cho mình xin code khi sử dụng item nhận được random điểm exp, xu, tiền,item #,....

Và cho mình xin code để ép event ra vật phẩm ngẫu nhiên 1 trong 2 loại vật phẩm!

Mình chỉ biết ra duy nhất những vật phẩm đã chỉ định thui!

shinrenkyo
14-02-13, 05:47 PM
Các bạn cho mình xin code khi sử dụng item nhận được random điểm exp, xu, tiền,item #,....

Và cho mình xin code để ép event ra vật phẩm ngẫu nhiên 1 trong 2 loại vật phẩm!

Mình chỉ biết ra duy nhất những vật phẩm đã chỉ định thui!

ví dụ random 1 trong 3 cục thủy tinh, id thủy tinh là 106 107 108, ta làm như sau:


function thuytinh()
tt = random(106,108)
AddEventItem(tt)
end


ngoài ra còn nhiều cách bạn có thể tham khảo thêm

trungkhuyen
14-02-13, 06:41 PM
ví dụ random 1 trong 3 cục thủy tinh, id thủy tinh là 106 107 108, ta làm như sau:


function thuytinh()
tt = random(106,108)
AddEventItem(tt)
end


ngoài ra còn nhiều cách bạn có thể tham khảo thêm

Vậy cách này tỉ lệ ra của 3 viên tt là = nhau ??
Nếu vậy thì làm sao cho viên này tỉ lệ cao hơn viên kia ?

thaihoa91
14-02-13, 10:11 PM
function demo()
a = random(0,3)
if (a == 1) then
AddEventItem(1)
end
end

Code trên xác suất tỷ lệ 25%

trungkhuyen
14-02-13, 10:21 PM
function demo()
a = random(0,3)
if (a == 1) then
AddEventItem(1)
end
end

Code trên xác suất tỷ lệ 25%

a= random (0,3) "(0,3) là ID item từ 0->3 phải ko ?

Vậy nếu mình muốn item thứ 2 , 50% thì phải viết như vầy ko:



function demo()
a = random(0,3)
if (a == 1) then
AddEventItem(1)
if (a == 1) or (a ==2) then
AddEventItem(2)
end
end
Còn 75% cho item thứ 3:


function demo()
a = random(0,3)
if (a == 1) then
AddEventItem(1)
if (a == 1) or (a ==2) then
AddEventItem(2)
if (a==1) or (a == 2) or (a == 3) then
AddEventitem (3)
end
end

thaihoa91
15-02-13, 07:17 AM
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>

<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>

trungkhuyen
15-02-13, 11:48 AM
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>

<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>

a= (0,3) là biến ngẫu nhiên, vậy có lấy giá trị "0" ko?, nếu ko thì có phải biến trên chỉ có 3 giá trị, và mỗi giá trị tương ứng 25% ? (biến trên tối đa dc 75%?)

Mình có thể hỉu như vầy ko biết có phải ko:

+ nếu trong 1 hàm add có nhiều giá trị THUỘC biến a thì xác suất thực hiện hàm này sẽ cao hơn

+Nếu trong trong 1 hàm add chỉ có 1 giá trị DUY NHẤT THUỘC biến a thì xác suất thực hiện hàm này là THẤP nhất

+Nếu biến a có NHIỀU GIÁ TRỊ thì %rơi vào giá trị thuộc biến a sẽ GIẢM


Xin cho ý kiến!

thaihoa91
15-02-13, 12:40 PM
a = (0,3) có nghĩa là sẽ ra 0 hoặc 1 hoặc 2 hoặc 3

Chia ra dc tỷ lệ 25%

Chỉ đơn giản là vậy ! Do tính chất ra hên xui, random là ngẫu nhiên, chỉ có thế thui !

runkissbig
15-02-13, 06:08 PM
function demo()
a = random(1,5)
if a == 1 then -- 20%
AddEventItem(b)
elseif a <= 3 then -- 40%
AddEventItem(b)
else -- 40%
AddEventItem(b)
end
end
thực chất random thì dùng 1 biến là ra thôi.
PS: Bạn muốn lập trình mà khi bạn đọc những gì mọi người viết trên mà bạn chưa hiểu thì mình nghĩ bạn cũng khó để đào sâu vào lập trình. Tuy nhiên, đam mê vẫn là trên hết^^

trungkhuyen
15-02-13, 09:23 PM
function demo()
a = random(1,5)
if a == 1 then -- 20%
AddEventItem(b)
elseif a <= 3 then -- 40%
AddEventItem(b)
else -- 40%
AddEventItem(b)
end
end
thực chất random thì dùng 1 biến là ra thôi.
PS: Bạn muốn lập trình mà khi bạn đọc những gì mọi người viết trên mà bạn chưa hiểu thì mình nghĩ bạn cũng khó để đào sâu vào lập trình. Tuy nhiên, đam mê vẫn là trên hết^^

Quá hiểu đi chứ ^^! cho mình hỏi

" elseif a<=3 then" có nghĩa là " nếu a KHÁC 1,2,3... hay a =4 or a=5" (40%) thì lệnh add item b sẽ dc thực hiện ?


Và mình có thể thay "a<=3" thành a = (1,3) ???

thaihoa91
15-02-13, 10:10 PM
a <= 3 là lớn hơn hay hoặc bằng 3, vậy thì điều kiện đó miễn số a lớn hơn hay hoặc bằng 3 đều sẽ chạy code !

trungkhuyen
15-02-13, 11:01 PM
Quá hiểu đi chứ ^^! cho mình hỏi

" elseif a<=3 then" có nghĩa là " nếu a KHÁC 1,2,3... hay a =4 or a=5" (40%) thì lệnh add item b sẽ dc thực hiện ?


Và mình có thể thay "a<=3" thành a = (1,3) ???

thaihoa vui lòng giải thích rõ về vấn đề này đi

1, vấn đề Else và elseif
2. a = random(0,10)
if a = (4,8) then
( )
Viết như vậy dc ko

trungkhuyen
16-02-13, 12:05 AM
À còn vấn đề quan trọng nữa!
Mình viết code này bạn nói là đúng



function demo()
a = random(0,3)
if (a == 1) then
AddEventItem(1)
if (a == 1) or (a ==2) then
AddEventItem(2)
end end

Cho mình hỏi cái 2 " a ==1" (màu đỏ) viết như vậy có bị " đụng chạm " ko? nếu random ra giá trị " a== 1" thì sẽ add (1) hay (2) ???

thaihoa91
16-02-13, 01:54 AM
Code trên nếu a mà bằng 1 thì nó sẽ AddEventItem(1) lẫn AddEventItem(2) vì 2 điều kiện đều thoả !

trungkhuyen
16-02-13, 02:35 AM
Code trên nếu a mà bằng 1 thì nó sẽ AddEventItem(1) lẫn AddEventItem(2) vì 2 điều kiện đều thoả !

cảm ơn bạn, ngủ trễ quá vậy ^^!

cho mình hỏi cái else và elseif nghĩa là sao?

thaihoa91
16-02-13, 08:24 AM
cảm ơn bạn, ngủ trễ quá vậy ^^!

cho mình hỏi cái else và elseif nghĩa là sao?

elseif dùng khi có 1 điều kiện khác nữa, còn else là điều kiện còn lại !

trungkhuyen
16-02-13, 11:25 AM
elseif dùng khi có 1 điều kiện khác nữa, còn else là điều kiện còn lại !

có phải else là như vầy:


a = random (2,10)
if a > 5 then
Add(1)
end
else
Add(2)
end
else viết như vậy có phải là "a" còn lại (a <= 5)

Còn elseif:


a= random (2,10)
if a > 5 then
Add(1)
end
elseif a < 3
Add(2)
end
elseif viết như vậy có phải là khi đã có điều kiện 1 rồi + thêm một điều kiện ở elseif nữa a < 3 phải ko? (hay nói cách khác a > 5 and a< 3 ---> Add (2) )

thaihoa91
16-02-13, 11:55 AM
end là kết thúc if lun khi dùng else thì dùng fía dưới

if .... then.... else..... end

Edward_Newgate
16-02-13, 12:16 PM
Bạn này đọc code hơi bị kém đấy :-ss
Hiểu đơn giản là thế này


a = random(1,5) --[a = Ngẫu nhiên từ 1 đến 5]
function abc()
if a == 1 then --[Nếu a = 1 thì]
...
else --[Nếu a khác 1 hoặc không thỏa mãn hàm if thì]
...
end --[Kết thúc hàm if]
end --[Kết thúc function]




a = random(1,5) --[a = Ngẫu nhiên từ 1 đến 5]
function abc()
if a == 1 then --[Nếu a = 1 thì]
...
elseif a == 2 then --[Nếu a = 2 thì]
...
else --[Nếu a khác 1 và 2 hoặc không thỏa mãn điều kiện trên thì]
...
end --[kết thúc hàm if]
end --[Kết thúc function]

trungkhuyen
16-02-13, 01:39 PM
có phải else là như vầy:


a = random (2,10)
if a > 5 then
Add(1)
end
else
Add(2)
end
else viết như vậy có phải là "a" còn lại (a <= 5)

Còn elseif:


a= random (2,10)
if a > 5 then
Add(1)
end
elseif a < 3
Add(2)
end
elseif viết như vậy có phải là khi đã có điều kiện 1 rồi + thêm một điều kiện ở elseif nữa a < 3 phải ko? (hay nói cách khác a > 5 and a< 3 ---> Add (2) )

í mình hỏi là nghĩa của else và elseif có phải như vậy ko? chứ cách viết thì mình bít rùi, lỡ sai thì sửa ^^