Jump to content
assignment_ind Existing user? Sign In

Sign In



person_add Sign Up
Go-Code.pl - Support SourceMod i Pluginy CS:GO
Sign in to follow this  
terrorist0p

Dawanie broni

Recommended Posts

Witam mam prośbę i mały problem, przy użyciu tego pluginu zabiera całą broń i daje jakąś broń, ale np. przy użyciu VIP'a nie daje granatów z VIP'a

 

Chcę żeby zabierało całą broń z mapy i dawało nóż i awp, bo w pluginie !ws dublują się noże i przy użyciu tego się nie dublują.

Ale żeby granaty z VIP'a też dawało, a nie zabierało. 

 

Przy usunięciu client_removeallweapons.. działa wszystko, ale wtedy daje z mapy np. glocki,5-7,p250 itp., chyba że wypisać wszystkie spluwy z osobna i będzie działać 😄 

 

#include <sourcemod>
#include <smlib>

ConVar g_cvEnablePlugin;
ConVar g_cvDeleteMapWeapons;
ConVar g_cvKnifeOnlyWarmup

public Plugin myinfo = 
{
	name = "xxx",
	author = "xxx",
	description = "xxx",
	version = "xxx"
};


public OnPluginStart()
{
    HookEvent("player_spawn", Event_PlayerSpawn);

    g_cvEnablePlugin = CreateConVar("sm_awponly_enableplugin", "1", "1 = Plugin enabled, 0 = Plugin disabled", FCVAR_NOTIFY);
    g_cvKnifeOnlyWarmup = CreateConVar("sm_awponly_warmupknifeonly", "0", "1 = Knife only in warmup, 0 = AWP + Knife in warmup", FCVAR_NOTIFY);
    g_cvDeleteMapWeapons = CreateConVar("sm_awponly_deletemapweapons", "1", "1 = Delete weapons placed on the map, 0 = Don't delete weapons placed on the map");

    AutoExecConfig(true, "awponly");
}


public void Event_PlayerSpawn(Event event, const char[] name, bool dontBroadcast)
{
    if(g_cvEnablePlugin.BoolValue)
        RequestFrame(SetWeapons, GetClientOfUserId(GetEventInt(event, "userid")));
}


public void OnMapStart()
{
    if(g_cvEnablePlugin.BoolValue && g_cvDeleteMapWeapons.BoolValue)
        ServerCommand("sm_cvar mp_weapons_allow_map_placed 0")
}


stock bool IsClientValid(int client)
{
    if (client >= 1 && client <= MaxClients && IsClientConnected(client) && IsClientInGame(client) && !IsFakeClient(client))
        return true;
    return false;
}


public void SetWeapons(int client)
{
    if(IsClientValid(client))
    {
        if(g_cvKnifeOnlyWarmup.BoolValue)
        {
            if(GameRules_GetProp("m_bWarmupPeriod") == 1)
            {
                Client_RemoveAllWeapons(client, "", true);
                GivePlayerItem(client, "weapon_xxx");
            }
        }
        else
        {
            Client_RemoveAllWeapons(client, "", true);
            GivePlayerItem(client, "weapon_xxx");
            GivePlayerItem(client, "weapon_xxx");
        }
    }
}

 

Share this post


Link to post
Share on other sites
1 minutę temu, Nikita Chruszczow napisał:

Użyj tych 2 pluginów i po problemie 😜 

Właśnie nie chce tego fixa, bo on zabiera kose, od razu po wygranej rundzie, czyli kilka sekund gracz nie ma kosy 😄 
Bardziej mnie zainteresowało rozwiązanie CANUSE, ktoś mi powie coś więcej?

Share this post


Link to post
Share on other sites
#include <sourcemod>
#include <sdkhooks>

#pragma semicolon 1
#pragma newdecls required

char g_sWeaponsCanUse [][] =
{
	"weapon_knife",
	"weapon_decoy",
	"weapon_flashbang",
	"weapon_hegrenade",
	"weapon_smokegrenade",
	"weapon_molotov",
	"weapon_incgrenade",
	"weapon_awp"
};

public void OnPluginStart() 
{
	for(int i = 1; i <= MaxClients; i++)
		if(IsValidClient(i))
			OnClientPutInServer(i);
}

public void OnClientPutInServer(int client)
{
	SDKHook(client, SDKHook_WeaponCanUse, WeaponCanUse);
}

public void OnClientDisconnect(int client)
{
	SDKUnhook(client, SDKHook_WeaponCanUse, WeaponCanUse);
}

public Action WeaponCanUse(int client, int weapon)
{
	if(!IsValidClient(client) || !IsPlayerAlive(client))
		return Plugin_Continue;

	char weapons[32];
	GetEdictClassname(weapon, weapons, sizeof(weapons));
	
	for(int i = 0; i < sizeof(g_sWeaponsCanUse); i ++)
	{
		if(StrEqual(g_sWeaponsCanUse[i], weapons))
			return Plugin_Continue;
	}
	
	return Plugin_Handled;
}

stock bool IsValidClient(int client)
{
	if(client <= 0 ) return false;
	if(client > MaxClients) return false;
	if(!IsClientConnected(client)) return false;
	if(IsFakeClient(client)) return false;
	return IsClientInGame(client);
}

 

Share this post


Link to post
Share on other sites

