Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : 3 Fragen zu SSM



Ceylon
13.09.2009, 15:20
Wo kann man die Prozent Zahl von den basisen erhöhen? 2Frage
Wo kann ich einstellen das alle 20 Minuten Happy Hour ist? Und 3 Frage wo stellt man ein das ein Name anzeigt wan einer in den Server kommt zb. Im Gercry Server wir angezeigt [-V8-] Nomad joint the Game oder [-V8-] Nomad left the Game. Wie macht man das das sowas angezeigt wird?

Installation
13.09.2009, 15:36
hier kannst du einstellen, was passiert, wenn einer den server joint uns sonnstiges, kommt in die xastrada.lua, aber es müsste bei dir schon vorhanden sein:


ChatEntityName = "-=SLAM=-BOT:"; -- Name that SSM Aegis uses to chat to players
sendChatOnXSpawn = true; --Announce use of x_spawn or x_spawn_vehicle
sendChatOnXTeleport = true; --Announce use of x_teleport
sendChatOnXAward = true; --Announce use of x_award_points
sendChatOnXPunish = true; --Announce use of x_punish
sendChatOnXUnpunish = true; --Announce use of x_unpunish
sendChatOnXPlayerTeam = true; --Announce use of x_player_team
sendChatOnJoinLeave = true; --Announce Players joining and leaving
sendChatOnRename = true; --Announce player renames
sendChatOnPingKick = true; --Announce high ping kicks/warnings
sendChatOnXKick = true; --Announce use of x_kick
sendChatOnXVehicleBoot = true; --Announce use of x_vehicle_boot
sendChatOnXKill = true; --Announce use of x_player_kill
sendChatOnXSay = true; --Put x_say's message in Allchat aswell.

in deinem zzastrada.pak unter scripts/entities/multiplayer kommt dann folgendes hinein, um deine base zu verstärken

HQ.lua


----------------------------------------------------------------------------------------------------
-- Crytek Source File.
-- Copyright (C), Crytek Studios, 2001-2006.
----------------------------------------------------------------------------------------------------
-- $Id$
-- $DateTime$
-- Description: HQ for Power Struggle
--
----------------------------------------------------------------------------------------------------
-- History:
-- - 31:7:2006 18:49 : Created by Márcio Martins
--
----------------------------------------------------------------------------------------------------
HQ =
{
Client = {};
Server = {};

Editor={
Model="Editor/Objects/HQ.cgf",
},

Properties =
{
objModel = "objects/default.cgf",
objDestroyedModel = "",
teamName = "",
nHitPoints = 500,
perimeterAreaId = 0,
hqType = "bunker",

Explosion =
{
Effect = "explosions.harbor_airstirke.center_ship_explosion",
Effect2 = "explosions.generator.small",
Effect3 = "explosions.gauss.tank_gauss",
EffectScale = 2,
EffectScale2 = 10,
EffectScale3 = 10,
EffectDirection = {x=0,y=0,z=1},
},
},
};


----------------------------------------------------------------------------------------------------
Net.Expose {
Class = HQ,
ClientMethods = {
ClDestroy = { RELIABLE_UNORDERED, PRE_ATTACH },
},
ServerMethods = {
},
ServerProperties = {
health=FLOAT,
}
}


----------------------------------------------------------------------------------------------------
function HQ:OnPreFreeze(freeze, vapor)
if (freeze) then
return false; -- don't allow freezing
end
end


----------------------------------------------------------------------------------------------------
function HQ:CanShatter()
return 0;
end


----------------------------------------------------------------------------------------------------
function HQ:Destroy()
self.destroyed=true;
self:EnableSlot(0, false);
self:EnableSlot(1, true);

Script.SetTimer(6000, function() System.ExecuteCommand("sv_restart"); end);

local explosion=self.Properties.Explosion;
if (explosion.Effect ~= "") then
Particle.SpawnEffect(explosion.Effect, self:GetWorldPos(), explosion.EffectDirection, explosion.EffectScale);
Particle.SpawnEffect(explosion.Effect2, self:GetWorldPos(), explosion.EffectDirection, explosion.EffectScale2);
Particle.SpawnEffect(explosion.Effect3, self:GetWorldPos(), explosion.EffectDirection, explosion.EffectScale3);
end
end


----------------------------------------------------------------------------------------------------
function HQ:LoadGeometry(slot, model)
if (string.len(model) > 0) then
local ext = string.lower(string.sub(model, -4));

if ((ext == ".chr") or (ext == ".cdf") or (ext == ".cga")) then
self:LoadCharacter(slot, model);
else
self:LoadObject(slot, model);
end
end
end


