Zplague
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Zplague Entrar

Seu portal de Zombie Plague no Brasil


descriptionSomando valores de 2 cvars com 3 warnings? EmptySomando valores de 2 cvars com 3 warnings?

more_horiz
É normal ter 3 warnings nesse plugin?

Código do plugin:

Código:

#include <amxmodx>

new gcvar1, gcvar2, gcvartotal

public plugin_init()
{
   register_plugin("Testando", "0.0.0.1", "AnDroidEL")
   
   gcvar1 = register_cvar("amx_cvar_a", "5")
   gcvar2 = register_cvar("amx_cvar_b", "10")
}

public somando()
{
   gcvartotal = get_cvar_num("gcvar1") + get_cvar_num("gcvar2")
}


Histórico de Compilação:

Código:

Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team

Warning: Symbol is assigned a value that is never used: "gcvar1" on line 16
Warning: Symbol is assigned a value that is never used: "gcvar2" on line 16
Warning: Symbol is assigned a value that is never used: "gcvartotal" on line 16
Header size:            176 bytes
Code size:              316 bytes
Data size:              284 bytes
Stack/heap size:      16384 bytes; estimated max. usage=39 cells (156 bytes)
Total requirements:  17160 bytes

3 Warnings.
Done.

descriptionSomando valores de 2 cvars com 3 warnings? EmptyRe: Somando valores de 2 cvars com 3 warnings?

more_horiz
Sim. O motivo é que você armazenou os ponteiros das cvars(cvars pointers) nas variáveis mais na hora de resgatar o valor dessas cvars você utilizou o nome das cvars ao invés dos ponteiros.
Resumindo, você criou variáveis, estabeleceu os valores delas, mais não fez uso delas em momento algum, por isso foi relatado essas warnings durante a compilação.

Para resolver isso use a native get_pcvar_num(cvar_pointer), ou não salve os ponteiros das cvars e continue utilizando a native get_cvar_num(const cvar_name[]).

descriptionSomando valores de 2 cvars com 3 warnings? EmptyRe: Somando valores de 2 cvars com 3 warnings?

more_horiz
Obrigado Spriite. :)

Mas agora fiquei com uma dúvida, o que vem a ser um cvar (cvar) e um pcvar (point cvar)?

descriptionSomando valores de 2 cvars com 3 warnings? EmptyRe: Somando valores de 2 cvars com 3 warnings?

more_horiz
CVar: Conditional variable, seria uma condição que pode ser ajustada a qualquer momento no ambiente do jogo.
PCVar: cvar pointer, que seria o índice de uma cvar.

get/set_cvar_num(...): Obtem/altera o valor de uma cvar tendo como base o nome da mesma.

get/set_pcvar_num(...): Obtem/altera o valor de uma cvar tendo como base o cvar pointer da mesma.

As cvars podem ser comparadas aos players, ambos tem nome e ambos tem um índice. O índice dos players é conhecido como id e os das cvars é conhecido como cvar pointer. Além disso quando você vai obter algum atributo do player você usa o id.

Para obter/editar o valor de uma cvar é recomendado que você utilize o cvar pointer, pois caso você utilize o nome será criado um loop para que o amxx encontre a cvar com o nome especificado, enquanto isso o cvar pointer já te direciona para a cvar que você quer obter/alterar o valor.

descriptionSomando valores de 2 cvars com 3 warnings? EmptyRe: Somando valores de 2 cvars com 3 warnings?

more_horiz
Entendi SpriiTe.

Obrigado =D
Zplague12

Encerro este tópico. :)

descriptionSomando valores de 2 cvars com 3 warnings? EmptyRe: Somando valores de 2 cvars com 3 warnings?

more_horiz
privacy_tip Permissões neste sub-fórum
Não podes responder a tópicos
power_settings_newInicie sessão para responder