Szerző Téma: Biztonságirendszer.  (Megtekintve 1540 alkalommal)

Nem elérhető Sheet

  • 1508
  • Támogató
    • Profil megtekintése
Biztonságirendszer.
« Dátum: 2010. október 26. - 14:37:34 »
0 Show voters
Hi
Nemtudom van e egyátalán ilyen, szóval azért leírom..
Olyan script kellene nekem, hogy a módba megkellene adni 1 vag több ip-címet, akik ugymond védettek lennének... Nemlehetne õket kickelni, még rconal se, és bannolni se, sõt az admint se lehetne elvenni tölle...
Ha valaki mondjuk azzal a névvel lépne be ami hozzá van rendelve az ip-hez akkor azt autómatán kickelné a szerver..
Remélem valaki tud rá megoldást
Elõre kössz

Nem elérhető ZeRo

  • 4620
  • Ex Globális Moderátor
    • Profil megtekintése
Biztonságirendszer.
« Válasz #1 Dátum: 2010. október 26. - 15:16:44 »
0 Show voters
Nem teszteltem, de próbáld meg ezzel( az IP-ket nyilván helyettesítsd be ):
 

#include < a_samp >
#include < zcmd >
#include < sscanf2 >
#define COLOR_RED 0xFF0000AA
#define MAX_PROTECTED_IPS 3
new protectedIPs[ MAX_PROTECTED_IPS ][ 14 ] = {
\"80.98.22.124\",
\"80.98.22.125\",
\"80.98.22.126\"
};
CMD:kick( playerid, params[  ] ) {
new iPlayer;
if( unformat( params, \"d\", iPlayer ) ) {
    SendClientMessage( playerid, COLOR_RED, \"Használat: /kick < JátékosID >\" );
} else {
    new szIP[ 14 ];
    GetPlayerIp( playerid, szIP, sizeof szIP );
    for( new x = 0; x < sizeof protectedIPs; ++x ) {
   if( !strcmp( szIP, protectedIPs[ x ] ) ) {
       return SendClientMessage( playerid, COLOR_RED, \"Ezt a játékost nem rúgahtod ki!\" );
   }
}
Kick( iPlayer );
}
return 1;
}

Nem elérhető Sheet

  • 1508
  • Támogató
    • Profil megtekintése
Biztonságirendszer.
« Válasz #2 Dátum: 2010. október 26. - 15:31:27 »
0 Show voters
CMD:kick( playerid, params[  ] ) {

 
ezzel a sorral olyan baja van hogy:
C:\\Users\\Robi\\Desktop\\SA-MP\\pawno\\mode1.pwn(1601) : error 029: invalid expression, assumed zero
C:\\Users\\Robi\\Desktop\\SA-MP\\pawno\\mode1.pwn(1601) : error 017: undefined symbol \"cmd_kick\"
C:\\Users\\Robi\\Desktop\\SA-MP\\pawno\\mode1.pwn(1601) : error 029: invalid expression, assumed zero
C:\\Users\\Robi\\Desktop\\SA-MP\\pawno\\mode1.pwn(1601) : fatal error 107: too many error messages on one line

Nem elérhető ZeRo

  • 4620
  • Ex Globális Moderátor
    • Profil megtekintése
Biztonságirendszer.
« Válasz #3 Dátum: 2010. október 26. - 16:14:48 »
0 Show voters
Ja igen, elfelejtettem írni, hogy én zcmd-t használtam. De ha te a dcmd-t, vagy csak a sima OnPlayerCommandText függvényt használod, akkor annak megfelelõen alakítsd át( ha nem megy, akkor írd le, hogy melyiket használod, és segítek ;) ).

Nem elérhető Sheet

  • 1508
  • Támogató
    • Profil megtekintése
Biztonságirendszer.
« Válasz #4 Dátum: 2010. október 26. - 16:24:54 »
0 Show voters
A sima OnPlayerCommandtextet használom:) kérlek segíts :)

Nem elérhető kurta999

  • 2759
  • Éllő fédisznó
    • Profil megtekintése
Biztonságirendszer.
« Válasz #5 Dátum: 2010. október 26. - 16:47:02 »
0 Show voters
OnPlayerCommandText-et cseréld ki erre zcmd-nél:
OnPlayerCommandPerformed(playerid, cmdtext[], success)
A vége eredetileg így néz ki: ( OnPlayerCommandText legalja )
 
   return 0;

 
És ezt cseréld ki erre:
 
   return success;

 
U.I.: Az unformat mivel másobb, mint az sscanf ?
« Utoljára szerkesztve: 2010. október 26. - 16:48:33 írta kurta999 »

Nem elérhető ZeRo

  • 4620
  • Ex Globális Moderátor
    • Profil megtekintése
Biztonságirendszer.
« Válasz #6 Dátum: 2010. október 26. - 16:47:59 »
0 Show voters
Ha még most sem jó, akkor másold be a /kick parancsodat( if( strcmp...)-tõl kezdve ), és akkor behelyettesítem. ;)
E: @Kurta,
 
