Dann versteh ich das aber auch nicht, weswegen ich ja hier nachfrage.
Vielleicht überseh ich aber einfach irgendwas?

"Adresse" meint im letzten Post nicht die Adresse im Speicher:D

Code:
typedef struct Weapon
{
  int Id;  
  STRING* Name;
  var KeyCode;  
  int IsCollected; 
  
  STRING* MdlName;
  STRING* MdlHoloName;
  ENTITY* Mdl;
   
} Weapon;
Weapon Weapons[10][3];


void InitWeapons()
{
   int i,j;
   for(i = 0; i< 10; i++)
   {
      for(j = 0; j< 3; j++)
   	{	
      	Weapons[i][j].Id = i+1;
      	Weapons[i][j].KeyCode = i+2;   
      }
   }
     
  	
   // Startwaffe   
   Weapons[0][0].MdlName = "UtMpi.mdl";	
   Weapons[0][0].Name = "Tactical Cardridge Weapon";
   Weapons[0][0].IsCollected = 1;
   // ....
}


// Erzeugt eine WaffeX Quants ueber dem Model. Wird vom Spieler eingesammelt und das Model im Struct gespeichert-
action CreateWeaponSpawn()
{
  while (!player) {wait (1);}  
  	
  int i;
  int i1 = (int)my.skill2;
  int i2 = (int)my.skill3;		
  ENTITY* ent;
  Weapon* wp;
  wp = &Weapons[i1][i2];
   
     if(wp.Mdl == NULL)
     {  
	ptr_remove(ent_create(wp.MdlName, nullvector, NULL));
	wp.Mdl = ent_create(wp.MdlName, nullvector, NULL);
	      		      
	while(wp.Mdl == NULL) { wait(1); }
	         	      
	set(wp.Mdl, INVISIBLE|PASSABLE|ZNEAR);
     }
			
     ent = ent_create(wp.MdlName, vector(my.x, my.y, my.z + 35), NULL);
     while(ent == NULL) { wait(1); }
     set(ent, PASSABLE);


}




In einer While wird dann nach Levelstart abgefragt, ob eine Taste gedrückt wurde.
Danach wird die Waffe zugeordnet.

Mit Weapons[x][y].Mdl = .... funktioniert das ganze auch, aber nicht per Pointer.

Code:
int i,j;
	for(i = 0; i < 10; i++)
	{  
		for(j = 0; j < 3; j++)
		{
		   if(Weapons[i][j].IsCollected) {
				//set(Weapons[i][j].Mdl, INVISIBLE);
			   //set(Weapons[i][j].Muzzle, INVISIBLE);	
		   }
   	}
	}
	

	reset(Weapons[wId1][wId2].Mdl, INVISIBLE);
   ActId.W1 = wId1;
   ActId.W2 = wId2;
   SetCrosshair(wId1,wId2);




EDIT: "Was funktioniert daran nicht?" Wird die Waffe eingesammelt und die entsprechende taste fuer die Waffe gedrückt, werden alle Waffen unsichtbar und die aktuell gewählte sichtbar. Mit obrigen Code wird Waffe 1 unsichtbar, Waffe 4 taucht aber gar nicht erst auf. Setze ich die Waffen nicht unsichtbar, so ist Waffe 4 wieder Waffe 1. Darum vermute ich, der Pointer zeigt auf Index 0.


EDIT2: Ich habe nochmal alle Daten geprüft. So, wie ich die Pointer und Abfragen gesetzt hatte MUSS es bereits korrekt sein, denn Index und Name scheinen richtig zu sein. ich muss den Fehler wohl in meinem Code suchen.

Danke fuer die Hilfe.

Last edited by Ayumi; 06/26/17 14:23.