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

[ROZWIĄZANE] Losowy ciąg znaków


  • Zamknięty Temat jest zamknięty
26 odpowiedzi w tym temacie

#1 Petpat

    Wszechwidzący

  • Użytkownik

Reputacja: 64
Pomocny

  • Postów:246
  • Imię:Łukasz
  • Lokalizacja:Rzeszów
Offline

Napisano 14.12.2014 18:43

Witam, otóż kiedyś widziałem tutaj pytanie jak stworzyć losowy ciąg znaków, ale niestety nie mogę go znaleźć, otóż tak jak w temacie czym można "wygenerować" ciąg znaków ? od A-Z mogą Cyfry też mogą się pojawić :)


Użytkownik Petpat edytował ten post 14.12.2014 18:44

  • +
  • -
  • 1

#2 Droso

    Dawniej HubertTM

  • Support Team

Reputacja: 1 291
Godlike

  • Postów:2 371
  • Steam:steam
  • Imię:Hubert
  • Lokalizacja:Wrocław
Offline

Napisano 14.12.2014 18:56

#include <amxmodx>


#define PLUGIN "losowy ciag znakow"
#define VERSION "1.0"
#define AUTHOR "Drozduuuu"

new znaki[] = {'1', '2', 'a', 'b', 'c'} // tutaj swoje znaki wpisujesz 

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	register_clcmd("say /klucz", "klucz")
}


public klucz()
{
	new losowyciag[30]; // 30 to dlugosc tekstu losowanego

	for(new i=0; i<sizeof losowyciag-1; i++)
	losowyciag[i] = znaki[random(sizeof znaki)];
	
	client_print(0, print_chat, losowyciag)  // drukowanie
}

Użytkownik Droso edytował ten post 17.12.2014 18:15

  • +
  • -
  • 1

Piszę pluginy pod: AMX MOD X oraz SOURCE MOD!

Na zlecenie i bez zlecenia zresztą też!


#3 radim

    Godlike

  • Moderator

Reputacja: 939
Master

  • Postów:2 725
  • Steam:steam
  • Imię:Arkadiusz
  • Lokalizacja:Janów Lub.
Offline

Napisano 15.12.2014 18:10

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, report.png raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
  • +
  • -
  • 1

Chcąc napisać do mnie prywatną wiadomość, wpierw zapoznaj się ze stroną "O mnie" w moim profilu użytkownika [ radim ] !


#4 radim

    Godlike

  • Moderator

Reputacja: 939
Master

  • Postów:2 725
  • Steam:steam
  • Imię:Arkadiusz
  • Lokalizacja:Janów Lub.
Offline

Napisano 16.12.2014 18:34

Otwarcie tematu na prośbę użytkownika.


  • +
  • -
  • 1

Chcąc napisać do mnie prywatną wiadomość, wpierw zapoznaj się ze stroną "O mnie" w moim profilu użytkownika [ radim ] !


#5 Petpat

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 64
Pomocny

  • Postów:246
  • Imię:Łukasz
  • Lokalizacja:Rzeszów
Offline

Napisano 16.12.2014 20:31

Droso, działać działa, ale ... No właśnie jest tu ale .. :)

Chcę aby w zmiennej było zapisywane tylko 8 liter, tak więc zrobiłem

new losowyciag[8];

 

I teraz jest tak, raz jest 8 losowych znaków, a raz nie ma w ogóle, a nawet po 2/4 itd. przycina po prostu, jak temu zdziałać ? :)

 


  • +
  • -
  • 0

#6 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 16.12.2014 21:49

for(new i=0; i<charsmax(losowyciag); i++)

  • +
  • -
  • 1

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark


#7 SeeK

    Wszechobecny

  • Użytkownik

Reputacja: 192
Profesjonalista

  • Postów:438
Offline

Napisano 16.12.2014 22:02

Mój kod z kiedyś. Idealny nie jest ( lepszy byłby formatex a nie format ), ale do generowania krótkich kodów sprawdza się znakomicie. Funkcja zwraca string, ale można ją przerobić by np. stringa upychała do tablicy przekazanej przez referencję.

public generatorKodu(length) {
	new chars[] = "0123456789!@#$abcdefghijklmnopqrstuvwxyz" // Znaki ktore moga sie znalezc w generowanym ciagu znakow
	
	length = min(length,16) // Max dlugosc 16
	new szText[16]
	for(new i = 0, size = sizeof chars - 1; i < length; ++i)
		format(szText,sizeof szText,"%s%c",szText,chars[random_num(0,size)]) // Losuje znaki
	
	return szText
}

