public static Int32 GUC_PROCESSMANA_RELEASE(String message) { Process process = Process.ThisProcess(); try { #region oV int npc_ptr = zCParser.getParser(process).GetInstance(); int manaInvested = zCParser.getParser(process).getIntParameter(); oCNpc npc = new oCNpc(process, npc_ptr); int spellID = npc.GetActiveSpellNr(); Spell spell = null; Spell.SpellDict.TryGetValue(spellID, out spell); if (spell == null || spell.processMana.Length <= 1)//Stop the spell! { zCParser.getParser(process).SetReturn(3); } else { zCParser.getParser(process).SetReturn(2); } #endregion } catch (Exception ex) { zERROR.GetZErr(process).Report(2, 'G', ex.ToString(), 0, "Externals.cs", 0); } return(0); }
public static Int32 GUC_PROCESSMANA(String message) { Process process = Process.ThisProcess(); try { #region oV //int npc_ptr = zCParser.getParser(process).GetInstance(); //int manaInvested = zCParser.getParser(process).getIntParameter(); //oCNpc npc = new oCNpc(process, npc_ptr); //int spellID = npc.GetActiveSpellNr(); //Spell spell = null; //Spell.SpellDict.TryGetValue(spellID, out spell); //if (spell == null)//Stop the spell! //{ // zCParser.getParser(process).SetReturn(3); // return 0; //} //if (spell.processMana.Length == 0) //{ // zCParser.getParser(process).SetReturn(3);//Stop // return 0; //} //if (spell.processMana.Length == 1) //{ // if (npc.MP >= spell.processMana[0]) // zCParser.getParser(process).SetReturn(2);//Start // else // zCParser.getParser(process).SetReturn(3);//Stop // return 0; //} //int level = npc.GetActiveSpellLevel(); //zERROR.GetZErr(process).Report(2, 'G', "Spell-Level: " + level, 0, "Externals.cs", 0); //if (npc.MP < spell.processMana[level]) //{ // zCParser.getParser(process).SetReturn(0); // return 0; //} //if (level + 1 == spell.processMana.Length)//Dont Invest anymore //{ // zCParser.getParser(process).SetReturn(0); // return 0; //} //npc.MP -= (npc.MP >= spell.processMana[level]) ? spell.processMana[level] : npc.MP; //zCParser.getParser(process).SetReturn(4); //return 0; #endregion #region oV //int npc_ptr = zCParser.getParser(process).GetInstance(); //int manaInvested = zCParser.getParser(process).getIntParameter(); //oCNpc npc = new oCNpc(process, npc_ptr); //int spellID = npc.GetActiveSpellNr(); //Spell spell = null; //Spell.SpellDict.TryGetValue(spellID, out spell); //if (spell == null)//Stop the spell! //{ // zCParser.getParser(process).SetReturn(3); // return 0; //} //if (spell.processMana.Length == 0) //{ // zCParser.getParser(process).SetReturn(3);//Stop // return 0; //} //if (spell.processMana.Length == 1) //{ // if (npc.MP >= spell.processMana[0]) // zCParser.getParser(process).SetReturn(2);//Start // else // zCParser.getParser(process).SetReturn(3);//Stop // return 0; //} //int level = npc.GetActiveSpellLevel(); //if (npc.MP < spell.processMana[level]) //{ // zCParser.getParser(process).SetReturn(0); // return 0; //} //if (level + 1 == spell.processMana.Length)//Dont Invest anymore //{ // zCParser.getParser(process).SetReturn(0); // return 0; //} //npc.MP -= (npc.MP >= spell.processMana[level]) ? spell.processMana[level] : npc.MP; //zCParser.getParser(process).SetReturn(4); //return 0; #endregion #region SN int npc_ptr = zCParser.getParser(process).GetInstance(); int manaInvested = zCParser.getParser(process).getIntParameter(); oCNpc npc = new oCNpc(process, npc_ptr); int spellID = npc.GetActiveSpellNr(); if (!npcProcessManaList.ContainsKey(npc_ptr)) { npcProcessManaList.Add(npc_ptr, 0); } Spell spell = null; Spell.SpellDict.TryGetValue(spellID, out spell); if (spell == null || spell.processMana == null || spell.processMana.Length == 0) { npcProcessManaList[npc_ptr] = 0; zCParser.getParser(process).SetReturn(3); return(0); } if (spell.processMana.Length == 1) { npcProcessManaList[npc_ptr] = 0; if (npc.MP >= spell.processMana[0]) { zCParser.getParser(process).SetReturn(2);//Start } else { zCParser.getParser(process).SetReturn(3);//Stop } return(0); } int level = 0; int levelVal = 0; getLevel(manaInvested, ref level, ref levelVal, spell.processMana); if (level == 0) { npcProcessManaList[npc_ptr] = 0; zCParser.getParser(process).SetReturn(4); return(0); } else if (level == spell.processMana.Length - 1) { zCParser.getParser(process).SetReturn(0); return(0); } else if (level != npcProcessManaList[npc_ptr]) { npc.MP -= (npc.MP >= spell.processMana[level - 1]) ? spell.processMana[level - 1] : npc.MP; if (npc.MP == 0) { zCParser.getParser(process).SetReturn(0); } else { zCParser.getParser(process).SetReturn(4); npcProcessManaList[npc_ptr]++; } } //npc.MP -= (npc.MP >= spell.processMana[level]) ? spell.processMana[level] : npc.MP; zCParser.getParser(process).SetReturn(4); return(0); #endregion //0 => Dont Invest //1 => ReceiveInvest //2 => SendCast //3 => SendStop //4 => Next Level //8 => SPL_STATUS_CANINVEST_NO_MANADEC //SPL_FORCEINVEST = 1 << 16 //zCParser.getParser(process).SetReturn(2); } catch (Exception ex) { zERROR.GetZErr(process).Report(2, 'G', ex.ToString(), 0, "Externals.cs", 0); } return(0); }