Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

stock is_allowed_server


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
11 odpowiedzi w tym temacie

#1 diablix

    emeryt

  • Przyjaciel

Reputacja: 507
Wszechwiedzący

  • Postów:663
  • GG:
  • Steam:steam
  • Imię:Daniel
  • Lokalizacja:Warszawa
Offline

Napisano 25.09.2010 00:18

Stock zwraca true jeżeli serwer posiada wymagane ip, oraz false jeżeli jego nie posiada.

Kod naprawiony


stock is_allowed_server(){

new server_ip[22];
get_user_ip(0, server_ip, charsmax(server_ip));

if(!equal("00.0.00.00:00000", server_ip)){
set_fail_state("Ten plugin dziala tylko na jednym ip)");

return false;
}

return true;
}


Przykładowe użycie :

#include <amxmodx>

public plugin_init(){
if(is_allowed_server()){
register_plugin("Stock", "0.1a", "diablix");

}
}

stock is_allowed_server(){

new server_ip[22];
get_user_ip(0, server_ip, charsmax(server_ip));

if(!equal("00.0.00.00:00000", server_ip)){
set_fail_state("Ten plugin dziala tylko na jednym ip");

return false;
}

return true;
}


W miejscu "00.0.00.00:00000" Wpisujemy ip na którym ma działac plugin.

Użytkownik Diablix edytował ten post 26.09.2010 12:20

  • +
  • -
  • 2

#2 Ortega

    mów mi Orti

  • Power User

Reputacja: 363
Wszechpomocny

  • Postów:640
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Sosnowiec
Offline

Napisano 25.09.2010 07:59

Też mi stock... Stock nie może mieć hardcodowanych parametrów bo to jest bezsensowne. Jeśli już to lepiej zamiast contain dać equal:

stock is_allowed_server( const current_ip[ ] ){

new server_ip[ 22 ];
get_user_ip( 0, server_ip, charsmax( server_ip ) );

if( equal( current_ip, server_ip ) )
{
return true;
}
else
{
server_cmd("shutdownserver");
set_fail_state("Ten plugin dziala tylko na jednym ip");

return false;
}
return -1;
}

if( !is_allowed_server( "255.255.255.255:27030" ) ) return;

Użytkownik Ortega edytował ten post 25.09.2010 08:07

  • +
  • -
  • 0

#3 mgr inż. Pavulon

    C35H60Br2N2O4

  • Przyjaciel

Reputacja: 1 742
Godlike

  • Postów:6 881
  • Steam:steam
  • Imię:Konrad
  • Lokalizacja:Koniecpol
Offline

Napisano 25.09.2010 08:06

contain było by lepsze, ale tylko prawidłowo użyte.
nie robi się
if ( !contain("00.0.00.00:00000", server_ip) )
lecz
if ( contain("00.0.00.00:00000", server_ip) == -1 )

Ogólnie jakąś pomyłką jest ta "gotowa funkcja"
  • +
  • -
  • 0

#4 Ortega

    mów mi Orti

  • Power User

Reputacja: 363
Wszechpomocny

  • Postów:640
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Sosnowiec
Offline

Napisano 25.09.2010 08:11

No racja, też mi się nie wydaje, żeby po zatrzymaniu procesu aplikacji HLDS, amx mógł wykonać fail_state ;)
  • +
  • -
  • 0

#5 Change

    Super Hero

  • Użytkownik

Reputacja: 129
Zaawansowany

  • Postów:1 161
  • Lokalizacja:Konin
Offline

Napisano 25.09.2010 08:34

Aczkolwiek przydać się przyda ^^ coś pod prawa autorskie ;)
  • +
  • -
  • 0

#6 Knopers

    Nie patrz tak na mnie !

  • Przyjaciel

Reputacja: 588
Wszechwiedzący

  • Postów:2 013
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Cz-wa
Offline

Napisano 25.09.2010 09:04

No racja, też mi się nie wydaje, żeby po zatrzymaniu procesu aplikacji HLDS, amx mógł wykonać fail_state ;)


a co dopiero zwrócić false :D
  • +
  • -
  • 0