Użytkownik SeeK edytował ten post 16.12.2014 22:03

  • +
  • -
  • 1
https://sklep-sms.pl - Sklep SMS pozwala zarabiać na swoich serwerach gier opartych o silniki AMX Mod X oraz SOURCEMOD
https://nalunch.com - A Ty, gdzie pójdziesz dziś na lunch?

#8 Petpat

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 64
Pomocny

  • Postów:246
  • Imię:Łukasz
  • Lokalizacja:Rzeszów
Offline

Napisano 16.12.2014 22:44

GwynBleidD, dalej jest tak samo, często wartość jest pusta, ale też czasem ma jakieś litery ale dalej przycina .. ;( SeeK, działa ;)

PS; ale i tak dalej pragnę się dowiedzieć dlaczego kod Droso, często przycina i nie wyświetla wszystkich znaków


Użytkownik Petpat edytował ten post 16.12.2014 22:45

  • +
  • -
  • 0

#9 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 16.12.2014 22:45


return szText

 

Hm? To nie ma prawa działać...

 

Poza tym po co tu jakikolwiek format albo formatex?


  • +
  • -
  • 1

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark


#10 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 553
Godlike

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

Napisano 16.12.2014 23:09

 

Mój kod z kiedyś. Idealny nie jest ( lepszy byłby formatex a nie format ), ale do generowania krótkich kodów sprawdza się znakomicie. Funkcja zwraca string, ale można ją przerobić by np. stringa upychała do tablicy przekazanej przez referencję.

public generatorKodu(length) {
	new chars[] = "0123456789!@#$abcdefghijklmnopqrstuvwxyz" // Znaki ktore moga sie znalezc w generowanym ciagu znakow
	
	length = min(length,16) // Max dlugosc 16
	new szText[16]
	for(new i = 0, size = sizeof chars - 1; i < length; ++i)
		format(szText,sizeof szText,"%s%c",szText,chars[random_num(0,size)]) // Losuje znaki
	
	return szText
}

pawn nie ma pointerów w taki sposób


  • +
  • -
  • 1

#11 Petpat

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 64
Pomocny

  • Postów:246
  • Imię:Łukasz
  • Lokalizacja:Rzeszów
Offline

Napisano 17.12.2014 17:14

Naprawiłem, toć to przez moją nie nieopatrzność, jednak " a ' ma znaczenie, dzięki za udzielenie mi pomocy, hmmm, wyświetla mi się takie coś

 

losowy tekst + przerwa i    HSay /komenda czy jakoś tak, jak to zlikwidować ?


Użytkownik Petpat edytował ten post 17.12.2014 17:22

  • +
  • -
  • 0

#12 Droso

    Dawniej HubertTM

  • Support Team

Reputacja: 1 291
Godlike

  • Postów:2 371
  • Steam:steam
  • Imię:Hubert
  • Lokalizacja:Wrocław
Offline

Napisano 17.12.2014 18:15

daj ss + kod najlepiej


  • +
  • -
  • 1

Piszę pluginy pod: AMX MOD X oraz SOURCE MOD!

Na zlecenie i bez zlecenia zresztą też!


#13 Petpat

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 64
Pomocny

  • Postów:246
  • Imię:Łukasz
  • Lokalizacja:Rzeszów
Offline

Napisano 17.12.2014 18:39

@Edit, udało mi się to naprawić teraz wszystko bardzo dobrze chodzi :) Można zamknąć :)


Użytkownik Petpat edytował ten post 17.12.2014 18:52

  • +
  • -
  • 0

#14 grankee

    Godlike

  • Support Team

Reputacja: 517
Wszechwiedzący

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

Napisano 17.12.2014 21:23

to może podaj rozwiązanie, żeby kolejny raz ktoś nie pytał


  • +
  • -
  • 1

#15 Petpat

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 64
Pomocny

  • Postów:246
  • Imię:Łukasz
  • Lokalizacja:Rzeszów
Offline

Napisano 17.12.2014 21:31

No w pętli for

użyłem

for(new i=0; i<sizeof losowyciag-1; i++)

można również

for(new i=0; i<charsmax(losowyciag); i++) Oczywiście tylko ja te błędy popełniłem ;)) Proszę temat zamknąć :)


  • +
  • -
  • 0

#16 SeeK

    Wszechobecny

  • Użytkownik

