Jump to content

Mivčo

Uživatel
  • Příspěvků

    1938
  • Registrován

  • Aktivní

  • Vítězných dnů

    20

Příspěvky posted by Mivčo

  1. Ale keď zadám /ban tak v chate mi neukáže že hráč bol zabanovaný a nedá ani kick..... V zložke vytvorý meno hráča ale je prázdny... Riadil som sa podľa registračky čo mám ale tá mi funguje normálne....

  2. Niečo som zostrojil ale neviem či je to dobre :/ som to len tak na mobile vymyslel :/

     

    #include YSI\y_ini

    #include YSI\y_commands

    #define HODINA(%0) 3600*%0

    #define DIALOG_ID 874

     

    enum bInfo

    {

    bIP,

    bDATE,

    bHODINY,

    bNAME,

    }

     

    enum pInfo

    {

    Admin

    }

     

    new PlayerBan[MAX_PLAYERS][bInfo];

    new PlayerInfo[MAX_PLAYERS][pInfo];

     

    forward LoadBan_data(playerid,name[],value[]);

    public LoadBan_data(playerid,name[],value[])

    {

    INI_Int("Ip",PlayerBan[playerid][bIP]);

    INI_Int("Date",PlayerBan[playerid][bDATE]);

    INI_Int("Hodiny",PlayerBan[playerid][bHODINY]);

    INI_Int("Name",PlayerBan[playerid][bNAME]);

    return 1;

    }

     

    public OnPlayerConnect(playerid)

    {

    if(fexist(BanPath(playerid)))

    {

    INI_ParseFile(BanPath(playerid), "LoadBan_%s", .bExtra = true, .extra = playerid);

    new dovod[75],string[128],ip[20];

    GetPlayerIp(playerid,ip,20);

    if(gettime() > strval(string))

    {

    SendClientMessage(playerid,0x0000FFFF,"[ TimeBan ] {FF0000}Ban ti vypršal, dúfam že si sa poučil");

    fremove(BanPath(playerid));

    }else{

    new strong[100];

    new ban[128];

    strcat(ban,"Tvoj ešte stále nevypršal !\n");

    format(strong, sizeof(strong),"Nick: %s \n", Jmeno(playerid));

    strcat(ban,strong);

    format(strong, sizeof(strong),"IP: %s \n", PlayerBan[playerid][bIP]);

    strcat(ban,strong);

    format(strong, sizeof(strong), "Dôvod: %s \n", dovod);

    strcat(ban,strong);

    format(strong, sizeof(strong), "Admin: %s \n", PlayerInfo[playerid][Admin]);

    strcat(ban,strong);

    format(strong, sizeof(strong), "Kedy: %s \n", date(strval(string)));

    strcat(ban,strong);

    format(strong, sizeof(strong), "Platnosť %s \n", date(strval(string)));

    strcat(ban,strong);

    ShowPlayerDialog(playerid,DIALOG_ID,DIALOG_STYLE_MSGBOX,"{0000FF}TimeBan",ban,"OK","");

    Kick(playerid);

    }

    }

    return 1;

    }

     

    CMD:timeban(playerid, params[])

    {

    //if(admin[playerid] == false) return SendClientMessage(playerid,0x0000FFFF,"[server]: Nie si Administrátor");

    if(GetPlayerState(playerid) == PLAYER_STATE_WASTED) return SendClientMessage(playerid,0x0000FFFF,"[server]: Nemôžeš byť vo výbere postáv !");

    new a[3][60],id,hodiny;

    if(UnFormat(params,a,' ',3) != 3) return SendClientMessage(playerid,0x0000FFFF,"[server]: /timeban [id] [hodinky] [dovod]");

    id = strval(a[0]);

    if(!IsPlayerConnected(id)) return SendClientMessage(playerid,0x0000FFFF,"[server]: Hráč není na servery !");

    if(IsPlayerAdmin(id)) return SendClientMessage(playerid,0x0000FFFF,"[server]: Nemôžeš zabanovať hlavného admina !");

    new plrIP[64],name[32];

     

    hodiny = strval(a[1]);

     

    new INI:Fi = INI_Open(BanPath(playerid));

    INI_WriteInt(Fi,"%s",PlayerBan[playerid][bIP] = GetPlayerIp(playerid, plrIP, 64));

    INI_WriteString(Fi,"%s",a[2]);

    INI_WriteInt(Fi,"%s",PlayerBan[playerid][bNAME] = GetPlayerName(playerid,name,sizeof(name)));

    INI_WriteInt(Fi,"%d",PlayerBan[playerid][bDATE] = gettime());

    INI_WriteInt(Fi,"%d",PlayerBan[playerid][bHODINY] = HODINA(hodiny)+gettime());

    INI_Close(Fi);

     

    new strong[128];

    format(strong, sizeof(strong),"[ TimeBan ] {FF0000}Admin {FFFFFF}%s{FF0000} dal hráčovy {FFFFFF}%s {FF0000}ban na %d hodín Dôvod: %s",Jmeno(playerid),Jmeno(id),hodiny,a[2]);

    SendClientMessageToAll(-1,strong);

    Kick(id);

    return true;

    }

     

    stock BanPath(playerid)

    {

    new string[128],playername[MAX_PLAYER_NAME];

    GetPlayerName(playerid,playername,sizeof(playername));

    format(string,sizeof(string),"Timeban/%s.txt",playername);

    return string;

    }

     

     

    stock Jmeno(playerid)

    {

    new n[MAX_PLAYER_NAME];

    GetPlayerName(playerid,n,MAX_PLAYER_NAME);

    return n;

    }

     

    stock UnFormat(str[],variables[][],cha,m=0)

    {

    new len = strlen(str),chcount,i,start,varcount;

    while(i < len+1)

    {

    if(i == len && chcount != 0)

    {

    strmid(variables[varcount],str,start+1,strlen(str),128);

    chcount++;

    }

    if(str == cha)

    {

    if((m == 0) || (chcount != m-1))

    {

    strmid(variables[varcount],str,start + ((start == 0) ? 0 : 1),i,128);

    start = i;

    chcount++;

    varcount++;

    }

    }

    i++;

    }

    return chcount;

    }

     

    stock date( timestamp, _form=1 )

    {

    new year=1970, day=0, month=0, hour=0, mins=0, sec=0;

    new days_of_month[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };

    new names_of_month[12][10] = {"Januar","Februar","Marec","April","Maj","Jun","Jul","August","September","Oktober","November","December"};

    new returnstring[32];

    while(timestamp>31622400)

    {

    timestamp -= 31536000;

    if ( ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0) ) timestamp -= 86400;

    year++;

    }

    if ( ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0) )

    days_of_month[1] = 29;

    else

    days_of_month[1] = 28;

    while(timestamp>86400)

    {

    timestamp -= 86400, day++;

    if(day==days_of_month[month]) day=0, month++;

    }

    while(timestamp>60)

    {

    timestamp -= 60, mins++;

    if( mins == 60) mins=0, hour++;

    }

    sec=timestamp;

    switch( _form )

    {

    case 1: format(returnstring, 31, "%02d/%02d/%d %02d:%02d:%02d", day+1, month+1, year, hour, mins, sec);

    case 2: format(returnstring, 31, "%s %02d, %d, %02d:%02d:%02d", names_of_month[month],day+1,year, hour, mins, sec);

    case 3: format(returnstring, 31, "%d %c%c%c %d, %02d:%02d", day+1,names_of_month[month][0],names_of_month[month][1],names_of_month[month][2], year,hour,mins);

    default: format(returnstring, 31, "%02d.%02d.%d %02d:%02d:%02d", day+1, month+1, year, hour, mins, sec);

    }

    return returnstring;

    }

     

  3. Tak bych na to šel asi logicky... víme, že nezapisuje... takže asi logicky hledám v části, kde zapisuju. Tak se kouknu na syntax zapisování:

     

    • INI_WriteString

      INI:file - File to write to.

      name[] - Data name.

      data[] - Data.

     

    EDIT:

     

    Možná se zkus podívat ještě sem:

    new strong[100];
    if(fexist(strong))
    {
       ...
    }
    wtf?

     

     

     

    otevíráš soubor a zapisuješ do nich prázdné stringy, nemluvě o tom, že zas blbě využíváš funkci:

    new dovod[75],Admin[25],dokedy,string[128],ip[20];
    GetPlayerIp(playerid,ip,20);
    new INI:Fi = INI_Open(BanPath(playerid));
    INI_WriteString(Fi,"%s",ip);
    INI_WriteString(Fi,"%s",dovod);
    INI_WriteString(Fi,"%s",Admin);
    INI_WriteInt(Fi,"%s",strval(string));
    dokedy = strval(string);
    INI_WriteInt(Fi,"%s",dokedy);
    INI_Close(Fi);
    wtf?

     

     

    EDIT2: Tohle všechno ti už napověděl skibig, akorát sám jsem to nepochopil dokud jsem se nekouknul na kód

    Strong som zmenil na BanPath(playerid) a taj tak to nefunguje.... Stále to neviem opraviť...

  4. Mivčo, nevím, co teď plánuješ (zda FS, či GM), ale YSI nepoužívej. Neznáš a ani nechceš znát základy, YSI je pro tebe zbytečně náročné. Používej raději to, co ti vyhovuje a s čím už ses trochu naučil dříve - DOF2, popř. dini. Ano, říkám dini. Sice jsem jeho odpůrcem, ale u tebe k žádné progresi stejně nedojde.

     

    Když budeš používat DOF2/dini, je také větší šance, že se ti někdo ozve. YSI tu používá jen pár lidí a ještě méně jich pomáhá nováčkům, takto ti budou psát akorát ti, co s tím nemají zkušenosti.

    . Pracujem na GM a už mám všetko hotové a pracujem cez Y_INI len toto mi nejako nejde tento timeban :/ ale original script mi funguje normálne len keď som to dal do Y_INI tak nwm prečo to nefunguje... :/
  5. Zrejme se chces trapit jeste delsi dobu, achjo :d

    -_- ja chcem toto pomôcť opraviť a nie inakšie timeban podporovať -_- original my ide od QWER ale ja to potrebujem do YSI len mi to nejako nejde a mimochodom ja viem že sú na sa-mp fórum tisícky tmebanov ale stoja za kravskú P....

  6. Zdravim upravil som si timeban od QWER

     

     

     

    #include YSI/y_ini

    #include YSI/y_commands

    #define HODINA(%0) 3600*%0

    #define DIALOG_ID 874

     

     

    public OnPlayerConnect(playerid)

    {

    new strong[100];

    if(fexist(strong))

    {

    new dovod[75],Admin[25],dokedy,string[128],ip[20];

    GetPlayerIp(playerid,ip,20);

    new INI:Fi = INI_Open(BanPath(playerid));

    INI_WriteString(Fi,"%s",ip);

    INI_WriteString(Fi,"%s",dovod);

    INI_WriteString(Fi,"%s",Admin);

    INI_WriteInt(Fi,"%s",strval(string));

    dokedy = strval(string);

    INI_WriteInt(Fi,"%s",dokedy);

    INI_Close(Fi);

    if(gettime() > dokedy)

    {

    SendClientMessage(playerid,0x0000FFFF,"[ TimeBan ] {FF0000}Ban ti vypršal, dúfam že si sa poučil");

    fremove(strong);

    }else{

    new ban[128];

    strcat(ban,"Tvoj ešte stále nevypršal !\n");

    format(strong, sizeof(strong),"Nick: %s \n", Jmeno(playerid));

    strcat(ban,strong);

    format(strong, sizeof(strong),"IP: %s \n", ip);

    strcat(ban,strong);

    format(strong, sizeof(strong), "Dôvod: %s \n", dovod);

    strcat(ban,strong);

    format(strong, sizeof(strong), "Admin: %s \n", Admin);

    strcat(ban,strong);

    format(strong, sizeof(strong), "Kedy: %s \n", date(strval(string)));

    strcat(ban,strong);

    format(strong, sizeof(strong), "Platnosť %s \n", date(dokedy));

    strcat(ban,strong);

    ShowPlayerDialog(playerid,DIALOG_ID,DIALOG_STYLE_MSGBOX,"{0000FF}TimeBan",ban,"OK","");

    Kick(playerid);

    }

    }

    return 1;

    }

     

    CMD:timeban(playerid, params[])

    {

    //if(admin[playerid] == false) return SendClientMessage(playerid,0x0000FFFF,"[server]: Nie si Administrátor");

    if(GetPlayerState(playerid) == PLAYER_STATE_WASTED) return SendClientMessage(playerid,0x0000FFFF,"[server]: Nemôžeš byť vo výbere postáv !");

    new a[3][60],id,hodiny;

    if(UnFormat(params,a,' ',3) != 3) return SendClientMessage(playerid,0x0000FFFF,"[server]: /timeban [id] [hodinky] [dovod]");

    id = strval(a[0]);

    if(!IsPlayerConnected(id)) return SendClientMessage(playerid,0x0000FFFF,"[server]: Hráč není na servery !");

    if(IsPlayerAdmin(id)) return SendClientMessage(playerid,0x0000FFFF,"[server]: Nemôžeš zabanovať hlavného admina !");

    hodiny = strval(a[1]);

    new str2[75];

    GetPlayerIp(id,str2,75);

    new INI:Fi = INI_Open(BanPath(playerid));

    INI_WriteString(Fi,"%s\r\n",str2);

    INI_WriteString(Fi,"%s\r\n",a[2]);

    INI_WriteString(Fi,"%s\r\n",Jmeno(playerid));

    INI_WriteInt(Fi,"%d\r\n",gettime());

    INI_WriteInt(Fi,"%d\r\n",HODINA(hodiny)+gettime());

    INI_Close(Fi);

    new strong[128];

    format(strong, sizeof(strong),"[ TimeBan ] {FF0000}Admin {FFFFFF}%s{FF0000} dal hráčovy {FFFFFF}%s {FF0000}ban na %d hodín Dôvod: %s",Jmeno(playerid),Jmeno(id),hodiny,a[2]);

    SendClientMessageToAll(-1,strong);

    Kick(id);

    return true;

    }

     

    stock BanPath(playerid)

    {

    new string[128],playername[MAX_PLAYER_NAME];

    GetPlayerName(playerid,playername,sizeof(playername));

    format(string,sizeof(string),"Timeban/%s.txt",playername);

    return string;

    }

     

     

    stock Jmeno(playerid)

    {

    new n[MAX_PLAYER_NAME];

    GetPlayerName(playerid,n,MAX_PLAYER_NAME);

    return n;

    }

     

    stock UnFormat(str[],variables[][],cha,m=0)

    {

    new len = strlen(str),chcount,i,start,varcount;

    while(i < len+1)

    {

    if(i == len && chcount != 0)

    {

    strmid(variables[varcount],str,start+1,strlen(str),128);

    chcount++;

    }

    if(str == cha)

    {

    if((m == 0) || (chcount != m-1))

    {

    strmid(variables[varcount],str,start + ((start == 0) ? 0 : 1),i,128);

    start = i;

    chcount++;

    varcount++;

    }

    }

    i++;

    }

    return chcount;

    }

     

    stock date( timestamp, _form=1 )

    {

    new year=1970, day=0, month=0, hour=0, mins=0, sec=0;

    new days_of_month[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };

    new names_of_month[12][10] = {"Januar","Februar","Marec","April","Maj","Jun","Jul","August","September","Oktober","November","December"};

    new returnstring[32];

    while(timestamp>31622400)

    {

    timestamp -= 31536000;

    if ( ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0) ) timestamp -= 86400;

    year++;

    }

    if ( ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0) )

    days_of_month[1] = 29;

    else

    days_of_month[1] = 28;

    while(timestamp>86400)

    {

    timestamp -= 86400, day++;

    if(day==days_of_month[month]) day=0, month++;

    }

    while(timestamp>60)

    {

    timestamp -= 60, mins++;

    if( mins == 60) mins=0, hour++;

    }

    sec=timestamp;

    switch( _form )

    {

    case 1: format(returnstring, 31, "%02d/%02d/%d %02d:%02d:%02d", day+1, month+1, year, hour, mins, sec);

    case 2: format(returnstring, 31, "%s %02d, %d, %02d:%02d:%02d", names_of_month[month],day+1,year, hour, mins, sec);

    case 3: format(returnstring, 31, "%d %c%c%c %d, %02d:%02d", day+1,names_of_month[month][0],names_of_month[month][1],names_of_month[month][2], year,hour,mins);

    default: format(returnstring, 31, "%02d.%02d.%d %02d:%02d:%02d", day+1, month+1, year, hour, mins, sec);

    }

    return returnstring;

    }

     

     

    Keď na servery chcem niekoho zabanovať tak nikoho nezabanuje a neuloží nič do zložky... Jak to a pre čo? Už sa stím trápim celé hodiny -_-

  7. Ako vyriešim toto:

     

     

    Riadok 3980: new INI:File = INI_Open(VRPath(i));

    Riadok 3981: SetVehiclePos(vehicleid, INI_Float(File, V_posX), INI_Float(File, V_posY), INI_Float(File, V_posZ));

    Riadok 3982: SetVehicleZAngle(vehicleid, INI_Float(File, V_angle));

    Riadok 3983: INI_Close(File);

     

    Errory k riadku 3981:

    (3981) : error 029: invalid expression, assumed zero

    (3981) : error 035: argument type mismatch (argument 1)

    (3981) : error 001: expected token: ";", but found "return"

    (3981) : fatal error 107: too many error messages on one line

  8. Nazdars :hallo:

     

    Chcem sa opýtať... ako spraviť tutorial po registrácii na čas -> napr. Ked sa hráč zaregistruje tak sa mu zobrazí tutorial ktorý po piatich sekundách preskočí na druhý tutorial a tak :) 

    lebo sa stím trápim a vôbec mi to nejde....

×
×
  • Create New...