Skocz do zawartości
Remixy Reupload

[COD NOWY] Nie da sie uzyc mocy klasy/itemu

Rekomendowane odpowiedzi

Pobralem coda z amxx nowego ktorego dodal linux, i grajac klasa wsparcie ogniowe nie moge uzyc rakiety, nie zmienialem w niej nic

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Masz zbinowadne  używanie umiejętności klasy?

bind klawisz useclass

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Tak, mam zbindowane, to jest cod z amxx 1.1 nowy co udostepnil linux, juz cvarow sie pozbylem bo tez mi nie dzialaly 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Skoro go edytowałeś na swój sposób, to będziesz musiał wstawić tu kod źródłowy 😛  z fusów nikt nie wyczyta

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Tego nie ruszalem, usunalem tylko cvary na level, exp, maksymalna iteligencje itd Uzycie jest oryginalne, sprawdzalem z silnikiem oryginalnym i tez nie dzialalo. Byc moze robie cos zle :V

 

Tego nie ruszalem, usunalem tylko cvary na level, exp, maksymalna iteligencje itd Uzycie jest oryginalne, sprawdzalem z silnikiem oryginalnym i tez nie dzialalo. Byc moze robie cos zle :V

 

Udostępnij tę odpowiedź


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

 

#include <sourcemod>
#include <sdkhooks>
#include <sdktools>
#include <codmod>
#include <cstrike>

new const String:nazwa[] = "Wsparcie Ogniowe";
new const String:opis[] = "Posiada dwie rakiety zadajace 50 (+inteligencja) obrazen";
new const String:bronie[] = "#weapon_mp5sd#weapon_glock";
new const inteligencja = 0;
new const zdrowie = 30;
new const obrazenia = 0;
new const wytrzymalosc = 10;
new const kondycja = 20;

new bool:ma_klase[65],
    ilosc_rakiet_gracza[65];

new sprite_explosion;
public Plugin:myinfo =
{
    name = "x",
    author = "x",
    description = "x,
    version = "x",
    url = "x"
};
public OnPluginStart()
{
    cod_register_class(nazwa, opis, bronie, inteligencja, zdrowie, obrazenia, wytrzymalosc, kondycja);
    HookEvent("player_spawn", OdrodzenieGracza);
}
public OnMapStart()
{
    PrecacheModel("models/props/de_vertigo/construction_safetyribbon_01.mdl");
    sprite_explosion = PrecacheModel("materials/sprites/blueflare1.vmt");
    PrecacheSound("weapons/hegrenade/explode5.wav");
}
public cod_class_enabled(client)
{
    ma_klase[client] = true;
    ilosc_rakiet_gracza[client] = 2;
    CS_SetClientClanTag(client, "[Wsparcie Ogn.]");
}
public cod_class_disabled(client)
{
    ma_klase[client] = false;
    CS_SetClientClanTag(client, "[Brak]");
}
public cod_class_skill_used(client)
{
    if(!ilosc_rakiet_gracza[client])
        PrintToChat(client, "Wykorzystales juz moc swojej klasy w tym zyciu!");
    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:iorigin[3], Float:iangles[3], Float:ivector[3];
            TR_TraceRayFilter(forigin, fangles, MASK_SOLID, RayType_Infinite, TraceRayFilter, ent);
            TR_GetEndPosition(iorigin);
            DispatchSpawn(ent);
            ActivateEntity(ent);
            SetEntityModel(ent, "models/props/de_vertigo/construction_safetyribbon_01.mdl");
            SetEntityMoveType(ent, MOVETYPE_STEP);
            SetEntityGravity(ent, 0.1);
            MakeVectorFromPoints(forigin, iorigin, ivector);
            NormalizeVector(ivector, ivector);
            ScaleVector(ivector, 1000.0);
            GetVectorAngles(ivector, iangles);
            TeleportEntity(ent, forigin, iangles, ivector);
            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, DotykRakiety);

            ilosc_rakiet_gracza[client] --;
        }
    }
}
public Action:DotykRakiety(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) && GetClientTeam(attacker) == GetClientTeam(client))
        return Plugin_Continue;

    new Float:forigin[3], Float:iorigin[3];
    GetEntPropVector(ent, Prop_Send, "m_vecOrigin", forigin);

    new damage = 50+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) <= 100.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 bool:TraceRayFilter(ent, contents)
{
    return false;
}
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_rakiet_gracza[client] = 2;
    return Plugin_Continue;
}

 

Nic tam nie zmienialem

Edytowane przez Kamil?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Wklej jeszcze proszę onpluginstart i funkcje UzyjKlasy z silnika 

