TajnyGraczGry
-
Postów
12 -
Dołączył
-
Ostatnia wizyta
Odpowiedzi opublikowane przez TajnyGraczGry
-
-
Dzięki panowie
-
7 minut temu, VestSmart napisał:
Po pierwsze: Z edytuj post i weź to wrzuć w kod bo to nie jest czytelne.
Po drugie: Coś edytowałeś w tym pluginie? Jeżeli tak to co. (Konkretnie)Edytowane były tylko mapki tzn. zamienione.
Już działa :D
-
Jak zablokować ten plugin aby był tylko dla VIP'a? (flaga "a") #include <sourcemod> #include <clientprefs> #include <colors> #define PLUGIN_VERSION "1.0.7" public Plugin:myinfo = { name = "Show Damage", author = "exvel", description = "Shows damage in the center of the screen.", version = PLUGIN_VERSION, url = "www.sourcemod.net" } new player_old_health[MAXPLAYERS + 1]; new player_damage[MAXPLAYERS + 1]; new bool:block_timer[MAXPLAYERS + 1] = {false,...}; new bool:FrameMod = true; new String:DamageEventName[16]; new MaxDamage = 10000000; new bool:option_show_damage[MAXPLAYERS + 1] = {true,...}; new Handle:cookie_show_damage = INVALID_HANDLE; //CVars' handles new Handle:cvar_show_damage = INVALID_HANDLE; new Handle:cvar_show_damage_ff = INVALID_HANDLE; new Handle:cvar_show_damage_own_dmg = INVALID_HANDLE; new Handle:cvar_show_damage_text_area = INVALID_HANDLE; //CVars' varibles new bool:show_damage = true; new bool:show_damage_ff = false; new bool:show_damage_own_dmg = false; new show_damage_text_area = 1; public OnPluginStart() { decl String:gameName[80]; GetGameFolderName(gameName, 80); if (StrEqual(gameName, "cstrike") || StrEqual(gameName, "insurgency")) { HookEvent("player_hurt", Event_PlayerHurt, EventHookMode_Post); DamageEventName = "dmg_health"; FrameMod = false; } else if (StrEqual(gameName, "left4dead") || StrEqual(gameName, "left4dead2")) { HookEvent("player_hurt", Event_PlayerHurt, EventHookMode_Post); HookEvent("infected_hurt", Event_InfectedHurt, EventHookMode_Post); MaxDamage = 2000; DamageEventName = "dmg_health"; FrameMod = false; } else if (StrEqual(gameName, "dod") || StrEqual(gameName, "hidden")) { HookEvent("player_hurt", Event_PlayerHurt, EventHookMode_Post); DamageEventName = "damage"; FrameMod = false; } else { HookEvent("player_hurt", Event_PlayerHurt_FrameMod, EventHookMode_Pre); FrameMod = true; } CreateConVar("sm_show_damage_version", PLUGIN_VERSION, "Show Damage Version", FCVAR_PLUGIN|FCVAR_SPONLY|FCVAR_REPLICATED|FCVAR_NOTIFY|FCVAR_DONTRECORD); cvar_show_damage = CreateConVar("sm_show_damage", "1", "Enabled/Disabled show damage functionality, 0 = off/1 = on", FCVAR_PLUGIN, true, 0.0, true, 1.0); cvar_show_damage_ff = CreateConVar("sm_show_damage_ff", "0", "Show friendly fire damage, 0 = off/1 = on", FCVAR_PLUGIN, true, 0.0, true, 1.0); cvar_show_damage_own_dmg = CreateConVar("sm_show_damage_own_dmg", "0", "Show your own damage, 0 = off/1 = on", FCVAR_PLUGIN, true, 0.0, true, 1.0); cvar_show_damage_text_area = CreateConVar("sm_show_damage_text_area", "1", "Defines the area for damage text:\n 1 = in the center of the screen\n 2 = in the hint text area \n 3 = in chat area of screen", FCVAR_PLUGIN, true, 1.0, true, 3.0); HookEvent("player_spawn", Event_PlayerSpawn, EventHookMode_Post); HookConVarChange(cvar_show_damage, OnCVarChange); HookConVarChange(cvar_show_damage_ff, OnCVarChange); HookConVarChange(cvar_show_damage_own_dmg, OnCVarChange); HookConVarChange(cvar_show_damage_text_area, OnCVarChange); AutoExecConfig(true, "plugin.showdamage"); LoadTranslations("common.phrases"); LoadTranslations("showdamage.phrases"); cookie_show_damage = RegClientCookie("Show Damage On/Off", "", CookieAccess_Private); new info; SetCookieMenuItem(CookieMenuHandler_ShowDamage, any:info, "Show Damage"); } public CookieMenuHandler_ShowDamage(client, CookieMenuAction:action, any:info, String:buffer[], maxlen) { if (action == CookieMenuAction_DisplayOption) { decl String:status[10]; if (option_show_damage[client]) { Format(status, sizeof(status), "%T", "On", client); } else { Format(status, sizeof(status), "%T", "Off", client); } Format(buffer, maxlen, "%T: %s", "Cookie Show Damage", client, status); } // CookieMenuAction_SelectOption else { option_show_damage[client] = !option_show_damage[client]; if (option_show_damage[client]) { SetClientCookie(client, cookie_show_damage, "On"); } else { SetClientCookie(client, cookie_show_damage, "Off"); } ShowCookieMenu(client); } } public OnClientCookiesCached(client) { option_show_damage[client] = GetCookieShowDamage(client); } bool:GetCookieShowDamage(client) { decl String:buffer[10]; GetClientCookie(client, cookie_show_damage, buffer, sizeof(buffer)); return !StrEqual(buffer, "Off"); } public OnConfigsExecuted() { GetCVars(); } public OnClientConnected(client) { block_timer[client] = false; } public Action:Event_PlayerSpawn(Handle:event, const String:name[], bool:dontBroadcast) { new client = GetClientOfUserId(GetEventInt(event, "userid")); block_timer[client] = false; return Plugin_Continue; } //This is for games that have no damage information in player_hurt event public OnGameFrame() { if (FrameMod && show_damage) { for (new client = 1; client <= MaxClients; client++) { if (IsClientInGame(client)) { player_old_health[client] = GetClientHealth(client); } } } } public Action:ShowDamage(Handle:timer, any:client) { block_timer[client] = false; if (player_damage[client] <= 0 || !client) { return; } if (!IsClientInGame(client)) { return; } switch (show_damage_text_area) { case 1: { PrintCenterText(client, "%t", "CenterText Damage Text", player_damage[client]); } case 2: { PrintHintText(client, "%t", "HintText Damage Text", player_damage[client]); } case 3: { CPrintToChat(client, "%t", "Chat Damage Text", player_damage[client]); } } player_damage[client] = 0; } public Action:Event_PlayerHurt_FrameMod(Handle:event, const String:name[], bool:dontBroadcast) { new client = GetClientOfUserId(GetEventInt(event, "userid")); new client_attacker = GetClientOfUserId(GetEventInt(event, "attacker")); new damage = player_old_health[client] - GetClientHealth(client); CalcDamage(client, client_attacker, damage); return Plugin_Continue; } public Action:Event_PlayerHurt(Handle:event, const String:name[], bool:dontBroadcast) { new client_attacker = GetClientOfUserId(GetEventInt(event, "attacker")); new client = GetClientOfUserId(GetEventInt(event, "userid")); new damage = GetEventInt(event, DamageEventName); CalcDamage(client, client_attacker, damage); return Plugin_Continue; } public Action:Event_InfectedHurt(Handle:event, const String:name[], bool:dontBroadcast) { new client_attacker = GetClientOfUserId(GetEventInt(event, "attacker")); new damage = GetEventInt(event, "amount"); CalcDamage(0, client_attacker, damage); return Plugin_Continue; } CalcDamage(client, client_attacker, damage) { if (!show_damage || !option_show_damage[client_attacker]) { return; } if (client_attacker == 0) { return; } if (IsFakeClient(client_attacker) || !IsClientInGame(client_attacker)) { return; } //If client == 0 than skip this verifying. It can be an infected or something else without client index. if (client != 0) { if (client == client_attacker) { if (!show_damage_own_dmg) { return; } } else if (GetClientTeam(client) == GetClientTeam(client_attacker)) { if (!show_damage_ff) { return; } } } //This is a fix for Left 4 Dead. When tank dies the game fires hurt event with 5000 dmg that is a bug. if (damage > MaxDamage) { return; } player_damage[client_attacker] += damage; if (block_timer[client_attacker]) { return; } CreateTimer(0.01, ShowDamage, client_attacker); block_timer[client_attacker] = true; } public OnCVarChange(Handle:convar_hndl, const String:oldValue[], const String:newValue[]) { GetCVars(); } GetCVars() { show_damage = GetConVarBool(cvar_show_damage); show_damage_ff = GetConVarBool(cvar_show_damage_ff); show_damage_own_dmg = GetConVarBool(cvar_show_damage_own_dmg); show_damage_text_area = GetConVarInt(cvar_show_damage_text_area); }
-
Co zrobić, jeżeli nie wyświetla się inforacja na czacie, który BS jest zablokowany?
#pragma semicolon 1
#include <sourcemod>
#include <sdktools>
#include <cstrike>#define STANDARDMAPSMAX 12
new String:BSAL[1];
new EIBA = -1;
new EIBB = -1;
new Handle:Timer = INVALID_HANDLE;
new String:StandardMaps[STANDARDMAPSMAX][2][11] =
{
{
"de_mirage","A"
},
{
"de_cache","A"
},
{
"de_chateau","A"
},
{
"de_dust","A"
},
{
"de_dust2","A"
},
{
"de_inferno","A"
},
{
"de_nuke","B"
},
{
"de_piranesi","A"
},
{
"de_port","A"
},
{
"de_prodigy","B"
},
{
"de_tides","A"
},
{
"de_train","A"
}
};public Plugin:myinfo =
{
name = "Bombsite Limiter",
author = "Tomasz 'anacron' Motylinski",
description = "Limiting Bomsites when due to low CT players.",
version = "1.2.3",
url = "http://anacron.pl/"
}
public OnPluginStart()
{
HookEvent("round_freeze_end",Event_RoundFreezeEnd,EventHookMode_Post);
HookEvent("bomb_planted",Event_RoundEnd,EventHookMode_Post);
HookEvent("round_end",Event_RoundEnd,EventHookMode_Post);
CreateConVar("sm_bslimiter","1.2.3","Version Information",FCVAR_REPLICATED|FCVAR_NOTIFY);
}
stock bool:IsVecBetween(const Float:vecVector[3],const Float:vecMin[3],const Float:vecMax[3])
{
return ( (vecMin[0] <= vecVector[0] <= vecMax[0]) &&
(vecMin[1] <= vecVector[1] <= vecMax[1]) &&
(vecMin[2] <= vecVector[2] <= vecMax[2]) );
}
public Message()
{
PrintToChatAll("[BS Limiter] Ze wzgledu na mala liczbe CT w tej rundzie. Beda oni bronic tylko Bombside %s.",BSAL);
PrintHintTextToAll("Tylko Bombsite %s jest wlaczony w tej rundzie",BSAL);
}
public Action:RepeatMessage(Handle:timer)
{
Message();
}
public Action:Event_RoundFreezeEnd (Handle:event,const String:name[],bool:dontBroadcast)
{
if(IsValidEntity(EIBA))
{
EIBA = -1;
}
if(IsValidEntity(EIBB))
{
EIBB = -1;
}
if(Timer != INVALID_HANDLE)
{
CloseHandle(Timer);
Timer = INVALID_HANDLE;
}new Float:VBCPA[3];
new Float:VBCPB[3];
new EI = -1;
EI = FindEntityByClassname(EI,"cs_player_manager");
if(IsValidEntity(EI))
{
GetEntPropVector(EI,Prop_Send,"m_bombsiteCenterA",VBCPA);
GetEntPropVector(EI,Prop_Send,"m_bombsiteCenterB",VBCPB);
}
EI = -1;
EI = FindEntityByClassname(EI,"func_bomb_target");
while(IsValidEntity(EI))
{
new Float:VBMin[3];
new Float:VBMax[3];
GetEntPropVector(EI,Prop_Send,"m_vecMins",VBMin);
GetEntPropVector(EI,Prop_Send,"m_vecMaxs",VBMax);
if (IsVecBetween(VBCPA,VBMin,VBMax))
{
EIBA = EI;
}
else if (IsVecBetween(VBCPB,VBMin,VBMax))
{
EIBB = EI;
}
EI = FindEntityByClassname(EI,"func_bomb_target");
}
if(IsValidEntity(EIBA) && IsValidEntity(EIBB))
{
new CTPlayers = GetTeamClientCount(CS_TEAM_CT);
new TTPlayers = GetTeamClientCount(CS_TEAM_T);if(((CTPlayers > TTPlayers) && (TTPlayers == 1 || CTPlayers > 3)) || CTPlayers > 4)
{
AcceptEntityInput(EIBB,"Enable");
AcceptEntityInput(EIBA,"Enable");
BSAL = "";
PrintHintTextToAll("All Bombsites are enabled in this round!");
PrintCenterTextAll("All Bombsites are enabled in this round!");
}
else
{
if(GetRandomInt(1,2) == 1)
{
AcceptEntityInput(EIBA,"Disable");
AcceptEntityInput(EIBB,"Enable");
BSAL = "B";
}
else
{
AcceptEntityInput(EIBB,"Disable");
AcceptEntityInput(EIBA,"Enable");
BSAL = "A";
}
decl String:CurrentMap[256];
GetCurrentMap(CurrentMap,sizeof(CurrentMap));
for(new i=0; i<STANDARDMAPSMAX; i++)
{
if(StrEqual(CurrentMap,StandardMaps[0],false))
{
if(StrEqual(StandardMaps[1],"B",false))
{
AcceptEntityInput(EIBA,"Disable");
AcceptEntityInput(EIBB,"Enable");
BSAL = "B";
}
else
{
AcceptEntityInput(EIBB,"Disable");
AcceptEntityInput(EIBA,"Enable");
BSAL = "A";
}
}
}
if(GetClientCount(true) > 1)
{
Message();
Timer = CreateTimer(60.0,RepeatMessage, _,TIMER_REPEAT);
}
}
}
}
public Action:Event_RoundEnd (Handle:event,const String:name[],bool:dontBroadcast)
{
if(Timer != INVALID_HANDLE)
{
CloseHandle(Timer);
Timer = INVALID_HANDLE;
}
if(IsValidEntity(EIBA))
{
AcceptEntityInput(EIBA,"Enable");
EIBA = -1;
}
if(IsValidEntity(EIBB))
{
AcceptEntityInput(EIBB,"Enable");
EIBB = -1;
}
}/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par }
*/
-
Chodzi mi o to jak wyłączyć komendę sm plugins
-
Mam jeszcze 2 pytania:
1.Zrobisz mi żeby była taka opcja jak "cennik" i tam przykładowe ceny.
2.powiesz mi gdzie to wstawić? Bo ja trochę zielony jestem w te tematy (opcja nr 2)
-
Szukam pluginu, który po wpisaniu np
!vip wyświetli informację dotyczącą vipa
-
3 minuty temu, bobpixel napisał:
Brakuje ci biblioteki scp.inc
To gdzie mam ją pobrać? Bo to było kompilowane przez tą stronę https://www.sourcemod.net/compiler.php
55 minut temu, Husarz napisał:server.cfg, autoexec.cfg
Podał byś mi głębszą ścieżkę?
-
Co zrobić gry nie można skompilować pliku?
Wyskakuje mi taki powód
/home/groups/sourcemod/upload_tmp/phpyNPlAD.sp(4) : fatal error 182: cannot read from file: "scp" Compilation aborted. 1 Error.
Jeżeli usunę scp to vip nie będzie miał tag vipa na czacie, ale jeżeli nie skompiluje tego w .smx to vip nie działa ;/
-
Dzięki, a w jakim pliku można zmieniać ustawienia mapy "mp_", "sv_" bo chcę pozmieniać parę rzeczy.
-
Mam problem, ponieważ jestem nowy w tworzeniu serwerów. Chciałbym dowiedzieć się w jakim pliku mogę nadać graczowi vipa (cs go). W ogóle fajnie by było jakbyście opisali mi proces wgrywania pluginu na vipa i nadawanie tej rangi graczowi.
Plugin na itemy
w Pluginy
Opublikowano
Witajcie,
Tak jak w temacie, poszukuję pluginu na itemy, który działał by tak, że np. po wpisaniu komendy !itemy wyświetlał by nazwę itemu i po kliknięciu w nznią zakupilibyśmy go za określoną ilość monet.