Спидометр

Anub1s

Участник
Сообщения
37
Реакции
2
Помогите исправить ошибки в плагине - [Pawn] #include <sourcemod> #include <sdktools> #define PLUGIN_NAME "Speed Meter" - Pastebin.com

Вот сами ошибки:
script.sp(15) : warning 213: tag mismatch
script.sp(40) : error 100: function prototypes do not match
script.sp(93) : error 017: undefined symbol "args"
script.sp(94) : error 035: argument type mismatch (argument 1)
script.sp(96) : error 017: undefined symbol "elseif"
script.sp(97) : error 076: syntax error in the expression, or invalid function call
script.sp(98) : warning 213: tag mismatch
script.sp(99) : error 035: argument type mismatch (argument 1)
script.sp(101) : error 017: undefined symbol "elseif"
script.sp(102) : warning 213: tag mismatch
script.sp(103) : error 035: argument type mismatch (argument 1)
script.sp(105) : warning 209: function "SwitchMeter" should return a value
script.sp(141) : warning 213: tag mismatch

Я новичок и мне сложновато понять суть ошибок:ac:
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
(15) : warning 213: tag mismatch
new Bool: - с маленькой буквы.
public Action:SwitchMeter () --> public Action:SwitchMeter(client, args)
Пишется раздельно: else if
(105) : warning 209: function "SwitchMeter" should return a value
return Plugin_Handled;
return Bool:GetConVarBool (g_switch); --> return GetConVarBool(g_switch);
 

Anub1s

Участник
Сообщения
37
Реакции
2
new Bool: - с маленькой буквы.
public Action:SwitchMeter () --> public Action:SwitchMeter(client, args)Пишется раздельно: else ifreturn Plugin_Handled;
return Bool:GetConVarBool (g_switch); --> return GetConVarBool(g_switch);
[Pawn] #include <sourcemod> #include <sdktools> #define PLUGIN_NAME "Speed Meter" - Pastebin.com


