Skocz do zawartości
regi669

[Brak rozwiązania] Problem z Eventem player_spawn

Rekomendowane odpowiedzi

Witam, mam problem z eventem w pluginie, mianowicie przy Spawnie gracza pojawia się błąd: 

Spoiler

L 02/08/2020 - 21:52:13: [SM] Blaming: DeathrunKlasy_ReGi.smx
L 02/08/2020 - 21:52:13: [SM] Call stack trace:
L 02/08/2020 - 21:52:13: [SM]   [1] Line 308, C:\Users\Alsen\Desktop\SourceMod\DeathrunKlasy_ReGi.sp::SpawnEvent
L 02/08/2020 - 21:54:43: [SM] Exception reported: Instruction contained invalid parameter
L 02/08/2020 - 21:54:43: [SM] Blaming: DeathrunKlasy_ReGi.smx
L 02/08/2020 - 21:54:43: [SM] Call stack trace:
L 02/08/2020 - 21:54:43: [SM]   [1] Line 308, C:\Users\Alsen\Desktop\SourceMod\DeathrunKlasy_ReGi.sp::SpawnEvent

 

Mój Kod eventu wygląda tak

Spoiler

public void SpawnEvent(Event event, const char[] name, bool dontBroadcast)
{
    int client = GetClientOfUserId(GetEventInt(event, "userid"));
    if(IsValidClient(client)&&!IsClientSourceTV(client))
    {
        switch(g_iKlasa[client])
        {
            case 0:
            {
                SetEntPropFloat(client, Prop_Send, "m_flLaggedMovementValue", 1.4);
                SetEntityGravity(client, 0.3);
                RemoveAllWeapons(client);
                GivePlayerItem(client, "weapon_deagle");
            }
            case 1:
            {
                SetEntPropFloat(client, Prop_Send, "m_flLaggedMovementValue", 1.2);
                RemoveAllWeapons(client);
                GivePlayerItem(client, "weapon_deagle");  //Line 308
                GivePlayerItem(client, "weapon_smokegrenade");
                GivePlayerItem(client, "weapon_molotov");
                GivePlayerItem(client, "weapon_hegrenade");
                GivePlayerItem(client, "weapon_flashbang");
            }
        }
    }
}



void RemoveAllWeapons(int client)
{
    if(IsValidClient(client))
    {
        int ent;
        for(int i; i < 2; i++)
        {
            if((ent = GetPlayerWeaponSlot(client, i)) != -1)
            {
                RemovePlayerItem(client, ent);
                RemoveEdict(ent);
            }
        }
    }
}

 

Linijka 308 w tym przypadku to GivePlayerItem(client, "weapon_deagle");

 

Dla podanych wartości klasy normalnie przypisuje się prędkość i grawitacja, jednak problem jest tylko z GivePlayerItem, gracz nie dostaje żadnej broni przy odrodzeniu

 

Przez MAGNET,

Na przyszłość kod umieszczaj w odpowiednich znacznikach :). Poprawiłem już

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Nie mam pojęcia co może być nie tak bo kod wygląda dobrze. Ale sugestie:
-Sprawdź czy w case 0: również wywala błąd z GivePlayerItem
-W FORze w RemoveAllWeapons nie ma przypisania żadnej wartości do zmiennej i. Nie jestem pewien czy to działa dobrze bez przypisania

-Sprawdź czy GivePlayerItem działa ale nie na weapon_deagle

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Wiadomość wygenerowana automatycznie

 

Brak rozwiązania problemu

Jeżeli się z tym nie zgadzasz, raportuj ten post

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ę...