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

Contain(i) i equal(i)Opis funkcji


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

#1 diablix

    emeryt

  • Przyjaciel

Reputacja: 507
Wszechwiedzący

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

Napisano 22.08.2011 02:18

*
Popularny

Opiszę wam czym się różnią te funkcje Dołączona grafika

Są to funkcje głównie do porównywania Stringów (łańcuchów znaków), czym się różnią ?


equal - equal ( const a[], const b[], [ c ] )
  • Sprawdza czy a posiada ten sam tekst co b, c oznacza ile znaków ma porównać (domyślnie wszystkie)
  • Sprawdza wielkość liter
Przykładowe zastosowanie :

new sClass[32];
pev(iEntity, pev_classname, sClass, sizeof sClass - 1);
if(equal(sClass, "KLASA_BYTU")) client_print(0, 3, "Ten byt posiada klasę KLASA_BYTU!");


new sClass[32];
pev(iEntity, pev_classname, sClass, sizeof sClass - 1);
if(equal(sClass, "BYT"), 3) client_print(0, 3, "Ten byt posiada klasę BYT!");


contain - ( const source[], const string[] )
  • Funkcja sprawdza czy źródło zawiera dany tekst
  • Zwraca -1 jeżeli nie zawiera lub jeżeli zawiera, zwraca pozycję danego fragmentu
  • Sprawdza wielkość liter
Przykładowe zastosowanie :

new sClass[32];
pev(iEntity, pev_classname, sClass, sizeof sClass - 1);
if(contain(sClass, "JAKAS_KLASA") != -1) client_print(0, 3, "Klasa bytu posiada w sobie slowo JAKAS_KLASA");



equali - equali ( const a[], const b[], [ c ] )
  • Funkcja taka sama jak equal, różni się jedynie tym, że NIE zwraca uwagi na wielkość liter.
containi - containi ( const source[], const string[] )

  • Funkcja taka sama jak contain, różni się jedynie tym, że NIE zwraca uwagi na wielkość liter.
To chyba tyle, pisałem dość późno i mogłem coś pomylić Dołączona grafika
  • +
  • -
  • 8

#2 dasiek

    Nie wiem, nie znam się, nie orientuję się, zarobiony jestem.

  • Junior Admin

Reputacja: 2 077
Godlike

  • Postów:5 706
  • Imię:Adaś
  • Lokalizacja:No teraz trochę dalej od WWy
Offline

Napisano 22.08.2011 08:55

przyda się ;]
  • +
  • -
  • 0

#3 G[o]Q

    I'm G[o]Q

  • Przyjaciel

Reputacja: 1 344
Godlike

  • Postów:3 563
  • Steam:steam
  • Imię:Krzysiek
  • Lokalizacja:C: / program Files / Valve / Cstrike / G[o]Q.dem
Offline

Napisano 22.08.2011 12:10

tego samego mozna sie dowiedziec wchodzac w dokumentacje i znajdując te 4 funkcje :D
  • +
  • -
  • 0
Manual ponad wszystko, konsola ponad manual :D :&

Chcesz wysłać do mnie PW ? użyj nazwy GoQ zamiast G[o]Q
Chcesz Kupić moduł płatności via Pukawka,Tserwery, Gamesol, Zabijaka do mojego sklepu? napisz PW cena to tylko 10 zł/sztuka

GG:6022845 (nie pomagam za free osobom ponizej rangi MoD) :D

#4 Skull3D

    Wszechmogący

  • Zbanowany

Reputacja: 102
Zaawansowany

  • Postów:651
  • Imię:Andrzej
  • Lokalizacja:AMXX.PL
Offline

Napisano 22.08.2011 13:11

Przydatne thx :)
I odpisuj na steam'ie lamko ;P

#5 diablix

    emeryt

  • Autor tematu
  • Przyjaciel

Reputacja: 507
Wszechwiedzący

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

Napisano 22.08.2011 13:13

tego samego mozna sie dowiedziec wchodzac w dokumentacje i znajdując te 4 funkcje :D


Zapewniam Cię że większość nie wtajemniczonych ludzi korzysta z poradników niż dokumentacji :P
  • +
  • -
  • 0

#6 G[o]Q

    I'm G[o]Q

  • Przyjaciel

