Szerző Téma: Time Bann  (Megtekintve 1979 alkalommal)

Nem elérhető Sramm

  • 596
    • Profil megtekintése
Time Bann
« Dátum: 2012. június 15. - 21:07:58 »
0 Show voters
Time bann rendszer
 
Bevezetés
Ez egy olyan rendszer, melyek segítségével úgy lehet bannolni játékost, hogy egy idõ múlva unbannolja!
(Csak akkor számol, ha a szerver on. Ha a szerver hirtelen leáll, akkor elmenti az idõt...)
:thumbsup:
Függvények, magyarázatok
Függvény:
 
TBan

 
Paraméterek:
 
  • playerid - A játékos id-je akit bannolni szeretnél.

  • type - Az idõ \"típusa\" : 1 = perc, 2 = óra, 3 = nap

  • time - Idõ, hogy mikor unbannolja.




Függvény:
 
TBanEx

 
Paraméterek:
 
  • playerid - A játékos id-je akit bannolni szeretnél.

  • reason[] - Indok

  • type - Az idõ \"típusa\" : 1 = perc, 2 = óra, 3 = nap

  • time - Idõ, hogy mikor unbannolja. (Percben)




Függvény:
 
Unban

 
Paraméterek:
 
  • file[] - A fájl id-je, amit unbannolni szeretnél



Szükséges
 
  • dini.inc

  • BannTime mappa létrehozása a scriptfiles mappába.

  • A módban az OnGameModeInit alá rakd be:


b_OnGameModeInit()

 
  • .



Frissítések
1.2 
 
  • Ip lekérdezés javítva

  • Compile hibák javítva

  • Idõ \"típus\" hozzáadva

  • a_samp.inc kivétele

  • Teszt szkript hozzáadva


1.1 

  • Záráshibák javítása

  • Mentések javítása


1.0
 
  • Include megjelenése




Letöltés (v 1.2)
 


tban.inc | dini_1_6.zip
 

#if defined _tban_included
#endinput
#endif
#define _tban_included
#include <dini>
 
// By: GameStar
stock second(time)
{
time = time * 1000;
return time;
}
stock minute(time) return time;
 
stock hour(time)
{
time = time*60;
return time;
}
stock day(time)
{
time = hour(time) * 24;
return time;
}
 
#define MAX_BANN 100
 
