[Ajuda] AgendandoCadeia(idcheck, playerid);
#1

Bom, fiz um sisteminha pra agendar cadeia, uma public que quando o cara logar, irб puni-lo, mas nao tem onde colocar essa public, pois nenhuma callback aceita " idcheck ": AgendandoCadeia(idcheck, playerid);
Alguem ajuda ? + REP
Reply
#2

Acho que esse sistema й o que eu postei num tуpico um dia desses, e uma public nгo fica dentro de outra public amigo. Public's, as famosas "Callbacks" ficam normalmente em finais de GameModes.

Exemplo de callback б ser criada:

Код:
forward AgendandoCadeia(playerid, idcheck);
public AgendandoCadeia(playerid, idcheck)
{
 // Suas funзхes.
         }
    return 1;
}
Se for o sistema que eu postei num tуpico de alguйm que nгo me lembro, o code pronto estб aqui:

A Callback:

Код:
forward AgendandoCadeia(idcheck, playerid);
public AgendandoCadeia(idcheck, playerid)
{
    new
        arquivo[64],
        DannielCooper,
        PresoMotivo[64],
        PresoNome[64]
;
    if(idcheck == 1)
    {
        format(arquivo, sizeof(arquivo), "Agendados/%s.ini",PlayerName(playerid));
        if(dini_Exists(arquivo))
        {
            strmid(PresoNome, dini_Get(arquivo,"Admin"), 0, strlen(dini_Get(arquivo,"Admin")), 255);
            strmid(PresoMotivo, dini_Get(arquivo,"Motivo"), 0, strlen(dini_Get(arquivo,"Motivo")), 255);

            DannielCooper = dini_Int(arquivo,"Tempo");

            format(gstring, sizeof(gstring), "[!] Admin %s Agendou Sua Prisгo, Motivo: %s.", PresoNome,PresoMotivo);
            SendClientMessage(playerid, COLOR_LIGHTRED, gstring);

            format(gstring, sizeof(gstring), "[!] Vocк foi preso por %d Minutos Automaticamente, Agendado pelo Admin.", DannielCooper);
            SendClientMessage(playerid, COLOR_LIGHTBLUE, gstring);

            GameTextForPlayer(playerid, "~b~Bem Vindo ao ~n~~r~~h~Carandiru!", 5000, 3);

            WantedPoints[playerid] = 0;
            ResetPlayerWeapons(playerid);
            SetPlayerWantedLevel(playerid, 0);
            PlayerInfo[playerid][pJailed] = 2;
            PlayerInfo[playerid][pJailTime] = DannielCooper * 60;

            SetPlayerPos(playerid, 346.5848, 306.1026, 999.1484);
            SetPlayerInterior(playerid,6);

            format(gstring, sizeof(gstring), "AdmAviso: {80E3FF}%s {E84F33} Estб Agendado e Foi preso, Motivo: %s",PlayerName(playerid) ,PresoMotivo);
            ABroadCast(COLOR_LIGHTRED,gstring,1);

            fremove(arquivo);
        }
    }
    return 1;
}
O Comando:

Код:
if(strcmp(cmd, "/agendarcadeia", true) == 0 || strcmp(cmd, "/acadeia", true) == 0)
    {
    	if(IsPlayerConnected(playerid))
    	{
    		new playa[64];
    		new money;
    		playa = strtok(cmdtext, idx);
    		tmp = strtok(cmdtext, idx);
            if(!strlen(playa))
    		{
    			SendClientMessage(playerid, COLOR_GRAD2, "USE: /agendarcadeia [Nome] [Tempo(Minutos)] [Motivo]");
    			return 1;
    		}
    		money = strval(tmp);
    		if (PlayerInfo[playerid][pAdmin] >= 3)
    		{
                if(admtrampando[playerid] < 1 && PlayerInfo[playerid][pAdmin] != 3000)
    			{
    				SendClientMessage(playerid, COLOR_GRAD1, "Vocк nгo estб trabalhando! (/trabalhar)");
    				return 1;
    			}
    			new length = strlen(cmdtext);
    			while ((idx < length) && (cmdtext[idx] <= ' '))
    			{
    				idx++;
    			}
    			new offset = idx;
    			new result[64];
    			while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
    			{
    				result[idx - offset] = cmdtext[idx];
    				idx++;
    			}
    			result[idx - offset] = EOS;
    			if(!strlen(result))
    			{
    				SendClientMessage(playerid, COLOR_GRAD2, "USE: /cadeia [id] [Tempo(Minutos)] [motivo]");
    				return 1;
    			}
                new arquivo[64];
                format(arquivo, sizeof(arquivo), "Agendados/%s.ini",playa);
                GetPlayerName(playerid, sendername, sizeof(sendername));
                if(!dini_Exists(arquivo))
                {
                    SendClientMessage(playerid, COLOR_GRAD1, "   Este player nгo estб registrado no servidor.");
                    return true;
                }
                format(arquivo, sizeof(arquivo), "Agendados/%s.ini",playa);
                if(dini_Exists(arquivo))
                {
                    dini_Set(arquivo,"Admin",sendername);
                    dini_Set(arquivo,"Motivo",result);
                	dini_IntSet(arquivo,"Tempo",money);
                }
                else
                {
                    dini_Create(arquivo);
                    dini_Set(arquivo,"Admin",sendername);
                    dini_Set(arquivo,"Motivo",result);
                	dini_IntSet(arquivo,"Tempo",money);
           		}
                format(gstring,sizeof(gstring), "AdmAviso: %s Agendou %s, Tempo %d Minutos, Motivo: %s", sendername,playa,money,result);
				ABroadCast(COLOR_YELLOW,gstring,1);
            }
            else
    		{
    		    SendClientMessage(playerid, COLOR_GRAD1, "   Vocк nгo tem permissao para usar esse comando!");
    		}
    	}
    	return 1;
    }
Reply
#3

Cara, eu sei, mas pra checar a public, nao falei em colocar ela dentro de uma callback. colocar sу isso: AgendandoCadeia(idcheck, playerid); pra "ativar" a public, pois sem colocar essa parte em alguma callback, o seu sistema nao vai ser ativado.
Reply
#4

No caso vocк teria que colocar isso em OnPlayerConnect pra checar quando o Player conecta, mais sua OnPlayerConnect nгo aceita a funзгo idcheck, certo ?
Reply
#5

Sim, mas o idcheck da erro !
Eu coloco lб AgendandoCadeia(idcheck, playerid);
ai da aquele erro pq a callback nao aceita o idcheck.
Reply
#6

Na sua callback OnPlayerConnect, coloque:

Код:
public OnPlayerConnect(playerid, idcheck)
Nгo sei se vai dar certo, mais tenta ae.
Reply
#7

Й obvio que nгo deu ne cara.
Reply
#8

Vou tentar resolver por aqui, daн te mando o code completo.

@EDIT

Код:
forward AgendandoCadeia(idcheck, playerid);
public AgendandoCadeia(idcheck, playerid)
{
    new arquivo[64], DannielCooper, PresoMotivo[64], PresoNome[64];

    if(idcheck == 1)
    {
        format(arquivo, sizeof(arquivo), "Agendados/JAIL%s.ini",PlayerName(playerid));
		if(dini_Exists(arquivo))
        {
            strmid(PresoNome, dini_Get(arquivo,"Admin"), 0, strlen(dini_Get(arquivo,"Admin")), 255);
            strmid(PresoMotivo, dini_Get(arquivo,"Motivo"), 0, strlen(dini_Get(arquivo,"Motivo")), 255);
            DannielCooper = dini_Int(arquivo,"Tempo");
            format(gstring, sizeof(gstring), "* Admin %s Agendou Sua Prisгo, Motivo: %s.", PresoNome,PresoMotivo);
            SendClientMessage(playerid, COLOR_LIGHTRED, gstring);
            format(gstring, sizeof(gstring), "Vocк foi preso altomaticamente. Motivo: %s, pelo Admin %s", DannielCooper);
            SendClientMessage(playerid, COLOR_LIGHTBLUE, gstring);
            GameTextForPlayer(playerid, "~b~Bem Vindo ao ~n~~r~~h~Carandiru", 5000, 3);
            WantedPoints[playerid] = 0;
            ResetPlayerWeapons(playerid);
            SetPlayerWantedLevel(playerid, 0);
            PlayerInfo[playerid][pJailed] = 2;
            PlayerInfo[playerid][pJailTime] = DannielCooper * 60;
            SetPlayerPos(playerid, 346.5848, 306.1026, 999.1484);
            SetPlayerInterior(playerid,6);
            format(gstring, sizeof(gstring), "AdmAviso: {80E3FF}%s {E84F33} Estб Agendado e Foi preso, Motivo: %s",PlayerName(playerid) ,PresoMotivo);
    	    ABroadCast(COLOR_LIGHTRED,gstring,1);
            fremove(arquivo);
        }
        return 1;
    }
Nгo sei se vocк resolveu, mais tб aн.
Reply
#9

Acho que resolvi aqui, vou testar e te falo.
Reply
#10

Fiz um jeito aqui e funcionou.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)