Angels, again
can anyone please give me a little hint as to what to change to make angels give +10 in their given stat instead of +1 per +1 to the angel
iv tried adding *10 to anything and everything i can think of in the HGServer source with no success everything i add*10 to seems to make no difference what so ever
any clues pls guys?
iv tried adding *10 to anything and everything i can think of in the HGServer source with no success everything i add*10 to seems to make no difference what so ever
any clues pls guys?
owned
<img src='http://img284.imageshack.us/img284/6717/fuckto1.jpg' border='0' alt='user posted image' />
And wtf why im i brougt into this post noobADDKiD wrote: :wacko: <<< Juggalo2...![]()
<img src='http://lifeplaysu420.com/unknow/nightsign.png' border='0' alt='user posted image' /><br>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>Wanna make money for surfing the net sing up at <br><a href='http://www.cashfiesta.com/php/join.php? ... yprivitera' target='_blank'>cash fiesta</a><br>its all free hey why ntot make money while fucking around on the computer<br><br><br>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
- <3 bd long time
- Posts: 967
- Joined: Tue Jul 12, 2005 8:07 pm
- Location: Washington, USA
- Contact:
Just joking man.. chilll :unsure: Ok, I'm going to try and attempt to help this retard...
Here is the Server-Side code for the Tutelary Angels System (TAS). It was coded by Aryes and Fixed by myself, i also added the Majesty upgrade for the Pendants of Tutelary Angels (PTA).
Client side part HERE !!!
PTA can be upgraded up to +10 and will give you a +x bonus in the tutelary angel's related stat. You have 100% chances of success rate when trying to upgrade a PTA, and if you fail, you'll loose one Majesty point.
You MUST add some checks in several places in the sources to prevent over-MP, over-HP and over-SP hack detection when you release a PTA. When you equip a STR+10 PTA, your char will be able to have some more HP, and when you'll release this PTA, your maximum allowed HP will be decreased, so your current HP will be > your max HP and you'll get dc by the server for hacking attempt.
This part of the code is the only one that won't be given, even if requested. It will be my way of preventing noobs from having angels on their server. Don't worry, this part is really the easiest one to code and angels works even if you don't code it (atleast it works until you release the PTA...).
Remember that you MUST use the coded client and add the angels code (client-side code that i'll post right after this one) in order to have the angels working, it won't work with 3.7 clients !
You can't request the angels from Gail, you'll have to code it by yourself or find another way to acquire the PTAs. Shop ? /command ? Drops ? ... ?
It's already added in KLKS 3.02 HG Sources but they've not been yet released.
Enjoy and remember that credits and thanks goes to Aryes, who did the biggest part of the work, i only fixed some bugs and added the MJ upgrade.
Game.cpp
in function bEquipItemHandler
Find :
CODE
if (iGetItemWeight(m_pClientList[iClientH]->m_pItemList[sItemIndex], 1) > m_pClientList[iClientH]->m_iStr*100) return FALSE;
cEquipPos = m_pClientList[iClientH]->m_pItemList[sItemIndex]->m_cEquipPos;
Right After, Add :
CODE
// ******* Angel Code - Begin ******* //
if (cEquipPos == DEF_EQUIPPOS_LFINGER) {
int iValue;
if (m_pClientList[iClientH]->m_pItemList[sItemIndex]->m_sIDnum != NULL) {
if (m_pClientList[iClientH]->m_pItemList[sItemIndex]->m_sIDnum == 908) {//AngelicPendant(STR)
iValue = (m_pClientList[iClientH]->m_pItemList[sItemIndex]->m_dwAttribute & 0xF0000000) >> 28;
if (iValue >= 1*10) {
m_pClientList[iClientH]->m_iStr += iValue;
}
SetAngelFlag1(iClientH, DEF_OWNERTYPE_PLAYER, TRUE);
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_SETTING_SUCCESS, NULL, NULL, NULL, NULL);
}
else if (m_pClientList[iClientH]->m_pItemList[sItemIndex]->m_sIDnum == 909) {//AngelicPendant(DEX)
iValue = (m_pClientList[iClientH]->m_pItemList[sItemIndex]->m_dwAttribute & 0xF0000000) >> 28;
if (iValue >= 1*10) {
m_pClientList[iClientH]->m_iDex += iValue;
}
SetAngelFlag2(iClientH, DEF_OWNERTYPE_PLAYER, TRUE);
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_SETTING_SUCCESS, NULL, NULL, NULL, NULL);
}
else if (m_pClientList[iClientH]->m_pItemList[sItemIndex]->m_sIDnum == 910) {//AngelicPendant(INT)
iValue = (m_pClientList[iClientH]->m_pItemList[sItemIndex]->m_dwAttribute & 0xF0000000) >> 28;
if (iValue >= 1*10) {
m_pClientList[iClientH]->m_iInt += iValue;
}
SetAngelFlag3(iClientH, DEF_OWNERTYPE_PLAYER, TRUE);
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_SETTING_SUCCESS, NULL, NULL, NULL, NULL);
}
else if (m_pClientList[iClientH]->m_pItemList[sItemIndex]->m_sIDnum == 911) {//AngelicPendant(MAG)
iValue = (m_pClientList[iClientH]->m_pItemList[sItemIndex]->m_dwAttribute & 0xF0000000) >> 28;
if (iValue >= 1*10) {
m_pClientList[iClientH]->m_iMag += iValue;
}
SetAngelFlag4(iClientH, DEF_OWNERTYPE_PLAYER, TRUE);
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_SETTING_SUCCESS, NULL, NULL, NULL, NULL);
}
}
}
// ******* Angel Code - End ******* //
In Function RealeaseItemHandler
Find :
CODE
switch (cEquipPos) {
Right After, Add :
CODE
// ******* Angel Code - Begin ******* //
case DEF_EQUIPPOS_LFINGER:
int iValue;
if (m_pClientList[iClientH]->m_pItemList[sItemIndex]->m_sIDnum != NULL) {
if (m_pClientList[iClientH]->m_pItemList[sItemIndex]->m_sIDnum == 908) {//AngelicPendant(STR)
iValue = (m_pClientList[iClientH]->m_pItemList[sItemIndex]->m_dwAttribute & 0xF0000000) >> 28;
if (iValue >= 1*10) {
m_pClientList[iClientH]->m_iStr -= iValue;
}
SetAngelFlag1(iClientH, DEF_OWNERTYPE_PLAYER, FALSE);
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_SETTING_SUCCESS, NULL, NULL, NULL, NULL);
}
else if (m_pClientList[iClientH]->m_pItemList[sItemIndex]->m_sIDnum == 909) {//AngelicPendant(DEX)
iValue = (m_pClientList[iClientH]->m_pItemList[sItemIndex]->m_dwAttribute & 0xF0000000) >> 28;
if (iValue >= 1*10) {
m_pClientList[iClientH]->m_iDex -= iValue;
}
SetAngelFlag2(iClientH, DEF_OWNERTYPE_PLAYER, FALSE);
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_SETTING_SUCCESS, NULL, NULL, NULL, NULL);
}
else if (m_pClientList[iClientH]->m_pItemList[sItemIndex]->m_sIDnum == 910) {//AngelicPendant(INT)
iValue = (m_pClientList[iClientH]->m_pItemList[sItemIndex]->m_dwAttribute & 0xF0000000) >> 28;
if (iValue >= 1*10) {
m_pClientList[iClientH]->m_iInt -= iValue;
}
SetAngelFlag3(iClientH, DEF_OWNERTYPE_PLAYER, FALSE);
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_SETTING_SUCCESS, NULL, NULL, NULL, NULL);
}
else if (m_pClientList[iClientH]->m_pItemList[sItemIndex]->m_sIDnum == 911) {//AngelicPendant(MAG)
iValue = (m_pClientList[iClientH]->m_pItemList[sItemIndex]->m_dwAttribute & 0xF0000000) >> 28;
if (iValue >= 1*10) {
m_pClientList[iClientH]->m_iMag -= iValue;
}
SetAngelFlag4(iClientH, DEF_OWNERTYPE_PLAYER, FALSE);
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_SETTING_SUCCESS, NULL, NULL, NULL, NULL);
}
}
break;
// ******* Angel Code - End ******* //
In function RequestItemUpgradeHandler
Add :
CODE
// ******* Angel Code - Begin ******* //
case 46:
switch (m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sIDnum) {
case 908: // AngelicPandent(STR)
case 909: // AngelicPandent(DEX)
case 910: // AngelicPandent(INT)
case 911: // AngelicPandent(MAG)
if (m_pClientList[iClientH]->m_iGizonItemUpgradeLeft <= 0) {
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMUPGRADEFAIL, 3, NULL, NULL, NULL);
return;
}
if(iValue >= 10){
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMUPGRADEFAIL, 3, NULL, NULL, NULL);
return;
}
switch (iValue){
case 0:
sItemUpgrade = 10;
break;
case 1:
sItemUpgrade = 11;
break;
case 2:
sItemUpgrade = 13;
break;
case 3:
sItemUpgrade = 16;
break;
case 4:
sItemUpgrade = 20;
break;
case 5:
sItemUpgrade = 25;
break;
case 6:
sItemUpgrade = 31;
break;
case 7:
sItemUpgrade = 38;
break;
case 8:
sItemUpgrade = 46;
break;
case 9:
sItemUpgrade = 55;
break;
default:
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMUPGRADEFAIL, 3, NULL, NULL, NULL);
return;
break;
}
if ((m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sTouchEffectValue1 != m_pClientList[iClientH]->m_sCharIDnum1) ||
(m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sTouchEffectValue2 != m_pClientList[iClientH]->m_sCharIDnum2) ||
(m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sTouchEffectValue3 != m_pClientList[iClientH]->m_sCharIDnum3)) {
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMUPGRADEFAIL, 2, NULL, NULL, NULL);
return;
}
if (( m_pClientList[iClientH]->m_iGizonItemUpgradeLeft - sItemUpgrade ) < 0) {
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMUPGRADEFAIL, 3, NULL, NULL, NULL);
return;
}
int iDicePTA;
iDicePTA = iDice(1,100);
if(iDicePTA <= 100){
m_pClientList[iClientH]->m_iGizonItemUpgradeLeft -= sItemUpgrade;
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_GIZONITEMUPGRADELEFT, m_pClientList[iClientH]->m_iGizonItemUpgradeLeft, NULL, NULL, NULL);
iValue++;
if (iValue > 10) iValue = 10;
dwTemp = m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute;
dwTemp = dwTemp & 0x0FFFFFFF;
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute = dwTemp | (iValue << 28);
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMATTRIBUTECHANGE, iItemIndex, m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute, NULL, NULL);
_bItemLog(DEF_ITEMLOG_UPGRADESUCCESS, iClientH, (int) -1, m_pClientList[iClientH]->m_pItemList[iItemIndex]);
}
else{
m_pClientList[iClientH]->m_iGizonItemUpgradeLeft--;
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_GIZONITEMUPGRADELEFT, m_pClientList[iClientH]->m_iGizonItemUpgradeLeft, NULL, NULL, NULL);
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMUPGRADEFAIL, 3, NULL, NULL, NULL);
}
break;
}
break;
// ******* Angel Code - End ******* //
Now add the following functions in Game.cpp :
CODE
// ******* Angel Code - Begin ******* //
void CGame::SetAngelFlag1(short sOwnerH, char cOwnerType, BOOL bStatus)
{
switch (cOwnerType) {
case DEF_OWNERTYPE_PLAYER:
if (m_pClientList[sOwnerH] == NULL) return;
if (bStatus == TRUE) m_pClientList[sOwnerH]->m_iStatus = m_pClientList[sOwnerH]->m_iStatus | 0x00001000;
else m_pClientList[sOwnerH]->m_iStatus = m_pClientList[sOwnerH]->m_iStatus & 0xFFFFEFFF;
SendEventToNearClient_TypeA(sOwnerH, DEF_OWNERTYPE_PLAYER, MSGID_EVENT_MOTION, DEF_OBJECTNULLACTION, NULL, NULL, NULL);
break;
}
}
void CGame::SetAngelFlag2(short sOwnerH, char cOwnerType, BOOL bStatus)
{
switch (cOwnerType) {
case DEF_OWNERTYPE_PLAYER:
if (m_pClientList[sOwnerH] == NULL) return;
if (bStatus == TRUE) m_pClientList[sOwnerH]->m_iStatus = m_pClientList[sOwnerH]->m_iStatus | 0x00002000;
else m_pClientList[sOwnerH]->m_iStatus = m_pClientList[sOwnerH]->m_iStatus & 0xFFFFDFFF;
SendEventToNearClient_TypeA(sOwnerH, DEF_OWNERTYPE_PLAYER, MSGID_EVENT_MOTION, DEF_OBJECTNULLACTION, NULL, NULL, NULL);
break;
}
}
void CGame::SetAngelFlag3(short sOwnerH, char cOwnerType, BOOL bStatus)
{
switch (cOwnerType) {
case DEF_OWNERTYPE_PLAYER:
if (m_pClientList[sOwnerH] == NULL) return;
if (bStatus == TRUE) m_pClientList[sOwnerH]->m_iStatus = m_pClientList[sOwnerH]->m_iStatus | 0x00004000;
else m_pClientList[sOwnerH]->m_iStatus = m_pClientList[sOwnerH]->m_iStatus & 0xFFFFBFFF;
SendEventToNearClient_TypeA(sOwnerH, DEF_OWNERTYPE_PLAYER, MSGID_EVENT_MOTION, DEF_OBJECTNULLACTION, NULL, NULL, NULL);
break;
}
}
void CGame::SetAngelFlag4(short sOwnerH, char cOwnerType, BOOL bStatus)
{
switch (cOwnerType) {
case DEF_OWNERTYPE_PLAYER:
if (m_pClientList[sOwnerH] == NULL) return;
if (bStatus == TRUE) m_pClientList[sOwnerH]->m_iStatus = m_pClientList[sOwnerH]->m_iStatus | 0x00008000;
else m_pClientList[sOwnerH]->m_iStatus = m_pClientList[sOwnerH]->m_iStatus & 0xFFFF7FFF;
SendEventToNearClient_TypeA(sOwnerH, DEF_OWNERTYPE_PLAYER, MSGID_EVENT_MOTION, DEF_OBJECTNULLACTION, NULL, NULL, NULL);
break;
}
}
// ******* Angel Code - End ******* //
Game.h
Add :
CODE
void SetAngelFlag1(short sOwnerH, char cOwnerType, BOOL bStatus);
void SetAngelFlag2(short sOwnerH, char cOwnerType, BOOL bStatus);
void SetAngelFlag3(short sOwnerH, char cOwnerType, BOOL bStatus);
void SetAngelFlag4(short sOwnerH, char cOwnerType, BOOL bStatus);
Its in there, just find it. I've gone through this code too many times... I'll repost if I find it.. I think I fixed it.. I'll test it later. You have to change the iValue >= 1 to iValue >= 1*10
Here is the Server-Side code for the Tutelary Angels System (TAS). It was coded by Aryes and Fixed by myself, i also added the Majesty upgrade for the Pendants of Tutelary Angels (PTA).
Client side part HERE !!!
PTA can be upgraded up to +10 and will give you a +x bonus in the tutelary angel's related stat. You have 100% chances of success rate when trying to upgrade a PTA, and if you fail, you'll loose one Majesty point.
You MUST add some checks in several places in the sources to prevent over-MP, over-HP and over-SP hack detection when you release a PTA. When you equip a STR+10 PTA, your char will be able to have some more HP, and when you'll release this PTA, your maximum allowed HP will be decreased, so your current HP will be > your max HP and you'll get dc by the server for hacking attempt.
This part of the code is the only one that won't be given, even if requested. It will be my way of preventing noobs from having angels on their server. Don't worry, this part is really the easiest one to code and angels works even if you don't code it (atleast it works until you release the PTA...).
Remember that you MUST use the coded client and add the angels code (client-side code that i'll post right after this one) in order to have the angels working, it won't work with 3.7 clients !
You can't request the angels from Gail, you'll have to code it by yourself or find another way to acquire the PTAs. Shop ? /command ? Drops ? ... ?
It's already added in KLKS 3.02 HG Sources but they've not been yet released.
Enjoy and remember that credits and thanks goes to Aryes, who did the biggest part of the work, i only fixed some bugs and added the MJ upgrade.
Game.cpp
in function bEquipItemHandler
Find :
CODE
if (iGetItemWeight(m_pClientList[iClientH]->m_pItemList[sItemIndex], 1) > m_pClientList[iClientH]->m_iStr*100) return FALSE;
cEquipPos = m_pClientList[iClientH]->m_pItemList[sItemIndex]->m_cEquipPos;
Right After, Add :
CODE
// ******* Angel Code - Begin ******* //
if (cEquipPos == DEF_EQUIPPOS_LFINGER) {
int iValue;
if (m_pClientList[iClientH]->m_pItemList[sItemIndex]->m_sIDnum != NULL) {
if (m_pClientList[iClientH]->m_pItemList[sItemIndex]->m_sIDnum == 908) {//AngelicPendant(STR)
iValue = (m_pClientList[iClientH]->m_pItemList[sItemIndex]->m_dwAttribute & 0xF0000000) >> 28;
if (iValue >= 1*10) {
m_pClientList[iClientH]->m_iStr += iValue;
}
SetAngelFlag1(iClientH, DEF_OWNERTYPE_PLAYER, TRUE);
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_SETTING_SUCCESS, NULL, NULL, NULL, NULL);
}
else if (m_pClientList[iClientH]->m_pItemList[sItemIndex]->m_sIDnum == 909) {//AngelicPendant(DEX)
iValue = (m_pClientList[iClientH]->m_pItemList[sItemIndex]->m_dwAttribute & 0xF0000000) >> 28;
if (iValue >= 1*10) {
m_pClientList[iClientH]->m_iDex += iValue;
}
SetAngelFlag2(iClientH, DEF_OWNERTYPE_PLAYER, TRUE);
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_SETTING_SUCCESS, NULL, NULL, NULL, NULL);
}
else if (m_pClientList[iClientH]->m_pItemList[sItemIndex]->m_sIDnum == 910) {//AngelicPendant(INT)
iValue = (m_pClientList[iClientH]->m_pItemList[sItemIndex]->m_dwAttribute & 0xF0000000) >> 28;
if (iValue >= 1*10) {
m_pClientList[iClientH]->m_iInt += iValue;
}
SetAngelFlag3(iClientH, DEF_OWNERTYPE_PLAYER, TRUE);
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_SETTING_SUCCESS, NULL, NULL, NULL, NULL);
}
else if (m_pClientList[iClientH]->m_pItemList[sItemIndex]->m_sIDnum == 911) {//AngelicPendant(MAG)
iValue = (m_pClientList[iClientH]->m_pItemList[sItemIndex]->m_dwAttribute & 0xF0000000) >> 28;
if (iValue >= 1*10) {
m_pClientList[iClientH]->m_iMag += iValue;
}
SetAngelFlag4(iClientH, DEF_OWNERTYPE_PLAYER, TRUE);
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_SETTING_SUCCESS, NULL, NULL, NULL, NULL);
}
}
}
// ******* Angel Code - End ******* //
In Function RealeaseItemHandler
Find :
CODE
switch (cEquipPos) {
Right After, Add :
CODE
// ******* Angel Code - Begin ******* //
case DEF_EQUIPPOS_LFINGER:
int iValue;
if (m_pClientList[iClientH]->m_pItemList[sItemIndex]->m_sIDnum != NULL) {
if (m_pClientList[iClientH]->m_pItemList[sItemIndex]->m_sIDnum == 908) {//AngelicPendant(STR)
iValue = (m_pClientList[iClientH]->m_pItemList[sItemIndex]->m_dwAttribute & 0xF0000000) >> 28;
if (iValue >= 1*10) {
m_pClientList[iClientH]->m_iStr -= iValue;
}
SetAngelFlag1(iClientH, DEF_OWNERTYPE_PLAYER, FALSE);
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_SETTING_SUCCESS, NULL, NULL, NULL, NULL);
}
else if (m_pClientList[iClientH]->m_pItemList[sItemIndex]->m_sIDnum == 909) {//AngelicPendant(DEX)
iValue = (m_pClientList[iClientH]->m_pItemList[sItemIndex]->m_dwAttribute & 0xF0000000) >> 28;
if (iValue >= 1*10) {
m_pClientList[iClientH]->m_iDex -= iValue;
}
SetAngelFlag2(iClientH, DEF_OWNERTYPE_PLAYER, FALSE);
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_SETTING_SUCCESS, NULL, NULL, NULL, NULL);
}
else if (m_pClientList[iClientH]->m_pItemList[sItemIndex]->m_sIDnum == 910) {//AngelicPendant(INT)
iValue = (m_pClientList[iClientH]->m_pItemList[sItemIndex]->m_dwAttribute & 0xF0000000) >> 28;
if (iValue >= 1*10) {
m_pClientList[iClientH]->m_iInt -= iValue;
}
SetAngelFlag3(iClientH, DEF_OWNERTYPE_PLAYER, FALSE);
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_SETTING_SUCCESS, NULL, NULL, NULL, NULL);
}
else if (m_pClientList[iClientH]->m_pItemList[sItemIndex]->m_sIDnum == 911) {//AngelicPendant(MAG)
iValue = (m_pClientList[iClientH]->m_pItemList[sItemIndex]->m_dwAttribute & 0xF0000000) >> 28;
if (iValue >= 1*10) {
m_pClientList[iClientH]->m_iMag -= iValue;
}
SetAngelFlag4(iClientH, DEF_OWNERTYPE_PLAYER, FALSE);
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_SETTING_SUCCESS, NULL, NULL, NULL, NULL);
}
}
break;
// ******* Angel Code - End ******* //
In function RequestItemUpgradeHandler
Add :
CODE
// ******* Angel Code - Begin ******* //
case 46:
switch (m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sIDnum) {
case 908: // AngelicPandent(STR)
case 909: // AngelicPandent(DEX)
case 910: // AngelicPandent(INT)
case 911: // AngelicPandent(MAG)
if (m_pClientList[iClientH]->m_iGizonItemUpgradeLeft <= 0) {
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMUPGRADEFAIL, 3, NULL, NULL, NULL);
return;
}
if(iValue >= 10){
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMUPGRADEFAIL, 3, NULL, NULL, NULL);
return;
}
switch (iValue){
case 0:
sItemUpgrade = 10;
break;
case 1:
sItemUpgrade = 11;
break;
case 2:
sItemUpgrade = 13;
break;
case 3:
sItemUpgrade = 16;
break;
case 4:
sItemUpgrade = 20;
break;
case 5:
sItemUpgrade = 25;
break;
case 6:
sItemUpgrade = 31;
break;
case 7:
sItemUpgrade = 38;
break;
case 8:
sItemUpgrade = 46;
break;
case 9:
sItemUpgrade = 55;
break;
default:
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMUPGRADEFAIL, 3, NULL, NULL, NULL);
return;
break;
}
if ((m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sTouchEffectValue1 != m_pClientList[iClientH]->m_sCharIDnum1) ||
(m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sTouchEffectValue2 != m_pClientList[iClientH]->m_sCharIDnum2) ||
(m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sTouchEffectValue3 != m_pClientList[iClientH]->m_sCharIDnum3)) {
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMUPGRADEFAIL, 2, NULL, NULL, NULL);
return;
}
if (( m_pClientList[iClientH]->m_iGizonItemUpgradeLeft - sItemUpgrade ) < 0) {
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMUPGRADEFAIL, 3, NULL, NULL, NULL);
return;
}
int iDicePTA;
iDicePTA = iDice(1,100);
if(iDicePTA <= 100){
m_pClientList[iClientH]->m_iGizonItemUpgradeLeft -= sItemUpgrade;
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_GIZONITEMUPGRADELEFT, m_pClientList[iClientH]->m_iGizonItemUpgradeLeft, NULL, NULL, NULL);
iValue++;
if (iValue > 10) iValue = 10;
dwTemp = m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute;
dwTemp = dwTemp & 0x0FFFFFFF;
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute = dwTemp | (iValue << 28);
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMATTRIBUTECHANGE, iItemIndex, m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute, NULL, NULL);
_bItemLog(DEF_ITEMLOG_UPGRADESUCCESS, iClientH, (int) -1, m_pClientList[iClientH]->m_pItemList[iItemIndex]);
}
else{
m_pClientList[iClientH]->m_iGizonItemUpgradeLeft--;
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_GIZONITEMUPGRADELEFT, m_pClientList[iClientH]->m_iGizonItemUpgradeLeft, NULL, NULL, NULL);
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMUPGRADEFAIL, 3, NULL, NULL, NULL);
}
break;
}
break;
// ******* Angel Code - End ******* //
Now add the following functions in Game.cpp :
CODE
// ******* Angel Code - Begin ******* //
void CGame::SetAngelFlag1(short sOwnerH, char cOwnerType, BOOL bStatus)
{
switch (cOwnerType) {
case DEF_OWNERTYPE_PLAYER:
if (m_pClientList[sOwnerH] == NULL) return;
if (bStatus == TRUE) m_pClientList[sOwnerH]->m_iStatus = m_pClientList[sOwnerH]->m_iStatus | 0x00001000;
else m_pClientList[sOwnerH]->m_iStatus = m_pClientList[sOwnerH]->m_iStatus & 0xFFFFEFFF;
SendEventToNearClient_TypeA(sOwnerH, DEF_OWNERTYPE_PLAYER, MSGID_EVENT_MOTION, DEF_OBJECTNULLACTION, NULL, NULL, NULL);
break;
}
}
void CGame::SetAngelFlag2(short sOwnerH, char cOwnerType, BOOL bStatus)
{
switch (cOwnerType) {
case DEF_OWNERTYPE_PLAYER:
if (m_pClientList[sOwnerH] == NULL) return;
if (bStatus == TRUE) m_pClientList[sOwnerH]->m_iStatus = m_pClientList[sOwnerH]->m_iStatus | 0x00002000;
else m_pClientList[sOwnerH]->m_iStatus = m_pClientList[sOwnerH]->m_iStatus & 0xFFFFDFFF;
SendEventToNearClient_TypeA(sOwnerH, DEF_OWNERTYPE_PLAYER, MSGID_EVENT_MOTION, DEF_OBJECTNULLACTION, NULL, NULL, NULL);
break;
}
}
void CGame::SetAngelFlag3(short sOwnerH, char cOwnerType, BOOL bStatus)
{
switch (cOwnerType) {
case DEF_OWNERTYPE_PLAYER:
if (m_pClientList[sOwnerH] == NULL) return;
if (bStatus == TRUE) m_pClientList[sOwnerH]->m_iStatus = m_pClientList[sOwnerH]->m_iStatus | 0x00004000;
else m_pClientList[sOwnerH]->m_iStatus = m_pClientList[sOwnerH]->m_iStatus & 0xFFFFBFFF;
SendEventToNearClient_TypeA(sOwnerH, DEF_OWNERTYPE_PLAYER, MSGID_EVENT_MOTION, DEF_OBJECTNULLACTION, NULL, NULL, NULL);
break;
}
}
void CGame::SetAngelFlag4(short sOwnerH, char cOwnerType, BOOL bStatus)
{
switch (cOwnerType) {
case DEF_OWNERTYPE_PLAYER:
if (m_pClientList[sOwnerH] == NULL) return;
if (bStatus == TRUE) m_pClientList[sOwnerH]->m_iStatus = m_pClientList[sOwnerH]->m_iStatus | 0x00008000;
else m_pClientList[sOwnerH]->m_iStatus = m_pClientList[sOwnerH]->m_iStatus & 0xFFFF7FFF;
SendEventToNearClient_TypeA(sOwnerH, DEF_OWNERTYPE_PLAYER, MSGID_EVENT_MOTION, DEF_OBJECTNULLACTION, NULL, NULL, NULL);
break;
}
}
// ******* Angel Code - End ******* //
Game.h
Add :
CODE
void SetAngelFlag1(short sOwnerH, char cOwnerType, BOOL bStatus);
void SetAngelFlag2(short sOwnerH, char cOwnerType, BOOL bStatus);
void SetAngelFlag3(short sOwnerH, char cOwnerType, BOOL bStatus);
void SetAngelFlag4(short sOwnerH, char cOwnerType, BOOL bStatus);
Its in there, just find it. I've gone through this code too many times... I'll repost if I find it.. I think I fixed it.. I'll test it later. You have to change the iValue >= 1 to iValue >= 1*10
or take it otu 2.24d client and hg so u know it works have fun
<img src='http://lifeplaysu420.com/unknow/nightsign.png' border='0' alt='user posted image' /><br>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>Wanna make money for surfing the net sing up at <br><a href='http://www.cashfiesta.com/php/join.php? ... yprivitera' target='_blank'>cash fiesta</a><br>its all free hey why ntot make money while fucking around on the computer<br><br><br>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
AddKid use CODE Tag while posting sources.
<img src='http://www.hot.ee/carvanho/taavi.png' border='0' alt='user posted image' /><br><br><img src='http://www.hot.ee/carvanho/Elvine.png' border='0' alt='user posted image' /><br><img src='http://www.hot.ee/carvanho/LieroX.png' border='0' alt='user posted image' /><br><img src='http://www.hot.ee/carvanho/Football.png' border='0' alt='user posted image' />
addkid stop assuming im a complete retard already ffs..
that doesnt look anything even remotely like the beginning of the angel code you posted.. and iValue doesnt even exist in my sources..
(well not in any of the angel code)
no clue what these sources started out as but they arent anything like the sources you lot all refer to
and im not changing sources cause it took me forever to get held, apoc, crafting etc to work
P.S. i have posted a fek load of code myself and u still refer to me as though im some choob idiot FFS i learnt C++ to a standard where i started posting code of my own in about 10 days.....
Code: Select all
// ******* Angel Code - Begin ******* //
case 16: // Angel STR//AngelicPandent(STR)
iTemp = (m_pClientList[iClientH]->m_pItemList[sItemIndex]->m_dwAttribute & 0xF0000000) >> 28;
m_pClientList[iClientH]->m_iAngelicStr = iTemp;
SetAngelFlag(iClientH, DEF_OWNERTYPE_PLAYER, 1, iTemp);
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_SETTING_SUCCESS, NULL, NULL, NULL, NULL);
break;
case 17: // Angel DEX //AngelicPandent(DEX)
iTemp = (m_pClientList[iClientH]->m_pItemList[sItemIndex]->m_dwAttribute & 0xF0000000) >> 28;
m_pClientList[iClientH]->m_iAngelicDex = iTemp;
SetAngelFlag(iClientH, DEF_OWNERTYPE_PLAYER, 2, iTemp);
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_SETTING_SUCCESS, NULL, NULL, NULL, NULL);
break;
case 18: // Angel INT//AngelicPandent(INT)
iTemp = (m_pClientList[iClientH]->m_pItemList[sItemIndex]->m_dwAttribute & 0xF0000000) >> 28;
m_pClientList[iClientH]->m_iAngelicInt = iTemp;
SetAngelFlag(iClientH, DEF_OWNERTYPE_PLAYER, 3, iTemp);
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_SETTING_SUCCESS, NULL, NULL, NULL, NULL);
break;
case 19: // Angel MAG//AngelicPandent(MAG)
iTemp = (m_pClientList[iClientH]->m_pItemList[sItemIndex]->m_dwAttribute & 0xF0000000) >> 28;
m_pClientList[iClientH]->m_iAngelicMag = iTemp;
SetAngelFlag(iClientH, DEF_OWNERTYPE_PLAYER, 4, iTemp);
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_SETTING_SUCCESS, NULL, NULL, NULL, NULL);
break;
(well not in any of the angel code)
no clue what these sources started out as but they arent anything like the sources you lot all refer to
and im not changing sources cause it took me forever to get held, apoc, crafting etc to work
P.S. i have posted a fek load of code myself and u still refer to me as though im some choob idiot FFS i learnt C++ to a standard where i started posting code of my own in about 10 days.....
really, you are that blind??ADDKiD wrote:There's such a button? :blink:Tafka12 wrote: AddKid use CODE Tag while posting sources.
I'll post Sources later... Well this Friday for me... ^_^ I have Held working now. Thanks to Juggalo's files he released while back, Apoc aswell...
<span style='color:blue'><span style='font-size:19pt;line-height:100%'><u><b>FUCK Helbreath!</b></u></span></span><br><br><span style='color:gray'><a href='http://www2.analystica.com/users/anttu/online/ngd' target='_blank'>ngdnetwork</a> OFFICIAL WEBSITE OF Northern Game Developers. Do visit! (THEY ARE UP!)<br><a href='http://project3d.x.am' target='_blank'>Project3d development forum</a> plz join and discuss,develop,give ideas,feedback. Anything goes as long it helps the project!</span><br><br>Zepto Znote 6625WD: 1.8Ghz dual core, 2GB, 512mb graphics card(dedicated), 160GB HDD<br><img src='http://www.signaturebar.com/uploads/images/10111.jpg' border='0' alt='user posted image' /><br><img src='http://www.signaturebar.com/uploads/images/13229.jpg' border='0' alt='user posted image' /><br><img src='http://www.signaturebar.com/uploads/images/8852.png' border='0' alt='user posted image' />
iValue is for the upgrading of the angel, it checks so you get + 1 to the stat when you upgrade.xenx wrote: addkid stop assuming im a complete retard already ffs..
that doesnt look anything even remotely like the beginning of the angel code you posted.. and iValue doesnt even exist in my sources..Code: Select all
// ******* Angel Code - Begin ******* // case 16: // Angel STR//AngelicPandent(STR) iTemp = (m_pClientList[iClientH]->m_pItemList[sItemIndex]->m_dwAttribute & 0xF0000000) >> 28; m_pClientList[iClientH]->m_iAngelicStr = iTemp; SetAngelFlag(iClientH, DEF_OWNERTYPE_PLAYER, 1, iTemp); SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_SETTING_SUCCESS, NULL, NULL, NULL, NULL); break; case 17: // Angel DEX //AngelicPandent(DEX) iTemp = (m_pClientList[iClientH]->m_pItemList[sItemIndex]->m_dwAttribute & 0xF0000000) >> 28; m_pClientList[iClientH]->m_iAngelicDex = iTemp; SetAngelFlag(iClientH, DEF_OWNERTYPE_PLAYER, 2, iTemp); SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_SETTING_SUCCESS, NULL, NULL, NULL, NULL); break; case 18: // Angel INT//AngelicPandent(INT) iTemp = (m_pClientList[iClientH]->m_pItemList[sItemIndex]->m_dwAttribute & 0xF0000000) >> 28; m_pClientList[iClientH]->m_iAngelicInt = iTemp; SetAngelFlag(iClientH, DEF_OWNERTYPE_PLAYER, 3, iTemp); SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_SETTING_SUCCESS, NULL, NULL, NULL, NULL); break; case 19: // Angel MAG//AngelicPandent(MAG) iTemp = (m_pClientList[iClientH]->m_pItemList[sItemIndex]->m_dwAttribute & 0xF0000000) >> 28; m_pClientList[iClientH]->m_iAngelicMag = iTemp; SetAngelFlag(iClientH, DEF_OWNERTYPE_PLAYER, 4, iTemp); SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_SETTING_SUCCESS, NULL, NULL, NULL, NULL); break;
(well not in any of the angel code)
no clue what these sources started out as but they arent anything like the sources you lot all refer to
and im not changing sources cause it took me forever to get held, apoc, crafting etc to work
P.S. i have posted a fek load of code myself and u still refer to me as though im some choob idiot FFS i learnt C++ to a standard where i started posting code of my own in about 10 days.....
i realise that in the angel code posted further up, iValue is exactly what u have stated, but in the angel code in my sources, there is no iValue,
i thought it could be iTemp instead, but iv tried editing that, alot with almost every other variable in there that i can think of and nothing seems to affect the + stat value of angels
i thought it could be iTemp instead, but iv tried editing that, alot with almost every other variable in there that i can think of and nothing seems to affect the + stat value of angels