Idézetet írta: ZeRo date=1271349626\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"3906\" data-ipsquote-contentclass=\"forums_Topic
A függvényt lehetõségünk van unformat néven is használni. Ezt az alternatív megoldást azért hozta létre Y_Less, hogy elkerülje a félreértéseket ezzel, és a C nyelv beli sscanf függvénnyel kapcsolatban.
 
« Utoljára szerkesztve: 2010. október 26. - 16:50:01 írta ZeRo »

Nem elérhető Sheet

  • 1508
  • Támogató
    • Profil megtekintése
Biztonságirendszer.
« Válasz #7 Dátum: 2010. október 26. - 16:54:43 »
0 Show voters
public OnPlayerCommandPerformed(playerid, cmdtext[], success) {
    if( !strcmp( \"/kick\", cmdtext, true ) ) {
new iPlayer;
if( unformat( params, \"d\", iPlayer ) ) {
    SendClientMessage( playerid, COLOR_RED, \"Használat: /kick < JátékosID >\" );
} else {
    new szIP[ 14 ];
    GetPlayerIp( playerid, szIP, sizeof szIP );
    for( new x = 0; x < sizeof protectedIPs; ++x ) {
   if( !strcmp( szIP, protectedIPs[ x ] ) ) {
       return SendClientMessage( playerid, COLOR_RED, \"Ezt a játékost nem rúgahtod ki!\" );
   }
}
Kick( iPlayer );
}
return 1;

 
Hiba:C:\\Users\\Robi\\Desktop\\SA-MP\\pawno\\mode1.pwn(1611) : error 017: undefined symbol \"unformat\"

Nem elérhető ZeRo

  • 4620
  • Ex Globális Moderátor
    • Profil megtekintése
Biztonságirendszer.
« Válasz #8 Dátum: 2010. október 26. - 17:26:38 »
0 Show voters
Szükséged van a sscanf nevû pluginra. Itt van a leírásom errõl a függvényrõl, az elején megtalálod a letöltési linket, és a telepítés módját. http://sampforum.hu/index.php?topic=4400.0

Nem elérhető kurta999

  • 2759
  • Éllő fédisznó
    • Profil megtekintése
Biztonságirendszer.
« Válasz #9 Dátum: 2010. október 26. - 20:57:48 »
0 Show voters
Na lenne még egy hülye kérdésem: Ha azt az iPlayer változót globálisan hozod létre, akkor az nemjobb, mint ha minden parancsnál ?

Biztonságirendszer.
« Válasz #10 Dátum: 2010. október 27. - 12:26:00 »
0 Show voters
Idézetet írta: kurta999 date=1288119468\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"3906\" data-ipsquote-contentclass=\"forums_Topic
Na lenne még egy hülye kérdésem: Ha azt az iPlayer változót globálisan hozod létre, akkor az nemjobb, mint ha minden parancsnál ?
 
Szerintem jobb.
Különben:
if( unformat( params, \"d\", iPlayer ) ) {
Ide nem cmdtext kéne?
if( unformat( cmdtext, \"d\", iPlayer ) ) { ..... ?

Nem elérhető Sheet

  • 1508
  • Támogató
    • Profil megtekintése
Biztonságirendszer.
« Válasz #11 Dátum: 2010. november 01. - 23:52:44 »
0 Show voters
Van egy kick parancsom, segítene valaki hozzáépíteni ezt az \"antikicket\"?
Elõre kössz
 

if(strcmp(cmd, \"/kick\", true) == 0)
{
    if(IsPlayerConnected(playerid))
    {
      tmp = strtok(cmdtext, idx);
      if(strlen(tmp) == 0) return SendClientMessage(playerid, COLOR_WHITE, \"Használat: /kick [JátékosID] [indok]\");
      giveplayerid = strval(tmp);
      if(PlayerInfo[playerid][pAdmin] >= 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))
            {
               result = \" - \";
            }
             new playa;
             format(string, sizeof(string), \"*AdmCmd: %s kickelve lett %s által. Indok:[%s]\", GetPlayerNameEx(giveplayerid), GetPlayerNameEx(playerid), result);
            SendClientMessageToAll(COLOR_RED, string);
             GetPlayerName(playa, giveplayer, sizeof(giveplayer));
            GetPlayerName(playerid, sendername, sizeof(sendername));
             format(string, sizeof(string), \"Kickelve lettél %s által. Indok: [%s]\", GetPlayerNameEx(playerid), result);
            SendClientMessage(giveplayerid, COLOR_LIGHTRED, string);
             Kick(giveplayerid);
            return 1;
      }
   }
   else{
       SendClientMessage(playerid, COLOR_RED, \"Nem vagy admin\");
       }
}

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal