PDA

View Full Version : |Source| Source sistema de sorteio



antoniofr
05/07/2015, 12:34 PM
Var. Receveid: int Received[1000];



void pSorteio::Random()
{
int Sec = 0;

for(int i = 4800; i < 5600; i++)
{
if(lpObj[i].Connected >= 3)
{
Sorteio.Received[Sec++] = i; // Gera a lista de players online
}
}

if(Sec > 0)
{
int Index = rand() % Sec; // Faz o sorteio
int Target = Sorteio.Received[Index];

MsgSystem::OutMSG_All("# %s foi sorteado com 3 eventgold #",lpObj[Target].Name,Target); // Envia a msg para o jogo.

// Envia uma msg avisando o player
MsgSystem::Leftblue(Target,"Você foi sorteado com 3 eventgold.");
}
}

Velton D.
20/07/2015, 12:35 AM
Sempre bom por um srand(time(NULL)); ... As vezes o rand trava

Maykon
04/01/2016, 01:12 PM
Sempre bom por um srand(time(NULL)); ... As vezes o rand trava

Isso se chama apenas uma vez no load do projeto :)

Genilson23
21/01/2016, 07:07 PM
Como fazer para sortear 2 players sem que haja repetição?

antoniofr
22/01/2016, 08:27 AM
Isso se chama apenas uma vez no load do projeto :)

Parceiro, deveria estudar mais um pouco a lógica né.

E sobre o rand, não vai ter nenhum problema de travamento neste código, já que ele gera 1 numero aleatório em um determinado intervalo que é a index do player.

Getulio
22/01/2016, 03:50 PM
Parceiro, deveria estudar mais um pouco a lógica né.

E sobre o rand, não vai ter nenhum problema de travamento neste código, já que ele gera 1 numero aleatório em um determinado intervalo que é a index do player.

E você devia estudar a função, porque me parece que de lógica você tem conhecimento de sobra, só não usa.
[]'s.

caron22
09/06/2016, 08:22 PM
[Only registered and activated users can see links]
([Only registered and activated users can see links])

[Only registered and activated users can see links]
Hola, me podras ayudar con este error?

Solucionado:

.h
namespace Scape
{
struct pSorteio1
{
int Received[20];
};


class pSorteio
{
public:
static void pSorteio::Randoms();
static bool ReadyNewsSettingss();
static void ThreadNewss(void * lpParam);

};

extern pSorteio1 Sorteio;

}

---------------------------------------------------
.cpp

