Skocz do zawartości

Nowy szablon forum

mygo.pl

Stworzyliśmy dla Was nowy wygląd forum. Z pewnością znajdziesz rzeczy, które wg Ciebie mogą zostać zmienione - wspomnij o tym w specjalnym wątku.

Czytaj więcej

Jak założyć własną sieć

serwerów CS

Zastanawiasz się nad prowadzeniem własnej sieci serwerów? Przeczytaj podstawowe informacje, na które należy zwrócić uwagę, przy takim projekcie.

Czytaj więcej

Tworzymy spis sieci

dodaj swoją

Dodaj sieć do której należysz, pozwoli to na promocję i budowę ogólnopolskiej bazy sieci CS.

Czytaj więcej

Błędne sp


Denone
 Udostępnij

Rekomendowane odpowiedzi

Witam, mam problem z smx do nowego cod moda, stworzyłem klasę która ma podwójny skok lecz inni gracze z darmowych klas też posiadają podwójny skok krótko to opisując klasa buguje podwójny skok i daję innym graczom podwójny skok.

Post głównie kieruje do @Linux` dziękuje za pomoc.

Sp:

#include <sourcemod>
#include <sdkhooks>
#include <sdktools>
#include <codmod>
 
new const String:nazwa[] = "[VIP] Zawodowy Bomber";
new const String:opis[] = "Posiada podwojny skok jest bardziej wytrzymaly oraz ma trzy miny, moc ich obrazen (+int)";
new const String:bronie[] = "#weapon_ak47#weapon_glock";
new const inteligencja = 10;
new const zdrowie = 20;
new const obrazenia = 5;
new const wytrzymalosc = 20;
new const kondycja = 15;
 
new bool:ma_klase[65],
        ilosc_min_gracza[65];
 
new sprite_explosion;
 
 
public Plugin:myinfo =
{
        name = nazwa,
        author = "Denone`",
        description = "Cod Klasa",
        version = "1.0",
        url = "http://steamcommunity.com/id/linux2006"
};
public OnPluginStart()
{
        CreateTimer(0.10, RegisterStart, 0);
        HookEvent("player_spawn", OdrodzenieGracza);
}
public OnMapStart()
{
        //PrecacheModel("models/props/de_prodigy/fanhousing.mdl");
        PrecacheModel("models/weapons/w_c4_planted.mdl");
        sprite_explosion = PrecacheModel("materials/sprites/blueflare1.vmt");
        PrecacheSound("weapons/hegrenade/explode5.wav");
}
public cod_class_enabled(client)
{
        ma_klase[client] = true;
        ilosc_min_gracza[client] = 3;


	if(GetUserFlagBits(client) & ADMFLAG_RESERVATION)
	{
		ma_klase[client] = true;
		return COD_CONTINUE;
	}
	PrintToChat(client, "%s Klasa dostępna tylko dla posiadaczy VIP", PREFIX);
	return COD_STOP;
}
public cod_class_disabled(client)
{
        ma_klase[client] = false;
}
public Action:OnPlayerRunCmd(client, &buttons, &impulse, Float:vel[3], Float:angles[3], &weapons)
{
	if(!IsValidClient(client) || !ma_klase[client])
		return Plugin_Continue;

	if(!IsPlayerAlive(client))
		return Plugin_Continue;

	static bool:oldbuttons[65];
	if(!oldbuttons[client] && buttons & IN_JUMP)
	{
		static bool:multijump[65];
		new flags = GetEntityFlags(client);
		if(!(flags & FL_ONGROUND) && !multijump[client])
		{
			new Float:forigin[3];
			GetEntPropVector(client, Prop_Data, "m_vecVelocity", forigin);
			forigin[2] += 250.0;
			TeleportEntity(client, NULL_VECTOR, NULL_VECTOR, forigin);
			multijump[client] = true;
		}
		else if(flags & FL_ONGROUND)
			multijump[client] = false;

		oldbuttons[client] = true;
	}
	else if(oldbuttons[client] && !(buttons & IN_JUMP))
		oldbuttons[client] = false;

	return Plugin_Continue;
}
public cod_class_skill_used(client)
{
        if(!ilosc_min_gracza[client])
                PrintToChat(client, "%s Wykorzystales juz moc swojej klasy w tym zyciu!", PREFIX);
        else
        {
                new ent = CreateEntityByName("hegrenade_projectile");
                if(ent != -1)
                {
                        new Float:forigin[3];
                        GetClientEyePosition(client, forigin);
 
                        new Float:fangles[3];
                        GetClientEyeAngles(client, fangles);
 
                        new Float:iangles[3];
                        iangles[1] = fangles[1];
 
                        DispatchSpawn(ent);
                        ActivateEntity(ent);
                        //SetEntityModel(ent, "models/props/de_prodigy/fanhousing.mdl");
                        SetEntityModel(ent, "models/weapons/w_c4_planted.mdl");
                        SetEntityMoveType(ent, MOVETYPE_STEP);
                        TeleportEntity(ent, forigin, iangles, NULL_VECTOR);
                        SetEntProp(ent, Prop_Send, "m_usSolidFlags", 12);
                        SetEntProp(ent, Prop_Data, "m_nSolidType", 6);
                        SetEntProp(ent, Prop_Send, "m_CollisionGroup", 1);
                        SetEntPropEnt(ent, Prop_Send, "m_hOwnerEntity", client);
                        SDKHook(ent, SDKHook_StartTouchPost, DotykMiny);
 
                        ilosc_min_gracza[client] --;
                }
        }
}
public Action:DotykMiny(ent, client)
{
        if(!IsValidEntity(ent))
                return Plugin_Continue;
 
        new attacker = GetEntPropEnt(ent, Prop_Send, "m_hOwnerEntity");
        if(!IsValidClient(attacker) || !ma_klase[attacker])
        {
                AcceptEntityInput(ent, "Kill");
                return Plugin_Continue;
        }
        if(!IsValidClient(client) || IsValidClient(client) && GetClientTeam(attacker) == GetClientTeam(client))
                return Plugin_Continue;
 
        new Float:forigin[3], Float:iorigin[3];
        GetEntPropVector(ent, Prop_Send, "m_vecOrigin", forigin);
 
        new damage = 40+RoundFloat(cod_get_user_maks_intelligence(attacker)*0.5);
        for(new i = 1; i <= MaxClients; i++)
        {
                if(!IsClientInGame(i) || !IsPlayerAlive(i))
                        continue;
 
                if(GetClientTeam(attacker) == GetClientTeam(i))
                        continue;
 
                GetClientEyePosition(i, iorigin);
                if(GetVectorDistance(forigin, iorigin) <= 200.0)
                {
                        if(cod_get_user_class(i) == cod_get_classid("Obronca"))
                                continue;
 
                        cod_inflict_damage(i, attacker, damage);
                }
        }
 
        EmitSoundToAll("weapons/hegrenade/explode5.wav", ent, SNDCHAN_AUTO, SNDLEVEL_GUNFIRE);
        TE_SetupExplosion(forigin, sprite_explosion, 10.0, 1, 0, 100, 100);
        TE_SendToAll();
 
        AcceptEntityInput(ent, "Kill");
        return Plugin_Continue;
}
public Action:OdrodzenieGracza(Handle:event, String:name[], bool:dontBroadcast)
{
        new client = GetClientOfUserId(GetEventInt(event, "userid"));
        if(!IsValidClient(client) || !ma_klase[client])
                return Plugin_Continue;
 
        ilosc_min_gracza[client] = 3;
        return Plugin_Continue;
}
public Action:RegisterStart(Handle:timer)
{
    cod_register_class(nazwa, opis, bronie, inteligencja, zdrowie, obrazenia, wytrzymalosc, kondycja);
}

 

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
 Udostępnij

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...