Jump to content

Emergency-fan

Members
  • Posts

    137
  • Joined

  • Last visited

Posts posted by Emergency-fan

  1. Hello

    Some news and a video

    The mod is almost over

    just a video to see our new back up command

    We need your help to modify the entercar script to let a firefighter enter in RTWs NEFs RHCs and ITWs

    Can you help us ?

    Code :

    object EnterCar : CommandScript
    {
    Vector TargetPos;
    bool NotInLandingStage;

    EnterCar()
    {
    SetValidTargets(ACTOR_VEHICLE);
    SetRestrictions(RESTRICT_NOTDESTROYED);
    SetNeedsConnectedHose(CFN_FAIL);
    SetPriority(200);
    SetSelfClickActivation(true);
    }

    bool CheckPossible(GameObject *Caller)
    {
    return Commands::IsEnterCarPossible(Caller);
    }

    bool CheckTarget(GameObject *Caller, Actor *Target, int childID)
    {
    if(!Caller->IsValid() || !Target || !Target->IsValid() || Target->GetType()!=ACTOR_VEHICLE)
    return false;

    SetPriority(200);
    if (Input::PriorityKeyPressed())
    SetPriority(2000);

    Vehicle v(Target);
    if (v.GetEnergy() < = 0.1f * v.GetMaxEnergy())
    return false;
    if(Caller->GetObjectType()==TYPE_PERSON/* && v.IsFlagSet(OF_ACCESSIBLE)*/)
    {
    Person p(Caller);

    if (p.GetEnteredCarID() != -1)
    return false;

    if (v.GetVehicleType() == VT_FIREFIGHTERS_DEKONP)
    {
    if (!p.IsLinkedWithPerson() && !p.IsCarryingPerson() && v.GetFreePassengers()==0 && !p.IsContaminated())
    return false;
    else if (!p.IsLinkedWithPerson() && !p.IsCarryingPerson() && p.IsContaminated() && v.GetFreeTransports() < 1)
    return false;
    else if ((p.IsLinkedWithPerson() || p.IsCarryingPerson()) && v.GetFreeTransports() < 2)
    return false;
    }
    else
    if(v.GetFreePassengers()==0 && !(p.IsLinkedWithPerson() || p.IsCarryingPerson()))
    return false;

    if (p.IsCarryingPerson() && v.GetFreeTransports() == 0)
    return false;
    else if (p.IsLinkedWithPerson() && v.GetFreeTransports() == 0)
    return false;

    if(v.HasCommand("FlyTo") && !v.IsOnGround())
    return false;

    if(p.IsPulling() || (p.GetEquipment() == EQUIP_FIREHOSE && p.GetFirehoseID() > 0))
    return false;

    switch(v.GetVehicleType())
    {
    case VT_NOSQUAD :
    case VT_TAXI :
    case VT_BUS :
    case VT_DRIVERCAR :
    case VT_POLICE_GTW:
    case VT_POLICE_WAW :
    return false;
    break;

    case VT_THW_FGRR_BKF :
    case VT_THW_FGRB_BLF :
    return false;
    break;
    case VT_THW_FGRI_EKW :
    case VT_THW_FGRT_BH:
    if(!p.HasCommand("Repair"))
    return false;
    break;

    case VT_FIREFIGHTERS_ASF :
    case VT_FIREFIGHTERS_DLK :
    case VT_FIREFIGHTERS_RW :
    case VT_FIREFIGHTERS_TLF :
    case VT_FIREFIGHTERS_LF :
    case VT_FIREFIGHTERS_FLB :
    case VT_FIREFIGHTERS_LPF :
    case VT_FIREFIGHTERS_TFMB :
    case VT_FIREFIGHTERS_GTF :
    if ((p.GetPersonType() == PT_FIREFIGHTER_NORMAL) || (p.GetPersonType() == PT_FIREFIGHTER_MASK) || (p.GetPersonType() == PT_FIREFIGHTER_ABC) || (p.GetPersonType() == PT_DIVER))
    return true ;
    else
    return false ;
    break;

    case VT_FIREFIGHTERS_DEKONP :
    if (!p.HasCommand("DriveAwayPerson") && !p.IsContaminated())
    return false;
    if(!p.CanEnterDekonP())
    return false;
    break;

    case VT_FIREFIGHTERS_FMB:
    {
    // FMB in LStage ? - Liefere Zielpunkt an Land < 0 (=-0.2f)
    if (v.IsInLandingStage(false, TargetPos, -0.2f) >= 0)
    {
    NotInLandingStage = false;
    return true;
    }
    if (v.IsInLandingStage(true, TargetPos, -0.2f) >= 0)
    {
    NotInLandingStage = false;
    return true;
    };
    NotInLandingStage = true;
    // Taucher kann immer rein
    if (!p.HasCommand("Dive"))
    return false;
    break;
    }

    case VT_POLICE_SW :
    case VT_POLICE_PHC :
    case VT_POLICE_STW :
    case VT_POLICE_MTW :
    if (p.IsLinkedWithPerson())
    return false;
    if ((p.GetPersonType() == PT_SHOOTER) || (p.GetPersonType() == PT_SHARPSHOOTER) || (p.GetPersonType() == PT_PSYCHOLOGIST) || (p.GetPersonType() == PT_SCOUT) || (p.GetPersonType() == PT_POLICEMEN))
    return true ;
    else
    return false ;
    break;

    case VT_POLICE_GETAWAY : return false; break;

    case VT_AMBULANCE_RHF :
    if(!p.HasCommand("SendDog") && !p.HasCommand("CallDog"))
    return false;
    break;

    case VT_AMBULANCE_ITW :
    if(p.IsCarryingPerson())
    return false;
    if(!p.HasCommand("Heal") && !p.HasCommand("UnloadPerson") && !p.HasCommand("PutInCar"))
    return false;
    if(p.HasCommand("Extinguish") || p.HasCommand("GetRoadBlock"))
    return false;
    break;

    case VT_AMBULANCE_NEF :
    if(!p.HasCommand("Heal"))
    return false;

    case VT_AMBULANCE_RHC :
    case VT_AMBULANCE_RTW :
    if (v.GetFreePassengers() == 0)
    return false;
    if(!p.HasCommand("Heal") && !p.IsParamedicTeam() )
    return false;
    break;

    default : return false;
    }

    if((p.HasCommand("extinguish") && (p.IsCarryingPerson() || p.IsLinkedWithPerson())) || p.IsContaminated())
    {
    if (v.GetVehicleType() == VT_FIREFIGHTERS_DEKONP)
    return true;
    else
    return false;
    }


    return true;
    }

    return false;
    }

    void PushActions(GameObject *Caller, Actor *Target, int childID)
    {
    Person p(Caller);
    Vehicle v(Target);

    if (p.IsCarryingPerson())
    {
    Person carried = p.GetCarried();
    bool carriedClassified = false;
    if (carried.IsClassified())
    carriedClassified = true;
    if(!carriedClassified && (v.GetVehicleType() == VT_AMBULANCE_ITW || v.GetVehicleType() == VT_AMBULANCE_RTW || v.GetVehicleType() == VT_AMBULANCE_RHC))
    {
    ScriptInterface::ShowMessageTickerTextForSinglePlayer(Caller, "Cette personne doit d'abord être examinée par un médecin");
    return;
    }
    }

    TargetPoint targetPoint;
    if (v.GetVehicleType() == VT_AMBULANCE_ITW)
    targetPoint = TARGET_PASSENGERDOOR;
    else if (v.GetVehicleType() == VT_THW_FGRT_BH)
    targetPoint = TARGET_REARDOOR;
    else if (v.GetVehicleType() == VT_FIREFIGHTERS_FMB)
    {
    if (NotInLandingStage)
    targetPoint = TARGET_OBJECTSURFACE;
    else
    {
    Caller->PushActionMove(ACTION_NEWLIST, TargetPos);
    Caller->PushActionTurnTo(ACTION_APPEND, Target);
    Caller->PushActionEnterCar(ACTION_APPEND, Target);
    return;
    }
    }
    // diese Abfrage auf jeden Fall erst nach ITW und FMB
    else if (p.IsParamedicTeam() ||
    (p.HasCommand("Heal") && (v.GetNumTransported()>0 || Game::IsParamedicWithInjuredInSelection(Caller))))
    targetPoint = TARGET_REARDOOR;
    else
    targetPoint = TARGET_PASSENGERDOOR;

    if((p.HasCommand("extinguish") && (p.IsCarryingPerson() || p.IsLinkedWithPerson())) || p.IsContaminated())
    {
    if (v.GetVehicleType() == VT_FIREFIGHTERS_DEKONP)
    targetPoint = TARGET_REARDOOR;
    }

    if (p.HasCommand("SendDog") && p.GetArrestedID() != -1)
    {
    targetPoint = TARGET_REARDOOR;
    Caller->PushActionMove(ACTION_NEWLIST, Target, targetPoint);
    Caller->PushActionTurnTo(ACTION_APPEND, Target);
    Caller->PushActionPutInCar(ACTION_APPEND, Target);
    targetPoint = TARGET_PASSENGERDOOR;
    Caller->PushActionMove(ACTION_APPEND, Target, targetPoint);
    Caller->PushActionTurnTo(ACTION_APPEND, Target);
    Caller->PushActionEnterCar(ACTION_APPEND, Target);
    }
    else
    {
    Caller->PushActionMove(ACTION_NEWLIST, Target, targetPoint);
    Caller->PushActionTurnTo(ACTION_APPEND, Target);
    Caller->PushActionEnterCar(ACTION_APPEND, Target);
    }
    }
    };

    Emergency-fan

  2. Hello

    I need your help to add stretchers on the game and i don't how make that

    Can someone help me ?

    Prototype path stretcher : Prototypes/Persons/02 Ambulance/SP_Brancardier.e4p

    Prototype path stretcher + injured : Prototypes/Persons/02 Ambulance/SP_Brancardiersinjured.e4p

    Prototype path single : .../.../SP_Brancardiers_single.e4p

    unit.xml


    <unit id="SPBRA">
    <campaign>
    <missions value="1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21">
    <prototypes>
    <prototype name="mod:Prototypes/Persons/02 Ambulance/SP_Brancardier.e4p" level="0"/>
    <prototype name="mod:Prototypes/Persons/02 Ambulance/SP_Brancardier.e4p" level="1"/>
    <prototype name="mod:Prototypes/Persons/02 Ambulance/SP_Brancardier.e4p" level="2"/>
    <prototype name="mod:Prototypes/Persons/02 Ambulance/SP_Brancardier.e4p" level="3"/>
    </prototypes>
    <space value="1" />
    <price value="25" />
    </missions>
    </campaign>

    <freeplay>
    <missions value="1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 22">
    <prototypes>
    <prototype name="mod:Prototypes/Persons/02 Ambulance/SP_Brancardier.e4p" level="0"/>
    <prototype name="mod:Prototypes/Persons/02 Ambulance/SP_Brancardier.e4p" level="1"/>
    <prototype name="mod:Prototypes/Persons/02 Ambulance/SP_Brancardier.e4p" level="2"/>
    <prototype name="mod:Prototypes/Persons/02 Ambulance/SP_Brancardier.e4p" level="3"/>
    </prototypes>
    <space value="1" />
    <price value="25" />
    </missions>
    </freeplay>
    </unit>

    Portraits.xml

    	<portrait prototype="mod:Prototypes/Persons/02 Ambulance/SP_Brancardiers.e4p" big="norm" unit="SPBRA" text="SPBRA"/>
    <portrait prototype="mod:Prototypes/Persons/02 Ambulance/SP_Brancardiersinjured.e4p" big="norm" unit="SPBRA" text="SPBRA"/>

    HELP ME PLEASE ^^

    Emergency-Fan

×
×
  • Create New...