Udostępnij tę odpowiedź


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

public OnPluginStart()
{
    CreateConVar(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);
    cvar_proporcja_punktow = CreateConVar("cod_points_level", "2");
//--------------------------------------------------------------------------------
//    cvar_doswiadczenie_za_zabojstwo = CreateConVar("cod_xp_kill", "x");
//    cvar_doswiadczenie_za_zabojstwo_hs = CreateConVar("cod_xp_killhs", "x");
//    cvar_doswiadczenie_za_obrazenia = CreateConVar("cod_xp_damage", "x");
//    cvar_doswiadczenie_za_wygrana_runde = CreateConVar("cod_xp_winround", "x");
//    cvar_doswiadczenie_za_cele_mapy = CreateConVar("cod_xp_objectives", "x");
//    cvar_limit_poziomu = CreateConVar("cod_max_level", "x");
//    cvar_proporcja_poziomu = CreateConVar("cod_level_ratio", "x");
//    cvar_proporcja_punktow = CreateConVar("cod_points_level", "x"); -- x sa umyslnie dane --
//--------------------------------------------------------------------------------

    RegConsoleCmd("klasa", WybierzKlase);
    RegConsoleCmd("class", WybierzKlase);
    RegConsoleCmd("klasy", OpisKlas);
    RegConsoleCmd("classinfo", OpisKlas);
    RegConsoleCmd("items", OpisItemow);
    RegConsoleCmd("perks", OpisItemow);
    RegConsoleCmd("perki", OpisItemow);
    RegConsoleCmd("item", OpisItemu);
    RegConsoleCmd("perk", OpisItemu);
    RegConsoleCmd("wyrzuc", WyrzucItem);
    RegConsoleCmd("useclass", UzyjKlasy);
    RegConsoleCmd("useitem", UzyjItemu);
    RegConsoleCmd("useperk", UzyjItemu);
    RegConsoleCmd("statystyki", PrzydzielPunkty);
    RegConsoleCmd("staty", PrzydzielPunkty);
    RegConsoleCmd("reset", ResetujPunkty);

    RegConsoleCmd("buy", BlokujKomende);
    RegConsoleCmd("buyequip", BlokujKomende);
    RegConsoleCmd("buyammo1", BlokujKomende);
    RegConsoleCmd("buyammo2", BlokujKomende);
    RegConsoleCmd("rebuy", BlokujKomende);
    RegConsoleCmd("autobuy", BlokujKomende);

    HookEvent("round_freeze_end", PoczatekRundy);
    HookEvent("round_start", NowaRunda);
    HookEvent("round_end", KoniecRundy);

    HookEvent("hostage_rescued", ZakladnikUratowany);
    HookEvent("bomb_defused", BombaRozbrojona);
    HookEvent("bomb_planted", BombaPodlozona);

    HookEvent("player_spawn", OdrodzenieGracza);
    HookEvent("player_death", SmiercGracza);

    HookUserMessage(GetUserMessageId("TextMsg"), TextMessage, true);
    LoadTranslations("common.phrases");

    nazwy_klas[0] = "Brak";
    opisy_klas[0] = "Brak dodatkowych uzdolnien";
    bronie_klas[0] = "";
    inteligencja_klas[0] = 0;
    zdrowie_klas[0] = 100;
    obrazenia_klas[0] = 0;
    wytrzymalosc_klas[0] = 0;
    kondycja_klas[0] = 100;

    nazwy_itemow[0] = "Brak";
    opisy_itemow[0] = "Zabij kogos, aby otrzymac item";

    CreateConVar("sm_tag_version", "1.0", "[TAG] Admin [CS:GO]", FCVAR_PLUGIN|FCVAR_SPONLY|FCVAR_REPLICATED|FCVAR_NOTIFY|FCVAR_DONTRECORD);
    Tagsay = CreateConVar("sm_tag_say", "1", "Tagi COD/VIP/LVL", FCVAR_NONE, true, 0.0, true, 1.0);
    
    AutoExecConfig(true, "sm_tag_admin");

    RegConsoleCmd("say", Command_SendToAll);
    RegConsoleCmd("say_team", Command_SendToTeam);
}

Spoiler

public Action:UzyjKlasy(client, args)
{
    if(!(!IsPlayerAlive(client) || freezetime) && GetClientButtons(client) & IN_USE)
    {
        new Function:forward_klasy = GetFunctionByName(pluginy_klas[klasa_gracza[client]], "cod_class_skill_used");
        if(forward_klasy != INVALID_FUNCTION)
        {
            Call_StartFunction(pluginy_klas[klasa_gracza[client]], forward_klasy);
            Call_PushCell(client);
            Call_PushCell(klasa_gracza[client]);
            Call_Finish();
        }
    }

    return Plugin_Handled;
}

