Szerző Téma: Warn script átírása  (Megtekintve 1128 alkalommal)

Nem elérhető inf

  • 366
    • Profil megtekintése
Warn script átírása
« Dátum: 2013. október 14. - 17:47:31 »
0 Show voters
Sziasztok!

Valaki át tudná nekem írni ezt a warn scriptet olyanra hogy dini-be mentse hogy hány % figyelmeztetése van és hogy ne csak 15, 25, 50 % figyelmeztetést lehessen kiosztani hanem annyit amennyit beír és még az unwarnot is átkellene ilyenre írni hogy ne az egészet vegye le hanem amennyit beír annyit vegyen le.


Eredeti téma:
Warn minirendszer(Adminnak) \\SampForum módra\\
Script:
 
#include a_samp
#include sscanf2
#include zcmd
#define DIALOG_WARNS 123
new
       id,
       str[128]
;
public OnPlayerConnect(playerid) {
       SetPVarInt(playerid, \"Warn\", 0);
       return 1;
}
CMD:warn(playerid, params[]) {
       if(!GetPVarInt(playerid, \"Admin\")) return 0;
       new szazalek;
       if(sscanf(params, \"us[64]i\", id, params, szazalek)) return SendClientMessage(playerid, -1, \"Használat: /warn [playerid/név] [indok] [százalék(15,25,50)]\");
       if(!(1 < strlen(params) < 65)) return SendClientMessage(playerid, -1, \"Hiba. Az indoknak min. 2, max. 64 karakternek kell lennie!\");
       if(szazalek != 15 || szazalek != 25 || szazalek != 50) return SendClientMessage(playerid, -1, \"Figyelmeztetése szintek: 15, 25 vagy 50\");
       SetPVarInt(id, \"Warn\", GetPVarInt(id, \"Warn\")+szazalek);
       if(GetPVarInt(id, \"Warn\") >= 100) {
               format(str, sizeof(str), \"%s-nak/nek kigyûlt a 100 százalék figyelmeztetése, ezért kickelve lett a szerverrõl!\", Name(id));
               SendClientMessageToAll(-1, str);
               Kick(id);
               return 1;
       }else{
               format(str, sizeof(str), \"Admin %s %i százalék figyelmeztetésben részesítette %s-t! Indok: %s\", Name(playerid), szazalek, Name(id), params);
               SendClientMessageToAll(-1, str);
       }
       return 1;
}
CMD:unwarn(playerid, params[]) {
       if(!GetPVarInt(playerid, \"Admin\")) return 0;
       if(sscanf(params, \"u\", id)) return SendClientMessage(playerid, -1, \"Használat: /warn [playerid/név]\");
       if(GetPVarInt(id, \"Warn\") > 0) return SendClientMessage(playerid, -1, \"Hiba. Ennek a játékosnak nincs figyelmeztetése\");
       SetPVarInt(id, \"Warn\", 0);
       format(str, sizeof(str), \"Admin, %s levette a figyelmeztetést %s alól!\", Name(playerid), Name(id));
       SendClientMessageToAll(-1, str);
       return 1;
}
CMD:warns(playerid) {
       new count, string[512];
       for(new i; i < MAX_PLAYERS; i++) {
               if(!IsPlayerConnected(i)) continue;
               if(GetPVarInt(i, \"Warn\") > 0) {
                       format(str, sizeof(str), \"%i. %s - %i százalék\\n\", count, Name(i), GetPVarInt(i, \"Warn\"));
                       strcat(string, str);
                       count ++;
               }
       }
       ShowPlayerDialog(playerid, DIALOG_WARNS, DIALOG_STYLE_MSGBOX, \"Figyelmeztetések:\", string, \"Oké\", \"\");
       return 1;
}
Name(playerid) {
       new n[24];
       GetPlayerName(playerid, n, 24);
       return n;
}
« Utoljára szerkesztve: 2013. október 14. - 17:49:43 írta InFIeL_HuN »

Warn script átírása
« Válasz #1 Dátum: 2013. október 14. - 19:43:10 »
+1 Show voters
Szia!
Gyorsan összedobtam neked egy ilyesmit amit akartál, de sajnos nem volt idõm a teszthez tehát ha valami gond van vele szólj és ki fogom javítani :)  :smokin:
A script:
 
#include <a_samp>
#include <zcmd>
#include <sscanf>
#include <dini>
#include <mester> //Saját függvénykönyvtár.
stock PName(playerid)
{
new nev[MAX_PLAYER_NAME];
GetPlayerName(playerid,nev,sizeof(nev));
return nev;
}
stock wFile(playerid)
{
new file[40];
format(file,sizeof(file),\"Warn/%s.ini\",PName(playerid));
return file;
}
CMD:warn(playerid,params[])
{
if(!IsPlayerAdmin(playerid)) return msg(playerid,piros,\"Nem vagy Rcon Admin\");
new id,szazalek;
new oka[60];
if(sscanf(params,\"uis[60]\",id,szazalek,oka)) return msg(playerid,piros,\"Használat: /warn [iD/Névrészlet] [Warn százalék] [Oka]\");
if(szazalek <= 0) return msg(playerid,piros,\"A százalék 1 - 100 - ig lehetséges\");
if(szazalek >= 101) return msg(playerid,piros,\"A százalék 1 - 100 - ig lehetséges\");
else if(id == INVALID_PLAYER_ID) return msg(playerid,piros,\"Nem létezõ játékos.\");
else
{
dini_Create(wFile(id));
dini_IntSet(wFile(id),\"warn\",szazalek);
dini_Set(wFile(id),\"nev\",PName(id));
new string[110];
format(string,sizeof(string),\"%s warnolva lett %s által | Oka: %s | Figyelmeztetése: %i\",PName(playerid),PName(id),oka,szazalek);
msgall(RED,string);
}
return 1;
}
CMD:unwarn(playerid,params[])
{
if(!IsPlayerAdmin(playerid)) return msg(playerid,piros,\"Nem vagy RCon admin\");
new id;
new oka[60];
if(sscanf(params,\"us[60]\",id,oka)) return msg(playerid,piros,\"Használat: /unwarn [iD/Névrészlet] [Oka]\");
else if(id == INVALID_PLAYER_ID) return msg(playerid,piros,\"Nem létezõ játékos\");
else
{
    dini_Remove(wFile(id));
    new string[128];
    format(string,sizeof(string),\"%s unwarnolta %s -t | Oka: %s\",PName(playerid),PName(id),oka);
    msgall(RED,string);
}
return 1;
}
CMD:warns(playerid,params[])
{
msg(playerid,feher,\"Játékosok warnjai:\");
for(new i; i < MAX_PLAYERS; i++)
{
if(dini_Exists(wFile(i)))
{
   new string[60];
   format(string,sizeof(string),\"~~ %s ~~ %i százalék\",dini_Get(wFile(i),\"nev\"),dini_Int(wFile(i),\"warn\"));
   msg(playerid,RED,string);
}
}
return 1;
}
public OnFilterScriptInit()
{
SetTimer(\"warncheck\",2000,true);
return 1;
}
forward warncheck();
public warncheck()
{
for(new i; i < MAX_PLAYERS; i++)
{
    if(dini_Exists(wFile(i)))
    {
   if(dini_Int(wFile(i),\"warn\") >= 100)
   {
      new string[100];
      format(string,sizeof(string),\"%s kickelve lett a szerver által | Oka: 100 százalékos Warn\",PName(i));
      msgall(RED,string);
      dini_Remove(wFile(i));
      Kick(i);
   }
    }
}
}

 
AMX File: http://www.solidfiles.com/d/d3ae9b5afb/
Ui: Ne felejts el a scriptfiles mappába készíteni egy warn mappát, különben nem fog mûködni mivel a dini oda fogja menteni neked. Editelni nyugodtan editelheted a messageket mivel nem nagyon csináltam rájuk nagy színválasztékot.
További jó forumozás! :D
Üdv:MesterMartino

Nem elérhető inf

  • 366
    • Profil megtekintése
Warn script átírása
« Válasz #2 Dátum: 2013. október 14. - 20:10:05 »
0 Show voters
Valami nem jó, beteszem a szerverbe és azt írja mind a 3 parancsra hogy \"SERVER: Unknow command.\"
Miért? ( Bevagyok RCON-ba jelentkezve )

Warn script átírása
« Válasz #3 Dátum: 2013. október 14. - 20:46:01 »
0 Show voters
Sscanf plugin fel van telepítve a szerveredbe?
Szerk:
Az amx file-t beraktad a filterscripts mappába és a server.cgf fileba beleírtad az FS nevét?
« Utoljára szerkesztve: 2013. október 14. - 20:47:45 írta MesterMartino »

Nem elérhető id100

  • 903
    • Profil megtekintése
Warn script átírása
« Válasz #4 Dátum: 2013. október 14. - 20:51:34 »
0 Show voters
az egyedi fkönyvtár nem kell?
Már bocs lehet nem fogom használni  de érdekelne

Warn script átírása
« Válasz #5 Dátum: 2013. október 14. - 20:57:23 »
0 Show voters
Nem nagy dolog, mivel csak beledobtam pár darab olyan színdefiníciót amit gyakran használok, így nem kell 40 sorokat sz**akodnom a színdeffekkel...
Amúgy itt van: http://www.solidfiles.com/d/6c6cadb46c/

Nem elérhető inf

  • 366
    • Profil megtekintése
Warn script átírása
« Válasz #6 Dátum: 2013. október 14. - 22:13:35 »
0 Show voters
Nem volt bent az sscanf nem rég telepítettem újra a szervert de mostmár jó a script.
Köszi!

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal