michauux Opublikowano Czerwiec 27, 2016 o 16:44 Udostępnij Opublikowano Czerwiec 27, 2016 o 16:44 Witam, mam problem z kompilacją pliku noblock_aura.sp Kompilację wykonuję przez sourcemoda na windowsa 1.8 Oto błąd, którego nie mogę znaleźć: noblock_aura.sp (1): error 010: invalid function of declaration #include <sourcemod> #include <smlib> #define COLLISION_GROUP_DEBRIS_TRIGGER 2 #define COLLISION_GROUP_PLAYER 5 #define COLLISION_GROUP_PUSHAWAY 17 #define VERSION "1.1" new Handle:cvarAuraRange = INVALID_HANDLE; new Handle:cvarAuraTime = INVALID_HANDLE; new Handle:cvarAuraNoblockTime = INVALID_HANDLE; new Handle:cvarAuraSpawnNoblockTime = INVALID_HANDLE; new Handle:cvarAuraRefreshRate = INVALID_HANDLE; new Handle:cvarAuraBeamRate = INVALID_HANDLE; new Handle:cvarAnnounceRate = INVALID_HANDLE; enum Aura { bool:AuraIgnore, Float:AuraEndTime, Float:NoBlockEndTime, } new g_client[MAXPLAYERS+1][Aura]; new g_ioffsCollisionGroup; new Handle:g_hTimer = INVALID_HANDLE; new Handle:g_hTimerEffect = INVALID_HANDLE; new gGlow1; new gHalo1; new g_color[4]; public Plugin:myinfo = { name = "NoBlock Aura", author = "Zipcore, Lacrimosa99", description = "Spawn noblock and noblock aura", version = VERSION, url = "zipcore#googlemail.com" } public OnPluginStart() { CreateConVar("sm_noblock_aura_version", VERSION, "NoBlock Aura", FCVAR_DONTRECORD|FCVAR_SPONLY|FCVAR_REPLICATED|FCVAR_NOTIFY); cvarAuraNoblockTime = CreateConVar("sm_noblock_aura_noblock_time", "1.0", "Give player in range this amount of time noblock."); cvarAuraRange = CreateConVar("sm_noblock_aura_range", "82.0", "Aura range to effect other players."); cvarAuraBeamRate = CreateConVar("sm_noblock_aura_beam_rate", "1.0", "Create a beacon every X seconds."); cvarAuraSpawnNoblockTime = CreateConVar("sm_noblock_aura_spawn_noblock_time", "10.0", "Give aura this amount of time on roundstart and playerspawn."); cvarAuraRefreshRate = CreateConVar("sm_noblock_aura_refresh_rate", "0.1", "Itervall to check for other players in range."); cvarAuraTime = CreateConVar("sm_noblock_aura_time", "10.0", "Extend time for aura command."); cvarAnnounceRate = CreateConVar("sm_noblock_announce_rate", "180.0", "Announce this plugin to players."); g_ioffsCollisionGroup = FindSendPropInfo("CBaseEntity", "m_CollisionGroup"); if (g_ioffsCollisionGroup == -1) { SetFailState("CBaseEntity:m_CollisionGroup not found"); } HookEvent("round_freeze_end", Event_RoundStart); HookEvent("player_spawn", Event_PlayerSpawn); RegConsoleCmd("say", ChatHook); RegConsoleCmd("say_team", ChatHook); g_color[0] = 255; g_color[1] = 50; g_color[2] = 50; g_color[3] = 50; } public OnMapStart() { if(GetEngineVersion() == Engine_CSS) { gGlow1 = PrecacheModel("materials/sprites/laser.vmt", true); gHalo1 = PrecacheModel("materials/sprites/halo01.vmt"); } else if(GetEngineVersion() == Engine_CSGO) { gGlow1 = PrecacheModel("materials/sprites/laserbeam.vmt", true); gHalo1 = PrecacheModel("materials/sprites/halo.vmt"); } else SetFailState("Noblockaura failed: CSS and CSGO only."); if(GetConVarFloat(cvarAuraRefreshRate) > 0.0) g_hTimer = CreateTimer(GetConVarFloat(cvarAuraRefreshRate), Timer, _, TIMER_REPEAT); if(GetConVarFloat(cvarAuraBeamRate) > 0.0) g_hTimerEffect = CreateTimer(GetConVarFloat(cvarAuraBeamRate), TimerEffect, _, TIMER_REPEAT); if(GetConVarFloat(cvarAnnounceRate) > 0.0) CreateTimer(GetConVarFloat(cvarAnnounceRate), AnnounceMsg, _, TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE); } public OnMapEnd() { // Kill Timers ClearHandle(g_hTimer); ClearHandle(g_hTimerEffect); } public Action:AnnounceMsg(Handle:timer, any:client) { PrintToChatAll("[Noblock-Aura] Wpisz !noblock lub !nb aby włączyć NoBlock"); return Plugin_Continue; } public Event_PlayerSpawn(Handle:event, const String:name[], bool:dontBroadcast) { new client = GetClientOfUserId(GetEventInt(event, "userid")); new Float:time = GetGameTime(); g_client[client][AuraEndTime] = time; g_client[client][NoBlockEndTime] = time + GetConVarFloat(cvarAuraSpawnNoblockTime); } public Event_RoundStart(Handle:event, const String:name[], bool:dontBroadcast) { new Float:time = GetGameTime(); for(new i=1; i <= MaxClients; i++) { g_client[AuraEndTime] = time; g_client[NoBlockEndTime] = time + GetConVarFloat(cvarAuraSpawnNoblockTime); } PrintToChatAll("[Noblock-Aura] Noblock włączony %ds.", RoundToFloor(GetConVarFloat(cvarAuraSpawnNoblockTime))); } public Action:ChatHook(client, args) { new String:line[32]; new String:name[MAX_NAME_LENGTH]; if (args > 0) { GetCmdArg(1,line,sizeof(line)); GetClientName(client, name, sizeof(name)); if (StrEqual(line, "!noblock", false) || StrEqual(line, "!nb", false)) { if(IsClientInGame(client)) { if(IsPlayerAlive(client)) { g_client[client][AuraEndTime] = GetGameTime() + GetConVarFloat(cvarAuraTime); PrintToChat(client, "[Noblock-Aura] Noblock włączony na %ds.", RoundToFloor(GetConVarFloat(cvarAuraTime))); } else PrintToChat(client, "[Noblock-Aura] Musisz być żywy."); } } } return Plugin_Continue; } public Action:Timer(Handle:timer, any:data) { Refresh_Collision(); return Plugin_Continue; } public Action:TimerEffect(Handle:timer, any:data) { Refresh_Effect(); return Plugin_Continue; } SetupBeacon(client) { new Float:time = GetGameTime(); new tempColor[4]; tempColor[0] = GetRandomInt(100, 255); tempColor[1] = GetRandomInt(100, 255); tempColor[2] = GetRandomInt(100, 255); tempColor[3] = 50; new Float:vec[3]; GetClientAbsOrigin(client, vec); vec[2] += 10; if(g_client[client][AuraEndTime] - time < 3) TE_SetupBeamRingPoint(vec, 25.0, 150.0, gGlow1, gHalo1, 0, 1, 0.5, 20.0, 0.0, g_color, 1, 0); else TE_SetupBeamRingPoint(vec, 25.0, 150.0, gGlow1, gHalo1, 0, 1, 0.5, 20.0, 0.0, tempColor, 1, 0); TE_SendToAll(); } Refresh_Effect() { new Float:time = GetGameTime(); for(new i=1;i<=MaxClients;i++) { if(IsClientInGame(i) && IsPlayerAlive(i)) { if(g_client[AuraEndTime] > time) { SetupBeacon(i); } } } } Refresh_Collision() { new Float:time = GetGameTime(); //validate all players for(new i=1;i<=MaxClients;i++) { g_client[AuraIgnore] = false; if(!(IsClientInGame(i) && IsPlayerAlive(i))) { g_client[AuraIgnore] = true; } } //extend noblock for(new i=1;i<=MaxClients;i++) { if(g_client[AuraIgnore]) continue; for(new j=1;j<=MaxClients;j++) { if(g_client[j][AuraIgnore]) continue; if(g_client[AuraEndTime] > time) { if(Entity_InRange(j, i, GetConVarFloat(cvarAuraRange))) { g_client[j][NoBlockEndTime] = time + GetConVarFloat(cvarAuraNoblockTime); } } } } //set collision group for(new i=1;i<=MaxClients;i++) { if(g_client[AuraIgnore]) continue; if(g_client[AuraEndTime] > time || g_client[NoBlockEndTime] > time) Client_SetNoblockable(i); else if(!IsPlayerStuck(i)) Client_SetBlockable(i); //else Client_SetPushable(i); } } stock bool:IsPlayerStuck(client) { decl Float:vOrigin[3], Float:vMins[3], Float:vMaxs[3]; GetClientAbsOrigin(client, vOrigin); GetEntPropVector(client, Prop_Send, "m_vecMins", vMins); GetEntPropVector(client, Prop_Send, "m_vecMaxs", vMaxs); TR_TraceHullFilter(vOrigin, vOrigin, vMins, vMaxs, MASK_ALL, FilterOnlyPlayers, client); return TR_DidHit(); } public bool:FilterOnlyPlayers(entity, contentsMask, any:data) { if(entity != data && entity > 0 && entity <= MaxClients) { return true; } return false; } public OnEntityCreated(entity, const String:classname[]) { if (StrEqual(classname, "hegrenade_projectile")) { SetEntData(entity, g_ioffsCollisionGroup, COLLISION_GROUP_DEBRIS_TRIGGER, 4, true); } else if (StrEqual(classname, "flashbang_projectile")) { SetEntData(entity, g_ioffsCollisionGroup, COLLISION_GROUP_DEBRIS_TRIGGER, 4, true); } else if (StrEqual(classname, "smokegrenade_projectile")) { SetEntData(entity, g_ioffsCollisionGroup, COLLISION_GROUP_DEBRIS_TRIGGER, 4, true); } } stock Client_SetNoblockable(client) { if(GetEngineVersion() == Engine_CSS) { new count = 0; for(new i=1;i<=MaxClients;i++) { if(g_client[AuraIgnore]) continue; if(!(IsClientInGame(i) && IsPlayerAlive(i))) continue; if(Entity_InRange(client, i, 64.0)) count++; } if(count > 5) { SetEntityRenderColor(client, 255, 255, 255, 100); } else if(count > 2) { SetEntityRenderColor(client, 255, 255, 255, 150); } else SetEntityRenderColor(client, 255, 255, 255, 200); } SetEntData(client, g_ioffsCollisionGroup, COLLISION_GROUP_DEBRIS_TRIGGER, 4, true); } stock Client_SetBlockable(client) { if(GetEngineVersion() == Engine_CSS) { SetEntityRenderColor(client, 255, 255, 255, 255); } SetEntData(client, g_ioffsCollisionGroup, COLLISION_GROUP_PLAYER, 4, true); } stock Client_SetPushable(client) { if(GetEngineVersion() == Engine_CSS) { SetEntityRenderColor(client, 255, 255, 0, 255); } SetEntData(client, g_ioffsCollisionGroup, COLLISION_GROUP_PUSHAWAY, 4, true); } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
koxel Opublikowano Czerwiec 28, 2016 o 09:42 Udostępnij Opublikowano Czerwiec 28, 2016 o 09:42 Zaloguj się lub zarejestruj aby zobaczyć zawartość. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
koxel Opublikowano Czerwiec 28, 2016 o 20:06 Udostępnij Opublikowano Czerwiec 28, 2016 o 20:06 Zaloguj się lub zarejestruj aby zobaczyć zawartość. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
owner_2019 Opublikowano Listopad 23, 2019 o 09:43 Udostępnij Opublikowano Listopad 23, 2019 o 09:43 Zaloguj się lub zarejestruj aby zobaczyć zawartość. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi