entWatch4: Add 'sorting' to make it more similiar to old entWatch.
And reset client('owner') when weapon dies.
			
			
This commit is contained in:
		
							parent
							
								
									d0f49b369a
								
							
						
					
					
						commit
						92748fe274
					
				@ -16,6 +16,7 @@ methodmap CConfig < Basic
 | 
				
			|||||||
		myclass.SetString("sFilter", "");
 | 
							myclass.SetString("sFilter", "");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		myclass.SetInt("iButtonID",  0);
 | 
							myclass.SetInt("iButtonID",  0);
 | 
				
			||||||
 | 
							myclass.SetInt("iConfigID",  0);
 | 
				
			||||||
		myclass.SetInt("iWeaponID",  0);
 | 
							myclass.SetInt("iWeaponID",  0);
 | 
				
			||||||
		myclass.SetInt("iTriggerID", 0);
 | 
							myclass.SetInt("iTriggerID", 0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -82,6 +83,18 @@ methodmap CConfig < Basic
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						property int iConfigID
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							public get()
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								return this.GetInt("iConfigID");
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							public set(int value)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								this.SetInt("iConfigID", value);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	property int iWeaponID
 | 
						property int iWeaponID
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		public get()
 | 
							public get()
 | 
				
			||||||
 | 
				
			|||||||
@ -137,6 +137,8 @@ public void OnMapStart()
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	if (hConfig.GotoFirstSubKey())
 | 
						if (hConfig.GotoFirstSubKey())
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
 | 
							int iConfigID;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		do
 | 
							do
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			CConfig config = new CConfig();
 | 
								CConfig config = new CConfig();
 | 
				
			||||||
@ -152,6 +154,7 @@ public void OnMapStart()
 | 
				
			|||||||
			config.SetColor(sColor);
 | 
								config.SetColor(sColor);
 | 
				
			||||||
			config.SetFilter(sFilter);
 | 
								config.SetFilter(sFilter);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								config.iConfigID  = iConfigID++;
 | 
				
			||||||
			config.iWeaponID  = hConfig.GetNum("weaponid");
 | 
								config.iWeaponID  = hConfig.GetNum("weaponid");
 | 
				
			||||||
			config.iButtonID  = hConfig.GetNum("buttonid");
 | 
								config.iButtonID  = hConfig.GetNum("buttonid");
 | 
				
			||||||
			config.iTriggerID = hConfig.GetNum("triggerid");
 | 
								config.iTriggerID = hConfig.GetNum("triggerid");
 | 
				
			||||||
@ -228,7 +231,11 @@ public void OnEntitySpawned(int entity)
 | 
				
			|||||||
					CItem item = new CItem(config);
 | 
										CItem item = new CItem(config);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
					if (RegisterItemEntity(item, entity, REGISTER_WEAPON))
 | 
										if (RegisterItemEntity(item, entity, REGISTER_WEAPON))
 | 
				
			||||||
 | 
										{
 | 
				
			||||||
						g_hArray_Items.Push(item);
 | 
											g_hArray_Items.Push(item);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
											SortADTArrayCustom(g_hArray_Items, SortItemsArray);
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			else if (config.iButtonID && config.iButtonID == iHammerID)
 | 
								else if (config.iButtonID && config.iButtonID == iHammerID)
 | 
				
			||||||
@ -238,7 +245,11 @@ public void OnEntitySpawned(int entity)
 | 
				
			|||||||
					CItem item = new CItem(config);
 | 
										CItem item = new CItem(config);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
					if (RegisterItemEntity(item, entity, REGISTER_BUTTON))
 | 
										if (RegisterItemEntity(item, entity, REGISTER_BUTTON))
 | 
				
			||||||
 | 
										{
 | 
				
			||||||
						g_hArray_Items.Push(item);
 | 
											g_hArray_Items.Push(item);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
											SortADTArrayCustom(g_hArray_Items, SortItemsArray);
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			else if (config.iTriggerID && config.iTriggerID == iHammerID)
 | 
								else if (config.iTriggerID && config.iTriggerID == iHammerID)
 | 
				
			||||||
@ -248,7 +259,11 @@ public void OnEntitySpawned(int entity)
 | 
				
			|||||||
					CItem item = new CItem(config);
 | 
										CItem item = new CItem(config);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
					if (RegisterItemEntity(item, entity, REGISTER_TRIGGER))
 | 
										if (RegisterItemEntity(item, entity, REGISTER_TRIGGER))
 | 
				
			||||||
 | 
										{
 | 
				
			||||||
						g_hArray_Items.Push(item);
 | 
											g_hArray_Items.Push(item);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
											SortADTArrayCustom(g_hArray_Items, SortItemsArray);
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
@ -341,6 +356,7 @@ public void OnEntityDestroyed(int entity)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
			if (item.bWeapon && item.iWeapon == entity)
 | 
								if (item.bWeapon && item.iWeapon == entity)
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
 | 
									item.iClient = INVALID_ENT_REFERENCE;
 | 
				
			||||||
				item.iWeapon = INVALID_ENT_REFERENCE;
 | 
									item.iWeapon = INVALID_ENT_REFERENCE;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				return;
 | 
									return;
 | 
				
			||||||
@ -361,6 +377,20 @@ public void OnEntityDestroyed(int entity)
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//----------------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					// Purpose:
 | 
				
			||||||
 | 
					//----------------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					public int SortItemsArray(int index1, int index2, Handle array, Handle hndl)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						CConfig config1 = view_as<CItem>(g_hArray_Items.Get(index1)).dConfig;
 | 
				
			||||||
 | 
						CConfig config2 = view_as<CItem>(g_hArray_Items.Get(index2)).dConfig;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (config1.iConfigID < config2.iConfigID) return -1;
 | 
				
			||||||
 | 
						if (config1.iConfigID > config2.iConfigID) return 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//----------------------------------------------------------------------------------------------------
 | 
					//----------------------------------------------------------------------------------------------------
 | 
				
			||||||
// Purpose:
 | 
					// Purpose:
 | 
				
			||||||
//----------------------------------------------------------------------------------------------------
 | 
					//----------------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user