namespace Scape
{
pSorteio1 Sorteio;
void pSorteio::Randoms()
{
int Sec = 0;
DWORD Received;
for (int i = 4800; i < 5600; i++)
{
if (lpObj[i].Connected >= 3)
{
Sorteio.Received[Sec++] = i; // Gera a lista de players online
}
}

if (Sec > 0)
{
int Index = rand() % Sec; // Faz o sorteio
int Target = Sorteio.Received[Index];

MsgSystem::OutMSG_All("[%s] Fue ganador del sorteo, el proximo seras tu?", lpObj[Target].Name, Target); // Envia a msg para o jogo.
// Envia uma msg avisando o player
MsgSystem::Leftblue(Target, "Ganaste 1 Creatios y una caja Jundum");
ItemSerialCreateSend(Target, lpObj[Target].MapNumber, lpObj[Target].X, lpObj[Target].Y, ITEMGET(14, 22), 0, 0, 0, 0, 0, -1, 0);//creations
ItemSerialCreateSend(Target, lpObj[Target].MapNumber, lpObj[Target].X +1, lpObj[Target].Y, ITEMGET(14, 11), 12, 0, 0, 0, 0, -1, 0);//box kundum +5
Functions::Firework(Target);

LogSystem::MsgLogsgm(Target, "Fue ganador del sorteo, el proximo seras tu?");
}
}




bool pSorteio::ReadyNewsSettingss()
{


_beginthread(&pSorteio::ThreadNewss, 0, 0);

return true;
}

void pSorteio::ThreadNewss(void * lpParam)
{
FILE *fp;

fp = fopen(Dir_News, "r");

if (!fp)
{
MessageBox(NULL, "News.ini not found", "Error", MB_OK);
::ExitProcess(0);
}
fclose(fp);
Sleep(4*60000);//cambias

while (true)
{
pSorteio::Randoms();
Sleep(60*60000);//cambniar

}
_endthread();
}

DarkMixMuOnline
23/07/2020, 11:52 AM
Alguém explica melhor de como altera a hora do sorteio e quantidade de premio pfv <3

Maykon
23/07/2020, 12:35 PM
void pSorteio::Random()
{
int Sec = 0; // Inicia a variável como 0.

for (int i = 4800; i < 5600; i++) // Loop jogadores.
{
if(lpObj[i].Connected >= 3) // Verificar os jogadores conectados.
{
Sorteio.Received[Sec++] = i; // Gera a lista de players online.
}
}

if (Sec > 0) // Se a lista de jogadores for maior que 0 entra no if.
{
int Index = rand() % Sec; // Faz o sorteio.
int Target = Sorteio.Received[Index]; // Pega o jogador sorteado.

MsgSystem::OutMSG_All("# %s foi sorteado com 3 eventgold #", lpObj[Target].Name,Target); // Envia a msg para o jogo.

// Envia uma msg avisando o player

MsgSystem::Leftblue(Target,"Você foi sorteado com 3 eventgold.");

// Exemplo de como adicionar o bônus:

Manager.ExecFormat("UPDATE MEMB_INFO SET eventgold = eventgold + 10 WHERE memb___id = '%s'", lpObj[Target].AccountID);
}
}

DarkMixMuOnline
23/07/2020, 03:24 PM
void pSorteio::Random()
{
int Sec = 0; // Inicia a variável como 0.

for (int i = 4800; i < 5600; i++) // Loop jogadores.
{
if(lpObj[i].Connected >= 3) // Verificar os jogadores conectados.
{
Sorteio.Received[Sec++] = i; // Gera a lista de players online.
}
}

if (Sec > 0) // Se a lista de jogadores for maior que 0 entra no if.
{
int Index = rand() % Sec; // Faz o sorteio.
int Target = Sorteio.Received[Index]; // Pega o jogador sorteado.

MsgSystem::OutMSG_All("# %s foi sorteado com 3 eventgold #", lpObj[Target].Name,Target); // Envia a msg para o jogo.

// Envia uma msg avisando o player

MsgSystem::Leftblue(Target,"Você foi sorteado com 3 eventgold.");

// Exemplo de como adicionar o bônus:

Manager.ExecFormat("UPDATE MEMB_INFO SET eventgold = eventgold + 10 WHERE memb___id = '%s'", lpObj[Target].AccountID);
}
}

Obrigado Maykon vlws, Se adiciona Ela nessa source que tu libero do stark , será que vai da algum problema ?

Maykon
23/07/2020, 09:12 PM
Sabendo adaptar funciona perfeitamente.

DarkMixMuOnline
01/08/2020, 12:16 PM
void pSorteio::Random()
{
int Sec = 0; // Inicia a variável como 0.

for (int i = 4800; i < 5600; i++) // Loop jogadores.
{
if(lpObj[i].Connected >= 3) // Verificar os jogadores conectados.
{
Sorteio.Received[Sec++] = i; // Gera a lista de players online.
}
}

if (Sec > 0) // Se a lista de jogadores for maior que 0 entra no if.
{
int Index = rand() % Sec; // Faz o sorteio.
int Target = Sorteio.Received[Index]; // Pega o jogador sorteado.

MsgSystem::OutMSG_All("# %s foi sorteado com 3 eventgold #", lpObj[Target].Name,Target); // Envia a msg para o jogo.

// Envia uma msg avisando o player

MsgSystem::Leftblue(Target,"Você foi sorteado com 3 eventgold.");

// Exemplo de como adicionar o bônus:

Manager.ExecFormat("UPDATE MEMB_INFO SET eventgold = eventgold + 10 WHERE memb___id = '%s'", lpObj[Target].AccountID);
}
}

Salve , Mano Maykon , Mano sabe informa Aonde que edita a parte Da hora do Sorteio,Tipo eu queria que rola-se de 1 em 1 hora taligado , teria como da essa força mano , ou se outra pessoa sabe como que coloca a hora do sorteio