Skocz do zawartości
Sqower

[Rozwiązane] jak zrobić klasę Vip

Rekomendowane odpowiedzi

public cod_class_enabled

{

if(GetUserFlagBits(client) & ADMFLAG_RESERVATION)

return COD_CONTINUE;

else

{

PrintToChat(client, "Klasa dostępna tylko dla VIP");

return COD_STOP;

}

Sorka, z telefonu ? tam jeszcze zazwyczaj masz boola w klasach linuksa, to "ma_klase" true ustawiasz i wsio ?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Cytat

 

#include <sourcemod>
#include <sdkhooks>
#include <codmod>

new const String:nazwa[] = "Snajper";
new const String:opis[] = "Zadaje 120 procent obrazen z awp (+inteligencja)";
new const String:bronie[] = "#weapon_awp#weapon_deagle";
new const inteligencja = 5;
new const zdrowie = 20;
new const obrazenia = 0;
new const wytrzymalosc = 20;
new const kondycja = 25;

new bool:ma_klase[65];
public Plugin:myinfo =
{
    name = nazwa,
    author = "Linux`",
    description = "Cod Klasa",
    version = "1.0",
    url = "http://steamcommunity.com/id/linux2006"
};
public OnPluginStart()
{
    cod_register_class(nazwa, opis, bronie, inteligencja, zdrowie, obrazenia, wytrzymalosc, kondycja);
}
public OnClientPutInServer(client)
{
    SDKHook(client, SDKHook_OnTakeDamage, OnTakeDamage);
}
public OnClientDisconnect(client)
{
    SDKUnhook(client, SDKHook_OnTakeDamage, OnTakeDamage);
}
public cod_class_enabled(client)
{
    if(GetUserFlagBits(client) & ADMFLAG_RESERVATION)
{
ma_klase[client] = true;
return COD_CONTINUE;
}
}
public cod_class_disabled(client)
{
    ma_klase[client] = false;
}
public Action:OnTakeDamage(client, &attacker, &inflictor, &Float:damage, &damagetype)
{
    if(!IsValidClient(attacker) || !ma_klase[attacker])
        return Plugin_Continue;

    if(!IsValidClient(client) || GetClientTeam(client) == GetClientTeam(attacker))
        return Plugin_Continue;

    new String:weapon[32];
    GetClientWeapon(attacker, weapon, sizeof(weapon));
    if(StrEqual(weapon, "weapon_awp") && damagetype & DMG_BULLET)
        cod_inflict_damage(client, attacker, RoundFloat(damage*0.2)+RoundFloat(cod_get_user_maks_intelligence(attacker)*0.5));

    return Plugin_Continue;
}

 

Zrobiłem tak ale klase wolno normalnie wybrać

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
public cod_class_enabled(client)
{
    if(GetUserFlagBits(client) & ADMFLAG_RESERVATION)
	{
	ma_klase[client] = true;
	return COD_CONTINUE;
	}
}

cod_class_enabled wywołuje się w momencie, kiedy zmieniasz klasę. W środku sprawdzasz jedynie, czy MASZ flagę rezerwacji i wtedy ustawiasz zmienną. Natomiast jeśli takiej klasy nie masz....nic się nie dzieje - w związku z tym klasa zostaje zwyczajnie przydzielona, tylko że bez ustawienia zmiennej ma_klase. Aby zapobiec wybraniu się danej klasy musisz zwrócić COD_STOP, więc potrzebujesz czegoś takiego:

public cod_class_enabled(client)
{
    if(!(GetUserFlagBits(client) & ADMFLAG_RESERVATION))
	{
		PrintToChat(client, "nie posiadasz danej klasy!");
		return COD_STOP;
	}
  	ma_klase[client] = true;
	return COD_CONTINUE;
}

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Wiadomość wygenerowana automatycznie

 

Temat został zamknięty. Powodem jest całkowite rozwiązanie problemu zawartego w temacie.

 

Jeśli się z tym nie zgadzasz, zaraportuj ten post z prośbą o ponowne otwarcie i kontynuację dyskusji.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.

×
×
  • Dodaj nową pozycję...