-------------------------------------------------------------------------
function HQ:OnSpawn()
CryAction.CreateGameObjectForEntity(self.id);
CryAction.BindGameObjectToNetwork(self.id);
CryAction.ForceGameObjectUpdate(self.id, true);

self:LoadGeometry(0, self.Properties.objModel);
self:LoadGeometry(1, self.Properties.objDestroyedModel);
end


----------------------------------------------------------------------------------------------------
function HQ:EnableSlot(slot, enable)
if (enable) then
self:Physicalize(slot, PE_STATIC, {});
self:DrawSlot(slot, 1);
else
self:DestroyPhysics();
self:DrawSlot(slot, 0);
end
end


----------------------------------------------------------------------------------------------------
function HQ:OnReset()
self:EnableSlot(1, false);
self:EnableSlot(0, true);

self.isServer = CryAction.IsServer();
self.isClient = CryAction.IsClient();

if (self.isServer) then
if (self.Properties.teamName ~= "") then
self:SetTeamId(g_gameRules.game:GetTeamId(self.Pro perties.teamName) or 0);
else
self:SetTeamId(0);
end
end

self.destroyed=false;
LogAdmins("Setting HQ Health...");
self:SetHealth(3 * 6000);
self.Properties.nHitPoints = 3 * 6000;
end


----------------------------------------------------------------------------------------------------
function HQ:OnPropertyChange()
self:OnReset();
end


----------------------------------------------------------------------------------------------------
function HQ:OnDestroy()
end


----------------------------------------------------------------------------------------------------
function HQ:OnSave(save)
end


----------------------------------------------------------------------------------------------------
function HQ:OnLoad(saved)
end


----------------------------------------------------------------------------------------------------
function HQ:GetTeamId()
return g_gameRules.game:GetTeam(self.id);
end


----------------------------------------------------------------------------------------------------
function HQ:SetTeamId(teamId)
g_gameRules.game:SetTeam(teamId, self.id);
end


----------------------------------------------------------------------------------------------------
function HQ:IsDead()
return self.destroyed;
end


----------------------------------------------------------------------------------------------------
function HQ:SetHealth(health)
self.synched.health=health;
end


----------------------------------------------------------------------------------------------------
function HQ:GetHealth()
return self.synched.health;
end


----------------------------------------------------------------------------------------------------
function HQ.Server:OnInit()
self:OnReset();
end


----------------------------------------------------------------------------------------------------
function HQ.Server:OnShutDown()
if (g_gameRules) then
g_gameRules.game:RemoveMinimapEntity(self.id);
end
end


----------------------------------------------------------------------------------------------------
function HQ.Server:OnInitClient(channelId)
if (self.destroyed) then
self.onClient:ClDestroy(channelId);
end
end


----------------------------------------------------------------------------------------------------
function HQ.Client:OnInit()
self:OnReset();
end


----------------------------------------------------------------------------------------------------
function HQ.Server:OnHit(hit)
if (self.destroyed) then
return;
end

local team = nil;
if (self:GetTeamId() == 2) then
team = "US";
else
team = "NK";
end
-- don't take partial damage (eg from splash since explosion radius is 100m)
if(hit.damage < self:GetHealth()) then
end

local destroyed=false;
-- check if destroyed, decrease health if needed
local teamId=g_gameRules.game:GetTeam(hit.shooterId);
if (teamId==0 or teamId~=self:GetTeamId()) then
if (hit.explosion and hit.type=="tac") then
self:SetHealth(self:GetHealth()-hit.damage);
-- show damage
local life = (100 * self:GetHealth()) / self.Properties.nHitPoints;
life = math.ceil(life);
local damage = 100 - life;
XSendBigCenterMessage(team.." HQ now has "..tostring(damage).."% damage");
if (self:GetHealth()<=0) then
destroyed=true;
end


if (hit.damage>0 and hit.type~="repair") then
if (g_gameRules.Server.OnHQHit) then
g_gameRules.Server.OnHQHit(g_gameRules, self, hit);
end
end
end
end

if (destroyed) then
if (not self.isClient) then
self:Destroy();
end

self.allClients:ClDestroy();

if (g_gameRules and g_gameRules.OnHQDestroyed) then
g_gameRules:OnHQDestroyed(self, hit.shooterId, teamId);
end
end

return destroyed;
end


----------------------------------------------------------------------------------------------------
function HQ.Client:ClDestroy()
self:Destroy();
end


----------------------------------------------------------------------------------------------------
function HQ.Server:OnEnterArea(entity, areaId)
if (entity.actor and areaId == self.Properties.perimeterAreaId) then
if (g_gameRules.Server.OnPerimeterBreached) then
g_gameRules.Server.OnPerimeterBreached(g_gameRules , self, entity);
end
end
end


