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

Array'e


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

#1 GT Team

    Ten lepszy xD

  • Zbanowany

Reputacja: 321
Wszechpomocny

  • Postów:1 435
  • GG:
  • Imię:Tomasz i Grzegorz
  • Lokalizacja:Wojkowice
Offline

Napisano 21.10.2013 22:19

mam kod
/* Plugin generated by AMXX-Studio */

#include 
#include 

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"

new Array:Handle, Array:String

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	Handle = ArrayCreate(1, 2)
	String = ArrayCreate(1, 6)
	
	register_clcmd("say", "Say")
	register_clcmd("say /sprawdz", "Sprawdz")
}
public Say(id)
{
	if(!is_user_connected(id))
		return PLUGIN_CONTINUE
	
	new szWpisanyText[33], text[2][10], liczba
	read_args(szWpisanyText, 32)
	parse(szWpisanyText, text[0], 9, text[1], 9)
	
	if(equali(text[0], "/sprawdz"))
		return PLUGIN_CONTINUE
	
	liczba = str_to_num(text[0])
	
	ArraySetCell(Handle, 0, liczba)
	
	ArraySetArray(String, 0, text[1])
	
	return PLUGIN_CONTINUE
}
public Sprawdz(id)
{
	if(!is_user_connected(id))
		return PLUGIN_CONTINUE
	new string[10]; ArrayGetArray(Handle, 0, string)
	client_print(id, 3, "Liczba: %d | String: %s", ArrayGetCell(Handle, 0), string)
	return PLUGIN_CONTINUE
}
i źle działa, a dokładniej nie wypisuje i liczby i stringu, ponieważ wywala jakiś błąd w konsoli. Co jest nie tak :D ? ( Sorka, za podejście typowo 'chama' jednak widzicie która godzina ;P - A i jestem tego pełni świadomy ;d)

Nowa wersja Tower Defense 0.2 Alpha | Inne Mody -> Nowości

 


#2 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

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

Napisano 21.10.2013 22:27

public Say(id)
{
new szWpisanyText[33], text[2][10], liczba
read_args(szWpisanyText, 32)
remove_quotes(szWpisanyText);
parse(szWpisanyText, text[0], 9, text[1], 9)

if(equali(text[0], "/sprawdz"))
return

liczba = str_to_num(text[1])

ArrayPushCell(Handle, liczba)

ArrayPushString(String, text[1])
}

"is_user_connected" raczej zbędne.
sebul (21.10.2013 22:29):
Dodatkowo wypadało by sprawdzać, czy jakaś liczba została już dodana.

  • +
  • -
  • 1

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


#3 GT Team

    Ten lepszy xD

  • Autor tematu
  • Zbanowany

Reputacja: 321
Wszechpomocny

  • Postów:1 435
  • GG:
  • Imię:Tomasz i Grzegorz
  • Lokalizacja:Wojkowice
Offline

Napisano 21.10.2013 22:36

STRIKER--McPr0 :D : 5 string
STRIKER--McPr0 :D : /sprawdz
STRIKER--McPr0 :D : Liczba: 0 | String:
0 błędów, 0 errorów, plugin dobrze załadowany.

Nowa wersja Tower Defense 0.2 Alpha | Inne Mody -> Nowości

 


#4 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

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

Napisano 21.10.2013 22:41

Może najpierw napisz co chcesz osiągnąć, bo w sumie to teraz nawet nie wiem.
  • +
  • -
  • 0

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


#5 GT Team

    Ten lepszy xD

  • Autor tematu
  • Zbanowany

Reputacja: 321
Wszechpomocny

  • Postów:1 435
  • GG:
  • Imię:Tomasz i Grzegorz
  • Lokalizacja:Wojkowice
Offline

Napisano 21.10.2013 22:43

Wpisuję liczbe a potem string (oczywiście jeżeli to nie jest komenda /sprawdz, co powodowało by bugi, i dalsze sprawdzanie czy to liczba czy string możemy pominąć ) i po wpisaniu /sprawdz wypisuje mi tę liczbę i string.

Nowa wersja Tower Defense 0.2 Alpha | Inne Mody -> Nowości

 


#6 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

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

Napisano 21.10.2013 22:59