Reputacja: 1 344
Godlike

  • Postów:3 563
  • Steam:steam
  • Imię:Krzysiek
  • Lokalizacja:C: / program Files / Valve / Cstrike / G[o]Q.dem
Offline

Napisano 22.08.2011 13:20

no wlasnie po to jest dokumentacja zeby ludzie zaczeli z niej korzystać bo jak bd chcieli zmienic jezyk/dziedzine to tam beda mogli opierac sie tylko na kursie ktory uczy podstaw i dokumentacji w ktorej wszystko jest
  • +
  • -
  • 0
Manual ponad wszystko, konsola ponad manual :D :&

Chcesz wysłać do mnie PW ? użyj nazwy GoQ zamiast G[o]Q
Chcesz Kupić moduł płatności via Pukawka,Tserwery, Gamesol, Zabijaka do mojego sklepu? napisz PW cena to tylko 10 zł/sztuka

GG:6022845 (nie pomagam za free osobom ponizej rangi MoD) :D

#7 Fili:P

    Godlike

  • Power User

Reputacja: 754
Guru

  • Postów:1 679
  • Imię:Darek
  • Lokalizacja:Warszawa
Offline

Napisano 22.08.2011 14:42

Na pewno się przyda, ponieważ nowi w pawnie będą raczej pisali

if(zmienna=="txt")


Oczywiście nie mówię, że zrobi to każdy.
  • +
  • -
  • 0

#8 sharkowy

    Lokalna anomalia sejsmiczna o nieustalonej genezie.

  • Przyjaciel

Reputacja: 113
Zaawansowany

  • Postów:1 981
Offline

Napisano 22.08.2011 14:47

no wlasnie po to jest dokumentacja zeby ludzie zaczeli z niej korzystać


Też fakt, ale artykuł przydatny ;P
  • +
  • -
  • 0

#9 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 22.08.2011 15:43

Sprawdza a posiada ten

Powinno być

Sprawdza czy a posiada ten

I equal/i chyba zwraca też jakieś liczby, zależy czy znajdzie tekst, czy nie. Widziałem w jednym pluginie chociażby coś takiego "equali(sExt, "teks") == -1".
  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#10 diablix

    emeryt

  • Autor tematu
  • Przyjaciel

Reputacja: 507
Wszechwiedzący

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

Napisano 22.08.2011 17:37

Sprawdza a posiada ten

Powinno być

Sprawdza czy a posiada ten

I equal/i chyba zwraca też jakieś liczby, zależy czy znajdzie tekst, czy nie. Widziałem w jednym pluginie chociażby coś takiego "equali(sExt, "teks") == -1".


To contain(i) tak zwraca, equal(i) zwraca prawdę lub fałsz
  • +
  • -
  • 0

#11 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 22.08.2011 23:13

Wiem, że contain "tak" zwraca, ale
if(equali(sExt, ".mp3") == -1 || equali(sExt, ".wav") == -1) {
log_amx("%L", LANG_SERVER, "ERS_LOG_UNKNOW_EXTENSION", sExt);
continue;
}

kod z pewnego roundsounda, z tego forum, tylko tym się kierowałem pisząc o tym.
  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#12 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 23.08.2011 00:27

Nie ma nic bardziej przekonującego niż kod źródłowy wprost ze string.cpp
Spoiler


wartości zwracane są dwie:
1 - w przypadku równych tekstów
0 - w przypadku różnych

To samo z equali
  • +
  • -
  • 0

#13 diggs

    Wszechwidzący

  • Użytkownik

Reputacja: 28
Życzliwy

  • Postów:229
  • Lokalizacja:Internet
Offline

Napisano 27.08.2011 10:18

Niestety te funkcje nie działają tak jak powinny. Próbowałem użyć ich w pluginie który będzie blokował możliwość podszywania się pod mój nick na serwerze, niestety nie działają one tak jak powinny.
  • +
  • -
  • 0

cFun.pl BaseBuilderPro v6.5.8 Tirant edit by diggs
IP: 80.82.16.66:27034
b_350_20_D91408_470002_FFFFFA_000000.png

cFun.pl Only AWP - 1000 FPS [SkinsMod]
IP: 80.72.42.113:27015
b_350_20_F8D241_B69427_0F100D_000000.png


#14 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 555
Godlike

  • Postów:11 980
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 27.08.2011 10:55