Bei self:SetHealth(3 * 6000);
self.Properties.nHitPoints = 3 * 6000
kannst du die 2 dreier in eine beliebige zahl umtauschen, beide zahlen müssen aber gleich sein. > 3 tacs benötigt um das hq zu zerstören.


bei der happyhour weiß ichs nur, wie du es manuell machen kannst, da kannst du bspw. jede 20 minuten !happyhour eingeben, wenn du admin bist und gut ist. Ist aber ne dumme Lösung. Hier das happyhour skript:


--Happy Hour Chat Command
--Submitted By b6gm6n
--
--Every thing is free for 1 minute, 15 minute timer between runs, admin only command.

AEGIS.chatCommands.happyhour = {};

function AEGIS.chatCommands.happyhour:func(player, chatMsg)
if(player:IsDead()) then return end
if(HappyHourStarted) then XSendChatToTarget(nil, player, "ERROR :: You must WAIT 15 MINUTES between each Happy-Hour!"); return end
if(XIsAdmin(player)) then Script.SetTimer( 1000,function() XSendChatToAll(nil, "ADMIN :: %s started a Happy-Hour! // ONCE EVERY 15 MINUTES!", player:GetName()); end);
else XSendChatToTarget(nil, player, "AUTHORIZATION FAILURE! // Command :::: ADMINS ONLY!"); return end
System.SetCVar("g_pp_scale_price", 0); LogAdmins("Happy Hour Started");
Script.SetTimer( 100,function() HappyHourStarted = true; g_gameRules.game:SendTextMessage(TextMessageBig, "<font color=\"#afafaf\">***</font> <font color=\"#ffdc36\">HAPPY HOUR : EVERYTHING FREE!</font> <font color=\"#afafaf\">***</font>", TextMessageToAllRemote); end);
Script.SetTimer( 3000,function() g_gameRules.game:SendTextMessage(TextMessageBig, "<font color=\"#afafaf\">***</font> <font color=\"#5ca9cf\">RUN TO YOUR NEAREST BUY ZONE!</font> <font color=\"#afafaf\">***</font>", TextMessageToAllRemote); end);
Script.SetTimer( 5000,function() System.ExecuteCommand("x_say_info !! HAPPY HOUR ACTIVE !!"); end);
Script.SetTimer( 10000,function() System.ExecuteCommand("x_say_info !! HAPPY HOUR ACTIVE !!"); end);
Script.SetTimer( 15000,function() System.ExecuteCommand("x_say_info !! HAPPY HOUR ACTIVE !!"); end);
Script.SetTimer( 20000,function() System.ExecuteCommand("x_say_info !! HAPPY HOUR ACTIVE !!"); end);
Script.SetTimer( 25000,function() System.ExecuteCommand("x_say_info !! HAPPY HOUR ACTIVE !!"); end);
Script.SetTimer( 30000,function() System.ExecuteCommand("x_say_info !! HAPPY HOUR ACTIVE !!"); end);
Script.SetTimer( 35000,function() System.ExecuteCommand("x_say_info !! HAPPY HOUR ACTIVE !!"); end);
Script.SetTimer( 40000,function() System.ExecuteCommand("x_say_info !! HAPPY HOUR ACTIVE !!"); end);
Script.SetTimer( 45000,function() System.ExecuteCommand("x_say_info !! HAPPY HOUR ACTIVE !!"); end);
Script.SetTimer( 50000,function() System.ExecuteCommand("x_say_info HAPPY HOUR ENDS IN : 10 SECONDS"); end);
Script.SetTimer( 55000,function() System.ExecuteCommand("x_say_info HAPPY HOUR ENDS IN : 5 SECONDS"); end);
Script.SetTimer( 60000,function() g_gameRules.game:SendTextMessage(TextMessageError, ":::: TOO LATE ::::", TextMessageToAllRemote); end);
Script.SetTimer( 61000,function() g_gameRules.game:SendTextMessage(TextMessageBig, "<font color=\"#afafaf\">***</font> <font color=\"#ff2020\">HAPPY HOUR : OVER!</font> <font color=\"#afafaf\">***</font>", TextMessageToAllRemote); System.SetCVar("g_pp_scale_price", 1); end); Script.SetTimer( 900000,function() HappyHourStarted = false; end);
end

Das muss bei ssm aegis 1.2.1 in die xastrada.lua zu den chat commands oder bei 1.3 unter Config_aplha > Chat_commands > Happyhour.lua

Mfg, Installation