new BannTime[MAX_BANN];
forward b_OnGameModeInit();
forward Banntimers(banid);
public b_OnGameModeInit()
{
new bf[128];
for(new b; b<=MAX_BANN; b++)
{
format(bf,128,\"/BannTime/%d.ini\",b);
if(dini_Exists(bf))
{
   BannTime = dini_Int(bf,\"time\");
   SetTimerEx(\"Banntimers\",60000,1,\"i\",b);
}
}
return 1;
}
 
stock TBan(playerid,type,time)
{
new ip[128],b[128];
new nextb = NextBan();
format(b,128,\"/BannTime/%d.ini\",nextb);
dini_Create(b);
dini_Set(b,\"Name\",GetName(playerid));
GetPlayerIp(playerid,ip,sizeof(ip));
dini_Set(b,\"IP\",ip);
if(type == 1)
 
{
minute(time);
 
}
if(type == 2)
 
{
hour(time);
 
}
if(type == 3)
 
{
day(time);
 
}
dini_IntSet(b,\"time\",time);
BannTime[nextb] = time;
SetTimerEx(\"Banntimers\",60000,1,\"i\",nextb);
Ban(playerid);
return 1;
}
stock TBanEx(playerid,reason[],type,time)
{
new b[128],ip[128];
new nextb = NextBan();
format(b,128,\"/BannTime/%d\",nextb);
dini_Create(b);
dini_Set(b,\"Name\",GetName(playerid));
GetPlayerIp(playerid,ip,sizeof(ip));
dini_Set(b,\"IP\",ip);
if(type == 1)
 
{
minute(time);
 
}
if(type == 2)
 
{
hour(time);
 
}
if(type == 3)
 
{
day(time);
 
}
dini_IntSet(b,\"time\",time);
BannTime[nextb] = time;
SetTimerEx(\"Banntimers\",60000,1,\"i\",nextb);
BanEx(playerid,reason);
return 1;
}
stock GetName(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
return name;
}
public Banntimers(banid)
{
new b[128];
format(b,128,\"/BannTime/%d.ini\",banid);
if(dini_Exists(b))
{
BannTime[banid] -= 1;
dini_IntSet(b,\"time\",BannTime[banid]);
if(dini_Int(b,\"time\") == 0) return UnBan(b);
}
return 1;
}
stock UnBan(file[])
{
new ub[128];
if(dini_Exists(file))
{
format(ub,128,\"unbanip %s\",dini_Get(file,\"IP\"));
SendRconCommand(ub);
dini_Remove(file);
}
return 1;
}
 
stock NextBan()
{
new b[128];
for(new bc; bc<=MAX_BANN; bc++)
{
format(b,128,\"/BannTime/%d.ini\",bc);
if(bc != 0 && !dini_Exists(b)) return bc;
}
return 1;
}

 
Teszt script
 
#include <a_samp>
#include <tban>
#include <zcmd>
#include <sscanf2>
 
CMD:tban(playerid,params[])
{
new p,time;
if(sscanf(params,\"ui\",p,time)) return 1;
TBan(p,2,time); //óra
return 1;
}
CMD:tbanex(playerid,params[])
{
new p,time;
if(sscanf(params,\"ui\",p,time)) return 1;
TBanEx(p,\"asd\",2,time); //óra
return 1;
}
« Utoljára szerkesztve: 2012. június 17. - 15:23:41 írta Sramm »

Time Bann
« Válasz #1 Dátum: 2012. június 15. - 21:21:32 »
0 Show voters
A retkes g3ci TP-Link router miatt nem tudok semmi leszedni solidfilesrõl.
Amugy jónak tûnik.

Nem elérhető Sramm

  • 596
    • Profil megtekintése
Time Bann
« Válasz #2 Dátum: 2012. június 15. - 21:22:52 »
0 Show voters
Ott a kód spoilerbe :)
E: Ment pastebinre is.
« Utoljára szerkesztve: 2012. június 15. - 21:25:28 írta Sramm »

Time Bann
« Válasz #3 Dátum: 2012. június 15. - 21:29:01 »
0 Show voters
Köszkösz.
Amugy elsõ függvénykönyvtárad?
Mert függvénykönyvtárakba nem szokás beágyazni az alap a_samp függvénykönyvtárat.

Nem elérhető Sramm

  • 596
    • Profil megtekintése
Time Bann
« Válasz #4 Dátum: 2012. június 15. - 21:32:00 »
0 Show voters
Idézetet írta: TengeriMalac date=1339788541\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"22892\" data-ipsquote-contentclass=\"forums_Topic
Köszkösz.
Amugy elsõ függvénykönyvtárad?
Mert függvénykönyvtárakba nem szokás beágyazni az alap a_samp függvénykönyvtárat.
 
Nem, sokadik. De, sokszor és sokan ágyazzák be, mert egyes funkciók csak úgy mûködnek. Egyébként nem tesz keresztbe semminek és senkinek :)

Nem elérhető divkn

  • 3259
    • Profil megtekintése
Time Bann
« Válasz #5 Dátum: 2012. június 15. - 21:42:13 »
0 Show voters
Nem hiszem hogy tesztelted volna a függvénykönyvtárat.
« Utoljára szerkesztve: 2012. június 15. - 21:53:37 írta divkn »

Time Bann
« Válasz #6 Dátum: 2012. június 15. - 21:52:09 »
0 Show voters
Idézetet írta: Sramm date=1339788720\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"22892\" data-ipsquote-contentclass=\"forums_Topic


Köszkösz.
Amugy elsõ függvénykönyvtárad?
Mert függvénykönyvtárakba nem szokás beágyazni az alap a_samp függvénykönyvtárat.
 
Nem, sokadik. De, sokszor és sokan ágyazzák be, mert egyes funkciók csak úgy mûködnek. Egyébként nem tesz keresztbe semminek és senkinek :)
 
[/quote]
Ha elõtte be van ágyazva (mint minden normális script elején, amit használni akarsz) akkor nem kell. Maximum, ha a függvénykönytárból akarsz scriptet csinálni.


Most, hogy átnézem, van benne pár hiba.

Nem elérhető Sramm

  • 596
    • Profil megtekintése
Time Bann
« Válasz #7 Dátum: 2012. június 15. - 21:52:56 »
0 Show voters
Idézetet írta: divkn date=1339789333\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"22892\" data-ipsquote-contentclass=\"forums_Topic


stock NextBan()
{
        new b[128];
        for(new bc; bc<=MAX_BANN; bc++)
        {
                format(b,128,\"\\BannTime\\%d.ini\",bc);
                if(!dini_Exists(b)) return bc;
                return 1;
        }
        stock GetName(playerid)
        {
                new name[MAX_PLAYER_NAME];
                GetPlayerName(playerid,name,sizeof(name));
                return name;
        }
        public Bantimers()
        {
                new b[128];
                for(new bc; bc<=MAX_BANN; bc++)
                {
                        format(b,128,\"\\BannTime\\%d.ini\",bc);
                        if(dini_Exists(b))
                        {
                                BannTime[bc] -= 1;
                                dini_IntSet(b,\"time\",BannTime[bc]);
                                if(dini_Int(b,\"time\") == 0) return UnBan(b);
                        }
                }
                return 1;
        }
        stock UnBan(file[])
        {
                new ub[128];
                if(dini_Exists(file))
                {
                        format(ub,128,\"unbanip %s\",dini_Get(file,\"IP\"));
                        SendRCONCommand(ub);
                        dini_Remove(file);
                }
                return 1;
        }

 
Tesztelted is?
 
Nem. Kösz , hogy szóltál, javítva.
Sajnos nem tudom tesztelni, ha valaki talál benne még hibát szóljon, javítom.
« Utoljára szerkesztve: 2012. június 15. - 22:01:27 írta Sramm »

Time Bann
« Válasz #8 Dátum: 2012. június 16. - 10:51:29 »
0 Show voters
a 36-41. sorig levan hagyva a \"  ;  \" (pontos vesszõ) jel a dini.dtest -ben :)

Nem elérhető DrAkE

  • 2078
    • Profil megtekintése
Time Bann
« Válasz #9 Dátum: 2012. június 16. - 11:02:08 »
0 Show voters
Szerintem a \"ban\" angol szót egy \"n\"-el írják. Illetve nem hiszem hogy tesztelve lett ez a script.

Nem elérhető Sramm

  • 596
    • Profil megtekintése
Time Bann
« Válasz #10 Dátum: 2012. június 16. - 12:46:19 »
0 Show voters
Idézetet írta: Sramm date=1339789976\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"22892\" data-ipsquote-contentclass=\"forums_Topic
Sajnos nem tudom tesztelni, ha valaki talál benne még hibát szóljon, javítom.
 


a 36-41. sorig levan hagyva a \"  ;  \" (pontos vesszõ) jel a dini.dtest -ben :)
 
[/quote]
???

Nem elérhető DrAkE

  • 2078
    • Profil megtekintése
Time Bann
« Válasz #11 Dátum: 2012. június 16. - 12:49:17 »
+1 Show voters
Idézek, csak neked a Szabályzatból:
 
NE publikálj nem mûködõ scriptet [WRONG] tagek-kel SEM![/quote]
Illetve vonatkozik azokra a scriptekre, gyûjteményekre, gamemodokra, amely nem lett tesztelve!
« Utoljára szerkesztve: 2012. június 16. - 12:53:53 írta DrAkE »

Nem elérhető Sramm

  • 596
    • Profil megtekintése
Time Bann
« Válasz #12 Dátum: 2012. június 16. - 16:41:30 »
0 Show voters
Idézetet írta: DrAkE date=1339843757\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"22892\" data-ipsquote-contentclass=\"forums_Topic
Idézek, csak neked a Szabályzatból:
 
NE publikálj nem mûködõ scriptet [WRONG] tagek-kel SEM!
Illetve vonatkozik azokra a scriptekre, gyûjteményekre, gamemodokra, amely nem lett tesztelve!
 
[/quote]
Ha hazaérek fogom tesztelni.

Dupla hozzászólás automatikusan összefûzve. ( 2012. június 17. - 13:33:23 )

Javított 1.2-es verzió hozzáadva.
« Utoljára szerkesztve: 2012. június 17. - 13:33:23 írta Sramm »

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal