[Ajuda] Criando um sistema de prisгo.
#1

Olб pessoal, eu estava procurando um sistema de prisгo tipo ("/carandiru"), comando de admin, porйm, eu encontrei uns 10, e todos com seus problemas, e pra nгo ficar essa coisa chata eu decidi criar um.
Porйm, eu precisaria da ajuda de vocкs para me dizerem o que eu irei precisar.

1є Sistema de salvamento(Para quando ele desloga)
2є O local onde ele vai ficar preso.

O que mais preciso ?

Minha principal dъvida й como devo criar o comando ? pois nгo sei como faзo pra criar em MINUTOS.
Reply
#2

Quote:
Originally Posted by davi54723
Посмотреть сообщение
Olб pessoal, eu estava procurando um sistema de prisгo tipo ("/carandiru"), comando de admin, porйm, eu encontrei uns 10, e todos com seus problemas, e pra nгo ficar essa coisa chata eu decidi criar um.
Porйm, eu precisaria da ajuda de vocкs para me dizerem o que eu irei precisar.

1є Sistema de salvamento(Para quando ele desloga)
2є O local onde ele vai ficar preso.

O que mais preciso ?

Minha principal dъvida й como devo criar o comando ? pois nгo sei como faзo pra criar em MINUTOS.
desconheзo esse sistema ai, mas ja que eh para inovar (ou nao)
podia tipo fazer um mapa de prisao pelo MTA e colocar assim, se o cara pegou prisao por 1 dia
ai nesse tempo ele passa por varios eventos no presidio como , a hora do intervalo, trabalhar , etc , etc (claro que passar a maior parte do tempo preso na cela apertada). e tambem faz o cara sair se pagarem fianзa ou se cumprir seu tempo preso... recomendo que use DOF2 e sscanf2 para fazer os comandos, na minha opiniao fica tudo muuito rapido com eles xD. Boa Sorte
@EDIT: voce tambem pode pegar desses fs que voce ja achou e "copiar" algumas ideias ^^^^
Reply
#3

fiz um aki...lembrando q esse n e pra tu por no gm, esse e so pra mostrar como funciona..se quiser por no gm so precisa dos completamentos

Comando /cadeia(podera mudar para /bangu, /carandiru, /alcatraz...ve ae)

PHP код:
    if(strcmp(cmd"/cadeia",true) == 0)//comando
    
{
        if(
IsPlayerConnected(playerid))
        {
            new 
tempo[20];
            new 
tempo2;
            if(
PlayerInfo[playerid][pAdmin] < 1)//level minimo de admin que pode usar o cmd
            
{
                
SendClientMessage(playerid0XFF0000FF"tu n pode usa esse comando");//quem n for admin
                
return true;
            }
            
tmp strtok(cmdtextidx);
            
tempo strtok(cmdtextidx);
            if(!
strlen(tmp))
            {
                
SendClientMessage(playerid0XFF0000FF"uSE: /cadeia id tempo em minutos i o motivo");
                return 
true;
            }
            if(!
strlen(tempo))
            {
                
SendClientMessage(playerid0XFF0000FF"uSE: /cadeia id tempo em minutos i o motivo");
                return 
true;
            }
            
giveplayerid ReturnUser(tmp);
            
tempo2 strval(tempo);
            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(
IsPlayerConnected(giveplayerid))
            {
                if(
giveplayerid != invalid_player-id)
                {
                    
GetPlayerName(giveplayeridgiveplayersizeof(giveplayer));
                    
GetPlayerName(playeridsendernamesizeof(sendername));                    format(stringsizeof(string), "SV: %s boto %s no caranga por %s minutos motivo: %s",PlayerName(playerid), giveplayertempo, (result));
                    
SendClientMessageToAll(COLOR_LIGHTREDstring);
                    if(
admtrampando[playerid] == && admhide[playerid] == 1)
                    {
                        
SendClientMessage(giveplayerid0XFF0000FF"n ta caranga");
                    }
                    else
                    {
                        
format(stringsizeof(string), "SV: %s te mandou para o carandiru"PlayerName(playerid));
                        
SendClientMessage(giveplayerid0XFF0000FFstring);//mensagem pro cara q foi preso
                    
}
                    
ResetPlayerWeapons(giveplayerid);//resetara as armas do safado q foi preso kk
                    
WantedPoints[giveplayerid] = 0;
                    
SetPlayerWantedLevel(giveplayerid0);//niveis de procu fica 0
                    
PlayerInfo[giveplayerid][pJailed] = 0;//altere o 0 pelo numero da cadeia
                    
PlayerInfo[giveplayerid][pJailTime] = tempo2 60;//tempo em minutos como pediu
                    
SetPlayerInterior(giveplayerid0);//caso tenha interior, altere o 0 pelo numero do interior
                    
XXAirBreak[giveplayerid] += 2;SetPlayerPos(giveplayeridY,X,Z); //Local do carandiru/bangu/cadeia/alcatraz
                
}
            }
            else
            {
                
SendClientMessage(playerid0XFF0000FF"cara ta off");//se tentar mandar algm cadeia e ela tiver off aparecera isto
                
return true;
            }
        }
        return 
true;
    } 
OBS podera encontar erros nos script, fiz esse na hora
Reply
#4

O problema que esse sistema que vocк me mandou colega, nгo dб pra ter uma base, por que ele й um pouco "extenso", e otimizado na questгo da funзгo.