Nie zauważyłem paru innych błędów
public Say(id)
{
new szWpisanyText[33], text[2][10]
read_args(szWpisanyText, 32)
remove_quotes(szWpisanyText)
parse(szWpisanyText, text[0], 9, text[1], 9)

if(equali(text[0], "/sprawdz"))
return

ArraySetCell(Handle, 0, str_to_num(text[0]))

ArraySetArray(String, 0, text[1])
}
public Sprawdz(id)
{
new string[10]; ArrayGetString(String, 0, string, 9)
client_print(id, 3, "Liczba: %d | String: %s", ArrayGetCell(Handle, 0), string)
}

  • +
  • -
  • 1

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


#7 GT Team

    Ten lepszy xD

  • Autor tematu
  • Zbanowany

Reputacja: 321
Wszechpomocny

  • Postów:1 435
  • GG:
  • Imię:Tomasz i Grzegorz
  • Lokalizacja:Wojkowice
Offline

Napisano 22.10.2013 15:24

L 10/22/2013 - 16:19:43: Invalid cellvector handle provided (7:0:0)
L 10/22/2013 - 16:19:43: [AMXX] Displaying debug trace (plugin "Untitled.amxx")
L 10/22/2013 - 16:19:43: [AMXX] Run time error 10: native error (native "ArraySetCell")
L 10/22/2013 - 16:19:43: [AMXX]    [0] s.sma::Say (line 31)
STRIKER--McPr0 :D : 50123 text_2
Time Left: 19:42 min. Next Map: de_airstrip
L 10/22/2013 - 16:19:47: Invalid cellvector handle provided (8:0:0)
L 10/22/2013 - 16:19:47: [AMXX] Displaying debug trace (plugin "Untitled.amxx")
L 10/22/2013 - 16:19:47: [AMXX] Run time error 10: native error (native "ArrayGetString")
L 10/22/2013 - 16:19:47: [AMXX]    [0] s.sma::Sprawdz (line 37)
STRIKER--McPr0 :D : /sprawdz

Nowa wersja Tower Defense 0.2 Alpha | Inne Mody -> Nowości

 


#8 d0naciak

    Godlike

  • Power User

Reputacja: 1 029
Hero

  • Postów:2 414
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Kotlarka
Offline

Napisano 22.10.2013 15:45

public Say(id)
{
if(equali(text[0], "/sprawdz"))
return
 
new szWpisanyText[33], text[2][10]
read_args(szWpisanyText, 32)
remove_quotes(szWpisanyText)
parse(szWpisanyText, text[0], 9, text[1], 9)

ArrayPushCell(Handle, str_to_num(text[0]))

ArrayPushString(String, text[1])
}
public Sprawdz(id)
{
new string[10]; ArrayGetString(String, 0, string, 9)
client_print(id, 3, "Liczba: %d | String: %s", ArrayGetCell(Handle, 0), string)
}

  • +
  • -
  • 1

#9 GT Team

    Ten lepszy xD

  • Autor tematu
  • Zbanowany

Reputacja: 321
Wszechpomocny

  • Postów:1 435
  • GG:
  • Imię:Tomasz i Grzegorz
  • Lokalizacja:Wojkowice
Offline

Napisano 22.10.2013 15:59

public Say(id)
{
if(equali(text[0], "/sprawdz"))
return
Już widzę błąd, text[0] nie istnieje, ponieważ jest później deklarowany :P

Nowa wersja Tower Defense 0.2 Alpha | Inne Mody -> Nowości

 


#10 d0naciak

    Godlike

  • Power User

Reputacja: 1 029
Hero

  • Postów:2 414
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Kotlarka
Offline

Napisano 22.10.2013 20:52

public Say(id)
{
new szWpisanyText[33], text[2][10]
read_args(szWpisanyText, 32)
remove_quotes(szWpisanyText)
parse(szWpisanyText, text[0], 9, text[1], 9)
if(equali(text[0], "/sprawdz"))
return

ArrayPushCell(Handle, str_to_num(text[0]))

ArrayPushString(String, text[1])
}
public Sprawdz(id)
{
new string[10]; ArrayGetString(String, 0, string, 9)
client_print(id, 3, "Liczba: %d | String: %s", ArrayGetCell(Handle, 0), string)
}

Chodzi o to, że ArrayPush* używa się do wklepania danych, a ArraySet* do ich edycji


Użytkownik d0naciak edytował ten post 22.10.2013 20:53

  • +
  • -
  • 1

#11 GT Team

    Ten lepszy xD

  • Autor tematu
  • Zbanowany

Reputacja: 321
Wszechpomocny

  • Postów:1 435
  • GG:
  • Imię:Tomasz i Grzegorz
  • Lokalizacja:Wojkowice
Offline

Napisano 22.10.2013 21:06

STRIKER--McPr0 :D : 2 string
STRIKER--McPr0 :D : /sprawdz
STRIKER--McPr0 :D :  5 string

Liczba: 5 | String: 
STRIKER--McPr0 :D :  /sprawdz

Type 'amx_langmenu' in the console to display a menu where you can choose your language
STRIKER--McPr0 :D :  2 string

STRIKER--McPr0 :D : string 5 
Liczba: 5 | String: 
STRIKER--McPr0 :
Za każdym razem wypisuje pierwszą liczbę, którą wpisuję, a string'a w ogole np:
Wpisałem -> 102 jakis_napis
Wypisało -> Liczba: 102 String:
Wypisałem -> 101 jakis_napis2
Wypisało -> liczba: 102 String:
To jest cały kod
/* Plugin generated by AMXX-Studio */

#include 
#include 

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"

new Array:Handle, Array:String

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	Handle = ArrayCreate(1, 2)
	String = ArrayCreate(1, 6)
	
	register_clcmd("say", "Say")
	register_clcmd("say /sprawdz", "Sprawdz")
}
public Say(id)
{
	new szWpisanyText[33], text[2][10]
	read_args(szWpisanyText, 32)
	remove_quotes(szWpisanyText)
	parse(szWpisanyText, text[0], 9, text[1], 9)
	if(equali(text[0], "/sprawdz"))
		return
	
	ArrayPushCell(Handle, str_to_num(text[0]))
	
	ArrayPushString(String, text[1])
}
public Sprawdz(id)
{
	new string[10]; ArrayGetString(String, 0, string, 9)
	client_print(id, 3, "Liczba: %d | String: %s", ArrayGetCell(Handle, 0), string)
}

Nowa wersja Tower Defense 0.2 Alpha | Inne Mody -> Nowości

 


#12 Cypis'

    Master

  • Przyjaciel

Reputacja: 1 161
Super Hero

  • Postów:965
  • GG:
  • Steam:steam
  • Lokalizacja:polska
Offline

Napisano 22.10.2013 22:03

Przecież wiadomo dlaczego wyświetla ci poprzednią liczbe, bo: 

ArrayGetCell(Handle, 0); //0 - to jest ID elementu w tablicy czyli ten 1 co wpisałeś, 2 będzie miał ID = 1, itd.


  • +
  • -
  • 1

#13 GT Team

    Ten lepszy xD

  • Autor tematu
  • Zbanowany

Reputacja: 321
Wszechpomocny

  • Postów:1 435
  • GG:
  • Imię:Tomasz i Grzegorz
  • Lokalizacja:Wojkowice
Offline

Napisano 23.10.2013 07:41

/* Plugin generated by AMXX-Studio */

#include 
#include 

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"

new Array:Handle, Array:String

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	Handle = ArrayCreate(1, 1)
	String = ArrayCreate(10, 1)
	
	ArrayPushCell(Handle, 0)
	ArrayPushString(String, "")
	
	register_clcmd("say", "Say")
	register_clcmd("say /sprawdz", "Sprawdz")
}
public Say(id)
{
	new szWpisanyText[33], text[2][10]
	read_args(szWpisanyText, 32)
	remove_quotes(szWpisanyText)
	parse(szWpisanyText, text[0], 9, text[1], 9)
	if(equali(text[0], "/sprawdz"))
		return
	
	ArraySetCell(Handle, 0, str_to_num(text[0]))
	ArraySetString(String, 0, text[1])
}
public Sprawdz(id)
{
	new string[10]; ArrayGetString(String, 0, string, 9)
	client_print(id, 3, "Liczba: %d | String: %s", ArrayGetCell(Handle, 0), string)
}
Teraz działa, teraz tylko pytanie dotyczące tego
Handle = ArrayCreate(1, 1)
String = ArrayCreate(10, 1)
W Handle ( Czyli num) Ustawiam wielkość początkową 1 a w String wielkość początkową 10 ? A potem jak w set to będzie przewyższać ( X > 10 ) to ta wartość '10' ulegnie zmianie na wyższą, byle by wypisało text ?

Nowa wersja Tower Defense 0.2 Alpha | Inne Mody -> Nowości

 





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

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