Skocz do zawartości

Rekomendowane odpowiedzi

Po pierwsze nie ma czegoś takiego jak "ADMFLAG_VIP":

Cytat

RegAdminCmd("sm_hp", MojeHp, ADMFLAG_VIP);
RegAdminCmd("sm_guns", Guns, ADMFLAG_VIP);

 

Możesz ustawić sobie zamiast tego ADMFLAG_CUSTOMx lub zrobić sobie zrobić funkcje, która sprawdza czy gracz jest VIP'em (zamiast ADMFLAG_CUSTOM1 możesz użyć innych flag https://wiki.alliedmods.net/Checking_Admin_Flags_(SourceMod_Scripting)):

Cytat

stock bool IsClientVIP(client) {
    if (GetUserFlagBits(client) && ADMFLAG_CUSTOM1) {
        if (CheckCommandAccess(client, "player_vip", ADMFLAG_CUSTOM1, false)) {
            return true;
        }
    }
    return false;
}

 

Kolejną sprawą jest to, że nie zbyt ogarniam czego potrzebujesz, bo ten kod wydaje się okej:

Cytat

public Action MojeHp(int client, int args)
{
    int hp = GetClientHealth(client);
    
    if (hp <= 50) {
        SetEntityHealth(client, 100);
    }
    if (hp <= 75) {
        SetEntityHealth(client, 100);
    }
} 

 

  • Lubię to!
  • Dziękuję
Odnośnik do odpowiedzi
Udostępnij na innych stronach

Kolega wyżej opisał już admflag więc nie będę powielał tego.

 

A co do drugiego problemu, o ile dobrze zrozumiałem chodzi ci o regeneracje hp do 100 nie ważne jaką ilość HP ma Client - jeśli to tak to starczy 

 

public Action MojeHp(int client, int args)
{
    int hp = GetClientHealth(client);
    
    if (hp <= 1) {
        SetEntityHealth(client, 100);
    }
} 

[testowałem u siebie]

 

lub 

 

public Action MojeHp(int client, int args)
{
    int hp = GetClientHealth(client);
    
    if (hp <= 50) {
        SetEntityHealth(client, 100);
    }
    if (hp <= 75) {
        SetEntityHealth(client, 100);
    }
    if (hp <= 1) {
        SetEntityHealth(client, 100);
    }
} 

 

Niżej cały kod

 

Spoiler

#include <sourcemod>
#include <sdktools>
#include <cstrike> 

public void OnPluginStart() {
    RegAdminCmd("sm_hp", MojeHp, ADMFLAG_CUSTOM1);
    RegAdminCmd("sm_guns", Guns, ADMFLAG_CUSTOM1);
}

public Action MojeHp(int client, int args)
{
    int hp = GetClientHealth(client);
    
    if (hp <= 50) {
        SetEntityHealth(client, 100);
    }
    if (hp <= 75) {
        SetEntityHealth(client, 100);
    }
    if (hp <= 1) {
        SetEntityHealth(client, 100);
    }
} 

public Action Guns(int client, int args) 
{
    Menu menu = new Menu(Guns_Handler);
    menu.SetTitle("Choose Weapon:");
    menu.AddItem("1", "AK + DEAGLE");
    menu.AddItem("2", "M4A4 + DEAGLE");
    menu.AddItem("3", "AWP + DEAGLE");
    
    menu.Display(client, MENU_TIME_FOREVER);
}

public int Guns_Handler(Menu menu, MenuAction action, int client, int position) {
    switch (action) 
    {
        case MenuAction_Select
        {
            switch (position) 
            {
                case 0
                {
                    GivePlayerItem(client, "weapon_ak47");
                    GivePlayerItem(client, "weapon_deagle");
                }
                case 1
                {
                    GivePlayerItem(client, "weapon_m4a1");
                    GivePlayerItem(client, "weapon_deagle");
                    
                    }
                case 2
                {
                    GivePlayerItem(client, "weapon_awp");
                    GivePlayerItem(client, "weapon_deagle");
                }
            }
            
        }
        case MenuAction_End:delete menu;
    }
}

 

Edytowane przez kyo
  • Dziękuję
Odnośnik do odpowiedzi
Udostępnij na innych stronach
9 godzin temu, kyo napisał:

A co do drugiego problemu, o ile dobrze zrozumiałem chodzi ci o regeneracje hp do 100 nie ważne jaką ilość HP ma Client - jeśli to tak to starczy 

Nie nie, chodzi o to żeby osoba leczyła się o 50HP z limitem 100HP przykład osoba na 25HP wpisuje !HP dostaje 50HP czyli ma 75HP, gdy ma 50HP dostaje 50HP czyli ma 100HP, gdy ma więcej niż 50HP czyli np 51HP po wpisaniu !HP dostaje HP do pełnej 100 czyli 49HP lecz nie przekracza w żadnym wypadku 100HP

Odnośnik do odpowiedzi
Udostępnij na innych stronach
2 godziny temu, Gopnik napisał:

Nie nie, chodzi o to żeby osoba leczyła się o 50HP z limitem 100HP przykład osoba na 25HP wpisuje !HP dostaje 50HP czyli ma 75HP, gdy ma 50HP dostaje 50HP czyli ma 100HP, gdy ma więcej niż 50HP czyli np 51HP po wpisaniu !HP dostaje HP do pełnej 100 czyli 49HP lecz nie przekracza w żadnym wypadku 100HP

 

hpibronie.sp

Sygnatura użytkownika

Pomogłem? Daj lajka! 🤗🥰

Odnośnik do odpowiedzi
Udostępnij na innych stronach
  • Moderator poziom 2
14 godzin temu, kyo napisał:

A co do drugiego problemu, o ile dobrze zrozumiałem chodzi ci o regeneracje hp do 100 nie ważne jaką ilość HP ma Client - jeśli to tak to starczy 

 

public Action MojeHp(int client, int args)
{
    int hp = GetClientHealth(client);
    
    if (hp <= 1) {
        SetEntityHealth(client, 100);
    }
} 

XDD

To co podałeś nijak ma się do twoich słów. Warunek zostanie spełniony tylko wtedy gdy gracz ma 1HP lub mniej XD

 

5 godzin temu, Gopnik napisał:

Nie nie, chodzi o to żeby osoba leczyła się o 50HP z limitem 100HP przykład osoba na 25HP wpisuje !HP dostaje 50HP czyli ma 75HP, gdy ma 50HP dostaje 50HP czyli ma 100HP, gdy ma więcej niż 50HP czyli np 51HP po wpisaniu !HP dostaje HP do pełnej 100 czyli 49HP lecz nie przekracza w żadnym wypadku 100HP

	if (GetClientHealth(client) + 50 > 100)
		SetEntityHealth(client, 100);
	else
		SetEntityHealth(client, GetClientHealth(client) + 50);

 

Sygnatura użytkownika

» Support: https://discord.com/invite/zMXt97R63v

» Steam: https://steamcommunity.com/id/pawelsteam/

» Discord: Paweł#8244

» PluginyCS: https://pluginycs.pl/profile/Pawel

» Przyjmuję zlecenia na paczki oraz pluginy.  «

  • Lubię to!
  • Dziękuję
Odnośnik do odpowiedzi
Udostępnij na innych stronach

Ostatnio przeglądający ten temat (5 użytkowników)

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
×
×
  • Dodaj nową pozycję...