Ex:http://i.imgur.com/lfMkxGk.jpg
Printable View
If you are looking for the code for this feature (im sure you are) you wont find this here. No one is going to give you full code. You need to make it by yourself.
Follow the same process of the killfeed from the chat and implemente it in the WarZ HUD
there is your hint. have fun
Arowsky rights. You can do it yourself, I could. Try to look killfeed code and you will understand how to do it. But it will not be easy, you need to create server side code, client side, flash a lot of work and action script. You can, i believe.
Hint: look showMessage code. It works the same;)
http://i.imgur.com/jkmp3WH.jpg
Extract War Inc code, very easy.
War Inc Code : http://i.imgur.com/KTxMuTF.jpg
how i do ?
- - - Updated - - -Code:void getWeaponParamForUI(const WeaponConfig* wc, int* damage, int* spread, int* firerate, int *recoil);
void HUDDisplay::ShowKillTag(obj_AI_Player* killer, STORE_CATEGORIES damageType)
{
if(!Inited)
return;
r3d_assert(killer);
Scaleform::GFx::Value var[32];
char plrUserName[256];
killer->GetUserNameAndClanTag(plrUserName);
var[0].SetString(plrUserName);
var[1].SetNumber(killer->GameStats.TotalScore);
// find weapon that killer used to kill us by checking damage type
int wpnIdx = -1;
if(damageType == storecat_GRENADES) // we cannot properly select mine or grenade, so for now if killed via mine\greande show primary weapon of killer
damageType = storecat_INVALID;
for(int i=0; i<NUM_WEAPONS_ON_PLAYER; ++i)
{
if(killer->m_Weapons[i] && killer->m_Weapons[i]->getCategory() == damageType)
{
wpnIdx = i;
break;
}
}
if(wpnIdx == -1) // if not found, just use primary
wpnIdx = 0;
const Weapon* wpn = killer->m_Weapons[wpnIdx];
r3d_assert(wpn);
var[2].SetStringW(wpn->getConfig()->m_StoreNameW);
const GearConfig* gc = gWeaponArmory.getGearConfig(killer->CurLoadout.BodyArmorID);
var[3].SetStringW(gc?gc->m_StoreNameW:L"");
var[4].SetString(wpn->getConfig()->m_StoreIcon);
var[5].SetString(gc?gc->m_StoreIcon:"");
var[6].SetString(gWeaponArmory.getIconByItemId(killer->CurLoadout.Item1, true));
var[7].SetString(gWeaponArmory.getIconByItemId(killer->CurLoadout.Item2, true));
var[8].SetString(gWeaponArmory.getIconByItemId(killer->CurLoadout.Item3, true));
var[9].SetString(gWeaponArmory.getIconByItemId(killer->CurLoadout.Item4, true));
// skills are disabled for now
var[10].SetNumber(0);//killer->m_Skills[0]);
var[11].SetNumber(0);//killer->m_Skills[1]);
var[12].SetNumber(0);//killer->m_Skills[2]);
var[13].SetNumber(0);//killer->m_Skills[3]);
var[14].SetNumber(0);//killer->m_Skills[4]);
var[15].SetNumber(0);//killer->m_Skills[5]);
var[16].SetNumber(0);//killer->m_Skills[6]);
var[17].SetNumber(0);//killer->m_Skills[7]);
var[18].SetNumber(ceilf(killer->m_Health));
var[19].SetNumber(killer->m_Health/killer->getMaxHealth());
var[20].SetNumber(ceilf(wpn->getConfig()->m_AmmoDamage));
int damage = 0;
getWeaponParamForUI(wpn->getConfig(), &damage, NULL, NULL, NULL);
var[21].SetNumber(float(damage)/100.0f);
var[22].SetNumber(gc?ceilf(gc->m_damagePerc*100.0f):0.0f);
var[23].SetNumber(gc?gc->m_damagePerc:0.0f);
// TO BE REMOVED, OLD UPGRADE SYSTEM
var[24].SetNumber(1);
var[25].SetString("");
var[26].SetNumber(1);
var[27].SetString("");
var[28].SetNumber(1);
var[29].SetString("");
var[30].SetNumber(1);
var[31].SetString("");
// END
gfxHUD.Invoke(VMPROTECT_DecryptStringA("_global.displayKillTag"), var, 32);
}
void HUDDisplay::ShowKilledTag(obj_AI_Player* victim)
{
if(!Inited)
return;
r3d_assert(victim);
Scaleform::GFx::Value var[10];
char plrUserName[256];
victim->GetUserNameAndClanTag(plrUserName);
var[0].SetString(plrUserName);
var[1].SetNumber(victim->GameStats.TotalScore);
const GearConfig* gc = gWeaponArmory.getGearConfig(victim->CurLoadout.BodyArmorID);
var[2].SetStringW(gc?gc->m_StoreNameW:L"");
var[3].SetString(gc?gc->m_StoreIcon:"");
var[4].SetString(gWeaponArmory.getIconByItemId(victim->CurLoadout.Item1, true));
var[5].SetString(gWeaponArmory.getIconByItemId(victim->CurLoadout.Item2, true));
var[6].SetString(gWeaponArmory.getIconByItemId(victim->CurLoadout.Item3, true));
var[7].SetString(gWeaponArmory.getIconByItemId(victim->CurLoadout.Item4, true));
var[8].SetNumber(gc?ceilf(gc->m_damagePerc*100.0f):0.0f);
var[9].SetNumber(gc?gc->m_damagePerc:0.0f);
gfxHUD.Invoke(VMPROTECT_DecryptStringA("_global.displayKilledTag"), var, 10);
}
void HUDDisplay::AddKillMessage(obj_AI_Player* killer, obj_AI_Player* victim, STORE_CATEGORIES damageType)
{
if(!Inited)
return;
// if HUD isn't visible right now, then skip messages
if(hudPause->isActive() || hudScore->isActive())
return;
r3d_assert(victim);
int localPlayerTeamID = 0;
if(gClientLogic().localPlayer_)
localPlayerTeamID = gClientLogic().localPlayer_->TeamID;
Scaleform::GFx::Value vars[5];
char killerUserName[64] = "";
char victimUserName[64] = "";
if(victim) victim->GetUserName(victimUserName);
if(killer) killer->GetUserName(killerUserName);
vars[0].SetString(killer?(killerUserName):"");
const char* killerColor = killer?((killer->TeamID!=localPlayerTeamID)?redColor:blueColor):greyColor;
if(killer && gClientLogic().m_gameInfo.mapType == GBGameInfo::MAPT_Bomb)
killerColor = killer->TeamID==0?redColor:blueColor;
vars[1].SetString(killerColor);
vars[2].SetString(victimUserName);
const char* victimColor = (victim->TeamID!=localPlayerTeamID)?redColor:blueColor;
if(gClientLogic().m_gameInfo.mapType == GBGameInfo::MAPT_Bomb)
victimColor = victim->TeamID==0?redColor:blueColor;
vars[3].SetString(victimColor);
const char* how_killed=VMPROTECT_DecryptStringA("suicide");
{
if(damageType==storecat_ASR)
how_killed = VMPROTECT_DecryptStringA("rifle");
else if(damageType==storecat_SHTG)
how_killed = VMPROTECT_DecryptStringA("shotgun");
else if(damageType==storecat_HG)
how_killed = VMPROTECT_DecryptStringA("pistol");
else if(damageType==storecat_SMG)
how_killed = VMPROTECT_DecryptStringA("smg");
else if(damageType == storecat_SUPPORT)
how_killed = VMPROTECT_DecryptStringA("rpg");
else if(damageType == storecat_GRENADES)
how_killed = VMPROTECT_DecryptStringA("grenade");
else if(damageType==storecat_SNP)
how_killed = VMPROTECT_DecryptStringA("sniper");
else if(damageType==storecat_MG)
how_killed = VMPROTECT_DecryptStringA("mg");
else if(damageType==storecat_MELEE)
how_killed = VMPROTECT_DecryptStringA("knife");
else if(damageType==storecat_UsableItem) // turret is the only usable item that kills right now
how_killed = VMPROTECT_DecryptStringA("turret");
}
vars[4].SetString(how_killed);
gfxHUD.Invoke(VMPROTECT_DecryptStringA("_global.addKillMessage"), vars, 5);
}
void HUDDisplay::AddMessage(const wchar_t *msg)
{
if(!Inited)
return;
if(gClientLogic().localPlayer_ == NULL)
return;
// if HUD isn't visible right now, then skip messages
if(hudPause->isActive() || hudScore->isActive())
return;
Scaleform::GFx::Value vars[2];
vars[0].SetStringW(msg);
vars[1].SetString(orangeColor);
gfxHUD.Invoke(VMPROTECT_DecryptStringA("_global.addGeneralMessage"), vars, 2);
}
some variables does not exist for warz, just go adding or replacing, still have codes on the server.
How to tutorial??