Reputacja: 192
Profesjonalista

  • Postów:438
Offline

Napisano 18.12.2014 13:43

 


return szText

 

Hm? To nie ma prawa działać...

 

Poza tym po co tu jakikolwiek format albo formatex?

 

 

No patrz, a jednak działa. Co dokładnie nie ma prawa działać?

 

Co do formatu i formatexu, to masz rację, wystarczyło by pętlą przelecieć po n elementach tablicy :)

 

 

Zmodyfikowany nieco kod

public generatorKodu(length) {
	new chars[] = "0123456789!@#$abcdefghijklmnopqrstuvwxyz" // Znaki ktore moga sie znalezc w generowanym ciagu znakow
	
	length = min(length,16) // Max dlugosc 16
	
	new szText[16];
	setc(szText, sizeof szText, 0); // Zerujemy tablice, aby nie bylo smieci
	
	for(new i = 0, size = sizeof chars - 1; i < length; ++i)
		szText[i] = chars[random_num(0,size)]; // Losuje znak
	
	return szText
}

Użytkownik SeeK edytował ten post 18.12.2014 13:47

  • +
  • -
  • 0
https://sklep-sms.pl - Sklep SMS pozwala zarabiać na swoich serwerach gier opartych o silniki AMX Mod X oraz SOURCEMOD
https://nalunch.com - A Ty, gdzie pójdziesz dziś na lunch?

#17 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 18.12.2014 18:35

No to teraz napisz plugin w którym zawrzesz swój kod i to:

 

new kod[12] = generatorKodu(12);
client_print(0, print_chat, kod)

i sprawdź, czy na pewno działa ;)


  • +
  • -
  • 1

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark


#18 grankee

    Godlike

  • Support Team

Reputacja: 517
Wszechwiedzący

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

Napisano 19.12.2014 01:30

@ Gwyn - PAWN jest posrany pod tym względem, przepuszcza takie niedorzeczności. Czy to powinno działać? Nie, nie powinno, nawet kompilator nie powinien tego przepuścić. Czy zadziała? Tak Oo. Czy za każdym razem? Nie wiem, nie testowałem.

 

 

 


No to teraz napisz plugin w którym zawrzesz swój kod i to:
 
new kod[12] = generatorKodu(12);
client_print(0, print_chat, kod)
i sprawdź, czy na pewno działa

Tego nie przepuści, bo to tak jakbyś chciał przypisać tablicę do tablicy znakiem =, a to nie przejdzie, ale już jak dasz np.

new kod[6]
formatex(kod,5,generatorKodu(5))
client_print(id,print_chat,kod)

to założę się, że przejdzie bez problemu i zadziała.


Użytkownik grankee edytował ten post 19.12.2014 01:46

  • +
  • -
  • 3

#19 Petpat

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 64
Pomocny

  • Postów:246
  • Imię:Łukasz
  • Lokalizacja:Rzeszów
Offline

Napisano 20.12.2014 14:06

A skoro jest jeszcze otwarty ten temat, to mam kolejne pytanie również dotyczące losowych znaków, czy jest taka możliwość która pozwoli mi

new znak[] = {'+', '-'}

chce aby były na razie tylko plus i minus i teraz tak drukujemy

client_print(0, 3, "3%s3=%d", znak, 3 znak[random(1)] 3)

Wiem ,że to nie ma prawa działać, ale moje pytanie brzmi czy można losowy znak wykorzystać do dodawania odejmowania itp ? zamiast 3 + 3 lub 3 - 3 zastąpić jakoś 3 znak[random(1)] 3

Jeśli się jakoś da to zrobić bez osobnego drukowania to jak ?

Myślę ,że zrozumiale napisałem bo inaczej nie wiem jak to można określić :)


Użytkownik Petpat edytował ten post 20.12.2014 14:06

  • +
  • -
  • 0

#20 Droso

    Dawniej HubertTM

  • Support Team

Reputacja: 1 291
Godlike

  • Postów:2 371
  • Steam:steam
  • Imię:Hubert
  • Lokalizacja:Wrocław
Offline

Napisano 20.12.2014 14:09

client_print(0, 3, "3%s3=0 lub 6", random(2)==1?"+":"-");

Użytkownik Droso edytował ten post 20.12.2014 14:09

  • +
  • -
  • 1

Piszę pluginy pod: AMX MOD X oraz SOURCE MOD!

Na zlecenie i bez zlecenia zresztą też!





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

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