A jeśli nie to i tak jakiś mądry koleś sobie z tym poradzi... no i jeszcze 1 problem... crashe chcialbym zeby ich nie bylo bo non stop wywala serv...
Jesli jestes dobry w takich sprawach a wiem ze sa tu tacy ludzie to proszę o napisaniu posta "potrafie Ci pomoc" a wtedy dogadamy sie juz na PW..
Bardzo proszę o pomoc... z gory dziekuje
////////////////////////////////////////////////
// ___ _ _ //
// / _ ___ | | _____ // ___ __| | //
// / /_)/ _ | |/ / _ / / _ / _` | //
// / ___/ (_) | < __/ // (_) | (_| | //
// /_/ ___/|_|____/ /___/ __,_| //
// //
////////////////////////////////////////////////
// //
// Welcome to The World of Pokemon. //
// //
////////////////////////////////////////////////
/*
//--ChangeLog--//
* v1.2.3 RC - 05/27/08
* - Dropped skill forwards
* - Converted skill system to prepare for 1.3.0
* - Seperated skills into more files
* - Added maxarmor capabilities
* - Updated pokemod.inc
* - Converted some file natives to new file natives
* - Adjusted pokemon skills to damage based on skill type instead of pokemon type
* - Added functionality to change how skills are activated
* - Fixed potential bug when exiting Bill's PC
* - Every skill should be able to be global with new system
* - Added some more important debug messages
* - Changed the items.cfg file a little bit
* - Fixed small bug in pokemart that would show all categories
* - Renamed Bill's PC to Emp`s PC
* - Fixed bug where safari file would stay open
* - Can now change starting pokemon
* - Dropped support for other plugins with speed (got too complicated)
* - Added functions for skill damage for more universal use
* - Changed how delays after pokeskills work
* - Minor code improvements
* - Fixed being able to manually activate non-bind skills
* - Converted sprite system to match sounds and models
* - Added random player round saving
* - Fixed not being able to do command 'pokemod debug off'
* - Renamed config.inl to files.inl
* - Made find_free_spawn function more efficient
* - When doing 'pokemod' in console and the server is missing files, it will now list the files
* - Fixed define POKEBALL_SPECIAL
* - Redid pokedex
* - Made help menu smarter
* - Made pokedex smarter
* - Redid pokeitem help
* - Fixed problem where last pokemon's name would not be picked up
* - Changed NightShade to not go below MIN_INVIS
* - Finished all default pokemon
* - Fixed problem with round start being called at the wrong time with freezetime
* - Fixed problem when admins erased all experience
* - Burn will now catch all players on fire (not just teammates)
* - Added smarter item searching
* - Fixed problem with paralysis
* - Can no longer release or give away your active pokemon
* - Fixed bug where you would try to catch pokemon with items that can't catch
* - Fixed problem with many fake natives
* - Fixed problem with picking up the first registered item
* - Added flexibility to interact with EAM
* - Fixed Start Menu not working if you were assigned a pokemon
* - Redid menu code
* v1.2.2 - 02/01/08
* - Dropped hamsandwich module and added back fun module
* - Fixed and cleaned AoEdamage and Linedamage
* - Fixed speed issue that was occuring
* v1.2.1 - 01/26/08
* - Fixed fire status
* - Fixed harden skill
* - Fixed menus not working occasionally
* - Fixed mist and sky attack not displaying in correct position
* - Redid type system to prepare for 1.3.0
* - Added status effects for normal pokedamage function
* - Redid how status effects are calculated in pokedamage
* - Added type None
* - Added prefix TYPE_ to the type defines/enum
* - Redid admin commands
* - Fixed weird damages with AoE and Line damage
* - Dropped engine module, now uses fakemeta_util
* - Dropped fun module, now uses fakemeta and hamsandwich
* - Removed time include
* - Now requires Hamsandwich module
* - Fixed rock slide skill
* - Bots now release pokemon randomly
* - Fixed global skills being able to be done twice
* - Fixed dodrio
*
* v1.2.0 - 12/24/07
* - Seperated into smaller files
* - Added <img src='https://amxx.pl/public/style_emoticons/<#EMO_DIR#>/tongue2.gif' class='bbc_emoticon' alt='xP' /> and lvls
* - Added more pokemon
* - And a lot more (for full list, check PokeMod forums)
* - Now requires AMXX 1.8 or greater
*
* v1.1.1 - 07/06/06
* - Fixed some things
* - Added some cvars
* - Cleaned code
* - Made a little bit ready for when lvls and <img src='https://amxx.pl/public/style_emoticons/<#EMO_DIR#>/tongue2.gif' class='bbc_emoticon' alt='xP' /> are added
*
* v1.1.0 - 06/29/06
* - Redid menus
* - Added more pokemon (33 in total)
* - Cleaned code
* - Changed cvars to pcvars
* - Now requires AMXX 1.71 or greater
*
* v1.0.1 - Never Released
* - Fixed some stuff
* - Cleaned code
* - Added more cvars
*
* v1.0.0 - 01/15/06
* - Released to the public
*
//--Credits--//
* - RockThrow - modified sprites and sounds code from yang's Veronika hero
* - Teleport - used PassAimTest code from sharky / JTP10181 's Batgirl hero
* - Flamethrower - modified Cheap_Suit's flamethrower
* - KoST - for the get_distance_to_line stock
* - VEN - for his fm_is_ent_visible stock
* - PsyBeam - based on vittu's SSJ Gohan hero
* - SmokeScreen - made by Om3gA
*
* - Config files - based on superheromod's
* - <img src='https://amxx.pl/public/style_emoticons/<#EMO_DIR#>/tongue2.gif' class='bbc_emoticon' alt='xP' /> Save key - based on superheromod's
* - Sounds - used some sounds from FFX mod
* - Models - used Prof. Oak model from old abandoned Pokemon Mod for Half-Life
* - original pokeball made by Emp`, fixed by Om3gA
* - bone model made by coca-cola
* - PokeLoop - used loop code from {HOJ} Batman/JTP10181 's Captain America hero
* - NPCs - used Twilight Suzuka's NPC guide
* - MYSQL Saving - Superhero Mod
* - SQLx Saving - Teame06
* - Dynamic Natives - help from Hawk552
* - Other - modified mole code from WC3FT mod
* - is_user_outside stock from timer16 by Twilight Suzuka
*
* - Anything not listed here was most likely done by Emp`
*
//--To Do--//
* - Personal colored huds
* - PP points
* - Read files rather than having defines
* - Personal Pokemon Names
* - Pokemon skill selection
* - Dynamic skill properties
* - Dynamic statuses
* - More fake natives
*/
////////////////////////////////////////////////////
// DO NOT CHANGE ANYTHING IN HERE! //
// Things for customizing your server //
// have been moved to the //
// custom.inl and skill_defines.inl //
////////////////////////////////////////////////////
#if defined _pokemod_plugin_included
#endinput
#endif
#define _pokemod_plugin_included
//Lets increase the memory
#pragma dynamic 32768
//Change the stupid escape character to the normal one
#pragma ctrlchar ''
//Lets load some libraries
#include <amxmisc>
#include <fakemeta_util>
#include <fun>
#include <xs>
#if AMXX_VERSION_NUM < 180
#assert _____
PokeMod requires AMXX 1.8 or higher and must be compiled locally!
_____
#endif
//PokeMod includes
#tryinclude "pokemon/custom.inl" //gotta include these first because its used in the other files
#tryinclude "pokemon/defines.inl"
#if !defined _pokemod_custom_included || !defined _pokemod_defines_included
#assert _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ PokeMod must be compiled locally! _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
#endif
#if MOD==CS
#include <cstrike>
#endif
#if MOD==DOD
#include <dodfun>
#include <dodx>
#endif
#if MOD==NS
#include <ns>
#endif
#if SAVE==SAVE_MYSQL
#include <dbi>
#endif
#if SAVE==SAVE_SQLX
#include <sqlx>
#endif
#if SAVE==SAVE_NVAULT
#include <nvault>
#endif
#include "pokemon/skill_defines.inl"
#include "pokemon/globals.inl"
#include "pokemon/other.inl"
#include "pokemon/admin.inl"
#include "pokemon/bot.inl"
#include "pokemon/items.inl"
#include "pokemon/checks.inl"
#include "pokemon/eam.inl"
#include "pokemon/evolution.inl"
#include "pokemon/files.inl"
#include "pokemon/helps.inl"
#include "pokemon/menus.inl"
#include "pokemon/mod_specific.inl"
#include "pokemon/natives.inl"
#include "pokemon/oak.inl"
#include "pokemon/pokedamage.inl"
#include "pokemon/pokerank.inl"
#include "pokemon/publics.inl"
#include "pokemon/registers.inl"
#include "pokemon/skills.inl"
#include "pokemon/status.inl"
#include "pokemon/stocks.inl"
#include "pokemon/<img src='https://amxx.pl/public/style_emoticons/<#EMO_DIR#>/tongue2.gif' class='bbc_emoticon' alt='xP' />.inl"
/////////////////////
// Starts plugin //
/////////////////////
public plugin_init()
{
plugin_id = register_plugin(PLUGNAME, VERSION, AUTHOR);
//lets register the most important things first (incase pokemod was disabled)
set_pcvar_string( register_cvar("PokeMod_Version",VERSION,FCVAR_SERVER|FCVAR_SPONLY), VERSION );
register_concmd("pokemod","Console_Pokemod",ADMIN_ALL, "- information about PokeMod");
register_concmd("pm","Console_Pokemod");
//Client Say Commands
register_clcmd("say","HandleSay");
//if pokemod was disabled, we don't need to waste server resources
if(PM_disabled==1)
return;
cvar_registry();
//Events
#if MOD==CS
register_event("Damage", "pokemon_damage", "b", "2!0");
register_event("HLTV", "round_start", "a", "1=0", "2=0");
register_logevent("poke_round_end", 2, "1=Round_End");
register_logevent("poke_round_end", 2, "1&Restart_Round_");
register_event("StatusText", "pokemon_statustext", "b");
register_event("ResetHUD", "pokemon_spawn", "b");
register_event("Money", "pokemon_money", "b");
#else
#if MOD==DOD
register_event("RoundState", "poke_round_end", "a", "1=3", "1=4");
#endif
#if MOD==NS
register_event("Damage", "pokemon_damage", "b", "2!0");
#endif
register_event("ResetHUD", "team_ready", "b");
#endif
register_event("DeathMsg", "pokemon_death", "a");
register_event("CurWeapon", "WeaponChange", "be", "1=1");
register_forward(FM_Touch, "touches");
#if CHANGE_GAME_NAME==1
register_forward(FM_GetGameDescription,"GameDesc");
#endif
register_forward(FM_AlertMessage, "log_block");
//Loop every second
set_task(1.0, "pokemon_loop", 0, "", 0, "b");
debugMessage( 0,7,"done registering events" );
//Client Console Commands
register_clcmd("+pokeskill","pokeskill_down", _, "- uses pokemon bind skill");
register_clcmd("-pokeskill","pokeskill_up");
new command[32];
for(new i=1; i <= MAX_SKILLS; i++){
formatex(command, 31, "+pokeskill%d", i);
register_clcmd(command,"pokeskill_down");
formatex(command, 31, "-pokeskill%d", i);
register_clcmd(command,"pokeskill_up");
}
register_clcmd("+pokeitem","pokeitem_down", _, "- brings up Item Menu");
register_clcmd("-pokeitem","pokeitem_up");
register_clcmd("pokeskill","updatecommands"); //this just tells them to rebind with a +
register_clcmd("pokemart","Console_Pokemart");
register_clcmd("fullupdate","fullupdate"); //this just blocks the fullupdate abuse
//All Console Commands
register_concmd("playerspokemon","Console_PlayersPokemon", _, "- shows everyones pokemon"); //views players pokemon
register_concmd("playerspokes","Console_PlayersPokemon"); //views players pokemon
register_concmd("playersitems","Console_PlayersItems", _, "- shows everyones items"); //views players items
register_concmd("pokedex","Console_Pokedex", _, "- shows pokemon information"); //views pokedex
register_concmd("pokeitem","Console_Pokeitem", _, "- shows pokeitem information"); //views pokeitem help
#if POKERANK_SYSTEM==1
//PokeRank Commands
register_concmd("pokerank","Console_PlayersRanks", _, "- shows players PokeRanks"); //views players ranks
#endif
//Admin Console Commands
register_pokeadmincmd("givepoke","admin_givepoke",ADMIN_ALL,"<nick | @TEAM | @ALL> <pokemon name> <level> - gives players a pokemon");
register_pokeadmincmd("setpoke","admin_setpoke",ADMIN_ALL,"<nick | @TEAM | @ALL> <pokemon name> - temporarily gives players pokemon power");
register_pokeadmincmd("takepoke","admin_takepoke",ADMIN_ALL,"<nick | @TEAM | @ALL> <pokemon | @ALL | @# | @C> - takes a pokemon away from players");
register_pokeadmincmd("morph","admin_morph",ADMIN_ALL,"<nick | @TEAM | @ALL> <pokemon | @ALL | @# | @C> <new pokemon> - morphes a pokemon into a new one");
register_pokeadmincmd("givexp","admin_givexp",ADMIN_ALL,"<nick | @TEAM | @ALL> <pokemon | @ALL | @# | @C> <amount> - gives <img src='https://amxx.pl/public/style_emoticons/<#EMO_DIR#>/tongue2.gif' class='bbc_emoticon' alt='xP' /> to players pokemon");
register_pokeadmincmd("setxp","admin_setxp",ADMIN_ALL,"<nick | @TEAM | @ALL> <pokemon | @ALL | @# | @C> <amount> - sets <img src='https://amxx.pl/public/style_emoticons/<#EMO_DIR#>/tongue2.gif' class='bbc_emoticon' alt='xP' /> on players pokemon");
#if POKERANK_SYSTEM==1
register_pokeadmincmd("addrank","admin_rank",ADMIN_ALL,"<nick | @TEAM | @ALL> <amount> - gives rank points to player");
register_pokeadmincmd("setrank","admin_rank",ADMIN_ALL,"<nick | @TEAM | @ALL> <amount> - sets rank points on player");
#endif
register_pokeadmincmd("setlevel","admin_setlvl",ADMIN_ALL);
register_pokeadmincmd("setlvl","admin_setlvl",ADMIN_ALL,"<nick | @TEAM | @ALL> <pokemon | @ALL | @# | @C> <level> - sets level on players pokemon");
register_pokeadmincmd("giveitem","admin_giveitem",ADMIN_ALL,"<nick | @TEAM | @ALL> <item name> <amount> - gives players an item");
register_pokeadmincmd("debugger","admin_debugger",ADMIN_ALL,"<nick | 0> - changes who recieves the debug messages");
#if PM_ADMIN_COMMANDS==1
register_pokeadmincmd("help","admin_help",ADMIN_ALL," - shows admin command help");
#endif
#if PM_ADMIN_COMMANDS==1 && PM_CVAR_PREFIX==1
register_pokeadmincmd("cvar","admin_cvar",ADMIN_ALL," - saves changes to pokemod cvars");
#endif
register_pokeadmincmd("enable","admin_enable",ADMIN_ALL,"<pokemon | @ALL> - enables the use of a pokemon");
register_pokeadmincmd("tempenable","admin_enable",ADMIN_ALL,"<pokemon | @ALL> - temporarily enables the use of a pokemon");
register_pokeadmincmd("disable","admin_disable",ADMIN_ALL,"<pokemon | @ALL> - disables the use of a pokemon");
register_pokeadmincmd("tempdisable","admin_disable",ADMIN_ALL,"<pokemon | @ALL> - temporarily disables the use of a pokemon");
register_pokeadmincmd("pokemart","admin_pokemart",ADMIN_ALL,"<pokemon name | item name> <price> - changes items in Pokemart");
register_pokeadmincmd("safari","admin_safari",ADMIN_ALL,"<pokemon name> <level> - changes pokemon in Safari");
register_pokeadmincmd("reset","admin_reset",ADMIN_RCON," - resets pokemod files");
register_pokeadmincmd("loadconfig","admin_loadconfig",ADMIN_BAN," - loads pokemod config files");
register_pokeadmincmd("erasexp","admin_erasexp",ADMIN_RCON," - erases all xp");
debugMessage( 0,7,"done registering commands" );
//Global Messages
#if MOD==CS
gmsgMoney = get_user_msgid("Money");
#endif
gmsgScreenFade = get_user_msgid("ScreenFade");
gmsgScreenShake = get_user_msgid("ScreenShake");
gmsgDeathMsg = get_user_msgid("DeathMsg");
gmsgScoreInfo = get_user_msgid("ScoreInfo");
gmsgDamage = get_user_msgid("Damage");
//MultiForwards - thanks to posts by vittu && teame06
PokePayForward = CreateMultiForward("poke_pay", ET_STOP, FP_CELL, FP_CELL); //stop on return value, id, amount
PokeBuyForward = CreateMultiForward("poke_buy", ET_STOP, FP_CELL, FP_CELL, FP_CELL); //stop on return value, id, item, amount
PokeBuyPokeForward = CreateMultiForward("poke_buypoke", ET_STOP, FP_CELL, FP_CELL); //stop on return value, id, poke
PokeEventForward = CreateMultiForward("poke_player_event", ET_STOP, FP_CELL, FP_CELL); //stop on return value, id, props
PokeItemForward = CreateMultiForward("poke_item_use", ET_STOP, FP_CELL, FP_CELL); //stop on return value, id, item
RegisterItemForward = CreateMultiForward("poke_register_item", ET_STOP); //stop on return value
debugMessage( 0,7,"done making forwards" );
HUDSYNC = CreateHudSyncObj();
g_coloredMenus = colored_menus();
set_task(1.0, "StartPokeMod", 1);
}
#if CHANGE_GAME_NAME==1
public GameDesc()
{
forward_return(FMV_STRING,GAME_NAME);
return FMRES_SUPERCEDE;
}
#endif
public StartPokeMod(initial)
{
debugMessage( 0,7,"Starting PokeMod. Initial Start=%d", initial );
if(initial){
#if ALLOW_WILD==1
set_task(180.0, "WildMessage", 0, "", 0, "b");
#endif
#if SAVE==SAVE_MYSQL || SAVE==SAVE_SQLX || SAVE==SAVE_NVAULT
saving_init();
#endif
#if POKERANK_SYSTEM==1
LoadRanks();
#endif
set_task(1.0, "poke_round_end");
set_task(2.0, "round_start");
}
LoadConfig();
set_task(1.0, "ReadXPs");
set_task(2.0, "SetSafariLevels");
set_task(2.5, "ReadSkills");
set_task(3.0, "ReadItems", 0);
set_task(3.5, "ReadPokemon", 0);
set_task(4.0, "ReadItems", 1);
set_task(4.5, "ReadPokemon", 1);
set_task(5.0, "PokeModLoaded");
}
public PokeModLoaded()
{
PM_Loaded = true;
debugMessage( 0,7,"PokeMod has been Started." );
}
///////////////////////
//--Precached Items--//
///////////////////////
public plugin_precache()
{
//register the debug cvars for debug messages
register_pokecvar( pm_debug, cvar_default[pm_debug] );
register_pokecvar( pm_debug_key, cvar_default[pm_debug_key] );
SetupConfig();
new i = 0;
new PokeFile[128];
Poke_FileName( F_PokeMaps, PokeFile);
if( file_exists(PokeFile) ){
new Data[124], len;
new mapname[32];
new line = 0;
new bool:finding_map = true;
get_mapname(mapname, 31);
while( (line = read_file(PokeFile , line , Data , 123 , len) ) != 0 ){
if( !ValidData( Data ) )
continue;
//Check the map
if( equal(Data, LEFT_BRACKET, 1) ){
replace(Data, 123, LEFT_BRACKET, EMPTY);
replace(Data, 123, RIGHT_BRACKET, EMPTY);
if( containi(Data,STAR)!=-1 ){
replace_all(Data, 123, STAR, EMPTY)
if(containi(mapname, Data)!=-1){ //deal with this map
finding_map = false;
continue;
}
}
else if(equali(mapname, Data)){
finding_map = false;
continue;
}
else
finding_map = true;
}
else if(!finding_map){ //do the commands
if(equali(Data,"-disabled")){
poke_error("%s PokeMod has been disabled.",PREFIX);
PM_disabled = 1;
break;
}
else if(equali(Data,"-skills_off")){
poke_error("%s PokeMod skills have been disabled.",PREFIX);
PM_disabled = -1;
break;
}
else{
set_task(5.0, "delay_cmd",0,Data,strlen(Data));
}
}
}
}
else ResetMapsConfig();
debugMessage( 0,7,"Map File Loaded/Reset." );
if( !PM_disabled ){
debugMessage( 0,7,"Starting Precaching." );
for(i=0; i<MAX_SND; i++)
poke_precache_sound( i );
for(i=0; i<MAX_SPR; i++)
poke_precache_sprite( i );
for(i=0; i<MAX_MDL; i++)
poke_precache_model( i );
for(i=0; i<MAX_T_MDL; i++)
poke_precache_model_t( i );
new missing = poke_missing_files();
if( missing ){
if( missing == 1 )
poke_error("One file required for PokeMod not found. Pausing PokeMod." );
else
poke_error("%d files required for PokeMod not found. Pausing PokeMod.", missing );
PM_disabled = 1;
}
debugMessage( 0,7,"Precaching Done." );
}
}
public delay_cmd(Data[])
server_cmd(Data);
poke_precache_model(const i)
{
if(file_exists(MODELS[i]) || contain(MODELS[i],"pokemon")==-1){
precache_model(MODELS[i]);
return (FoundModel[i] = true);
}
return false;
}
poke_precache_model_t(const i)
{
if(file_exists(MODELS_T[i]) || contain(MODELS_T[i],"pokemon")==-1){
precache_model(MODELS_T[i]);
return (FoundModelT[i] = true);
}
return false;
}
poke_precache_sprite(const i)
{
if(file_exists(SPRITES[i]) || contain(SPRITES[i],"pokemon")==-1){
SPRITE_INDEX[i] = precache_model(SPRITES[i]);
return (FoundSprite[i] = true);
}
return false;
}
poke_precache_sound(const i)
{
new sound_location[151];
formatex(sound_location, 150, "%s%s", sound_directory, SOUNDS[i]);
if(file_exists(sound_location) || contain(SOUNDS[i],"pokemon")==-1){
precache_sound(SOUNDS[i]);
return (FoundSound[i] = true);
}
return false;
}
poke_missing_files()
{
new i, files_missing = 0;
for(i=0; i<MAX_SND; i++){
if( !FoundSound[i] ){
poke_error( "File %s%s Not Found In Server", sound_directory, SOUNDS[i] );
files_missing++;
}
}
for(i=0; i<MAX_SPR; i++){
if( !FoundSprite[i] ){
poke_error( "File %s Not Found In Server", SPRITES[i] );
files_missing++;
}
}
for(i=0; i<MAX_MDL; i++){
if( !FoundModel[i] ){
poke_error( "File %s Not Found In Server", MODELS[i] );
files_missing++;
}
}
for(i=0; i<MAX_T_MDL; i++){
if( !FoundModelT[i] ){
poke_error( "File %s Not Found In Server", MODELS_T[i] );
files_missing++;
}
}
return files_missing;
}
poke_error(const error[], any:...)
{
new output[256];
vformat(output, 255, error, 2);
log_amx(output);
}
public plugin_end()
{
if(PM_disabled==1)
return;
// SAVE EVERYTHING...
debugMessage( 0,3,"%s Making final saves before plugin unloads", PREFIX );
save_all();
#if SAVE==SAVE_MYSQL || SAVE==SAVE_SQLX
//Final cleanup in the saving include
saving_end();
#endif
cleanXP();
}
cvar_registry()
{
//CVARS used, but lets create them just incase <img src='https://amxx.pl/public/style_emoticons/<#EMO_DIR#>/wink.gif' class='bbc_emoticon' alt=';)' />
mp_freezetime = register_cvar("mp_freezetime","0");
amx_show_activity = register_cvar("amx_show_activity","0");
//These Cvars should be in the game already
sv_lan = get_cvar_pointer("sv_lan");
mp_friendlyfire = get_cvar_pointer("mp_friendlyfire");
mp_logdetail = get_cvar_pointer("mp_logdetail");
//PokeMod Cvars
for(new i=0; i<MAX_CVARS; i++)
register_pokecvar(i,cvar_default[i]);
debugMessage( 0,7,"done registering cvars" );
}
debugMessage(id=0, level=0, const msg[], any:... )
{
if( PM_disabled==1 )
return;
static debugMode;
debugMode = get_ppcvar_num( pm_debug );
if( debugMode < level && level )
return; //there is a level, but we arent looking that high
if( id && debugger && id != debugger )
return; //its about someone, but its not the debugger
static output[256];
vformat( output, 255, msg, 4 );
static debug_key[51];
get_ppcvar_string( pm_debug_key, debug_key, 50 );
if( debug_key[0] != '0' && containi(output,debug_key) == -1 )
return; //it didn't have the debug key in it
if( id > 0 && id <= MAX_PLAYERS ){
static lastid;
static name[32],authid[32], userid;
if( lastid != id ){
lastid = id;
get_user_name( id, name, 31 );
get_user_authid( id, authid, 31 );
userid = get_user_userid( id );
}
if( userid > 0 )
format( output, 255, ""%s<%d><%s><%s>" %s", name,userid,authid,PokeToName(Pokemon[id]), output );
}
if( output[0] == '0' )
return;
if( debugMode )
format( output, 255, "DEBUG: %s", output );
switch(debugMode)
{
}
if( debugger )
console_print( debugger, output ); //put it in console of debugger
}


Dodatki SourceMod



Temat jest zamknięty










