hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2025.06.16. 12:53



Jelenlévő felhasználók

Jelenleg 418 felhasználó van jelen :: 1 regisztrált, 0 rejtett és 417 vendég

A legtöbb felhasználó (2761 fő) 2025.01.09. 20:06-kor tartózkodott itt.

Regisztrált felhasználók: Bing [Bot]az elmúlt 5 percben aktív felhasználók alapján

Utoljára aktív
Ahhoz hogy lásd ki volt utoljára aktív, be kell jelentkezned.



Az oldal teljeskörű
használatához regisztrálj.

Regisztráció

Kereső


Új téma nyitása Hozzászólás a témához  [7 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: Team Semiclip Hiba
HozzászólásElküldve:2013.02.19. 18:32 
Offline
Újonc

Csatlakozott:2012.05.11. 17:16
Hozzászólások:4
Hello, felraktam a szerveremre a team semiclip plugint de mikor elindítom ezeket a hibákat írja ki:
Invalid CVAR pointer
[AMXX] Displaying debug trace (plugin "team_semiclip.amxx")
[AMXX] Run time error 10: native error (native "get_pcvar_num")
[AMXX] [0] team_semiclip.sma::plugin_init (line 271)
Kód:
/*================================================================================
 
      *****************************************
      ********* [Team Semiclip 1.8.1] *********
      *****************************************
 
   ----------------------
   -*- Licensing Info -*-
   ----------------------
 
   Team Semiclip
   by schmurgel1983(@msn.com)
   Copyright (C) 2010 - 2011 Stefan "schmurgel1983" Focke
 
   This program is free software: you can redistribute it and/or modify it
   under the terms of the GNU General Public License as published by the
   Free Software Foundation, either version 3 of the License, or (at your
   option) any later version.
 
   This program is distributed in the hope that it will be useful, but
   WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
   Public License for more details.
 
   You should have received a copy of the GNU General Public License along
   with this program. If not, see <http://www.gnu.org/licenses/>.
 
   In addition, as a special exception, the author gives permission to
   link the code of this program with the Half-Life Game Engine ("HL
   Engine") and Modified Game Libraries ("MODs") developed by Valve,
   L.L.C ("Valve"). You must obey the GNU General Public License in all
   respects for all of the code used other than the HL Engine and MODs
   from Valve. If you modify this file, you may extend this exception
   to your version of the file, but you are not obligated to do so. If
   you do not wish to do so, delete this exception statement from your
   version.
 
   No warranties of any kind. Use at your own risk.
 
   -------------------
   -*- Description -*-
   -------------------
 
   Added Team Semiclip, only for 1 team or both with enemie trespass or not.
   If team switching in mid-round so updating the team instandly, with unstuck feature.
 
   --------------------
   -*- Requirements -*-
   --------------------
 
   * Mods: Counter-Strike 1.6, Condition-Zero or Day of Defeat 1.3
   * AMXX: Version 1.8.0 or later
   * Module: engine, fakemeta, hamsandwich
 
   ----------------
   -*- Commands -*-
   ----------------
 
   -----
 
   ---------------------
   -*- Configuration -*-
   ---------------------
 
   // General
   // -------
   semiclip 1 // Enabled 1, Disabled 0
   semiclip_blockteam 0 // Both teams have semiclip - 0, Terror/Allies don't have semiclip - 1, CT/Axis don't have semiclip - 2
   semiclip_enemies 0 // trespass enemies [0-disabled / 1-enabled]
   semiclip_unstuck 1 // Unstuck for blockteam [0-disabled / 1-enabled]
   semiclip_unstuckdelay 0.0 // Unstuck delay in seconds (0.1 - 3.0) [0-instantly]
   semiclip_button 0 // Semiclip only if holding +use button [0-disabled / 1-enabled]
 
   // Render
   // ------
   semiclip_rendermode 2 // Render mode (look amxconst.inc -> Render for set_user_rendering) [0-5] [0-disabled]
   semiclip_renderradius 250 // Render radius [0-4095]
   semiclip_renderamt 128 // Render amount [0-255]
   semiclip_renderfade 0 // Render fade [0-disabled / 1-enabled] (do not use when u have CSO models)
   semiclip_renderfademin 50 // Minimum render fade amount [0-255] (stay very close or inside a player)
   semiclip_renderfadespec 0 // Render fade for current spectating Player [0-disabled / 1-enabled]
 
   ---------------
   -*- Credits -*-
   ---------------
 
   * SchlumPF*: Team Semiclip (main core)
   * joaquimandrade: Module: Semiclip (some cvars)
   * ConnorMcLeod: show playersname (bugfix)
   * MeRcyLeZZ & VEN: Unstuck (function)
   * georgik57: for many suggestions :)
 
   -----------------
   -*- Changelog -*-
   -----------------
 
   * v1.0:
      - initial release
 
   * v1.1:
      - Fixed: invisible player bones... like walls
 
   * v1.2:
      - faster! lower cpu!
 
   * v1.3:
      - added: Day of Defeat support
      - fixed: show playersname
 
   * v1.4:
      - Added: 2 new cvars for render mode & amt
      - made plugin 700% faster!
 
   * v1.5:
      - Added: automatic unstuck function for blockteam,
         unstuck delay
 
   * v1.5.1:
      - Fixed: DoD 1.3 spawn classnames
 
   * v1.6:
      - Added: team_semiclip.cfg, no one block befor
         zp_round_started, biohazard 2.0 support,
         clip fade only in distance range
 
   * v1.6.1:
      - Added: spectator support
      - Fixed: trespass enemies dosen't work correctly
 
   * v1.6.2:
      - Fixed: small semiclip_blockteam "0" bug after
         first zombie is chosen
 
   * v1.6.3:
      - Rewrite: Features - No one block before first
         zombie is chosen
 
   * v1.7.0:
      - Added: semiclip fade
      - Fixed: v1.6.3 broke bot support
 
   * v1.8.0:
      - Added: new cvars for fade minimum, radius
         current spectating player fade and +use
         button to get semiclip only when holding
 
   * v1.8.1:
      - Fixed: plugin is now working as intended,
         for all scripted of amxmodx plugin's like
         kreedz bhop maps etc
 
=================================================================================*/
 
#include <amxmodx>
#include <engine>
#include <fakemeta>
 
#if AMXX_VERSION_NUM < 180
   #assert AMX Mod X v1.8.0 or later library required!
#endif
 
#include <hamsandwich>
 
/*================================================================================
 [Constants, Offsets, Macros]
=================================================================================*/
 
new const PLUGIN_VERSION[] = "1.8.1"
 
const MAX_RENDER_AMOUNT = 255   // do not change this
const SEMI_RENDER_AMOUNT = 200   // do not change this
const Float:SPEC_INTERVAL = 0.2   // do not change this
 
enum
{
   MOD_CSTRIKE = 0,
   MOD_DOD
}
new g_iMod
 
const PEV_SPEC_TARGET = pev_iuser2
const TASK_SPECTATOR = 3128
#define ID_SPECTATOR (taskid - TASK_SPECTATOR)
 
/*================================================================================
 [Global Variables]
=================================================================================*/
 
new cvar_iSemiClip, cvar_iSemiClipEnemies, cvar_iSemiClipBlockTeams,
cvar_iSemiClipUnstuck, cvar_flSemiClipUnstuckDelay,
cvar_iSemiClipRenderMode, cvar_iSemiClipRenderRadius,
cvar_iSemiClipRenderAmt, cvar_iSemiClipRenderFade,
cvar_iSemiClipRenderFadeMin, cvar_iSemiClipRenderFadeSpec,
cvar_iSemiClipButton
 
new cvar_iBotQuota, cvar_iZombiePlague, cvar_iBiohazard,
bool:g_bHamCzBots, g_iMaxPlayers, bool:g_bPreparation
 
new g_iSpawnCount, Float:g_flSpawns[64][3], g_iSpawnCount2, Float:g_flSpawns2[64][3]
 
new g_iCachedSemiClip, g_iCachedEnemies, g_iCachedBlockTeams,
g_iCachedUnstuck, Float:g_flCachedUnstuckDelay,
g_iCachedRenderMode, g_iCachedRenderRadius,
g_iCachedRenderAmt, g_iCachedRenderFade,
g_iCachedRenderFadeMin, g_iCachedRenderFadeSpec,
g_iCachedClipButton
 
new bool:g_bIsAlive[33]
new bool:g_bIsConnected[33]
new bool:g_bIsBot[33]
new bool:g_bSolid[33]
new bool:g_bHaveSemiClip[33]
new g_iTeam[33]
new g_iSpectating[33]
new g_iSpectatingTeam[33]
new g_bButton[33]
new g_iRange[33][33]
 
#define is_user_valid(%1) (1 <= %1 <= g_iMaxPlayers)
 
/*================================================================================
 [Init and Cfg]
=================================================================================*/
 
public plugin_init()
{
   register_plugin("Team Semiclip", PLUGIN_VERSION, "schmurgel1983")
 
   RegisterHam(Ham_Spawn, "player", "fwd_PlayerSpawn_Post", 1)
   RegisterHam(Ham_Killed, "player", "fwd_PlayerKilled")
   RegisterHam(Ham_Player_PreThink, "player", "fwd_Player_PreThink_Post", 1)
   RegisterHam(Ham_Player_PostThink, "player", "fwd_Player_PostThink")
 
   register_forward(FM_AddToFullPack, "fwd_AddToFullPack_Post", 1)
 
   new mod[8]
   get_modname(mod, charsmax(mod))
   if (equal(mod, "cstrike") || equal(mod, "czero"))
   {
      g_iMod = MOD_CSTRIKE
      register_message(get_user_msgid("TeamInfo"), "message_TeamInfo")
   }
   if (equal(mod, "dod"))
   {
      g_iMod = MOD_DOD
      register_message(get_user_msgid("PTeam"), "message_PTeam")
   }
 
   cvar_iSemiClip = register_cvar("semiclip", "1")
   cvar_iSemiClipBlockTeams = register_cvar("semiclip_blockteam", "0")
   cvar_iSemiClipEnemies = register_cvar("semiclip_enemies", "0")
   cvar_iSemiClipUnstuck = register_cvar("semiclip_unstuck", "1")
   cvar_flSemiClipUnstuckDelay = register_cvar("semiclip_unstuckdelay", "0.0")
   cvar_iSemiClipButton = register_cvar("semiclip_button", "0")
 
   cvar_iSemiClipRenderMode = register_cvar("semiclip_rendermode", "2")
   cvar_iSemiClipRenderRadius = register_cvar("semiclip_renderradius", "250")
   cvar_iSemiClipRenderAmt = register_cvar("semiclip_renderamt", "128")
   cvar_iSemiClipRenderFade = register_cvar("semiclip_renderfade", "0")
   cvar_iSemiClipRenderFadeMin = register_cvar("semiclip_renderfademin", "50")
   cvar_iSemiClipRenderFadeSpec = register_cvar("semiclip_renderfadespec", "0")
 
   register_cvar("Team_Semiclip_version", PLUGIN_VERSION, FCVAR_SERVER|FCVAR_SPONLY)
   set_cvar_string("Team_Semiclip_version", PLUGIN_VERSION)
 
   cvar_iBotQuota = get_cvar_pointer("bot_quota")
   cvar_iZombiePlague = get_cvar_pointer("zp_on")
   cvar_iBiohazard = get_cvar_pointer("bh_enabled")
 
   if (cvar_iZombiePlague || cvar_iBiohazard)
      if (get_pcvar_num(cvar_iZombiePlague) == 1 || get_pcvar_num(cvar_iBiohazard) == 1)
         register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
 
   g_iMaxPlayers = get_maxplayers()
}
 
public plugin_cfg()
{
   new configsdir[32]
   get_configsdir(configsdir, charsmax(configsdir))
   server_cmd("exec %s/team_semiclip.cfg", configsdir)
 
   load_spawns()
   set_task(0.5, "cache_cvars")
   set_task(12.0, "cache_cvars", _, _, _, "b")
}
 
public client_connect(id)
{
   g_bIsConnected[id] = false
   set_cvars(id)
}
 
public client_putinserver(id)
{
   g_bIsConnected[id] = true
   set_cvars(id)
 
   if(is_user_bot(id))
   {
      g_bIsBot[id] = true
 
      if(!g_bHamCzBots && cvar_iBotQuota)
         set_task(0.1, "register_ham_czbots", id)
   }
   else
   {
      set_task(SPEC_INTERVAL, "spec_check", id+TASK_SPECTATOR, _, _, "b")
   }
}
 
public client_disconnect(id)
{
   g_bIsConnected[id] = false
   set_cvars(id)
   remove_task(id+TASK_SPECTATOR)
}
 
/*================================================================================
 [Main Events]
=================================================================================*/
 
public event_round_start()
{
   g_bPreparation = true
}
 
/*================================================================================
 [Supporting Forwards]
=================================================================================*/
 
forward zp_round_started(gamemode, id)
public zp_round_started(gamemode, id)
{
   g_bPreparation = false
}
 
forward event_gamestart()
public event_gamestart()
{
   g_bPreparation = false
}
 
/*================================================================================
 [Main Forwards]
=================================================================================*/
 
public fwd_PlayerSpawn_Post(id)
{
   if (!is_user_alive(id) || !g_iTeam[id])
      return
 
   g_bIsAlive[id] = true
   remove_task(id+TASK_SPECTATOR)
}
 
public fwd_PlayerKilled(id)
{
   g_bIsAlive[id] = false
   g_bHaveSemiClip[id] = false
   g_iTeam[id] = 3
 
   if (!g_bIsBot[id])
      set_task(SPEC_INTERVAL, "spec_check", id+TASK_SPECTATOR, _, _, "b")
}
 
public fwd_Player_PreThink_Post(id)
{
   if (!g_iCachedSemiClip || !g_bIsAlive[id]) return FMRES_IGNORED
 
   if (g_iCachedClipButton)
      g_bButton[id] = (pev(id, pev_button) & IN_USE) ? true : false;
 
   static i
   for (i = 1; i <= g_iMaxPlayers; i++)
   {
      if (!g_bIsConnected[i] || !g_bIsAlive[i]) continue
 
      if (!g_bHaveSemiClip[i])
         g_bSolid[i] = true
      else
         g_bSolid[i] = false
   }
 
   if (g_bSolid[id])
      for (i = 1; i <= g_iMaxPlayers; i++)
      {
         g_iRange[id][i] = MAX_RENDER_AMOUNT
 
         if (!g_bIsConnected[i] || !g_bIsAlive[i] || !g_bSolid[i]) continue
         if (g_iCachedClipButton && !g_bButton[id]) continue
         if ((g_iRange[id][i] = calc_fade(id, i, g_iCachedRenderFade)) == MAX_RENDER_AMOUNT) continue
         if (i == id) continue
 
         if (g_bPreparation)
         {
            set_pev(i, pev_solid, SOLID_NOT)
            g_bHaveSemiClip[i] = true
            continue
         }
 
         if (g_iCachedBlockTeams == g_iTeam[i] && g_iCachedEnemies && g_iTeam[i] == g_iTeam[id]) continue
         if (g_iCachedBlockTeams == g_iTeam[i] && !g_iCachedEnemies) continue
         if (!g_iCachedEnemies && g_iTeam[i] != g_iTeam[id]) continue
 
         set_pev(i, pev_solid, SOLID_NOT)
         g_bHaveSemiClip[i] = true
      }
 
   return FMRES_IGNORED
}
 
public fwd_Player_PostThink(id)
{
   if (!g_bIsAlive[id]) return FMRES_IGNORED
 
   static i
   for (i = 1; i <= g_iMaxPlayers; i++)
   {
      if (!g_bIsConnected[i] || !g_bIsAlive[i]) continue
 
      if (g_bHaveSemiClip[i])
      {
         set_pev(i, pev_solid, SOLID_SLIDEBOX)
         g_bHaveSemiClip[i] = false
      }
   }
 
   return FMRES_IGNORED
}
 
// (struct entity_state_s *state, int e, edict_t *ent, edict_t *host, int hostflags, int player, unsigned char *pSet)
public fwd_AddToFullPack_Post(es_handle, e, ent, host, flags, player, pSet)
{
   if (!player) return FMRES_IGNORED
   if (g_iTeam[host] == 3)
   {
      if (!g_iCachedRenderMode || g_bIsBot[host] || !g_bIsAlive[g_iSpectating[host]] || !g_bIsAlive[ent]) return FMRES_IGNORED
      if (g_iCachedClipButton && !g_bButton[g_iSpectating[host]]) return FMRES_IGNORED
      if (g_iRange[g_iSpectating[host]][ent] == MAX_RENDER_AMOUNT) return FMRES_IGNORED
      if (!g_iCachedRenderFadeSpec && g_iSpectating[host] == ent) return FMRES_IGNORED
 
      if (g_bPreparation)
      {
         set_es(es_handle, ES_RenderMode, g_iCachedRenderMode)
         set_es(es_handle, ES_RenderAmt, g_iRange[g_iSpectating[host]][ent])
 
         return FMRES_IGNORED
      }
 
      if (g_iCachedBlockTeams == g_iTeam[ent] && g_iCachedEnemies && g_iTeam[ent] == g_iSpectatingTeam[host]) return FMRES_IGNORED
      if (g_iCachedBlockTeams == g_iTeam[ent] && !g_iCachedEnemies) return FMRES_IGNORED
      if (!g_iCachedEnemies && g_iTeam[ent] != g_iSpectatingTeam[host]) return FMRES_IGNORED
 
      set_es(es_handle, ES_RenderMode, g_iCachedRenderMode)
      set_es(es_handle, ES_RenderAmt, g_iRange[g_iSpectating[host]][ent])
 
      return FMRES_IGNORED
   }
 
   if (!g_bIsAlive[host] || !g_bIsAlive[ent] || !g_bSolid[host] || !g_bSolid[ent]) return FMRES_IGNORED
   if (g_iCachedClipButton && !g_bButton[host]) return FMRES_IGNORED
   if (g_iRange[host][ent] == MAX_RENDER_AMOUNT) return FMRES_IGNORED
 
   if (g_bPreparation)
   {
      set_es(es_handle, ES_Solid, SOLID_NOT)
 
      if (!g_iCachedRenderMode) return FMRES_IGNORED
 
      set_es(es_handle, ES_RenderMode, g_iCachedRenderMode)
      set_es(es_handle, ES_RenderAmt, g_iRange[host][ent])
 
      return FMRES_IGNORED
   }
 
   if (g_iCachedBlockTeams == g_iTeam[ent] && g_iCachedEnemies && g_iTeam[ent] == g_iTeam[host]) return FMRES_IGNORED
   if (g_iCachedBlockTeams == g_iTeam[ent] && !g_iCachedEnemies) return FMRES_IGNORED
   if (!g_iCachedEnemies && g_iTeam[ent] != g_iTeam[host]) return FMRES_IGNORED
 
   set_es(es_handle, ES_Solid, SOLID_NOT)
 
   if (!g_iCachedRenderMode) return FMRES_IGNORED
 
   set_es(es_handle, ES_RenderMode, g_iCachedRenderMode)
   set_es(es_handle, ES_RenderAmt, g_iRange[host][ent])
 
   return FMRES_IGNORED
}
 
/*================================================================================
 [Other Functions and Tasks]
=================================================================================*/
 
// credits to MeRcyLeZZ
public register_ham_czbots(id)
{
   if (g_bHamCzBots || !is_user_connected(id) || !get_pcvar_num(cvar_iBotQuota)) return
 
   RegisterHamFromEntity(Ham_Spawn, id, "fwd_PlayerSpawn_Post", 1)
   RegisterHamFromEntity(Ham_Killed, id, "fwd_PlayerKilled")
   RegisterHamFromEntity(Ham_Player_PreThink, id, "fwd_Player_PreThink_Post", 1)
   RegisterHamFromEntity(Ham_Player_PostThink, id, "fwd_Player_PostThink")
 
   g_bHamCzBots = true
 
   if (is_user_alive(id)) fwd_PlayerSpawn_Post(id)
}
 
public cache_cvars()
{
   g_iCachedSemiClip = clamp(get_pcvar_num(cvar_iSemiClip), 0, 1)
   g_iCachedEnemies = clamp(get_pcvar_num(cvar_iSemiClipEnemies), 0, 1)
   g_iCachedBlockTeams = clamp(get_pcvar_num(cvar_iSemiClipBlockTeams), 0, 2)
   g_iCachedUnstuck = clamp(get_pcvar_num(cvar_iSemiClipUnstuck), 0, 1)
   g_flCachedUnstuckDelay = floatclamp(get_pcvar_float(cvar_flSemiClipUnstuckDelay), 0.0, 3.0)
   g_iCachedClipButton = clamp(get_pcvar_num(cvar_iSemiClipButton), 0, 1)
 
   g_iCachedRenderMode = clamp(get_pcvar_num(cvar_iSemiClipRenderMode), 0, 5)
   g_iCachedRenderAmt = clamp(get_pcvar_num(cvar_iSemiClipRenderAmt), 0, 255)
   g_iCachedRenderFade = clamp(get_pcvar_num(cvar_iSemiClipRenderFade), 0, 1)
   g_iCachedRenderFadeMin = clamp(get_pcvar_num(cvar_iSemiClipRenderFadeMin), 0, SEMI_RENDER_AMOUNT)
   g_iCachedRenderFadeSpec = clamp(get_pcvar_num(cvar_iSemiClipRenderFadeSpec), 0, 1)
   g_iCachedRenderRadius = clamp(get_pcvar_num(cvar_iSemiClipRenderRadius), SEMI_RENDER_AMOUNT - g_iCachedRenderFadeMin, 4095)
}
 
// credits to MeRcyLeZZ
public do_random_spawn(id)
{
   if (!g_bIsConnected[id] || !g_bIsAlive[id]) return
 
   static hull, sp_index, i
   hull = (pev(id, pev_flags) & FL_DUCKING) ? HULL_HEAD : HULL_HUMAN
 
   switch (g_iTeam[id])
   {
      case 1 : // TERRORIST, ALLIES
      {
         if (!g_iSpawnCount2) return
 
         sp_index = random_num(0, g_iSpawnCount2 - 1)
         for (i = sp_index + 1; /*no condition*/; i++)
         {
            if (i >= g_iSpawnCount2) i = 0
 
            if (is_hull_vacant(g_flSpawns2[i], hull))
            {
               engfunc(EngFunc_SetOrigin, id, g_flSpawns2[i])
               break
            }
 
            if (i == sp_index) break
         }
      }
      case 2 : // CT, AXIS
      {
         if (!g_iSpawnCount) return
 
         sp_index = random_num(0, g_iSpawnCount - 1)
         for (i = sp_index + 1; /*no condition*/; i++)
         {
            if (i >= g_iSpawnCount) i = 0
 
            if (is_hull_vacant(g_flSpawns[i], hull))
            {
               engfunc(EngFunc_SetOrigin, id, g_flSpawns[i])
               break
            }
 
            if (i == sp_index) break
         }
      }
   }
}
 
public spec_check(taskid)
{
   if (!g_iCachedRenderMode || g_bIsAlive[ID_SPECTATOR]) return
 
   static spec
   spec = pev(ID_SPECTATOR, PEV_SPEC_TARGET)
 
   if (g_bIsAlive[spec])
   {
      g_iSpectating[ID_SPECTATOR] = spec
      g_iSpectatingTeam[ID_SPECTATOR] = g_iTeam[spec]
   }
}
 
calc_fade(host, ent, mode)
{
   if (mode)
   {
      if (g_iCachedRenderFadeMin > g_iCachedRenderRadius)
         return MAX_RENDER_AMOUNT;
 
      new range = floatround(entity_range(host, ent))
 
      if (range >= g_iCachedRenderRadius)
         return MAX_RENDER_AMOUNT;
 
      new amount
      amount = SEMI_RENDER_AMOUNT - g_iCachedRenderFadeMin
      amount = g_iCachedRenderRadius / amount
      amount = range / amount + g_iCachedRenderFadeMin
 
      return amount;
   }
   else
   {
      new range = floatround(entity_range(host, ent))
 
      if (range < g_iCachedRenderRadius)
         return g_iCachedRenderAmt;
   }
 
   return MAX_RENDER_AMOUNT;
}
 
set_cvars(id)
{
   g_iTeam[id] = 0
   g_bIsAlive[id] = false
   g_bIsBot[id] = false
   g_bSolid[id] = false
   g_bHaveSemiClip[id] = false
}
 
/*================================================================================
 [Message Hooks]
=================================================================================*/
 
/*
   TeamInfo:
   read_data(1)   byte   EventEntity
   read_data(2)   string   TeamName
 
   type |                             name |      calls | time / min / max
      n |                  get_msg_arg_int |        502 | 0.000500 / 0.000001 / 0.000001
      n |               get_msg_arg_string |        502 | 0.000519 / 0.000001 / 0.000001
      p |                 message_TeamInfo |        998 | 0.002234 / 0.000001 / 0.000004
 
   fast enough!
*/
public message_TeamInfo(msg_id, msg_dest)
{
   if (msg_dest != MSG_ALL && msg_dest != MSG_BROADCAST) return
 
   static id, team[2]
   id = get_msg_arg_int(1)
   get_msg_arg_string(2, team, charsmax(team))
   switch (team[0])
   {
      case 'T' : // TERRORIST
      {
         g_iTeam[id] = 1;
      }
      case 'C' : // CT
      {
         g_iTeam[id] = 2;
      }
      case 'S' : // SPECTATOR
      {
         g_iTeam[id] = 3;
      }
      default : g_iTeam[id] = 0;
   }
 
   if (g_bIsAlive[id] && g_iCachedUnstuck && g_iCachedBlockTeams == g_iTeam[id])
   {
      if (!is_player_stuck(id)) return
 
      if (g_flCachedUnstuckDelay > 0.0)
         set_task(g_flCachedUnstuckDelay, "do_random_spawn", id)
      else
         do_random_spawn(id)
   }
}
 
/*
   PTeam:
   read_data(1)   byte   EventEntity
   read_data(2)   byte   TeamIndex
*/
public message_PTeam(msg_id, msg_dest)
{
   if (msg_dest != MSG_ALL && msg_dest != MSG_BROADCAST) return
 
   static id
   id = get_msg_arg_int(1)
 
   // 0 - UNASSIGNED
   // 1 - ALLIES
   // 2 - AXIS
   // 3 - SPECTATOR
   g_iTeam[id] = get_msg_arg_int(2)
 
   if (g_bIsAlive[id] && g_iCachedUnstuck && g_iCachedBlockTeams == g_iTeam[id])
   {
      if (!is_player_stuck(id)) return
 
      if (g_flCachedUnstuckDelay > 0.0)
         set_task(g_flCachedUnstuckDelay, "do_random_spawn", id)
      else
         do_random_spawn(id)
   }
}
 
/*================================================================================
 [Stocks]
=================================================================================*/
 
// credits to VEN
stock is_player_stuck(id)
{
   static Float:originF[3]
   pev(id, pev_origin, originF)
 
   engfunc(EngFunc_TraceHull, originF, originF, 0, (pev(id, pev_flags) & FL_DUCKING) ? HULL_HEAD : HULL_HUMAN, id, 0)
 
   if (get_tr2(0, TR_StartSolid) || get_tr2(0, TR_AllSolid) || !get_tr2(0, TR_InOpen))
      return true
 
   return false
}
 
// credits to VEN
stock is_hull_vacant(Float:origin[3], hull)
{
   engfunc(EngFunc_TraceHull, origin, origin, 0, hull, 0, 0)
 
   if (!get_tr2(0, TR_StartSolid) && !get_tr2(0, TR_AllSolid) && get_tr2(0, TR_InOpen))
      return true
 
   return false
}
 
// credits to MeRcyLeZZ
stock collect_spawns_ent(const classname[])
{
   new ent = -1
   while ((ent = engfunc(EngFunc_FindEntityByString, ent, "classname", classname)) != 0)
   {
      new Float:originF[3]
      pev(ent, pev_origin, originF)
      g_flSpawns[g_iSpawnCount][0] = originF[0]
      g_flSpawns[g_iSpawnCount][1] = originF[1]
      g_flSpawns[g_iSpawnCount][2] = originF[2]
 
      g_iSpawnCount++
      if (g_iSpawnCount >= sizeof g_flSpawns) break
   }
}
 
// credits to MeRcyLeZZ
stock collect_spawns_ent2(const classname[])
{
   new ent = -1
   while ((ent = engfunc(EngFunc_FindEntityByString, ent, "classname", classname)) != 0)
   {
      new Float:originF[3]
      pev(ent, pev_origin, originF)
      g_flSpawns2[g_iSpawnCount2][0] = originF[0]
      g_flSpawns2[g_iSpawnCount2][1] = originF[1]
      g_flSpawns2[g_iSpawnCount2][2] = originF[2]
 
      g_iSpawnCount2++
      if (g_iSpawnCount2 >= sizeof g_flSpawns2) break
   }
}
 
stock load_spawns()
{
   if (g_iMod == MOD_CSTRIKE)
   {
      collect_spawns_ent("info_player_start")
      collect_spawns_ent2("info_player_deathmatch")
   }
   else if (g_iMod == MOD_DOD)
   {
      collect_spawns_ent("info_player_axis")
      collect_spawns_ent2("info_player_allies")
   }
   else
   {
      set_pcvar_num(cvar_iSemiClipUnstuck, 0)
   }
}
 
// amxmisc.inc
stock get_configsdir(name[], len)
{
   return get_localinfo("amxx_configsdir", name, len);
}


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Team Semiclip Hiba
HozzászólásElküldve:2013.02.19. 18:50 
Offline
Veterán
Avatar

Csatlakozott:2012.09.01. 22:19
Hozzászólások:1697
Megköszönt másnak: 26 alkalommal
Megköszönték neki: 302 alkalommal
nem értem, minek használni plugint hozzá, ha van rá modul s az sokkal kevesebbet eszik..
felraktad a .cfg fájlt? felraktad a szükséges .inc fájlt?

_________________
Valami új kezdete...
Kép
Egyedi pluginok készítése pénzért (Banki átutalás, PayPal) -> Privát üzenet


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Team Semiclip Hiba
HozzászólásElküldve:2013.02.19. 18:54 
Offline
Újonc

Csatlakozott:2012.05.11. 17:16
Hozzászólások:4
A .cfg-t felraktam az includet a scripting\include mappába kell rakni?


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Team Semiclip Hiba
HozzászólásElküldve:2013.02.19. 18:55 
Offline
Veterán
Avatar

Csatlakozott:2012.09.01. 22:19
Hozzászólások:1697
Megköszönt másnak: 26 alkalommal
Megköszönték neki: 302 alkalommal
Davee írta:
A .cfg-t felraktam az includet a scripting\include mappába kell rakni?

yesss

_________________
Valami új kezdete...
Kép
Egyedi pluginok készítése pénzért (Banki átutalás, PayPal) -> Privát üzenet


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Team Semiclip Hiba
HozzászólásElküldve:2013.02.19. 19:05 
Offline
Újonc

Csatlakozott:2012.05.11. 17:16
Hozzászólások:4
Beraktam, de még mindig ezt írja ki


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Team Semiclip Hiba
HozzászólásElküldve:2013.02.19. 19:29 
Offline
Developer
Avatar

Csatlakozott:2011.06.01. 21:11
Hozzászólások:7966
Megköszönt másnak: 295 alkalommal
Megköszönték neki: 537 alkalommal
Configs mappába kell a cfgt rakni!

_________________
http://www.easyrankup.eu


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Team Semiclip Hiba
HozzászólásElküldve:2013.02.19. 19:38 
Offline
Újonc

Csatlakozott:2012.05.11. 17:16
Hozzászólások:4
Megoldottam, valamiért az auto bhop-al nem műküdik


Hozzászólás jelentése
Vissza a tetejére
   
Hozzászólások megjelenítése: Rendezés 
Új téma nyitása Hozzászólás a témához  [7 hozzászólás ] 


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 26 vendég


Nyithatsz új témákat ebben a fórumban.
Válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.
Nem küldhetsz csatolmányokat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB® Forum Software © phpBB Limited
Magyar fordítás © Magyar phpBB Közösség
Portal: Kiss Portal Extension © Michael O'Toole