DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено

◆ GetAdminLogMessage()

override string GetInputType::GetAdminLogMessage ( ActionData action_data)
protected

См. определение в файле ActionBuildPart.c строка 414

414 : ActionReciveData
415{
416 string m_PartType;
417}
418
419class BuildPartActionData : ActionData
420{
421 string m_PartType;
422};
423
425{
426 override void CreateActionComponent()
427 {
428 float time = SetCallbackDuration(m_ActionData.m_MainItem);
429 m_ActionData.m_ActionComponent = new CAContinuousTime(time);
430 }
431
432 float SetCallbackDuration(ItemBase item)
433 {
434 return UATimeSpent.BASEBUILDING_CONSTRUCT_MEDIUM;
435 }
436};
437
439{
440 void ActionBuildPart()
441 {
442 m_CallbackClass = ActionBuildPartCB;
443 m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_ASSEMBLE;
444 m_FullBody = true;
445 m_StanceMask = DayZPlayerConstants.STANCEMASK_ERECT;
446
447 m_SpecialtyWeight = UASoftSkillsWeight.ROUGH_HIGH;
448 m_Text = "#build";
449 }
450
451 override void CreateConditionComponents()
452 {
453 m_ConditionItem = new CCINonRuined;
454 m_ConditionTarget = new CCTNone;
455 }
456
457 override void OnActionInfoUpdate(PlayerBase player, ActionTarget target, ItemBase item)
458 {
459 ConstructionActionData construction_action_data = player.GetConstructionActionData();
460 ConstructionPart constrution_part = construction_action_data.GetBuildPartAtIndex(m_VariantID);
461
462 if (constrution_part)
463 {
464 m_Text = "#build " + constrution_part.GetName();
465 }
466 }
467
468 override bool CanBeUsedLeaning()
469 {
470 return false;
471 }
472
473 override bool CanBeUsedInFreelook()
474 {
475 return false;
476 }
477
478 override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
479 {
480 if (player.IsPlacingLocal() || player.IsPlacingServer())
481 return false;
482
483 //Action not allowed if player has broken legs
484 if (player.GetBrokenLegs() == eBrokenLegs.BROKEN_LEGS)
485 return false;
486
487 //gate..
488 if (target.GetObject() && (!target.GetObject().CanUseConstructionBuild() || target.GetObject().CanUseHandConstruction()))
489 return false;
490
491 if ((!GetGame().IsDedicatedServer()))
492 {
493 if (MiscGameplayFunctions.ComplexBuildCollideCheckClient(player, target, item, m_VariantID))
494 {
495 return true;
496 }
497 return false;
498 }
499 return true;
500 }
501
502 override bool ActionConditionContinue(ActionData action_data)
503 {
504 BaseBuildingBase base_building = BaseBuildingBase.Cast(action_data.m_Target.GetObject());
505 Construction construction = base_building.GetConstruction();
506 string part_name = BuildPartActionData.Cast(action_data).m_PartType;
507 CollisionCheckData check_data = new CollisionCheckData;
508
509 check_data.m_PartName = part_name;
510 check_data.m_AdditionalExcludes.Insert(action_data.m_Player);
511
512 bool canBuild = construction.CanBuildPart(part_name, action_data.m_MainItem, true);
513 if (GetGame().IsServer())
514 {
515 bool collides = construction.IsCollidingEx(check_data);
516
517 return !collides && canBuild;
518 }
519 else
520 {
521 return canBuild;
522 }
523 }
524
525 override void OnFinishProgressServer(ActionData action_data)
526 {
527 BaseBuildingBase base_building = BaseBuildingBase.Cast(action_data.m_Target.GetObject());
528 Construction construction = base_building.GetConstruction();
529
530 string part_name = BuildPartActionData.Cast(action_data).m_PartType;
531 CollisionCheckData check_data = new CollisionCheckData;
532
533 check_data.m_PartName = part_name;
534 check_data.m_AdditionalExcludes.Insert(action_data.m_Player);
535
536 if (!construction.IsCollidingEx(check_data) && construction.CanBuildPart(part_name, action_data.m_MainItem, true)) //redundant at this point?
537 {
538 //build
539 construction.BuildPartServer(action_data.m_Player, part_name, AT_BUILD_PART);
540 //add damage to tool
541 action_data.m_MainItem.DecreaseHealth(UADamageApplied.BUILD, false);
542 }
543 }
544
545 override string GetSoundCategory(ActionData action_data)
546 {
547 return "Base_building";
548 }
549
551 {
552 BuildPartActionData action_data = new BuildPartActionData;
553 return action_data;
554 }
555
556 //setup
557 override bool SetupAction(PlayerBase player, ActionTarget target, ItemBase item, out ActionData action_data, Param extra_data = NULL)
558 {
559 if (super.SetupAction(player, target, item, action_data, extra_data))
560 {
562
563 if (!GetGame().IsDedicatedServer())
564 {
565 ConstructionActionData construction_action_data = action_data.m_Player.GetConstructionActionData();
566 BuildPartActionData.Cast(action_data).m_PartType = construction_action_data.GetBuildPartAtIndex(m_VariantID).GetPartName();
567 }
568 return true;
569 }
570
571 return false;
572 }
573
574 protected void SetBuildingAnimation(ItemBase item)
575 {
576 switch (item.Type())
577 {
578 case Pickaxe:
579 case Shovel:
580 case FarmingHoe:
581 case FieldShovel:
582 m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_DIG;
583 break;
584 case Pliers:
585 m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_INTERACT;
586 break;
587 case SledgeHammer:
588 m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_MINEROCK;
589 break;
590 default:
591 m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_ASSEMBLE;
592 break;
593 }
594 }
595
596 override void WriteToContext(ParamsWriteContext ctx, ActionData action_data)
597 {
598 super.WriteToContext(ctx, action_data);
599
600 ctx.Write(BuildPartActionData.Cast(action_data).m_PartType);
601 }
602
603 override bool ReadFromContext(ParamsReadContext ctx, out ActionReciveData action_recive_data)
604 {
605 action_recive_data = new BuildPartActionReciveData;
606 super.ReadFromContext(ctx, action_recive_data);
607
608 string part_type;
609 if (ctx.Read(part_type))
610 {
611 BuildPartActionReciveData.Cast(action_recive_data).m_PartType = part_type;
612 return true;
613 }
614 else
615 {
616 return false;
617 }
618 }
619
620 override void HandleReciveData(ActionReciveData action_recive_data, ActionData action_data)
621 {
622 super.HandleReciveData(action_recive_data, action_data);
623
624 BuildPartActionData.Cast(action_data).m_PartType = BuildPartActionReciveData.Cast(action_recive_data).m_PartType;
625 }
626
627 override string GetAdminLogMessage(ActionData action_data)
628 {
629 ConstructionActionData construction_action_data = action_data.m_Player.GetConstructionActionData();
630 string partName = BuildPartActionData.Cast(action_data).m_PartType;
631
632 string message = string.Format("Built %1 on %2 with %3", partName, action_data.m_Target.GetObject().GetDisplayName(), action_data.m_MainItem.GetDisplayName());
633 return message;
634 }
635}
636
637class ActionActionBuildPartNoTool: ActionBuildPart
638{
639 override typename GetInputType()
640 {
641 return ContinuousInteractActionInput;
642 }
643
644 override bool UseMainItem()
645 {
646 return false;
647 }
648
649 override bool HasProgress()
650 {
651 return true;
652 }
653
654 override bool HasAlternativeInterrupt()
655 {
656 return false;
657 }
658}
const int AT_BUILD_PART
Определения _constants.c:6
ActionBase ActionData
Определения ActionBase.c:30
BuildPartActionReciveData m_PartType
override bool HasProgress()
Определения ActionBuildPart.c:236
override bool UseMainItem()
Определения ActionBuildPart.c:231
class ActionTargets ActionTarget
void BaseBuildingBase()
Определения BaseBuildingBase.c:1328
void CollisionCheckData()
Определения Construction.c:1329
void Construction(BaseBuildingBase parent)
Определения Construction.c:26
eBrokenLegs
Определения EBrokenLegs.c:2
class GP5GasMask extends MaskBase ItemBase
float m_SpecialtyWeight
Определения ActionBase.c:77
int m_StanceMask
Определения ActionBase.c:62
string m_Text
Определения ActionBase.c:58
int m_VariantID
Определения ActionBase.c:68
ref CCIBase m_ConditionItem
Определения ActionBase.c:64
bool m_FullBody
Определения ActionBase.c:61
ref CCTBase m_ConditionTarget
Определения ActionBase.c:65
ActionData m_ActionData
Определения AnimatedActionBase.c:3
void ActionBuildPart()
Определения ActionBuildPart.c:27
override bool SetupAction(PlayerBase player, ActionTarget target, ItemBase item, out ActionData action_data, Param extra_data=NULL)
Определения ActionBuildPart.c:144
override bool CanBeUsedInFreelook()
Определения ActionBuildPart.c:60
override bool CanBeUsedLeaning()
Определения ActionBuildPart.c:55
override void CreateConditionComponents()
Определения ActionBuildPart.c:38
override string GetSoundCategory(ActionData action_data)
Определения ActionBuildPart.c:132
override bool ReadFromContext(ParamsReadContext ctx, out ActionReciveData action_recive_data)
Определения ActionBuildPart.c:190
void SetBuildingAnimation(ItemBase item)
Определения ActionBuildPart.c:161
override bool ActionConditionContinue(ActionData action_data)
Определения ActionBuildPart.c:89
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
Определения ActionBuildPart.c:65
override ActionData CreateActionData()
Определения ActionBuildPart.c:137
override void WriteToContext(ParamsWriteContext ctx, ActionData action_data)
Определения ActionBuildPart.c:183
override string GetAdminLogMessage(ActionData action_data)
Определения ActionBuildPart.c:214
override void OnFinishProgressServer(ActionData action_data)
Определения ActionBuildPart.c:112
override void HandleReciveData(ActionReciveData action_recive_data, ActionData action_data)
Определения ActionBuildPart.c:207
override void OnActionInfoUpdate(PlayerBase player, ActionTarget target, ItemBase item)
Определения ActionBuildPart.c:44
float SetCallbackDuration(ItemBase item)
Определения ActionBuildPart.c:19
override void CreateActionComponent()
Определения ActionBuildPart.c:13
override GetInputType()
Определения ActionContinuousBase.c:179
bool HasAlternativeInterrupt()
Определения ActionContinuousBase.c:147
int m_CommandUID
Определения AnimatedActionBase.c:143
ConstructionPart GetBuildPartAtIndex(int idx)
Определения ConstructionActionData.c:184
string GetPartName()
Определения ConstructionPart.c:30
string GetName()
Определения ConstructionPart.c:24
proto bool Write(void value_out)
proto bool Read(void value_in)
DayZPlayerConstants
defined in C++
Определения dayzplayer.c:602
Serializer ParamsReadContext
Определения gameplay.c:15
proto native CGame GetGame()
Serializer ParamsWriteContext
Определения gameplay.c:16
proto void Insert(int index, string input)
Inserts a string into the n-th index, increasing the string length by the size of the input.