←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Native Jak zwrócić string ?

  • +
  • -
Eryk172 - zdjęcie Eryk172 18.11.2014

Witam, mam taki natyw:

public plugin_natives()
{
	register_native("gang_GetUserGang", "PobierzNazweGangu", 1);
}

public PobierzNazweGangu(id)
{
	if(g_iGang[ id ] > -1)
	{
		static aData[ GangInfo ];
		ArrayGetArray( g_aGangs, g_iGang[ id ], aData );
		
		return aData[ GangName ];
	}
	
	return -1;
}

Oczywiście nie zwraca w ogóle nazwy...  :wstyd:


Użytkownik Eryk172 edytował ten post 18.11.2014 16:47
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 18.11.2014

przekaz w parametrach natywu tablice do której będziesz zapisywał ;)

Odpowiedz

  • +
  • -
Eryk172 - zdjęcie Eryk172 18.11.2014

public PobierzNazweGangu(id, szGang[])
{
	if(g_iGang[ id ] > -1)
	{
		static aData[ GangInfo ];
		ArrayGetArray( g_aGangs, g_iGang[ id ], aData );
		
		return aData[ GangName ];
	}
	
	return -1;
}

Dobrze zrozumiałem ?

 

Później, aby wywołać to:

new szGang[64];

 

PobierzNazweGangu(id, szGang)

 

ColorChat(id, GREEN, "Twoj gang to: %s", szGang");

 

 

 

Odpowiedz

  • +
  • -
GwynBleidD - zdjęcie GwynBleidD 18.11.2014

1. funkcje w pawn potrafią zwrócić WYŁĄCZNIE pojedynczą zmienną

2. String/łańcuch/napis w pawn NIE jest pojedynczą zmienną, ale tablicą

3. Tablicę przekazaną jako parametr do funkcji można modyfikować.

 

Podsumowując: przekazać, przekazałeś ale zamiast ją modyfikować, nadal próbujesz zwrócić wynik returnem.

 

I pamiętaj: pawn nie przekazuje w takim wypadku maksymalnej wielkości tablicy, więc musisz przekazać ją oddzielnie sam!

Odpowiedz

  • +
  • -
grankee - zdjęcie grankee 19.11.2014

http://amxx.pl/topic/20034-natywy/


Użytkownik grankee edytował ten post 19.11.2014 05:26
Odpowiedz