#7 grankee

    Godlike

  • Support Team

Reputacja: 517
Wszechwiedzący

  • Postów:1 500
  • Lokalizacja:Radom
Offline

Napisano 25.09.2010 23:50

Super, a po co serwer wyłączać?:D
Po prostu wywalić info, że ten plugin nie działa, bo został przeznaczony na inny serwer, tylko wtedy możemy udostępnić jedynie .amxx, danie .sma mija się wówczas z celem. Zastanawiam się jednak kiedy to może się przydać..hmm czyżby do komercyjnych zastosowań naszych pluginów? Ja jak na razie nic nikomu nie sprzedałem, co nie znaczy, że mam coś przeciwko..


ale funkcja chociaż żadna nowość, to jednak ciekawa

Użytkownik grankee edytował ten post 25.09.2010 23:51

  • +
  • -
  • 0

#8 diablix

    emeryt

  • Autor tematu
  • Przyjaciel

Reputacja: 507
Wszechwiedzący

  • Postów:663
  • GG:
  • Steam:steam
  • Imię:Daniel
  • Lokalizacja:Warszawa
Offline

Napisano 26.09.2010 12:17

Myślałem że contani = equali / contain = equal

Zedytowałem pierwszy post, testowane i działa w 100%

Użytkownik Diablix edytował ten post 26.09.2010 12:19

  • +
  • -
  • 0

#9 kyku

    Wszechmogący

  • Użytkownik

Reputacja: 166
Profesjonalista

  • Postów:612
  • Lokalizacja:Jasło
Offline

Napisano 26.09.2010 12:26

wg. mnie jeżeli to jest stock to powinno wyglądać np. tak
#include <amxmodx>

public plugin_init(){
  register_plugin("Stock", "0.1a", "diablix");
  
  if(!is_allowed_server("123.456.7890:12345")){
    server_cmd("echo Plugin Stock dziala tylko na jednym serwerze.. Bye");
    server_cmd("shutdownserver");
  }
        
        
}

stock is_allowed_server(const current_ip[]){
        
        new server_ip[22];
        get_user_ip(0, server_ip, charsmax(server_ip));
        
        if(equali(current_ip, server_ip)) return true;
        
        return false;
}

Dodano 26 wrzesień 2010 - 13:31:
a contain tutaj nie pasuje, ponieważ ktoś może mieć tego samego hosta z innym portem np.

00.0.00.00:1234
i odpali na serwerze z IP
00.0.00.00:12345

to też zadziała :)
mało prawdopodobne ale jeżeli plugin na prawdę jest coś warty to można pokombinować

Użytkownik kyku edytował ten post 26.09.2010 12:27

  • +
  • -
  • 0

#10 diablix

    emeryt

  • Autor tematu
  • Przyjaciel

Reputacja: 507
Wszechwiedzący

  • Postów:663
  • GG:
  • Steam:steam
  • Imię:Daniel
  • Lokalizacja:Warszawa
Offline

Napisano 26.09.2010 13:35

Tak też można, nazwałem to stockiem ponieważ zalicza sie do gotowych funkcji tylko właśnie mogłem dodać zmienne consty.
  • +
  • -
  • 0

#11 Knopers

    Nie patrz tak na mnie !

  • Przyjaciel

Reputacja: 588
Wszechwiedzący

  • Postów:2 013
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Cz-wa
Offline

Napisano 26.09.2010 15:24

(...) tylko właśnie mogłem dodać zmienne consty.


Ale wtedy nie były bo to już zmienne tylko stałe Dołączona grafika
I nie przypisał byś już do stałej IP pobranego funkcją get_user_ip Dołączona grafika
  • +
  • -
  • 1

#12 grankee

    Godlike

  • Support Team

Reputacja: 517
Wszechwiedzący

  • Postów:1 500
  • Lokalizacja:Radom
Offline

Napisano 27.09.2010 00:41

ostatnim parametrem funkcji get_user_ip jest flaga której wartość ustawia się na 1 lub 0 (without port), czyli 1 to bez portu a 0 z portem ip pobierasz.
  • +
  • -
  • 0




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych