B 1
berione65
sen272 1
sen272
Mt2Hizmet 1
Mt2Hizmet
C 1
chengdu
xranzei 1
xranzei
zendor2 1
zendor2
Bvural41 1
Bvural41
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

Win SF %100 Drop Fix

CNCN

CNCN
Fahri Üye
Katılım
8 Ocak 2011
Konular
399
Mesajlar
2,667
Çözüm
24
Online süresi
2mo 28d
Reaksiyon Skoru
685
Altın Konu
4
Başarım Puanı
252
MmoLira
6,627
DevLira
51
Ticaret - 0%
0   0   0

ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!

flatik'den alıntıdır...

Windows ortamında kullanıyorsanız filesinizi, %100 düşme şansının fix'i

Öncesi:


Sonrası:


[CODE lang="cpp" title="../libthecore/src/utils.c(xx) İlk satırlarda uygun yere ekle"]#include <random>[/CODE]

[CODE lang="cpp" title="../libthecore/src/utils.c(xx) 'de bu fonksiyonu bul."]int number_ex(int from, int to, const char *file, int line)
{
if (from > to)
{
int tmp = from;

sys_err("number(): first argument is bigger than second argument %d -> %d, %s %d", from, to, file, line);

from = to;
to = tmp;
}

int returnValue = 0;

if ((to - from + 1) != 0)
returnValue = ((thecore_random() % (to - from + 1)) + from);
else
sys_err("number(): devided by 0");

return returnValue;
}

[/CODE]

[CODE lang="cpp" title="Bununla değiştir:"]
int number_ex(int from, int to, const char* file, int line)
{
if (from > to)
{
int tmp = from;

sys_err("number(): first argument is bigger than second argument %d -> %d, %s %d", from, to, file, line);

from = to;
to = tmp;
}

int returnValue = 0;

std::random_device rd;
std::mt19937 gen(rd());
std::uniform_int_distribution<> distrib(from, to);

if ((to - from + 1) != 0)
returnValue = distrib(gen);
else
sys_err("number(): devided by 0");

return returnValue;
}
[/CODE]

[CODE lang="cpp" title="Daha optimize Alternatif:"]int number_ex(int from, int to, const char *file, int line)
{
// We only need (and want) to initialize the mersenne twister generator once
static std::random_device rd;
static std::mt19937 mt(rd());
static std::uniform_int_distribution<int> dist; // not too expensive to create, though

if (from > to)
{
int tmp = from;

sys_err("number(): first argument is bigger than second argument %d -> %d, %s %d", from, to, file, line);

from = to;
to = tmp;
}

// Set the range we'd like our distribution to be on, and generate the number
return dist(mt, std::uniform_int_distribution<int>::param_type(from, to));
}[/CODE]
 
Paylaşım için teşekkürler.
 
Paylaşım için teşekkürler.
 
Teşekkürler
 
Teşekkürler
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst