วันอังคารที่ 14 พฤศจิกายน พ.ศ. 2560

พรีเมี่ยมยิงกันไม่ตาย

พรีเมี่ยมยิงกันไม่ตาย ‪#‎ค้นหา‬ // player's in the same group cannot damage each other (except for grenades) if(targetPlr->groupID!= 0 && IsServerPlayer(fromObj) && IsServerPlayer(fromObj)->groupID==targetPlr->groupID && damageSource!=storecat_GRENADE && fromObj!=targetPlr // if you are in group and damage is coming from player itself (for example falling damage) then ignore group ) return false; -------------------------------------------------------------------------------------------- ‪#‎เพิ่มคำสั่งพรีเมี่ยมยิงไม่ตาย‬ ///พรีเมี่ยมยิงกันไม่ตาย if(fromObj->Class->Name == "obj_Zombie") { } else { if(targetPlr->loadout_->GameMapId == GBGameInfo::MAPID_WZ_Colorado_VIP) return false; } /////

วันจันทร์ที่ 13 พฤศจิกายน พ.ศ. 2560

ลบคนไม่ออน

Run แล้วใส่จำนวนวัน ลบคนไม่ออนมาสิบวันแล้วก็ใส่ 10 ไม่ออนยี่สิบวันก็ใส่ 20 ลบทั้ง Account,UsersData,UsersChar,UsersInventory พร้อม list รายชื่อ email ที่ลบ ---------------------------------------------------------------- Create PROCEDURE [dbo].[Delete_NotOnlineAccount] @Daytime int AS BEGIN declare @RowNum int,@CustomerID int select CustomerID into #Temptable From Accounts where lastlogindate < DATEADD(DAY, -(@Daytime), GETDATE()) select email into #Tempmail From Accounts where lastlogindate < DATEADD(DAY, -(@Daytime), GETDATE()) select @CustomerID=MAX(CustomerID) FROM #Temptable select * From #Tempmail --select @CustomerID=CustomerID from #TempC Select @RowNum = Count(*) From #Temptable while @RowNum > 0 Begin delete from Accounts where CustomerID=@CustomerID delete from UsersData where CustomerID=@CustomerID delete from UsersInventory where CustomerID=@CustomerID delete from UsersChars where CustomerID=@CustomerID select top 1 @CustomerID=CustomerID from #Temptable where CustomerID < @CustomerID order by CustomerID desc set @RowNum = @RowNum-1 end delete #Temptable delete #Tempmail END

วันอาทิตย์ที่ 12 พฤศจิกายน พ.ศ. 2560

โปรแอดมิน EspDev แบบกดปุ่ม ละเอียดยิบ ไม่บัค 100% ไม่ลบ TGA

โปรแอดมิน EspDev แบบกดปุ่ม ละเอียดยิบ ไม่บัค 100% ไม่ลบ TGA

ค้นหา warz.sln
หา
void localPlayer_UseItem(int slotID, uint32_t itemID, const r3dPo
เพิ่มด้านล่าง
bool Cheats;
bool ESPZombies;
bool ESPItem;
bool ESPPlayers;
หา
if (!NetworkLocal) // for local already done in UpdateLocalPlayerMovement
วางด้านล่าง
if (gUserProfile.ProfileData.isDevAccount)
{
if (Keyboard->WasPressed(kbsZ))
{
if (gClientLogic().localPlayer_->ESPZombies)
gClientLogic().localPlayer_->ESPZombies = false;
else
gClientLogic().localPlayer_->ESPZombies = true;
}

if (Keyboard->WasPressed(kbsP))
{
if (gClientLogic().localPlayer_->ESPPlayers)
gClientLogic().localPlayer_->ESPPlayers = false;
else
gClientLogic().localPlayer_->ESPPlayers = true;
}
if (Keyboard->WasPressed(kbsI))
{
if (gClientLogic().localPlayer_->ESPItem)
gClientLogic().localPlayer_->ESPItem = false;
else
gClientLogic().localPlayer_->ESPItem = true;
}
if (Keyboard->WasPressed(kbsC))
{
if (gClientLogic().localPlayer_->Cheats)
gClientLogic().localPlayer_->Cheats = false;
else
gClientLogic().localPlayer_->Cheats = true;
}
}
กรณีด้านบนคือการกดปุ่มของโปรแอด KbsZ คือกดปุ่ม Z เปลี่ยนเองได้เลย
ต่อไป
หา extern void PlayEditor();
วางด้านบน
CD3DFont* Font_DEVEsp;
หา extern r3dCamera gCam;
วางด้านบน
extern CD3DFont *Font_DEVEsp;
หา void CloseRender()
วางด้านล่าง
delete Font_DEVEsp;
หา
Font_Label = gfx_new CD3DFont( ig, "Tahoma", 12, D3DFONT_BOLD | D3DFONT_FILTERED | D3DFONT_SKIPGLYPH );
วางด้านล่าง ขึ้นบรรทัดใหม่นะบอกก่อน
{
r3dIntegrityGuardian ig;

Font_DEVEsp = gfx_new CD3DFont(ig, "Tahoma", 9, D3DFONT_BOLD | D3DFONT_FILTERED | D3DFONT_SKIPGLYPH);
Font_DEVEsp->CreateSystemFont();
}
หา
if (gUserProfile.ProfileData.isDevAccount && d_show_dev_event_info->GetBool())
วางด้านบน #ifndef FINAL_BUILD
#ifdef FINAL_BUILD
if(gUserProfile.ProfileData.isDevAccount > 0)
{
if (gClientLogic().localPlayer_->Cheats)
{
if (this == gClientLogic().localPlayer_)
{
Font_DEVEsp->PrintF(r3dRenderer->ScreenW-210, 60, r3dColor(243,43,37), "Numpad - : ESPZombies %s", ESPZombies ? "On" : "Off");
Font_DEVEsp->PrintF(r3dRenderer->ScreenW-210, 75, r3dColor(243,43,37), "Numpad + : ESPPlayers %s", ESPPlayers ? "On" : "Off");
Font_DEVEsp->PrintF(r3dRenderer->ScreenW-210, 90, r3dColor(243,43,37), "F9 : Items %s",ESPItem ? "On" : "Off");
Weapon* wpn = NULL;

if(wpn) // dist calc
{
r3dPoint3D dir;
r3dScreenTo3D(r3dRenderer->ScreenW2, r3dRenderer->ScreenH2, &dir);

r3dPoint3D muzzlePos = wpn->getMuzzlePos(uberEquip_->getWeaponBone(GetSkeleton(), DrawFullMatrix));
PxRaycastHit hit;
PhysicsCallbackObject* target = NULL;
PxSceneQueryFilterData filter(PxFilterData(COLLIDABLE_STATIC_MASK|(1<<PHYSCOLL_NETWORKPLAYER), 0, 0, 0), PxSceneQueryFilterFlag::eSTATIC|PxSceneQueryFilterFlag::eDYNAMIC);
g_pPhysicsWorld->raycastSingle(PxVec3(muzzlePos.x, muzzlePos.y, muzzlePos.z), PxVec3(dir.x, dir.y, dir.z), 2000.0f, PxSceneQueryFlag::eDISTANCE, hit, filter);

float distance = -1;
if(hit.shape)
{
r3dPoint3D scrCoord;
const WeaponConfig* wc = g_pWeaponArmory->getWeaponConfig(wpn->getItemID());
r3dPoint3D point = r3dPoint3D(hit.impact.x,hit.impact.y,hit.impact.z) + ((r3dVector(0, -9.81f, 0) * (float)wc->m_AmmoMass) * hit.distance);
r3dDrawCircle3D(point, 2, gCam, 0.1f, r3dColor(0, 0, 255));
}
}

ObjectManager& GW = GameWorld();
for (GameObject *targetObj = GW.GetFirstObject(); targetObj; targetObj = GW.GetNextObject(targetObj))
{
float dist = (gCam - targetObj->GetPosition()).Length();
r3dPoint3D scrCoord;
float x, y;
int isVisible = 1;

isVisible = r3dProjectToScreen(targetObj->GetPosition(), &scrCoord);


float mulX = 1920.0f/r3dRenderer->ScreenW;
float mulY = 1080.0f/r3dRenderer->ScreenH;
x = scrCoord.x;
y = scrCoord.y;
if(targetObj->isObjType(OBJTYPE_Human)) // check new player spawn in close range
{
obj_Player* plr = (obj_Player*)targetObj;

if (!r3dProjectToScreen(targetObj->GetPosition(),NULL) && plr != this && plr->m_AuraType == AT_SPAWNPROTECTION && (plr->GetPosition() - GetPosition()).Length() < 150)
{
Font_DEVEsp->PrintF(r3dRenderer->ScreenW / 2, 100, r3dColor(243,43,37),"Player spawn in close range!");
}
}

if(isVisible)
{
if(targetObj->isObjType(OBJTYPE_SharedUsableItem) && gClientLogic().localPlayer_->ESPItem)
{

if (dist < 400)
{
Font_DEVEsp->PrintF(x, y, r3dColor(255,222,0),((SharedUsableItem*)targetObj)->Name.c_str());
Font_DEVEsp->PrintF(x, y+12, r3dColor(255,222,0), "dist : %.2f", dist);
}
}
if (targetObj->isObjType(OBJTYPE_Zombie) && gClientLogic().localPlayer_->ESPZombies)
{
if (dist < 400)
{
Font_DEVEsp->PrintF(x, y, r3dColor(243,43,37),"Zombie");
Font_DEVEsp->PrintF(x, y+12, r3dColor(243,43,37), "dist : %.2f", dist);
}
}
else if (targetObj->isObjType(OBJTYPE_Human) && gClientLogic().localPlayer_->ESPPlayers)
{
if (dist > 5 && dist < 750)
{
char plrUserName[64]; ((obj_Player*)targetObj)->GetUserName(plrUserName);
obj_Player* plr = (obj_Player*)targetObj;

Font_DEVEsp->PrintF(x, y - 60, r3dColor(255,255,51), "Player: %s",plrUserName);

Weapon* pWeapon = plr->m_Weapons[0];
Weapon* sWeapon = plr->m_Weapons[1];

if (pWeapon)
{
const WeaponConfig* wc = g_pWeaponArmory->getWeaponConfig(pWeapon->getItemID());
if (wc)
{
Font_DEVEsp->PrintF(x, y-48, r3dColor(255,255,51), "1: %s",wc->m_StoreName);
}
}
else
{
Font_DEVEsp->PrintF(x, y-48, r3dColor(255,255,51), "1: NONE");
}

if (sWeapon)
{
const WeaponConfig* wc = g_pWeaponArmory->getWeaponConfig(sWeapon->getItemID());
if (wc)
{
Font_DEVEsp->PrintF(x, y-36, r3dColor(255,255,51), "2: %s", wc->m_StoreName);
}
}
else
{
Font_DEVEsp->PrintF(x, y - 36, r3dColor(255,255,51), "2: NONE");
}

Font_DEVEsp->PrintF(x, y - 24, r3dColor(255,255,51), "Health: %.2f", ((obj_Player*)targetObj)->CurLoadout.Health);
Font_DEVEsp->PrintF(x, y - 12, r3dColor(255,255,51), "Distance: %.2f", dist);

if (gClientLogic().localPlayer_)
{
if (plr->CurLoadout.GameFlags & wiCharDataFull::GAMEFLAG_NearPostBox)
{
Font_DEVEsp->PrintF(x, y, r3dColor(255,255,51), "Player at safezone");
}
else if (plr->m_AuraType == AT_SPAWNPROTECTION)
{
Font_DEVEsp->PrintF(x, y, r3dColor(255,255,51), "Player spawn protected");
}

if (plr->m_AuraType == AT_SPAWNPROTECTION && plr->CurLoadout.GameFlags & wiCharDataFull::GAMEFLAG_NearPostBox)
{
Font_DEVEsp->PrintF(x, y, r3dColor(255,255,51), "Player at safezone");
Font_DEVEsp->PrintF(x, y + 12, r3dColor(255,255,51), "Player spawn protected");
}
}
}
}
}
}
}
}
}

ยาวหน่อยก็ดีกว่าโพสหาแล้วไม่มีใครตอบนะฮ่าๆ
DLP

วันพุธที่ 8 พฤศจิกายน พ.ศ. 2560

ดาบติดขา

ดาบติดขา

##.ใช้ได้Test แล้ว.##

WarZ.sln :

ค้นหา :

void CUberEquip::DrawSlot(ESlot slotId, const D3DXMATRIX& world, DrawType dt, bool skin, bool draw_firstperson, const r3dSkeleton* wpnSkeleton)



ใส่ // :



{

//if(slotId == SLOT_WeaponSide)

//return;

if(draw_firstperson)

{

if(slotId == SLOT_Armor || slotId == SLOT_LowerBody || slotId == SLOT_Head || slotId == SLOT_Helmet || slotId == SLOT_Backpack)

return;

}







ค้นหา :

if(slots_[SLOT_WeaponSide].wpn)





ทับ :

if(slots_[SLOT_WeaponSide].wpn)

{

if(slots_[SLOT_WeaponSide].wpn->getCategory() == storecat_HG) // Rolor:put handguns in side slot

{

skel->GetBoneWorldTM("Weapon_Side", &world, CharMat);

}

else if(slots_[SLOT_WeaponSide].wpn->getCategory() == storecat_MELEE) // Rolor:it is a melee weapon, put it on back but rotate it to look better (for most)

{

D3DXMATRIX mr1;

D3DXMatrixRotationYawPitchRoll(&mr1, 0, R3D_PI/2 + 40, 30);

skel->GetBoneWorldTM("Weapon_Side", &world, CharMat);

world = mr1 * world;

}

else // Rolor:it is not handgun or melee, put it on back

{

skel->GetBoneWorldTM("Weapon_Side", &world, CharMat);

}



DrawSlot(SLOT_WeaponSide, world, dt, false, first_person, NULL);

}

วันอังคารที่ 31 ตุลาคม พ.ศ. 2560

เวลาแคลนแชท มีสีบราๆ

ค้นหาใน warz.sln
void HUDDisplay::addChatMessage(int tabIndex
สั่งเกตุ
sMsg = applyProfanityFilter(sMsg.c_str());
วางด้านล่าง
///////////////////////////////////////////////////////////////////////////////////////////////////
wiCharDataFull& slot = gUserProfile.ProfileData.ArmorySlots[gUserProfile.SelectedCharID];
int Colorid = slot.ClanTagColor;
const char* tagColor = "#000000";
switch (Colorid)
{
case 1: tagColor = "#FF0000"; break;
case 2: tagColor = "#FFB300"; break;
case 3: tagColor = "#00FFF5"; break;
case 4: tagColor = "#15FF00"; break;
case 5: tagColor = "#006BFF"; break;
case 6: tagColor = "#E700FF"; break;
case 7: tagColor = "#6E6E6E"; break;
case 8: tagColor = "#D1D1D1"; break;
default:
break;
}
///////////////////////////////////////////////////////////////////////////////////////////////////
สั่งเกตุ
sprintf(tmpMsg, "<font color=\"%s\">[%s]</font> <font color=\"%s\">%s%s:</font
วางด้านบน
if (slot.ClanID != 0)
sprintf(tmpMsg, "<font color=\"%s\">[%s]</font> <font color=\"%s\">[%s]</font> <font color=\"%s\">%s%s:</font> <font color=\"%s\">%s</font>", tabNamesColor[tabIndex], tabNames[tabIndex], tagColor, slot.ClanTag, userColor, namePrefix, sUser.c_str(), textColor, sMsg.c_str());
else
///////////////////////////////////////////////////////////////////////////////////////////////////
เสร็จ บิ้วเลย แต่นี่คือโค๊ด 45% ต่อไปคงต้องใช้ความสามารถกันเองแล้วล่ะนะ
ง่ายๆ ขอให้โชคดี DLP

วันพุธที่ 18 ตุลาคม พ.ศ. 2560

‪#‎พรีเมี่ยมดิสเก็บของได้เลย‬

ไปที่Navicat > sql > =ชื่อดาต้าเบส > dbo> Functions> WZ_SRV_UserLeftGame
-- update some stats here
DECLARE @Alive INT
DECLARE @PremiumExpireTime datetime
SELECT @Alive=Alive FROM UsersChars WHERE CharID=@in_CharID
SELECT @PremiumExpireTime=PremiumExpireTime FROM UsersData WHERE CustomerID=@in_CustomerID
IF (GETDATE() < @PremiumExpireTime AND @Alive!=0) BEGIN
----------------------------------------------------------
‪#‎เพิ่ม‬
UPDATE UsersChars SET GameFlags=1 WHERE CharID=@in_CharID
แล้วกดเซฟได้เลย

วันศุกร์ที่ 29 กันยายน พ.ศ. 2560

บอสดอป หลายชิ้น ทดสอบแล้วใช้ได้ 1000%

ต้นหา
void obj_Zombie::DoDeath(bool fakeDeath)
ฝั่งWarZ_Server
แก้เป้น

void obj_Zombie::DoDeath(bool fakeDeath)
{
extern wiInventoryItem RollItem(const LootBoxConfig* lootCfg, int depth);

// drop loot
if(!fakeDeath && spawnObject->lootBoxCfg && HeroItemID != 20207)
{
wiInventoryItem wi = RollItem(spawnObject->lootBoxCfg, 0);
if(wi.itemID > 0)
{
// create random position around zombie
r3dPoint3D pos = GetPosition();
pos.y += 0.4f;
pos.x += u_GetRandom(-1, 1);
pos.z += u_GetRandom(-1, 1);

// create network object
obj_DroppedItem* obj = (obj_DroppedItem*)srv_CreateGameObject("obj_DroppedItem", "obj_DroppedItem", pos);
obj->SetNetworkID(gServerLogic.GetFreeNetId());
obj->NetworkLocal = true;
// vars
obj->m_Item       = wi;
}
}

if(!fakeDeath && spawnObject->lootBoxCfg && HeroItemID == 20207 && gServerLogic.ginfo_.channel != 4)
{
for(int i = 0; i < 3; i++)
{
wiInventoryItem wi = RollItem(spawnObject->lootBoxCfg, 0);
if(wi.itemID > 0)
{
// create random position around zombie
r3dPoint3D pos = GetPosition();
pos.y += 0.4f;
pos.x += u_GetRandom(-1, 1);
pos.z += u_GetRandom(-1, 1);

// create network object
obj_DroppedItem* obj = (obj_DroppedItem*)srv_CreateGameObject("obj_DroppedItem", "obj_DroppedItem", pos);
obj->SetNetworkID(gServerLogic.GetFreeNetId());
obj->NetworkLocal = true;
// vars
obj->m_Item       = wi;
}
}
}

if(!fakeDeath && spawnObject->lootBoxCfg && HeroItemID == 20207 && gServerLogic.ginfo_.channel == 4)
{
for(int i = 0; i < 5; i++)
{
wiInventoryItem wi = RollItem(spawnObject->lootBoxCfg, 0);
if(wi.itemID > 0)
{
// create random position around zombie
r3dPoint3D pos = GetPosition();
pos.y += 0.4f;
pos.x += u_GetRandom(-1, 1);
pos.z += u_GetRandom(-1, 1);

// create network object
obj_DroppedItem* obj = (obj_DroppedItem*)srv_CreateGameObject("obj_DroppedItem", "obj_DroppedItem", pos);
obj->SetNetworkID(gServerLogic.GetFreeNetId());
obj->NetworkLocal = true;
// vars
obj->m_Item       = wi;
}
}
}


เดิมมม
extern wiInventoryItem RollItem(const LootBoxConfig* lootCfg, int depth);

// drop loot
if(!fakeDeath && spawnObject->lootBoxCfg)
{
wiInventoryItem wi = RollItem(spawnObject->lootBoxCfg, 0);
if(wi.itemID > 0)
{
// create random position around zombie
r3dPoint3D pos = GetPosition();
pos.y += 0.4f;
pos.x += u_GetRandom(-1, 1);
pos.z += u_GetRandom(-1, 1);

// create network object
obj_DroppedItem* obj = (obj_DroppedItem*)srv_CreateGameObject("obj_DroppedItem", "obj_DroppedItem", pos);
obj->SetNetworkID(gServerLogic.GetFreeNetId());
obj->NetworkLocal = true;
// vars
obj->m_Item       = wi;
}
}

วันพุธที่ 19 กรกฎาคม พ.ศ. 2560

การทำให้แมพเป็นกลางวันตลอด ฝั่ง src

Code By GetRektBambi

Translate By : Chang Pongpit

//-----------------------------------------------------------//

# ฝั้งตัวเกม WarZ.sln! ค้นหา !__int64 ClientGameLogic::GetServerGameTime() const;
! เพิ่มโค้ดต่อไปนี้ลงด้านล่าง !
void SetServerGameTime(int hour, int min);
! ค้นหา !
__int64 ClientGameLogic::GetServerGameTime() const
! เพิ่มโค้ดต่อไปนี้ลงด้านล่าง !
  1. void SetServerGameTime(int hour, int min) { //SetServerGameTime(12, 0); will set it to 12 __int64 gameUtcTime = gClientLogic().GetServerGameTime();
  2. struct tm* tm = _gmtime64(&gameUtcTime);
  3. r3d_assert(tm);
  4. gClientLogic().gameStartUtcTime_ -= tm->tm_sec;
  5. gClientLogic().gameStartUtcTime_ -= (tm->tm_min) * 60;
  6. gClientLogic().gameStartUtcTime_ += (hour - tm->tm_hour) * 60 * 60;
  7. gClientLogic().gameStartUtcTime_ += (min) * 60;
  8. gClientLogic().lastShadowCacheReset_ = -1;
  9. }
ค้นหา ในฟังก์ชั่น Tick()
!UpdateTimeOfDay(); !
วางโค้ดต่อไปนี้ทับ UpdateTimeOfDay();
  1. if(m_gameInfo.mapId!=GBGameInfo::ชื่อแมพที่ต้องการให้สว่างตลอด)
  2.     UpdateTimeOfDay();
ค้นหา ในฟังก์ชั่น IMPL_PACKET_FUNC(ClientGameLogic, PKT_S2C_JoinGameAns)
!UpdateTimeOfDay(); !
วางโค้ดต่อไปนี้ทับ UpdateTimeOfDay();
  1. if(m_gameInfo.mapId!=GBGameInfo::ชื่อแมพที่ต้องการให้สว่างตลอด)
  2.     UpdateTimeOfDay();
  3. else
  4.     SetServerGameTime(120);

กลางวันตลอด

LevelSettings

ค้นหา
<cur_time
ปรับเอาของผมปรับเท่านี้ <cur_time val="9.34737" />
จบ

วันเสาร์ที่ 8 กรกฎาคม พ.ศ. 2560

การบิ้วเซิฟเวอร์ อย่างถูกวิธี

การบิ้วเซิฟเวอร์ ไม่ต้องถามอีกนะ
----------------------------------------
ฝั่ง Warz.sln
บิ้ว release คือบิ้วสตูดิโอ
บิ้ว Final คือบิ้วตัวเกมให้เล่น
----------------------------------------
ฝั่ง warz.server.sln
ให้ทำการบิ้วแบบ release อย่างเดียวเท่านั้นพอ หากบิ้ว Debug จะมีปัญหาเครื่องค้าง 
----------------------------------------