To wszystko

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Ojojoj, wpisz w konsoli +use a potem useclass, i zastanów się co tam jest źle hehe 😛

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
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ę

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

  • Podobna zawartość

    • Przez Remixy Reupload
      Witam , jak zrobic aby klasa byla premium, probowalem tak:
      No ale nie dziala, jakas alternatywa  ? Bo po kliknieciu wlacza sie napis Aby zagrac ta klasa kup premium (wpisz /sklepsms) ! i klasa tez, ale nie ma zadnych umiejetnosci tylko bronie i staty
    • Przez shedy
      Witam,
       
      posiadamy na serwerze paczkę Linuxa` COD Nowy, która posiada przedmiot Buty Szturmowego sprawiający, że nie słychać naszych kroków. Dodałem funkcjonalność tego przedmiotu do nowo utworzonej klasy i na serwerze testowym postawionym na moim komputerze, gdzie sprawdzam sobie wszystkie zmiany i testuje przed wypuszczeniem na serwer właściwy, wszystko śmiga (sprawdzane z innymi graczami, nie jest tak że tylko ja się sam nie słyszałem i to stwierdzam). Problem jest jednak taki, że na serwerze właściwym zarówno po wrzuceniu bezpośrednio .smx skompilowanego u mnie jak i skompilowaniu tam .sp osobno (na serwerze właściwym przez FTP) kroki słychać. Z racji, że u mnie działa dokładnie ten sam .smx a tam nie to domyślam się, że problem leży po stronie konfiguracji serwera i różnic na moim a na właściwym. Są jakieś komendy które blokują wyłączenie kroków danego klienta? Nie jestem w stanie tego zrozumieć, bo same Buty Szturmowego wyciszają kroki zarówno u mnie na testowym jak i na serwerze właściwym, ale klasa zrobiona na jego podstawie wg poradnika działa tylko u mnie :(
       
      Ocenzurowane jak to działa, bo paczka Linuxa` jest płatna i nie chciałbym wrzucać jak to wygląda całe, a nie ma go na Steamie żeby się skontaktować i zapytać o zgodę (w razie uzyskania zgody to wrzucę całość, ale nie wydaje mi się żeby to było aż tak istotne).
       
       
      ... - cenzura :D
       
      #include <sourcemod>
      #include <codmod>
      #include <sdktools>
      #include <sdkhooks>
       
      ... // zmienne do statystyk i czy klient posiada umiejętność klasy czy już wykorzystał (tutaj akurat nie ma aktywnej umiejętności, zawsze jest tak, że nie słychać)
       
      public Plugin:myinfo =
      {
          name = nazwa,
          author = "Linux`",
          description = "Cod Klasa",
          version = "1.0",
          url = "http://steamcommunity.com/id/linux2006"
      };
       
      public OnPluginStart()
      {
          ... // rejestrowanie klasy
          AddNormalSoundHook(DzwiekiGracza);
      }
       
      public OnClientPutInServer(client)
      {
          if ... // sprawdzanie czy jest fake clientem
              SendConVarValue(client, FindConVar("sv_footsteps"), "0");
      }

      public ... // klasa jest włączona
      {
             ...  // zmienna, że klient gra daną klasą
      }
       
      public ... // klasa jest wyłączona
      {
              ... // zmienna, że klient nie gra daną klasą
      }
       
      public Action:DzwiekiGracza(clients[64], &numclients, String:sample[PLATFORM_MAX_PATH], &entity, &channel, &Float:volume, &level, &pitch, &flags)
      {
         if ... // sprawdzanie czy jest fake clientem
              return Plugin_Continue;
       
          if ... // sprawdzanie warunków wypuszczenia dźwięku do innych graczy
          {
              if // sprawdzanie, czy ma umiejętność (tak jak pisałem wyżej zawsze ją ma)
                  EmitSoundToAll(sample, entity);
              return Plugin_Handled;
          }
          return Plugin_Continue;
      }

       
       
       
    • Przez Maikovsky
      Witam, posiadam nowy COD MOD, na którym mam plugin gameme i po wpisaniu na czacie rank lub top10 nic się nie wyświetla, a w kodzie pluginu nie ma tych komend, aby były zablokowane.
      Proszę o pomoc.
    • Przez Maikovsky
      Jak w nazwie tematu, jak dodać do każdej klasy kevlar+hełm? Proszę o pomoc.
×