[Ajuda] Alguns erros
#1

Entou tentando aprender a usar IF e GetPlayerName... Com um simples comando de /kill que era pra pegar a vida do player, e se for 80 ou maior, matar o player. Se for menos que 80 (nao passaria no IF) retornaria a mensagem Vocк precisa ter 80 de vida ou mais para usar este comando.ґE mandaria a mensagem pra todo o server que o player tal usou /kill...

Meu /kill
pawn Код:
if(strcmp(cmd, "/kill", true) == 0) {
    if (GetPlayerHealth(playerid) >= 80)
    {
        SetPlayerHealth(playerid,0);
        else return SendClientMessage(playerid,COLOR_RED,"Vocк precisa ter 80 de vida ou mais para usar este comando");
    }
        new string[128], Player_Name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Player_Name,sizeof(Player_Name));
    format(string,256,"[ID:%i] %s Se matou (/kill)",Player_Name); SendClientMessageToAll(COLOR_DGREEN,string);
    return 1;
    }
erros

pawn Код:
G:\Projeto Samp\gamemodes\lvdm.pwn(244) : warning 202: number of arguments does not match definition
G:\Projeto Samp\gamemodes\lvdm.pwn(247) : error 029: invalid expression, assumed zero
G:\Projeto Samp\gamemodes\lvdm.pwn(247) : warning 215: expression has no effect
G:\Projeto Samp\gamemodes\lvdm.pwn(247) : error 001: expected token: ";", but found "return"
G:\Projeto Samp\gamemodes\lvdm.pwn(249) : warning 219: local variable "string" shadows a variable at a preceding level
Pawn compiler 3.2.3664          Copyright (c) 1997-2006, ITB CompuPhase


2 Errors.
Sei que vгo passar codigos prontos, mais quero que me ensinem a resolver tais erros, e o que eu eu errei.
Reply
#2

pawn Код:
if(strcmp(cmd, "/kill", true) == 0)
    {
        new Float: vida;
        GetPlayerHealth(playerid, vida);
        if (vida >= 80)
        {
            SetPlayerHealth(playerid,0);
        }
        else return SendClientMessage(playerid,COLOR_RED,"Vocк precisa ter 80 de vida ou mais para usar este comando");
        new string[128], Player_Name[MAX_PLAYER_NAME];
        GetPlayerName(playerid,Player_Name,sizeof(Player_Name));
        format(string,256,"[ID:%i] %s Se matou (/kill)",Player_Name); SendClientMessageToAll(COLOR_DGREEN,string);
        return 1;
    }
Reply
#3

Me explica isso por favor:

pawn Код:
new Float: vida;
        GetPlayerHealth(playerid, vida);
Reply
#4

PHP код:
new Float:a,string[128], Player_Name[MAX_PLAYER_NAME];
if(
strcmp(cmdtext"/akill"true) == 0)
{
    
GetPlayerHealth(playerid,a);
    if (
>= 80) {
        
SetPlayerHealth(playerid,0);
        
GetPlayerName(playerid,Player_Name,sizeof(Player_Name));
        
format(string,256,"[ID:%d] %s Se matou (/kill)",playerid,Player_Name);
        
SendClientMessageToAll(COLOR_DGREEN,string);
        return 
1;
    }
    else { 
SendClientMessage(playerid,COLOR_RED,"Vocк precisa ter 80 de vida ou mais para usar este comando"); }
    return 
1;

Reply
#5

Quote:
Originally Posted by arakuta
Посмотреть сообщение
Me explica isso por favor:

pawn Код:
new Float: vida;
        GetPlayerHealth(playerid, vida);
Й bem simples, to criando uma nova variбvel com a tag Float:, essa tag serve pra especificar que a variбvel acumularб um numero frбcionado, tipo: 1234.5678, a vida do player й um Float, tipo: 100.0% de vida, em baixo eu to pegando a quantidade de vida do player, que player? o playerid, e to acumulando ela dentro da variбvel vida, em baixo disso eu comparo se o valor acumulado na variбvel vida й igual ou maior que 80 =), usando if(vida >= 80)
Reply
#6

Coca, tu definiu string 2 vezes. Nгo sei como tirar a definiзгo extra.
Reply
#7

Quote:
Originally Posted by arakuta
Посмотреть сообщение
Me explica isso por favor:

pawn Код:
new Float: vida;
        GetPlayerHealth(playerid, vida);

A funзгo GetPlayerHealth й do tipo que retorna a Vida do jogador armazenando o valor da mesma na variбvel que estiver no segundo parвmetro da funзгo :



pawn Код:
new Float: vida; //Cria uma variбvel de valor 0.
GetPlayerHealth(playerid, vida); //Armazena a vida do jogador dentro da variбvel "vida". Apуs isso, a variбvel "vida" fica com o mesmo valor que a vida real do jogador.


Arrumei seu cуdigo, isto deve resolver o seu problema :



pawn Код:
if(strcmp(cmdtext, "/kill", true) == 0)
    {
        new Float:Life;
        GetPlayerHealth(playerid,Life);
        if(Life < 80)
        {
            SendClientMessage(playerid,COLOR_RED,"Vocк precisa ter 80 de vida ou mais para usar este comando");
            return true;
        }
        SetPlayerHealth(playerid,0);
        new Player_Name[MAX_PLAYER_NAME];
        GetPlayerName(playerid,Player_Name,sizeof(Player_Name)),
        format(string,128,"[ID:%i] %s Se matou (/kill)",Player_Name),
        SendClientMessageToAll(COLOR_DGREEN,string);
        return true;
    }


Espero ter ajudado .
Reply
#8

Rjjj, cуdigo perfeito. Entendi sobre floats, entгo seu eu criar a float Kills, ou seja 0, eu uso o GetPlayerScore pra deixa a float kills com valor do score do player. Entendi?
Reply
#9

Nгo, Floatґs sгo usados apenas para numeros fracionados, new Float: vida; nгo cria igual o valor 0 e sim igual o valor 0.0
Reply
#10

Quote:
Originally Posted by arakuta
Посмотреть сообщение
Rjjj, cуdigo perfeito. Entendi sobre floats, entгo seu eu criar a float Kills, ou seja 0, eu uso o GetPlayerScore pra deixa a float kills com valor do score do player. Entendi?
Bem, na verdade apenas algumas funзхes armazenam valores em parвmetros como й o caso do GetPlayerHealth, GetPlayerArmour, GetPlayerName, entre outras .



No caso do GetPlayerScore nгo, pois essa funзгo й do tipo que simplesmente retorna o valor (por um return) .



Nesse tipo de funзгo, a funзгo й o prуprio valor, exemplo:



pawn Код:
new score; //Cria uma variбvel de valor 0. Essa nгo precisa da tag Float:, pois o Score nгo й um nъmero fracionбrio.
score = GetPlayerScore(playerid);  //A expressгo "GetPlayerScore(playerid)" й o prуprio score do jogador, ou seja, 5, 10, ou 11 por exemplo.


Aqui, um tutorial sobre esse assunto : https://sampforum.blast.hk/showthread.php?tid=220883




Espero ter ajudado .
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)