コード例 #1
0
ファイル: Fishing.cs プロジェクト: VORPCORE/VORP-Fishing
        private async Task DebugFishingMG()
        {
            string debugText = "";

            try
            {
                FishingMinigame.GetMiniGameState();


                debugText += $"State: {FishingMinigame.State} \n";
                debugText += $"TrowDist: {FishingMinigame.ThrowDistance} \n";
                debugText += $"Distance: {FishingMinigame.Distance} \n";
                debugText += $"Curvature: {FishingMinigame.Curvature} \n";
                debugText += $"N0: {FishingMinigame.Unknown0} \n";
                debugText += $"HookFlag: {FishingMinigame.HookFlag} \n";
                debugText += $"TransFlag: {FishingMinigame.TransitionFlag} \n";
                debugText += $"F Ent: {FishingMinigame.FishEntity} \n";
                debugText += $"F Weight: {FishingMinigame.FishWeight} \n";
                debugText += $"F Power: {FishingMinigame.FishPower} \n";
                debugText += $"Time: {FishingMinigame.ScriptTimer} \n";
                debugText += $"Bobber Ent: {FishingMinigame.BobberEntity} \n";
                debugText += $"Hook Ent: {FishingMinigame.HookEntity} \n";
                debugText += $"RShake*: {FishingMinigame.RodShakeMultiplier} \n";
                debugText += $"N1: {FishingMinigame.Unknown1} \n";
                debugText += $"N2: {FishingMinigame.Unknown2} \n";
                debugText += $"N3: {FishingMinigame.Unknown3} \n";
                debugText += $"ShakeFight*: {FishingMinigame.ShakeFightMultiplier} \n";
                debugText += $"FishSizeIx: {FishingMinigame.FishSizeIndex} \n";
                debugText += $"N4: {FishingMinigame.Unknown4} \n";
                debugText += $"N5: {FishingMinigame.Unknown5} \n";
                debugText += $"Tension: {FishingMinigame.Tension} \n";
                debugText += $"RodDirX: {FishingMinigame.RodDirX} \n";
                debugText += $"RodDirY: {FishingMinigame.RodDirY} \n";
                debugText += $"N6: {FishingMinigame.Unknown6} \n";
                debugText += $"N7: {FishingMinigame.Unknown7} \n";
                debugText += $"N8: {FishingMinigame.Unknown8} \n";
                debugText += $"N9: {FishingMinigame.Unknown9} \n";
            }
            catch (Exception e)
            {
                Debug.WriteLine(e.Message);
            }

            string fishText = "";

            foreach (var ent in fishesInArea)
            {
                fishText += Utils.FishModels[API.GetEntityModel(ent)] + " Bait: " + API.DecorGetFloat(ent, "FBaitInt") + "\n";
            }

            await Utils.DrawTxt(debugText, 0.1f, 0.2f, 0.25f, 0.25f, 255, 255, 255, 255, false, false);

            await Utils.DrawTxt(fishText, 0.75f, 0.1f, 0.25f, 0.25f, 255, 255, 255, 255, false, false);
        }
