Skocz do zawartości

[Plugin] AWP + LVL CSGO

 Udostępnij


Rekomendowane odpowiedzi

Cześć i czołem, udostępniam wam moją paczkę AWP + LVL. Postanowiłem się podzielić tutaj tym pluginem, bo na razie nie mam planów na stawianie własnego serwera.

 

Tryb polega na tym, że za zabijanie przeciwników otrzymujemy określoną ilość doświadczenia. Za doświadczenie otrzymujemy poziomy a za poziomy - punkty umiejętności.

Za poziom otrzymujecie 2 punkty umiejętności, razem jest 20 poziomów. (łącznie 40 punktów co idealnie starcza na ulepszenie wszystkiego.)

 

Komendy:

 

 


!lvl

!poziom

!level

 

!givepoints - Dodaje 40 punktów (Wymagana flaga Z)

Wszystkie robią to samo.

 

 

To teraz screenshoty (Dzięki @ deshaspokoza pomoc :) )

 

 


Tabela wyników

Dfevy0Y.png

 

Główne menu:

ePGXO6s.png

 

Zakładka ulepszeń:

Otm5MEy.png

 

Hud:

ZaduhTL.png

 

Zabójstwo Headshot + NoScope:

K8sG7tD.png

 

Zabójstwo NoScope:

LpvVCrN.png

 

Zabójstwo Scope + HeadShot:

Ce6jWsv.png

 

Zabójstwo nożem:

MCd6mqu.png

 

I po prostu zabójstwo scope:

hDBBKiN.png

 

Osiągnięcie poziomu:

fvumfdd.png

 

Ulepszenie:

wNohzUB.png
 

 

 

Podłączenie do bazy danych:

 

 


    "AWPLVL"
    {
        "driver"            " "
        "host"                " "
        "database"            " "
        "user"                " "
        "pass"                " "
        //"timeout"            "0"
        "port"                "3306"
    }
 

 

 

No i oczywiście reklama. :kappa:

 

 


fapffNn.png
 

 

 

Plik SP załączam na dole.

Na końcu dodam, że jest to mój pierwszy kod.

 

 

 

 

 

AWPLVL.sp

Edytowane przez SchMidT
cos sie popsulo
  • Lubię to! 9
Poprawiam nazwę tematu na prośbę autora, Edit. Dodaję jedną z komend na prosbę autora.

Przez SchMidT, , edytowane

Odnośnik do komentarza
Udostępnij na innych stronach

1. Kod strasznie chaotyczny.

public Action timerautor(Handle timer, int client)
{
    PrintToChatAll("%s Autorem paczki AWP + LVL jest Deshayiere.", TAG);
}

2. Czy ty jeden plik nazwałeś paczką xd?

 

3. Zamiast:

Spoiler

RegConsoleCmd("sm_givepoints", awp_givepoints);

public Action awp_givepoints(int client, int args)
{
    if (GetUserFlagBits(client) && ADMFLAG_ROOT)
    {
        awp_punktylv[client] += 40;
        SaveAll(client);
    }
}

 

mogłeś użyć:

Spoiler

RegAdminCmd("sm_givepoints", awp_givepoints, ADMFLAG_ROOT);

public Action awp_givepoints(int client, int args)
{
    if (GetUserFlagBits(client) && ADMFLAG_ROOT)
    {
        awp_punktylv[client] += 40;
        SaveAll(client);
    }
}

 

4. Tutaj masz błąd:

if (GetUserFlagBits(client) && ADMFLAG_ROOT)

powinno być:

if (GetUserFlagBits(client) & ADMFLAG_ROOT)
Spoiler

public Action Event_PlayerSpawn(Event event, const char[] name, bool dontBroadcast)
{
    int client = GetClientOfUserId(GetEventInt(event, "userid"));
    GivePlayerItem(client, "weapon_awp");
    SetEntProp(client, Prop_Send, "m_ArmorValue", 100);
    SetEntProp(client, Prop_Send, "m_bHasHelmet", 1);
    if (IsValidClient(client))
    {
        SetEntityHealth(client, GetClientHealth(client)+(1 * awp_zycie[client]));
        SetEntityGravity(client, GetGravity(client));
        SetEntPropFloat(client, Prop_Send, "m_flLaggedMovementValue", GetSpeed(client));
        CreateTimer(1.0, Timer_CheckSetGravity, GetClientUserId(client), TIMER_FLAG_NO_MAPCHANGE|TIMER_REPEAT);
    }
    char buffer[32];
    Format(buffer, sizeof(buffer), "[ Poziom %i ]", awp_lvl[client]);
    CS_SetClientClanTag(client, buffer);
}

 

5. W powyższym kodzie sprawdzasz czy klient jest połączony z serwerem, nie jest botem itd.(wszystko co jest zawarte w booleanie) tylko dla części kodu. Dlaczego nie zastosujesz tego dla całej akcji? Myślę, że jest prawdopodobieństwo wysypu error logów.

 

6. 

Spoiler

public Action timerhud(Handle timer, int client)
{
    for (int i = 1; i <= MaxClients; i++)
    {
        if (IsClientInGame(i) && !IsFakeClient(i))
        {
            PrintHintText(i, "<font color='#00ff12'>//</font> <font color='#ff0000'>Only AWP + LvL</font> <font color='#00ff12'>//</font>\n<font color='#00c0ff'>» <font color='#ff9c00'>Poziom: %i\n<font color='#00c0ff'>» <font color='#ff9c00'>Doswiadczenie: %i", awp_lvl[i], awp_exp[i]);
        }
    }
}

 

Do timera daje się "any client", a nie "int client". Tutaj akurat jest to nawet nie potrzebne bo i tak tego nie używasz.

 

7. W tej akcji nie sprawdzasz czy klient jest botem itd. Znowu prawdopodobny wysyp error logów.

Spoiler

public Action Event_PlayerDeath(Event event, const char[] name, bool dontBroadcast)

 

 

8. 

Spoiler

FormatEx(buffer, 512, "Poziomy - OnlyAWP + LvL");

 

o wiele lepszy i pewniejszy sposób:

Spoiler

FormatEx(buffer, sizeof(buffer), "Poziomy - OnlyAWP + LvL");

 

 

  • Lubię to! 2
  • Smutne. 1
  • WOW MEGA! 1
  • Haha! 1
Odnośnik do komentarza
Udostępnij na innych stronach

  • SK4N3R zablokował(a) ten temat
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
 Udostępnij

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

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

Powiadomienie o plikach cookie

Polityka prywatności