←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

CoD Nowy
[Cod Nowy]Klasa odblokowana po wpisaniu hasła

  • +
  • -
Alelluja - zdjęcie Alelluja 04.02.2015

Witam.

 

Chciałbym was spytać czy jest możliwość o zrobienie takiej klasy który by się odblokowywała po wpisaniu danego hasła (np. że klikasz w nią i pokazuje się napisz hasło i Gostek wpisuje tam hasło i odblokowuje mu się dana klasa)

 

 

Jakby można było to proszę podać jakiś przykładowy kod.


Użytkownik Alelluja edytował ten post 04.02.2015 15:57
Odpowiedz

  • +
  • -
radim - zdjęcie radim 04.02.2015

Automatyczna wiadomość


Ten temat został przeniesiony z forum

Scripting AMXX > Pytania

do

Mody > Call of Duty Mod > Pytania
Odpowiedz

  • +
  • -
Petpat - zdjęcie Petpat 04.02.2015

Alelluja, mam pytanie, "hasło" do tej klasy ma działać na zasadzie ,że każdy ma przypisane np inne hasło ? Czy ... Każdy takie samo ?

Wracając, czy jest taka możliwość, jasne ,że jest ..
Użytkownik Petpat edytował ten post 04.02.2015 16:53
Odpowiedz

  • +
  • -
MAGNET - zdjęcie MAGNET 04.02.2015

W klasie tworzysz tablicę z hasłem. Potem pobierasz wpisane hasło przez messagemode i porownujesz stringi
Odpowiedz

  • +
  • -
KarlikAśki - zdjęcie KarlikAśki 04.02.2015

A nie lepiej zrobić klasę imienną?
Odpowiedz

  • +
  • -
Alelluja - zdjęcie Alelluja 04.02.2015

Alelluja, mam pytanie, "hasło" do tej klasy ma działać na zasadzie ,że każdy ma przypisane np inne hasło ? Czy ... Każdy takie samo ?

Wracając, czy jest taka możliwość, jasne ,że jest .

Każda ma inne hasło

 

A nie lepiej zrobić klasę imienną?

Czyli ? :D

 

W klasie tworzysz tablicę z hasłem. Potem pobierasz wpisane hasło przez messagemode i porownujesz stringi

Nie wiem o co chodzi pokaż to na przykładzie kodu :/

Odpowiedz

  • +
  • -
Petpat - zdjęcie Petpat 04.02.2015

#include <amxmodx>

new PLINF[] = {
	"Test",
	"1.0",
	"Petpat"
}

public plugin_init(){
	register_plugin(PLINF[0], PLINF[1], PLINF[2])
	
	register_clcmd("say", "sprawdz")
	register_clcmd("say_team", "sprawdz")
}


public sprawdz(id){
	new Argument[256],
	PoprawneHaslo[] = "jakieshaslo"
	read_args(Argument, charsmax(Argument))
	remove_quotes(Argument)
	
	
	if(equal(Argument, "/haslo", 6)){
		replace(Argument, charsmax(Argument), "/haslo ", "")
		if(equal(PoprawneHaslo, Argument)){
			client_print(id, 3, "Haslo poprawne")
		}
	}
}
Wpisujesz na say'u /haslo jakieshaslo

W rezultacie otrzymujesz wiadomosc Haslo poprawne, taki przyklad starczy ? :)
Użytkownik Petpat edytował ten post 04.02.2015 18:34
Odpowiedz

  • +
  • -
KarlikAśki - zdjęcie KarlikAśki 04.02.2015

Czyli sposób goliatha że typko osoba z taką nazwą może ją używać.
Odpowiedz

  • +
  • -
Petpat - zdjęcie Petpat 04.02.2015

Czyli sposób goliatha że typko osoba z taką nazwą może ją używać.

KarlikAśki, jesteś teraz w błędzie, tylko osoba która wpisze poprawnie frazę która jest umieszczona jest w tablicy, zwróci nam wiadomość Hasło poprawne.

Jak widzisz ja tutaj nie porównywałem nicku...
Odpowiedz

  • +
  • -
Alelluja - zdjęcie Alelluja 04.02.2015

#include <amxmodx>

new PLINF[] = {
	"Test",
	"1.0",
	"Petpat"
}