コード例 #2
0
ファイル: Fishing.cs プロジェクト: VORPCORE/VORP-Fishing
        public async Task CheckFishingState()
        {
            FishingMinigame.GetMiniGameState();

            int   actualState       = FishingMinigame.State;
            int   catchFish         = fish;
            float catchFishDistance = fishDistance;

            if (FishingMinigame.State == actualState && !hooked)
            {
                if (catchFish != -1)
                {
                    float baitInt = API.DecorGetFloat(catchFish, "FBaitInt");

                    if (baitInt > 20f && catchFishDistance < 3.0f)
                    {
                        uint  model = (uint)API.GetEntityModel(catchFish);
                        float size  = API.DecorGetFloat(catchFish, "FSize");
                        float ozs   = Utils.fishOzs(model, size);
                        actualReelSpeed = Utils.Lerp(reelSpeeds[1] * 0.7f, reelSpeeds[0] * 0.7f, ozs / 500f);
                        hooked          = true;
                        isCatched       = false;
                        API.SetEntityInvincible(catchFish, true);
                        API.SetPedConfigFlag(catchFish, 17, true);
                        API.SetBlockingOfNonTemporaryEvents(catchFish, true);
                        API.ClearPedTasksImmediately(catchFish, 0, 1);
                        Function.Call((Hash)0x1F298C7BD30D1240, API.PlayerPedId());
                        Function.Call((Hash)0x1A52076D26E09004, API.PlayerPedId(), catchFish);
                        FishingMinigame.TransitionFlag = 4;
                        FishingMinigame.FishEntity     = catchFish;
                        FishingMinigame.FishWeight     = 3.0f;
                        FishingMinigame.FishPower      = 1.0f;
                        catchedFish = catchFish;
                        Vector3 hookCoords = API.GetEntityCoords(FishingMinigame.HookEntity, true, true);
                        Function.Call(Hash.TASK_SMART_FLEE_COORD, catchFish, hookCoords.X, hookCoords.Y, hookCoords.Z, 10f, 1000, 8, 3f);
                        catchedTime = API.GetGameTimer();
                        lastFlee    = catchedTime;
                        API.DecorSetFloat(catchedFish, "FBaitInt", 0f);
                        FishingMinigame.SetMiniGameState();
                    }
                }
            }
            else if (actualState == 12)
            {
                if (!isCatched)
                {
                    FX_Drip = Function.Call <int>(Hash.START_NETWORKED_PARTICLE_FX_LOOPED_ON_ENTITY,
                                                  "scr_mg_fishing_drips", catchFish, 0f, 0f, 0f, 0f, 0f, 0f, 1f, 0, 0, 0);
                    Function.Call(Hash.SET_PARTICLE_FX_LOOPED_EVOLUTION, FX_Drip, "fade", 0f, false);
                    isCatched = true;
                }

                if (API.PromptHasHoldModeCompleted(BackPrompt))
                {
                    FishingMinigame.TransitionFlag = 64;
                    FishingMinigame.SetMiniGameState();

                    await Delay(2000);

                    API.SetBlockingOfNonTemporaryEvents(catchFish, false);
                    API.SetEntityInvincible(catchFish, false);
                    API.SetPedConfigFlag(catchFish, 17, false);

                    hooked = false;

                    API.DeleteEntity(ref catchFish);
                    API.DeletePed(ref catchFish);
                }

                if (API.PromptHasHoldModeCompleted(SavePrompt) && !givedFish)
                {
                    API.PromptSetEnabled(SavePrompt, 0);
                    API.PromptSetVisible(SavePrompt, 0);
                    givedFish = true;
                    showing   = false;
                    int fEnt = FishingMinigame.FishEntity;
                    if (Utils.FishModels.ContainsKey(API.GetEntityModel(fEnt)))
                    {
                        FishingMinigame.TransitionFlag = 32;
                        FishingMinigame.SetMiniGameState();

                        hooked = false;

                        if (Utils.FishModels[API.GetEntityModel(fEnt)].EndsWith("_lg")) //BigFish
                        {
                            API.SetBlockingOfNonTemporaryEvents(fEnt, false);
                            API.SetEntityInvincible(fEnt, false);
                            API.SetPedConfigFlag(fEnt, 17, false);
                        }
                        else
                        {
                            Debug.WriteLine(Utils.FishModels[API.GetEntityModel(fEnt)]);
                            TriggerServerEvent("vorp_fishing:FishToInventory", Utils.FishModels[API.GetEntityModel(fEnt)]);
                            API.DeleteEntity(ref fEnt);
                            API.DeletePed(ref fEnt);
                        }
                    }
                    givedFish = false;
                }
                await Delay(500);
            }
            else
            {
                if (FX_Drip != -1 && API.DoesParticleFxLoopedExist(FX_Drip))
                {
                    API.StopParticleFxLooped(FX_Drip, true);
                    FX_Drip = -1;
                }
            }

            await Delay(10);
        }