działają trzeba umieć ich tylko używać
  • +
  • -
  • 0

#15 diggs

    Wszechwidzący

  • Użytkownik

Reputacja: 28
Życzliwy

  • Postów:229
  • Lokalizacja:Internet
Offline

Napisano 27.08.2011 12:00

public client_putinserver(id)
{
if ((is_user_bot(id)) || is_user_hltv(id))
{
  return PLUGIN_CONTINUE;
}
new name[NAMELENGTH];
get_user_name(id, name, NAMELENGTH-1);
if(containi(name, "diggs") != -1)
{
  new steam_id[STEAMIDLENGTH];
  get_user_authid(id, steam_id, STEAMIDLENGTH-1);
  if(!equali(steam_id, ""moj steam"))
  {
   server_cmd("kick %s ^"Podszywanie sie pod admina jest karane banem! Zmien lepiej nick.^"", name);
  }
}
return PLUGIN_CONTINUE;
}

Ustawisz sobie nick "asdfgg diggs" i wejdziesz.
  • +
  • -
  • 0

cFun.pl BaseBuilderPro v6.5.8 Tirant edit by diggs
IP: 80.82.16.66:27034
b_350_20_D91408_470002_FFFFFA_000000.png

cFun.pl Only AWP - 1000 FPS [SkinsMod]
IP: 80.72.42.113:27015
b_350_20_F8D241_B69427_0F100D_000000.png


#16 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 555
Godlike

  • Postów:11 980
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 27.08.2011 12:07

public client_putinserver(id)
{
    if ((is_user_bot(id)) || is_user_hltv(id))
    {
   	 return PLUGIN_CONTINUE;
    }
    new name[NAMELENGTH];
    get_user_name(id, name, NAMELENGTH-1);
    if(containi(name, "diggs") != -1)
    {
   	 new steam_id[STEAMIDLENGTH];
   	 get_user_authid(id, steam_id, STEAMIDLENGTH-1);
   	 if(!equali(steam_id, "moj steam"))
   	 {
   		 server_cmd("kick ^"%s^" ^"Podszywanie sie pod admina jest karane banem! Zmien lepiej nick.^"", name);
   	 }
    }
    return PLUGIN_CONTINUE;
}
masz błąd w server_cmd
nie wiem czy moja wersja zadziała poprawnie kombinuj
i czy w client_putinserver gracz ma juz przydzielone nick i steam id ? też nie wiem
nie zwalaj na funkcje jak nie sprawdzisz kodu najpierw Dołączona grafika
  • +
  • -
  • 1

#17 diggs

    Wszechwidzący

  • Użytkownik

Reputacja: 28
Życzliwy

  • Postów:229
  • Lokalizacja:Internet
Offline

Napisano 27.08.2011 12:12

Faktycznie był błąd jak pisałem zapomniałem że dwuczłonowe nicki trzeba brać w cudzysłowy. Ten błąd faktycznie mógł powodować taki błąd jaki miałem.
  • +
  • -
  • 0

cFun.pl BaseBuilderPro v6.5.8 Tirant edit by diggs
IP: 80.82.16.66:27034
b_350_20_D91408_470002_FFFFFA_000000.png

cFun.pl Only AWP - 1000 FPS [SkinsMod]
IP: 80.72.42.113:27015
b_350_20_F8D241_B69427_0F100D_000000.png


#18 mierzwi

    Banned

  • Zbanowany

Reputacja: 235
Wszechwidzący

  • Postów:651
  • Lokalizacja:Polska
Offline

Napisano 02.09.2011 15:20

Sprawdza czy a posiada ten sam tekst co b, c oznacza ile znaków ma porównać (domyślnie wszystkie)

można to napisać jaśniej troszkę, np.:C to liczba do którego znaku ma porównywać (włącznie z nim) A i B (domyślnie wszystkie), również mógłbyś podać trochę jaśniejszy przykład np.
if(equal(sClass, "BYT_JAKIS"), 4) client_print(0, 3, "Ten byt posiada prefix : BYT_");

Użytkownik funfel edytował ten post 02.09.2011 15:23

jeśli masz fejsa i chcesz mi pomóc to wejdź tutaj: Zaproś kumpla by lubił nasz sklep | Facebook

na pewno jakoś C się odwdzięczę!





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

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