public plugin_init(){
	register_plugin(PLINF[0], PLINF[1], PLINF[2])
	
	register_clcmd("say", "sprawdz")
	register_clcmd("say_team", "sprawdz")
}


public sprawdz(id){
	new Argument[256],
	PoprawneHaslo[] = "jakieshaslo"
	read_args(Argument, charsmax(Argument))
	remove_quotes(Argument)
	
	
	if(equal(Argument, "/haslo", 6)){
		replace(Argument, charsmax(Argument), "/haslo ", "")
		if(equal(PoprawneHaslo, Argument)){
			client_print(id, 3, "Haslo poprawne")
		}
	}
}
Wpisujesz na say'u /haslo jakieshaslo

W rezultacie otrzymujesz wiadomosc Haslo poprawne, taki przyklad starczy ? :)

 

 

Jakby można było to jak zrobić żeby to sie w "hud" pokazywało i trzeba by było wpisać hasło ? tak koło radaru ?

 

Aha i ten kod trzeba by było dodać do Sma Klasy tak ?


Użytkownik Alelluja edytował ten post 04.02.2015 19:47
Odpowiedz

  • +
  • -
Petpat - zdjęcie Petpat 04.02.2015

Alelluja ...

Chciałeś przykład, mógłbyś trochę sie wysilic i wstawić tutaj coś co już zrobiłeś, my byśmy Tobie pomogli, w poprawieniu błędów itp.

Ale dobra nie odbiegając od tematu, Gdzie to hasło chcesz wpisywać ? Koło radaru ? Chodzi Ci aby haslo wpisywało się w górnym lewym rogu ?>
Odpowiedz

  • +
  • -
KarlikAśki - zdjęcie KarlikAśki 04.02.2015

Petpat ja nie pisałem do cb tylko do alleluii by użył metody na nick i hasło nie potrzebne.
Odpowiedz

  • +
  • -
Alelluja - zdjęcie Alelluja 04.02.2015

Alelluja ...

Chciałeś przykład, mógłbyś trochę sie wysilic i wstawić tutaj coś co już zrobiłeś, my byśmy Tobie pomogli, w poprawieniu błędów itp.

Ale dobra nie odbiegając od tematu, Gdzie to hasło chcesz wpisywać ? Koło radaru ? Chodzi Ci aby haslo wpisywało się w górnym lewym rogu ?>

 

Petpat tak o to mi chodzi. Ja się wysilam ale nic mi nie przychodzi do głowy i dlatego nie wiem jak to zrobić

Odpowiedz

  • +
  • -
MAGNET - zdjęcie MAGNET 04.02.2015

Obczaj takie coś jak "messagemode"
Odpowiedz

  • +
  • -
Petpat - zdjęcie Petpat 04.02.2015

#include <amxmodx>

new PLINF[] = {
	"Test",
	"1.0",
	"Petpat"
}, SyncObj

public plugin_init(){
	register_plugin(PLINF[0], PLINF[1], PLINF[2])
	
	register_clcmd("Wprowadz_Haslo", "sprawdz")
	register_clcmd("say /menu", "Menu")
	
	SyncObj = CreateHudSyncObj()
}

public Menu(id){
	new Menu = menu_create("Test", "Test")
	menu_additem(Menu, "Jakas opcja")
	
	menu_display(id, Menu)
}

public Test(id, Menu, item){
	if(item == MENU_EXIT)
		return;
		
	switch(item){
		case 0: client_cmd(id, "messagemode Wprowadz_Haslo")
	}
}

public sprawdz(id){
	new Argument[256],
	PoprawneHaslo[] = "jakieshaslo"
	read_args(Argument, charsmax(Argument))
	remove_quotes(Argument)
	
	
	if(equal(PoprawneHaslo, Argument)){
		set_hudmessage(0, 255, 0, -1.0, 0.26, 0, 1.0, 2.0)
		ShowSyncHudMsg(id, SyncObj, "Haslo poprawne !! : )")
		client_print(id, 3, "Haslo poprawne")
	} else {
		set_hudmessage(255, 0, 0, -1.0, 0.26, 0, 1.0, 2.0)
		ShowSyncHudMsg(id, SyncObj, "Niestety wprowadzone przez Ciebie haslo nie jest poprawne ..")
		client_print(id, 3, "Haslo nie jest poprawne ..")
	}
}
Taki przykład starczy ??

Dodam jeszcze ,że jeżeli chcesz dodać to do klasy ..
To w cod_class_enabled
dodaj

client_cmd(id, "messagemode Wprowadz_Haslo")
Użytkownik Petpat edytował ten post 04.02.2015 20:44
Odpowiedz

  • +
  • -
Alelluja - zdjęcie Alelluja 04.02.2015

Dzięki !

 

Tylko mam jeszcze jeden problem z tym jak wpisze złe hasło to i tak mi wchodzi na tą klasę :/

Odpowiedz

  • +
  • -
MAGNET - zdjęcie MAGNET 04.02.2015

Zmienną bool sobie zrób. Jak będzie się hasło zgadzało - True. Sprawdzaj w cod class enabled ifem
Odpowiedz

  • +
  • -
Alelluja - zdjęcie Alelluja 05.02.2015

Mam takie coś ale mam errory :/ i nie wiem jak to zrobić wziąłem kod z klasy od lvl

 

#include <amxmodx>
#include <amxmisc>
#include <codmod>
#include <fun>

new const nazwa[]   = "Alelluja";
new const opis[]    = "Ma wszystkie granaty i AWP+M4A1+AK47";
new const bronie    = (1<<CSW_HEGRENADE)|(1<<CSW_SMOKEGRENADE)|(1<<CSW_AWP)|(1<<CSW_M4A1)|(1<<CSW_FLASHBANG)|(1<<CSW_DEAGLE)|(1<<CSW_AK47);
new const zdrowie   = 1000;
new const kondycja  = 1000;
new const inteligencja = 1000;
new const wytrzymalosc = 1000;

new PLINF[] =
{
    "Haslo",
    "1.0",
    "Petpat"
}, SyncObj

new ma_klase[33];
new PoprawneHaslo[33];

public plugin_init()
{
    register_plugin(PLINF[0], PLINF[1], PLINF[2])
    
    cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
    
    register_clcmd("Wprowadz_Haslo", "sprawdz")
    
    SyncObj = CreateHudSyncObj()
}

public cod_class_enabled(id)
{
         new PoprawneHaslo[33] = "jakieshaslo";
         if(PoprawneHaslo[33] < dostepna)
    {
        client_print(id, print_chat, "[%s]Klasa dostepna od hasla.", nazwa)
        return COD_STOP;
    }
    
    client_print(id, print_chat, "Wybrales klase %s", nazwa)
    give_item(id, "weapon_hegrenade");
    give_item(id, "weapon_flashbang");
    give_item(id, "weapon_flashbang");
    give_item(id, "weapon_smokegrenade");
    client_cmd(id, "messagemode Wprowadz_Haslo")
    
    ma_klase[id] = true;
    return PLUGIN_CONTINUE;
    
}

public cod_class_disabled(id)
{
    ma_klase[id] = false;
}

public sprawdz(id)
{
    new Argument[256],
    PoprawneHaslo[] = "jakieshaslo"
    read_args(Argument, charsmax(Argument))
    remove_quotes(Argument)
    
    
    if(equal(PoprawneHaslo, Argument))
    {
        set_hudmessage(0, 255, 0, -1.0, 0.26, 0, 1.0, 2.0)
        ShowSyncHudMsg(id, SyncObj, "Haslo poprawne !! : )")
        client_print(id, 3, "Haslo poprawne")
        } else {
        set_hudmessage(255, 0, 0, -1.0, 0.26, 0, 1.0, 2.0)
        ShowSyncHudMsg(id, SyncObj, "Niestety wprowadzone przez Ciebie haslo nie jest poprawne ..")
        client_print(id, 3, "Haslo nie jest poprawne ..")
    }
}

Odpowiedz

  • +
  • -
MAGNET - zdjęcie MAGNET 05.02.2015

Robisz to kompletnie źle.
Nigdzie nie stosujesz messagemode. Wykonuj w cod_class_enabled client_cmd(id, "messagemode Podajhaslo"), w publicu doń się odnoszącego pobieraj wartość i porównaj przy pomocy yyyy... Stringcompare? Jakoś tak to się nazywało. Jeśli True, zmienna PoprawneHaslo ma true i można już wybrać klasę z menu klas.
Piszę trochę zagmatwanie, bo w szkole jstm. Jeslo nikt mnie nie uprzedzi pokaże o co mi chodzi
Odpowiedz