Wystarczą komendy z cs` 😛 
 

mp_equipment_reset_rounds 							"1"
mp_t_default_melee								"weapon_knife"
mp_t_default_secondary								"."
mp_t_default_primary								"weapon_awp"
mp_ct_default_melee								"weapon_knife"
mp_ct_default_secondary								"."
mp_ct_default_primary								"weapon_awp"

 

  • Lubię to! 1

Share this post


Link to post
Share on other sites


Po co usuwasz autora pluginu?  https://github.com/xSL0W/csgo_awponly
Hej! Skorzystałeś z linku lub pobrałeś załącznik? Uhonoruj naszą pracę poprzez rejestrację na forum i rośnij razem z nami!

Dodaj sobie w vipie timer na 0.1 na spawnie gracza i w za pomocą jego dawaj granaty

Share this post


Link to post
Share on other sites
Teraz, szogun napisał:


Po co usuwasz autora pluginu?  https://github.com/xSL0W/csgo_awponly
Hej! Skorzystałeś z linku lub pobrałeś załącznik? Uhonoruj naszą pracę poprzez rejestrację na forum i rośnij razem z nami!

Dodaj sobie w vipie timer na 0.1 na spawnie gracza i w za pomocą jego dawaj granaty

Jak dodać timer?

Share this post


Link to post
Share on other sites
1 minutę temu, terrorist0p napisał:

Jak dodać timer?

 

Share this post


Link to post
Share on other sites
#include <sourcemod>
#include <cstrike>
#include <sdktools>

#pragma semicolon 1
#pragma newdecls required

int offsetHe;

public void OnPluginStart()
{
	HookEvent("player_spawn", PlayerSpawn);
}

public Action PlayerSpawn(Event event, const char[] name, bool dontBroadcast) 
{
	int client = GetClientOfUserId(GetEventInt(event, "userid"));
	if(IsValidPlayer(client) && IsPlayerVIP(client))
	{
		if(IsPlayerAlive(client))
		{
			CreateTimer(0.1, GiveEquipment, GetEventInt(event, "userid"), TIMER_FLAG_NO_MAPCHANGE);
		}
	}
}
public Action GiveEquipment(Handle timer, any userid) {
	int client = GetClientOfUserId(userid);
   
	if(!IsPlayerAlive(client) || !IsValidPlayer(client)) return;
	{  
		if(GetEntProp(client, Prop_Send, "m_iAmmo", _, offsetHe) < 1) 
			GivePlayerItem(client, "weapon_hegrenade");
	}
}

stock bool IsValidPlayer(int client)
{
    if(client >= 1 && client <= MaxClients && IsClientInGame(client) && IsClientConnected(client) && !IsFakeClient(client) && !IsClientReplay(client) && !IsClientSourceTV(client))
        return true;
    return false;
}

stock bool IsPlayerVIP(int client)
{
	if(GetUserFlagBits(client) & ADMFLAG_CUSTOM1) return true;
	if(GetUserFlagBits(client) & ADMFLAG_ROOT) return true;

	return false;
}

 

Flagi vipa

 

	if(GetUserFlagBits(client) & ADMFLAG_CUSTOM1) return true;
	if(GetUserFlagBits(client) & ADMFLAG_ROOT) return true;

Tylko sobie skompiluj to

Share this post


Link to post
Share on other sites

Na przykładzie VIP'a od @Mesharsky ktoś pokaże jak ten timer dla playerspawn dodać, i aby co rundę się powtarzało, na każdej mapie.

 

 

H2K_Vip.sp
Hej! Skorzystałeś z linku lub pobrałeś załącznik? Uhonoruj naszą pracę poprzez rejestrację na forum i rośnij razem z nami!

Share this post


Link to post
Share on other sites
W dniu 1.11.2019 o 22:43, terrorist0p napisał:

Na przykładzie VIP'a od @Mesharsky ktoś pokaże jak ten timer dla playerspawn dodać, i aby co rundę się powtarzało, na każdej mapie.

 

 

H2K_Vip.sp 20 kB · 1 pobranie
Hej! Skorzystałeś z linku lub pobrałeś załącznik? Uhonoruj naszą pracę poprzez rejestrację na forum i rośnij razem z nami!

Ale po co skoro? masz gotowy plugin dl vipa

Share this post


Link to post
Share on other sites
1 minutę temu, szogun napisał:

Ale po co skoro? masz gotowy plugin dl vipa

 

Ale tamten plugin only awp, zabiera np. granaty z VIP'a...

Share this post


Link to post
Share on other sites

Czytaj ze zrozumieniem, masz zrobionego vipa z timerem dzięki któremu ci tego nie zabierze 🙂

Share this post


Link to post
Share on other sites
8 minut temu, szogun napisał:

Czytaj ze zrozumieniem, masz zrobionego vipa z timerem dzięki któremu ci tego nie zabierze 🙂

Tam jest timer chyba tylko na wiadomości HUD albo powitalne

Share this post


Link to post
Share on other sites
Teraz, terrorist0p napisał:

Tam jest timer chyba tylko na wiadomości HUD albo powitalne

......................

 

 

Timer jest dodany do ekwipunku gracza , plugin który podałeś usuwa bronie graczowi w momenie player_spawn

Kod który ci podałem dodaje graczowi ekp tak samo w momencie player_spawn lecz z opóźnieniem do 0.1

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.


O NAS Jesteśmy społecznością łączącą ludzi, którzy dzielą pasję poznawania CS:GO od strony programistycznej. Posiadamy duże zaplecze merytoryczne i zawsze cieszymy się, gdy dołączają do nas osoby gotowe do nauki. Gwarantujemy, że z odrobiną wytrwałości i otwartym umysłem bardzo szybko napiszesz swój pierwszy plugin. Zapraszamy! 🙂
Szablon wykonany z dużą ilością przez cyberpixelz / Mesharsky / Sitefuture
Forum dumnie napędzane przez: Invision Power Services, Inc.
×
×
  • Create New...