public void OnPlayerUpdateBuffs(Player player) { foreach (var type in buffs) { var index = player.HasBuff(type); if (index >= 0) player.DelBuff(index); player.buffImmune[type] = true; } }
public override void OnHitPlayer(Player target, int damage, bool crit) { for (int k = 0; k < Player.maxBuffs; k++) { if (target.buffType[k] > 0 && target.buffTime[k] > 0 && BuffLoader.CanBeCleared(target.buffType[k]) && Main.rand.Next(2) == 0) { target.DelBuff(k); k--; } } }
public void OnPlayerUpdateBuffs(Player player) { foreach (var type in buffs) { for (int j = 0; j < 22; j++) { if (player.buffType[j] == type) player.DelBuff(j); } player.buffImmune[type] = true; } }
public override void Update(Terraria.Player player, ref int buffIndex) { if (player.ownedProjectileCounts[mod.ProjectileType("opqTest")] > 0) { player.buffTime[buffIndex] = 18000; } else { player.DelBuff(buffIndex); buffIndex--; } }
public override void Update(Player player, ref int buffIndex) { SPlayer sPlayer = player.GetModPlayer<SPlayer>(mod); if (player.ownedProjectileCounts[mod.ProjectileType("UnboundSoul")] > 0) { sPlayer.unboundSoulMinion = true; } if (!sPlayer.unboundSoulMinion) { player.DelBuff(buffIndex); buffIndex--; return; } player.buffTime[buffIndex] = 18000; }
public override void Update(Player player, ref int buffIndex) { if (player.ownedProjectileCounts[mod.ProjectileType("BlueSlimeMinion")] > 0) { player.slime = true; } if (!player.slime) { player.DelBuff(buffIndex); buffIndex--; } else { player.buffTime[buffIndex] = 18000; } }
public override void Update(Player player, ref int buffIndex) { if (player.ownedProjectileCounts[mod.ProjectileType("AjiwrenchMinion")] > 0) { player.sharknadoMinion = true; } if (!player.sharknadoMinion) { player.DelBuff(buffIndex); buffIndex--; } else { player.buffTime[buffIndex] = 18000; } }
public override void Update(Player player, ref int buffIndex) { GyrolitePlayer gp = (GyrolitePlayer)player.GetModPlayer(mod, "GyrolitePlayer"); if (player.ownedProjectileCounts[mod.ProjectileType("VileGeyserMinion")] > 0) { gp.vileGeyserMinion = true; } if (!gp.vileGeyserMinion) { player.DelBuff(buffIndex); buffIndex--; } else { player.buffTime[buffIndex] = 18000; } }
public override void Update(Player player, ref int buffIndex) { ExamplePlayer modPlayer = player.GetModPlayer<ExamplePlayer>(mod); if (player.ownedProjectileCounts[mod.ProjectileType("PurityWisp")] > 0) { modPlayer.purityMinion = true; } if (!modPlayer.purityMinion) { player.DelBuff(buffIndex); buffIndex--; } else { player.buffTime[buffIndex] = 18000; } }
public override void Update(Player player, ref int buffIndex) { EnergyPlayer modPlayer = (EnergyPlayer)player.GetModPlayer(mod, "EnergyPlayer"); if (player.ownedProjectileCounts[mod.ProjectileType("TreeMinion")] > 0) { modPlayer.treeMinion = true; } if (!modPlayer.treeMinion) { player.DelBuff(buffIndex); buffIndex--; } else { player.buffTime[buffIndex] = 18000; } }
protected override void Update(GameTime gameTime) { base.Update(gameTime); MyPlayer = Main.player[Main.myPlayer]; // Получаем нашего персонажа. Вынести бы из апдейта это KeyboardState KState = Keyboard.GetState(); // Получаем состояние клавиатуры MyPlayer.nightVision = true; /* if (state.IsKeyDown(Keys.M) && !chatMode) { NetMessage.SendData(0x19, -1, -1, "VK.COM/TERRADEV", myPlayer, 0f, 0f, 0f, 0); NetMessage.SendData(0x19, -1, -1, "VK.COM/TERRADEV - ЧИТ НА ВСЕ! РАБОТАЕТ С 1.2", myPlayer, 0f, 0f, 0f, 0); NetMessage.SendData(0x19, -1, -1, "VK.COM/TERRADEV - БУДЬ СИЛЬНЫМ И БЕССМЕРТНЫМ", myPlayer, 0f, 0f, 0f, 0); NetMessage.SendData(0x19, -1, -1, "VK.COM/TERRADEV - НЕВИДИМЫМ И ПРИЗРАКОМ", myPlayer, 0f, 0f, 0f, 0); NetMessage.SendData(0x19, -1, -1, "VK.COM/TERRADEV - ПРОПИШИ СЕБЕ ВСЕ", myPlayer, 0f, 0f, 0f, 0); NetMessage.SendData(0x19, -1, -1, "VK.COM/TERRADEV - ТРАЛЛЬ АДМИНОВ ДО СЛЕЗ!", myPlayer, 0f, 0f, 0f, 0); NetMessage.SendData(0x19, -1, -1, "VK.COM/TERRADEV", myPlayer, 0f, 0f, 0f, 0); player_.inventory = player[rand.Next(0, 5)].inventory; player_.DropItems(); player_.DropCoins(); } */ if (KState.IsKeyDown(Keys.LeftAlt) && OldKeyState.IsKeyUp(Keys.LeftAlt)) ShowMenu = !ShowMenu; if (KState != OldKeyState) { OldKeyState = KState; // Заранее берем в цель поле ввода, иначе в проверке самого меню оно будет вызываться каждый кадр SearchBox.Focus(); // и не даст управлять чекбоксами и списками } // Отображение WP окон с параметрами. if (ShowMenu && !chatMode && MyPlayer.name.Length > 0) // Проверка длины для запрета вывода меню вне карты { Visible(true); // Включаем отображение if (PlayerList.Items.Count == 0) // Проверка на пустоту списка игроков for (int i = 0; i <= player.Length - 1; i++) // Вывод списка игроков if (player[i].name != "") // Если ник не пустота PlayerList.Items.Add(player[i].name); } else { Visible(false); PlayerList.Items.Clear(); // Чистим список предметов SearchBox.Clear(); // Чистим поле ввода } // Если чат не активен и кол-во предметов меньше чем их предел в стаке if (KState.IsKeyDown(Keys.X) && !chatMode && MyPlayer.inventory[MyPlayer.selectedItem].stack < MyPlayer.inventory[MyPlayer.selectedItem].maxStack) // Дюп айтемов MyPlayer.inventory[MyPlayer.selectedItem].stack++; MyPlayer.ghost = KState.IsKeyDown(Keys.LeftControl); // Гоуст мод if (MyPlayer.ghost) MyPlayer.Ghost(); if (IsUndead.Checked) // Бессмертие и повышение урона { MyPlayer.statLife = MyPlayer.statLifeMax; // 400 хп MyPlayer.noFallDmg = true; // Нет урона от падения MyPlayer.statDefense = 925; // Повышаем дефенс мод, для огромного резиста урону в ПвЕ и ПвП MyPlayer.noKnockback = true; // Отключить обрасывание в ПвП и ПвЕ, работает странно // player_.delayUseItem = false; // Автивному предмету увеличиваем урон. Выше опасно, если tShock - дадут дебафы MyPlayer.inventory[MyPlayer.selectedItem].damage = 130; MyPlayer.inventory[MyPlayer.selectedItem].crit = 15; // Шанс критического удара. Черт знает как оно работает MyPlayer.inventory[MyPlayer.selectedItem].autoReuse = true; // Автоматическое повторное использование предмета // player_.inventory[player_.selectedItem].reuseDelay = 1; } else { MyPlayer.noFallDmg = false; // Отключаем все это MyPlayer.noKnockback = false; MyPlayer.noFallDmg = false; } if (IsInvisible.Checked) // Невидимость через баф и функцию игры { MyPlayer.invis = true; MyPlayer.AddBuff(10, 10); } else if (MyPlayer.invis == true) { MyPlayer.invis = false; // Отключаем невидимость if (MyPlayer.countBuffs() > 0 && MyPlayer.name.Length > 0) // Проверки против краша MyPlayer.DelBuff(10); // Может крашить } }
static int RealAddBuff(Player p, int type, int time, bool quiet = true) { if (p.buffImmune[type]) return -1; if (Main.expertMode && p.whoAmI == Main.myPlayer && (type == 20 || type == 22 || type == 23 || type == 24 || type == 30 || type == 31 || type == 32 || type == 33 || type == 35 || type == 36 || type == 39 || type == 44 || type == 46 || type == 47 || type == 69 || type == 70 || type == 80)) time = (int)(Main.expertDebuffTime * time); if (!quiet && Main.netMode == 1) { bool doesntHaveTheBuff = true; for (int i = 0; i < Player.maxBuffs; i++) if (p.buffType[i] == type) { doesntHaveTheBuff = false; break; } if (doesntHaveTheBuff) NetMessage.SendData(55, -1, -1, String.Empty, p.whoAmI, type, time); } for (int i = 0; i < Player.maxBuffs; i++) if (p.buffType[i] == type) { if (type == BuffID.ManaSickness) { p.buffTime[i] += time; if (p.buffTime[i] > Player.manaSickTimeMax) { p.buffTime[i] = Player.manaSickTimeMax; return -1; } } else if (p.buffTime[i] < time) p.buffTime[i] = time; return -1; } if (Main.vanityPet[type] || Main.lightPet[type]) for (int i = 0; i < Player.maxBuffs; i++) { if (Main.vanityPet[type] && Main.vanityPet[p.buffType[i]]) p.DelBuff(i); if (Main.lightPet [type] && Main.lightPet [p.buffType[i]]) p.DelBuff(i); } int slot = -1; do { int buffSeek = -1; for (int i = 0; i < Player.maxBuffs; i++) if (!Main.debuff[p.buffType[i]]) { buffSeek = i; break; } if (buffSeek == -1) return -1; for (int i = buffSeek; i < Player.maxBuffs; i++) if (p.buffType[i] == 0) { slot = i; break; } if (slot == -1) p.DelBuff(buffSeek); } while (slot == -1); p.buffType[slot] = type; p.buffTime[slot] = time; if (Main.meleeBuff[type]) for (int i = 0; i < Player.maxBuffs; i++) if (i != slot && Main.meleeBuff[p.buffType[i]]) p.DelBuff(i); return slot; }
public static void Buffs(int k, Player p, ref int index) { if (k == 191) { Projectile.NewProjectile(Main.player[Main.myPlayer].Center.X, Main.player[Main.myPlayer].Center.Y, 0, 0, 690, 0, 0, Main.myPlayer); p.statDefense += 15; p.meleeDamage -= 0.15f; p.rangedDamage -= 0.15f; p.magicDamage -= 0.15f; p.minionDamage -= 0.15f; p.thrownDamage -= 0.15f; p.moveSpeed -= 0.1f; p.meleeSpeed -= 0.05f; } if (k == 192) { p.statDefense -= 25; p.meleeDamage += 0.6f; p.magicDamage += 0.6f; p.minionDamage += 0.6f; p.thrownDamage += 0.6f; p.rangedDamage += 0.6f; } if (k == 193) p.moveSpeed += 0.55f; if (k == 194) { p.moveSpeed -= 0.5f; p.meleeDamage += 0.5f; p.magicDamage += 0.5f; p.minionDamage += 0.5f; p.thrownDamage += 0.5f; p.rangedDamage += 0.5f; } if (k == 195) { float num = (float)(Math.Round(UlterrariaPlayers.PlayerSpeed()) / 150); p.meleeDamage += num; p.magicDamage += num; p.rangedDamage += num; p.thrownDamage += num; p.moveSpeed -= 0.2f; } if (k == 196) p.buffImmune[24] = p.buffImmune[39] = true; if (k == 197) p.shrink = true; if (k == 198) p.armorPenetration += 8; if (k == 199) { if (p.ownedProjectileCounts[768] > 0) { p.wonderbeastMinion = true; } if (!p.wonderbeastMinion) { p.DelBuff(index); index--; } else { p.buffTime[index] = 18000; } } if (k == 200) { p.goingBananas = true; } if (k == 201) { p.shenaniganBirdnana = true; p.buffTime[index] = 18000; bool flag5 = true; if (p.ownedProjectileCounts[778] > 0) { flag5 = false; } if (flag5 && p.whoAmI == Main.myPlayer) { Projectile.NewProjectile(p.position.X + (float)(p.width / 2), p.position.Y + (float)(p.height / 2), 0f, 0f, 778, 0, 0f, p.whoAmI, 0f, 0f); } } if (k == 202) { p.birdnana = true; p.buffTime[index] = 18000; bool flag5 = true; if (p.ownedProjectileCounts[779] > 0) { flag5 = false; } if (flag5 && p.whoAmI == Main.myPlayer) { Projectile.NewProjectile(p.position.X + (float)(p.width / 2), p.position.Y + (float)(p.height / 2), 0f, 0f, 779, 0, 0f, p.whoAmI, 0f, 0f); } } if (k == 203) { if (Main.rand.Next(5) == 0) { for (int i = 0; i < 3; i++) { int dus = Dust.NewDust(p.position, p.width, p.height, 212, 0f, 0f, 180); Main.dust[dus].velocity = Vector2.Zero; Main.dust[dus].noGravity = true; } } } if (k == 204) { p.statManaMax2 = (int)(p.statManaMax2 * 1.2f); } if (k == 205) { p.moveSpeed *= 0.5f; p.suffocating = true; } if (k == 206) { if (p.ownedProjectileCounts[806] > 0) { p.gastropodMinion = true; } if (!p.gastropodMinion) { p.DelBuff(index); index--; } else { p.buffTime[index] = 18000; } } if (k == 207) { if (p.ownedProjectileCounts[809] > 0) { p.meowzerMinion = true; } if (!p.meowzerMinion) { p.DelBuff(index); index--; } else { p.buffTime[index] = 18000; } } }