Exemplo "XXAirBreak[giveplayerid] += 2;SetPlayerPos(giveplayerid, Y,X,Z);".

Sou iniciante, nгo sei exatamente como resolveria isso.
Reply
#5

PHP код:
XXAirBreak[giveplayerid] += 2
Pode apagar, isso й outra coisa pessoal do gamemode dele, deixe a apenas o SetPlayerPos.
Reply
#6

Ah e, desculpe, estou acostumado a codar meu GameMode..
Reply
#7

Eu sу queria , o sistema para eu definir o tempo que ele vai preso, o tempo que vai diminuindo, e quando ele deslogar ele ficar salvo (Isso eu improviso).
Reply
#8

Vc pode fazer usando um SetTimerEx: https://sampwiki.blast.hk/wiki/SetTimerEx
Reply
#9

O problema de fazer um settimerex, й ele desloga, por exemplo;
Se eu colocar ele no carandiru por 10 Min, vai ser a settimer durante 10 minutos, mais se ele deslogar e logar, ele automaticamente й desbanido. :/
Eu precisaria de algum sisteminha pra dar inнcio. :/'
Reply
#10

Quote:
Originally Posted by AlessandroXPTO
Посмотреть сообщение
fiz um aki...lembrando q esse n e pra tu por no gm, esse e so pra mostrar como funciona..se quiser por no gm so precisa dos completamentos

Comando /cadeia(podera mudar para /bangu, /carandiru, /alcatraz...ve ae)

PHP код:
    if(strcmp(cmd"/cadeia",true) == 0)//comando
    
{
        if(
IsPlayerConnected(playerid))
        {
            new 
tempo[20];
            new 
tempo2;
            if(
PlayerInfo[playerid][pAdmin] < 1)//level minimo de admin que pode usar o cmd
            
{
                
SendClientMessage(playerid0XFF0000FF"tu n pode usa esse comando");//quem n for admin
                
return true;
            }
            
tmp strtok(cmdtextidx);
            
tempo strtok(cmdtextidx);
            if(!
strlen(tmp))
            {
                
SendClientMessage(playerid0XFF0000FF"uSE: /cadeia id tempo em minutos i o motivo");
                return 
true;
            }
            if(!
strlen(tempo))
            {
                
SendClientMessage(playerid0XFF0000FF"uSE: /cadeia id tempo em minutos i o motivo");
                return 
true;
            }
            
giveplayerid ReturnUser(tmp);
            
tempo2 strval(tempo);
            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(
IsPlayerConnected(giveplayerid))
            {
                if(
giveplayerid != invalid_player-id)
                {
                    
GetPlayerName(giveplayeridgiveplayersizeof(giveplayer));
                    
GetPlayerName(playeridsendernamesizeof(sendername));                    format(stringsizeof(string), "SV: %s boto %s no caranga por %s minutos motivo: %s",PlayerName(playerid), giveplayertempo, (result));
                    
SendClientMessageToAll(COLOR_LIGHTREDstring);
                    if(
admtrampando[playerid] == && admhide[playerid] == 1)
                    {
                        
SendClientMessage(giveplayerid0XFF0000FF"n ta caranga");
                    }
                    else
                    {
                        
format(stringsizeof(string), "SV: %s te mandou para o carandiru"PlayerName(playerid));
                        
SendClientMessage(giveplayerid0XFF0000FFstring);//mensagem pro cara q foi preso
                    
}
                    
ResetPlayerWeapons(giveplayerid);//resetara as armas do safado q foi preso kk
                    
WantedPoints[giveplayerid] = 0;
                    
SetPlayerWantedLevel(giveplayerid0);//niveis de procu fica 0
                    
PlayerInfo[giveplayerid][pJailed] = 0;//altere o 0 pelo numero da cadeia
                    
PlayerInfo[giveplayerid][pJailTime] = tempo2 60;//tempo em minutos como pediu
                    
SetPlayerInterior(giveplayerid0);//caso tenha interior, altere o 0 pelo numero do interior
                    
XXAirBreak[giveplayerid] += 2;SetPlayerPos(giveplayeridY,X,Z); //Local do carandiru/bangu/cadeia/alcatraz
                
}
            }
            else
            {
                
SendClientMessage(playerid0XFF0000FF"cara ta off");//se tentar mandar algm cadeia e ela tiver off aparecera isto
                
return true;
            }
        }
        return 
true;
    } 
OBS podera encontar erros nos script, fiz esse na hora
Pф, eu achei um comando igualzinho no BML. Serб que й coincidкncia?

pawn Код:
new preso[MAX_PLAYERS];
CMD:cadeia(playerid, params){

    new id, tmp, string[100], n1[MAX_PLAYER_NAME], n2[MAX_PLAYER_NAME];
    if(!Info[playerid][Admin]) return SendClientMessage(playerid, -1, "Vocк nгo й um Admin!");
    if(sscanf(params[0], "id, tmp")) return SendClientMessage(playerid, -1, "/cadeia [ID] [Tempo]");
   
    GetPlayerName(playerid, n1, sizeof(n1)); GetPlayerName(playerid, n2, sizeof(n2));
    format(string, sizeof(string), "%s foi preso por %s, por %d minutos.", n1, n2, tmp);
    SendClientMessageToAll(-1, string);
    SetPlayerPos(playerid, X, Y, Z);
    preso[playerid] = 1;
    return 1;
}
Ta aн uma base, agora й sу vocк fazer o salvamento xD
Reply


Forum Jump:


Users browsing this thread: 5 Guest(s)