script.sp(94) : error 035: argument type mismatch (argument 1)
script.sp(97) : error 035: argument type mismatch (argument 1)
script.sp(98) : warning 213: tag mismatch
script.sp(100) : error 035: argument type mismatch (argument 1)
script.sp(101) : warning 213: tag mismatch
script.sp(103) : warning 209: function "SwitchMeter" should return a value
script.sp(139) : warning 213: tag mismatch
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
script.sp(94) : error 035: argument type mismatch (argument 1)
script.sp(97) : error 035: argument type mismatch (argument 1)
script.sp(100) : error 035: argument type mismatch (argument 1)
PrintToChat("\x04[SM]:\x03 --> PrintToChat(client, "\x01\x04[SM]:\x03
script.sp(98) : warning 213: tag mismatch
g_switch = true;
script.sp(101) : warning 213: tag mismatch
g_switch = false;
script.sp(103) : warning 209: function "SwitchMeter" should return a value
В конце функции return Plugin_Handled;
 

Monomizer

Держу JDW в бане.
Сообщения
1,947
  • Команда форума
  • #5
[Pawn] #include <sourcemod> #include <sdktools> #define PLUGIN_NAME "Speed Meter" - Pastebin.com


script.sp(94) : error 035: argument type mismatch (argument 1)
script.sp(97) : error 035: argument type mismatch (argument 1)
script.sp(98) : warning 213: tag mismatch
script.sp(100) : error 035: argument type mismatch (argument 1)
script.sp(101) : warning 213: tag mismatch
script.sp(103) : warning 209: function "SwitchMeter" should return a value
script.sp(139) : warning 213: tag mismatch
PHP:
#include <sourcemod>
#include <sdktools>

#define PLUGIN_NAME "Speed Meter"
#define PLUGIN_VERSION "1.0.1"
#define PLUGIN_DESCRIPTION "Show current player speed in HUD every 2 sec"
#define PLUGIN_AUTHOR "Petit Renard, Anubis"
#define PLUGIN_URL "http://css.cooldev.net/"

new Handle:g_enable = INVALID_HANDLE;
new Handle:g_unit = INVALID_HANDLE;
new Float:lastPosition[MAXPLAYERS + 1][3];
new g_MaxClients;
new Handle:g_timer = INVALID_HANDLE;
new bool:g_switch = false;

/********************
* Plugin Info
*********************/
public Plugin:myinfo = {
    name = PLUGIN_NAME,
    author = PLUGIN_AUTHOR,
    description = PLUGIN_DESCRIPTION,
    version = PLUGIN_VERSION,
    url = PLUGIN_URL
};

/********************
* Start of Plugin
*********************/
public OnPluginStart (){
    LoadTranslations ("speedmeter.phrases");
  
    g_enable = CreateConVar ("speedmeter_enable", "1", "Enable SpeedMeter ? (1 = yes, 0 = no)", FCVAR_PLUGIN, true, 0.0, true, 1.0);
    g_unit = CreateConVar ("speedmeter_unit", "0", "Unit of length (0 = kilometres, 1 = miles)", FCVAR_PLUGIN, true, 0.0, true, 1.0);
  
    CreateConVar ("speedmeter_version", PLUGIN_VERSION, PLUGIN_NAME, FCVAR_PLUGIN | FCVAR_REPLICATED | FCVAR_NOTIFY);
    CreateConVar ("speedmeter_credit", PLUGIN_URL, PLUGIN_NAME, FCVAR_PLUGIN | FCVAR_REPLICATED | FCVAR_NOTIFY);
  
    RegConsoleCmd("sm_speed", SwitchMeter);
  
    HookEvent ("round_start", Event_RoundStart);
    HookEvent ("round_end", Event_RoundEnd);
}

/********************
* Start of Map
*********************/
public OnMapStart (){
    g_MaxClients = GetMaxClients();
}

/********************
* Start of Round
*********************/
public Action:Event_RoundStart (Handle:event, const String:name[], bool:dontBroadcast) {
    if (IsPluginEnable ()){
        if (EnabledForPlar ()) {
            if (g_timer != INVALID_HANDLE){
                KillTimer (g_timer);
                g_timer = INVALID_HANDLE;
            }
            g_timer = CreateTimer (1.0, Timer_Speed);
        }
    }
    return Plugin_Continue;
}

/********************
* End of Round
*********************/
public Action:Event_RoundEnd (Handle:event, const String:name[], bool:dontBroadcast) {
    if (g_timer != INVALID_HANDLE) {
        KillTimer (g_timer);
        g_timer = INVALID_HANDLE;
    }
}

/********************
* Speed Timer
*********************/
public Action:Timer_Speed (Handle:timer, any:nothing) {
    for (new i=1; i<=g_MaxClients; i++){
        speedMeter (i);
    }
    g_timer = CreateTimer (1.0, Timer_Speed);
}

/********************
* On/Off for Player
*********************/
public Action:SwitchMeter (client, args) {
    if(args < 0 && args > 1)
    {
        PrintToChat(client, "\x04[SM]:\x03 1 - Включить спидометр; 0 - отключить спидометр");
        return Plugin_Handled;
    }
    else if (args == 1)
    {      
        PrintToChat(client, "\x04[SM]:\x03Вы включили спидометр");
        g_switch = true;
    }
    else if (args == 0)
    {      
        PrintToChat(client, "\x04[SM]:\x03Вы выключили спидометр");
        g_switch = false;
    }
    return Plugin_Handled;
}

/********************
* Speed Calculator
*********************/
stock speedMeter (client){
    if (client && IsClientConnected (client) && IsClientInGame (client) && IsPlayerAlive (client)){
        new Float:newPosition[3], Float:distance, Float:speed, String:message[128], unit;
      
        GetClientAbsOrigin (client, newPosition);
        distance = GetVectorDistance (lastPosition[client], newPosition);
        speed = distance / 20 * 2;
        lastPosition[client] = newPosition;
      
        unit = GetConVarInt (g_unit);
        switch (unit){
            case 0:{
                message = "Current speed in kilometers";
            }
            case 1:{
                speed = speed / 1.609347;
                message = "Current speed in miles";
            }
        }      
        PrintHintText (client, "%t", message, RoundToNearest (speed));
    }
}

/********************
* Check Plugin
*********************/
stock Bool:IsPluginEnable()
{
    return GetConVarBool(g_enable);
}

stock Bool:EnabledForPlar () 
{
    return GetConVarBool(g_switch);
}
 

Monomizer

Держу JDW в бане.
Сообщения
1,947
  • Команда форума
  • #9
@AlmazON,
PHP:
stock bool:IsPluginEnable()
{
    return GetConVarBool(g_enable);
}

stock bool:EnabledForPlar()
{
    return g_switch;
}
Или вообще без стока?
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
пишет что плагин выключн
Оффтоп Может будет работать:
PHP:
#include <sourcemod>
#include <sdktools>

#define PLUGIN_NAME "Speed Meter"
#define PLUGIN_VERSION "1.0.1"
#define PLUGIN_DESCRIPTION "Show current player speed in HUD every 2 sec"
#define PLUGIN_AUTHOR "Petit Renard, Anubis copy-paste"
#define PLUGIN_URL "http://css.cooldev.net/"

new Handle:g_enable = INVALID_HANDLE;
new Handle:g_unit = INVALID_HANDLE;
new Float:lastPosition[MAXPLAYERS + 1][3];
new g_MaxClients;
new Handle:g_timer = INVALID_HANDLE;
new bool:g_switch[MAXPLAYERS + 1];

/********************
* Plugin Info
*********************/
public Plugin:myinfo = {
	name = PLUGIN_NAME,
	author = PLUGIN_AUTHOR,
	description = PLUGIN_DESCRIPTION,
	version = PLUGIN_VERSION,
	url = PLUGIN_URL
};

/********************
* Start of Plugin
*********************/
public OnPluginStart (){
	LoadTranslations ("speedmeter.phrases");
	
	g_enable = CreateConVar ("speedmeter_enable", "1", "Enable SpeedMeter ? (1 = yes, 0 = no)", FCVAR_PLUGIN, true, 0.0, true, 1.0);
	g_unit = CreateConVar ("speedmeter_unit", "0", "Unit of length (0 = kilometres, 1 = miles)", FCVAR_PLUGIN, true, 0.0, true, 1.0);
	
	CreateConVar ("speedmeter_version", PLUGIN_VERSION, PLUGIN_NAME, FCVAR_PLUGIN | FCVAR_REPLICATED | FCVAR_NOTIFY);
	CreateConVar ("speedmeter_credit", PLUGIN_URL, PLUGIN_NAME, FCVAR_PLUGIN | FCVAR_REPLICATED | FCVAR_NOTIFY);
	
	RegConsoleCmd("sm_speed", SwitchMeter);
	
	HookEvent ("round_start", Event_RoundStart);
	HookEvent ("round_end", Event_RoundEnd);
}

/********************
* Start of Map
*********************/
public OnMapStart (){
	g_MaxClients = GetMaxClients();
}

/********************
* Start of Round
*********************/
public Event_RoundStart (Handle:event, const String:name[], bool:dontBroadcast) {
	if (GetConVarBool (g_enable)){
		if (g_timer != INVALID_HANDLE){
			KillTimer (g_timer);
		}
		g_timer = CreateTimer (1.0, Timer_Speed);
	}
}

/********************
* End of Round
*********************/
public Event_RoundEnd (Handle:event, const String:name[], bool:dontBroadcast) {
	if (g_timer != INVALID_HANDLE) {
		KillTimer (g_timer);
		g_timer = INVALID_HANDLE;
	}
}

/********************
* Speed Timer
*********************/
public Action:Timer_Speed (Handle:timer, any:nothing) {
	for (new i=1; i<=g_MaxClients; i++){
		if (g_switch[i]) speedMeter (i);
	}
	g_timer = CreateTimer (1.0, Timer_Speed);
}

/********************
* On/Off for Player
*********************/
public Action:SwitchMeter (client, args) {
	if (client) {
		if (g_switch[client]) {		
			PrintToChat(client, "\x01\x04[SM]:\x03Вы выключили спидометр");
			g_switch[client] = false;
		}
		else {		
			PrintToChat(client, "\x01\x04[SM]:\x03Вы включили спидометр");
			g_switch[client] = true;
		}
	}
	return Plugin_Handled;
}

/********************
* Speed Calculator
*********************/
stock speedMeter (client){
	if (IsPlayerAlive (client)){
		new Float:newPosition[3], Float:distance, Float:speed, String:message[128], unit;
		
		GetClientAbsOrigin (client, newPosition);
		distance = GetVectorDistance (lastPosition[client], newPosition);
		speed = distance / 20 * 2;
		lastPosition[client] = newPosition;
		
		unit = GetConVarInt (g_unit);
		switch (unit){
			case 0:{
				message = "Current speed in kilometers";
			}
			case 1:{
				speed = speed / 1.609347;
				message = "Current speed in miles";
			}
		}		
		PrintHintText (client, "%t", message, RoundToNearest (speed));
	}
}
Оффтоп
 
Сверху Снизу