| Offline | 
				 				
					  | 
				 				
					  | 
				 				 
				 Csatlakozott:2016.03.05. 20:56 Hozzászólások:666 Megköszönt másnak: 27 alkalommal Megköszönték neki: 124 alkalommal				
			 | 
			
				
				
					
						$weeT írta: fegyver vásárlásnál boltot hogy tudom egyszerűsíteni mert 100+ fegyverről van szó A lehető legegyszerűbb megoldást vázolom fel neked.
  Létrehozzuk a tömböket, amik szükségesek nekünk:#define FGY 4 //Hogy ha módosítunk ne kelljen mindenhol átirogatni (az egyszerűség kedvéért)   new Fegyo[FGY][33]; //Tömb a fegyvereknek new Dollar[33]; //Tömb a fizetőeszköznek 
  A fegyverek neveit tároljuk constba, hogy könnyü legyen a módosítás (Most enummal tesszük mivel ára is lesz a fegyvernek)enum _:Valami { Nev[32], Ar[8] }; new FegyoNevek[FGY][Valami]= { //  { "Fegyver neve", "Ára" }     { "AK47 | Piros", 25 },     { "AK47 | Kék", 16 },     { "AK47 | Fekete", 19 },     { "AK47 | Lila", 64 } }; 
  Majd maga a bolt része, itt soha nem kell módosítani semmit mivel a ciklus úgy fut le, hogy a FegyoNevek constból kiolvassa az összes sort, tehát ha 2 ezer fegyvert teszel be sem kell itt módosítani semmit.public m_Bolt(id) { new String[121]; formatex(String, charsmax(String), "Bolt"); new menu = menu_create(String, "h_Bolt");   for(new i;i < sizeof(FegyoNevek); i++) {     new a[6]; num_to_str(i, a, 5);     formatex(String, charsmax(String), "%s (%d Dollár)", FegyoNevek[Nev][i], FegyoNevek[Ar][i]);     menu_additem(menu, String, a); }   menu_display(id, menu, 0); return PLUGIN_HANDLED; } 
  Aztán jön maga a bolt lényege, a handler ami így néz ki(Itt szintén soha nem kell modosítani semmit ha esetleg fegyvert szeretnél hozzá tenni vagy elvenni):public h_Bolt(id, menu, item) {     if(item == MENU_EXIT)     {         menu_destroy(menu);         return;     }       new data[9], szName[64];     new access, callback;     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);     new key = str_to_num(data);          if(Dollar[id] >= FegyoNevek[Ar][key])     {         Fegyo[key][id]++; //Hogy megkapjuk az adott vegyvert (A key helyettesíti a leütött gombot, tehát ha 2-es gombot nyomunk Fegyo[2][id]-t kapunk.         Dollar[id] -= Fegyonevek[Ar][key]; //Hogy el vegye tölünk a dollárt, ne csak úgy ingyen kapjuk a fegyvert         ColorChat(id, GREEN, "[Információ] ^1Vásároltál egy ^4%s^1-t ^4%d ^1Dollárért.", Fegyonevek[Nev][key], FegyoNevek[Ar][key])     }     else     {         m_Bolt(id)         ColorChat(id, GREEN, "[Információ] ^1Nincs elég dollárod ennek a megvásárlásához.")     } } 
  Ha esetleg így nem érthető akkor itt a teljes forráskód:► Spoiler mutatása #define FGY 4 //Hogy ha módosítunk ne kelljen mindenhol átirogatni (az egyszerűség kedvéért)   new Fegyo[FGY][33]; //Tömb a fegyvereknek new Dollar[33]; //Tömb a fizetőeszköznek   enum _:Valami { Nev[32], Ar[8] }; new FegyoNevek[FGY][Valami]= { //  { "Fegyver neve", "Ára" }     { "AK47 | Piros", 25 },     { "AK47 | Kék", 16 },     { "AK47 | Fekete", 19 },     { "AK47 | Lila", 64 } };   public m_Bolt(id) { new String[121]; formatex(String, charsmax(String), "Bolt"); new menu = menu_create(String, "h_Bolt");   for(new i;i < sizeof(FegyoNevek); i++) {     new a[6]; num_to_str(i, a, 5);     formatex(String, charsmax(String), "%s (%d Dollár)", FegyoNevek[Nev][i], FegyoNevek[Ar][i]);     menu_additem(menu, String, a); }   menu_display(id, menu, 0); return PLUGIN_HANDLED; }   public h_Bolt(id, menu, item) {     if(item == MENU_EXIT)     {         menu_destroy(menu);         return;     }       new data[9], szName[64];     new access, callback;     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);     new key = str_to_num(data);          if(Dollar[id] >= FegyoNevek[Ar][key])     {         Fegyo[key][id]++; //Hogy megkapjuk az adott vegyvert (A key helyettesíti a leütött gombot, tehát ha 2-es gombot nyomunk Fegyo[2][id]-t kapunk.         Dollar[id] -= Fegyonevek[Ar][key]; //Hogy el vegye tölünk a dollárt, ne csak úgy ingyen kapjuk a fegyvert         ColorChat(id, GREEN, "[Információ] ^1Vásároltál egy ^4%s^1-t ^4%d ^1Dollárért.", Fegyonevek[Nev][key], FegyoNevek[Ar][key])     }     else     {         m_Bolt(id)         ColorChat(id, GREEN, "[Információ] ^1Nincs elég dollárod ennek a megvásárlásához.")     } } 
  Ha valamit rosszul írtam nyugodtan kövezzetek meg   							
		
			
			 Ők köszönték meg exodus nek ezt a hozzászólást: $weeT (2017.07.16. 10:18) | 
		 
	 	
  
						
					 | 
				 
				 
			 |