Skocz do zawartości
Czesti

Adminall spec błąd kompilacji (cannot use 'this' outside of a methodmap method or property)

Rekomendowane odpowiedzi

Witam mam pewien problem próbuje wszystkimi sposobami jestem amatorem w kompilowaniu. Po ostatnim update adminall-spec się popsuło admin nie widzi drugiego teamu. Widziałem wyszła nowa wersja pluginu i po kompilacji mam coś takiego: 

 

Cytat

//// admin-allspec.sp
//
// admin-allspec.sp(52) : warning 234: symbol "FCVAR_PLUGIN" is marked as deprecated: No logic using this flag ever existed in a released game. It only ever appeared in the first hl2sdk.
//
//
// admin-allspec.sp(65) : error 122: expected type expression
// admin-allspec.sp(72) : error 166: cannot use 'this' outside of a methodmap method or property
// admin-allspec.sp(72) : error 166: cannot use 'this' outside of a methodmap method or property
// admin-allspec.sp(72) : error 166: cannot use 'this' outside of a methodmap method or property
// admin-allspec.sp(72) : fatal error 190: too many error messages on one line
//
// Compilation aborted.
// 5 Errors.

 

Sp pluginu to:

Spoiler

#include <sourcemod>
#include <dhooks>

#define PLUGIN_VERSION "1.0.2"

new Handle:hIsValidTarget;
new Handle:mp_forcecamera;
new bool:g_bCheckNullPtr = false;

public Plugin:myinfo = 
{
    name = "Admin all spec",
    author = "Dr!fter",
    description = "Allows admin to spec all players",
    version = PLUGIN_VERSION,
    url = "http://www.sourcemod.net"
}

public APLRes:AskPluginLoad2(Handle:myself, bool:late, String:error[], err_max)
{
    MarkNativeAsOptional("DHookIsNullParam");
    
    return APLRes_Success;
}

public OnPluginStart()
{
    mp_forcecamera = FindConVar("mp_forcecamera");
    
    if(!mp_forcecamera)
    {
        SetFailState("Failed to locate mp_forcecamera");
    }
    
    new Handle:temp = LoadGameConfigFile("allow-spec.games");
    
    if(!temp)
    {
        SetFailState("Failed to load allow-spec.games.txt");
    }
    
    new offset = GameConfGetOffset(temp, "IsValidObserverTarget");
    
    hIsValidTarget = DHookCreate(offset, HookType_Entity, ReturnType_Bool, ThisPointer_CBaseEntity, IsValidTarget);
    
    DHookAddParam(hIsValidTarget, HookParamType_CBaseEntity);
    
    CloseHandle(temp);
    
    g_bCheckNullPtr = (GetFeatureStatus(FeatureType_Native, "DHookIsNullParam") == FeatureStatus_Available);
    
    CreateConVar("admin_allspec_version", PLUGIN_VERSION, "Plugin version", FCVAR_PLUGIN|FCVAR_SPONLY|FCVAR_REPLICATED|FCVAR_NOTIFY|FCVAR_DONTRECORD);
}
public OnClientPostAdminCheck(client)
{
    if(IsFakeClient(client))
        return;
    
    if(CheckCommandAccess(client, "admin_allspec_flag", ADMFLAG_CHEATS))
    {
        SendConVarValue(client, mp_forcecamera, "0");
        DHookEntity(hIsValidTarget, true, client);
    }
}
public MRESReturn:IsValidTarget(this, Handle:hReturn, Handle:hParams)
{
    // As of DHooks 1.0.12 we must check for a null param.
    if (g_bCheckNullPtr && DHookIsNullParam(hParams, 1))
        return MRES_Ignored;
    
    new target = DHookGetParam(hParams, 1);
    if(target <= 0 || target > MaxClients || !IsClientInGame(this) || !IsClientInGame(target) || !IsPlayerAlive(target) || IsPlayerAlive(this) || GetClientTeam(this) <= 1 || GetClientTeam(target) <= 1)
    {
        return MRES_Ignored;
    }
    else
    {
        DHookSetReturn(hReturn, true);
        return MRES_Override;
    }
}

 

Mógłby ktoś pomóc? Pozdrawiam

Przez MAGNET,

Kod umieszczaj w znaczniku "Kod". Ponadto, jeśli jest on dłuższy - zawsze w spoilerze

Przez Vasto_Lorde,

Poprawiona nazwa tematu!

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

"this" jest słowem zarezerwowanym dla methodmap. Podobnie, nie możesz nazwać zmiennej "int" czy "float". Zmień na cokolwiek innego.

Linijke z FCVAR możesz usunąć

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić obrazków. Dodaj lub załącz obrazki z adresu URL.


×
×
  • Dodaj nową pozycję...