[AJUDA] OnPlayerDeath errado!!! (Pontuaзгo estranha)
#1

Bom estou fazendo 1 gamemode com o garfield mas estamos tendo problemas com as pontuaзхes.
Esta todas elas erradas O.O nenhuma funcionando!
Vou explicar a intenзгo de cada uma e me ajudem a arrumar por favor

pawn Код:
public OnPlayerDeath(playerid, killerid)
{
    for(new i; i < MAX_PLAYERS; i ++) //Funзгo pra aplicar a todos player
    {
    if(GetPlayerTeam(killerid) == Time_Marinha) // Se o matador for marinha, a equipe ganha 1 de score
    {
    Marinha[i] += 1; // score +1
    }else
    if(GetPlayerTeam(killerid) == Time_Exercito) // Se o matador for exercito, a equipe ganha 1 de score
    {
    Exercito[i] += 1; // score +1
    }
    }
   
    for(new i; i < MAX_PLAYERS; i ++)
    {
    if(GetPlayerTeam(playerid) == Time_Marinha){ // Se o morto for marinha, a equipe perde 1 de score
    Marinha[i] -= 1; //perde 1 score
    }else
    if(GetPlayerTeam(playerid) == Time_Exercito){ // Se o morto for exercito, a equipe perde 1 de score
    Exercito[i] -= 1; //perde 1 score
    }
    }

    if(Equipe[killerid] == Equipe[playerid]) // Se alguem matar alguem da mesma equipe
    {
    new warning[256];
    format(warning, sizeof(warning), "[Anti-TK]:Por matar um membro de sua gang vocк foi morto!");
    SendClientMessage(killerid, 0xFFFF00AA, warning); // msg de aviso
    SetPlayerHealth(killerid, 0); // mata o assasino
    SetPlayerScore(killerid,GetPlayerScore(playerid) -1); e tira 1 de score do assasino
    }
    else if(Equipe[playerid] != Equipe[playerid]) // se quem matar ou morre for de equipe diferente
    {
    SetPlayerScore(killerid,GetPlayerScore(killerid) +1); // add 1 score ao player matador
    GivePlayerMoney(playerid,GetPlayerMoney(playerid) -500); // tira 500 de money de quem morre
    SetPlayerScore(playerid,GetPlayerScore(playerid) -1); // tira 1 score de quem morre
    Exp[playerid] += 10; // adiciona exp +10 pra quem mata
    if(killerid == 10){ Nivel[killerid] += 1; } // ganha de 10 em 10 = 1 level
    if(killerid == 20){ Nivel[killerid] += 1; }
    if(killerid == 30){ Nivel[killerid] += 1; }
    if(killerid == 40){ Nivel[killerid] += 1; }
    if(killerid == 50){ Nivel[killerid] += 1; }
    if(killerid == 60){ Nivel[killerid] += 1; }
    if(killerid == 70){ Nivel[killerid] += 1; }
    if(killerid == 80){ Nivel[killerid] += 1; }
    if(killerid == 90){ Nivel[killerid] += 1; }
    if(killerid == 100){ Nivel[killerid] += 1; } // Eu queria por mais de 100kills como diminuir esse codigo e fazer funcionar que pra cada 10 kills = 1 nivel ?
    if(Exp[killerid] >= 110){ Exp[killerid] -= 100; } // quando a exp chegar a 110 volta a 10
    if(playerid >= 1){ Exp[playerid] -= 10; } // o morto perde 10 de exp
    if(Exp[playerid] <= 0){ Exp[playerid] += 0; } // se a exp ficar menor ou igual a 0 ele volta a 0 pra nгo fica negativa
    if(playerid >= 10){ Nivel[playerid] -= 1; } //se morrer 10 vezes perde 1 nivel
    }
    return 1;
}
eu notei alguns erros mas nгo to entendendo pq ta pontuando tudo errado
OBS: EXP SCORE DO PLAYER E NIVEL NГO ESTГO MUDANDO!
Reply
#2

Acho que ja se passaram 12h
tipuw me ajuda ai pessoal
=/
O poco que ajudarem ja ajuda ^^
Reply
#3

pawn Код:
public OnPlayerDeath(playerid, killerid)
{
    if(GetPlayerTeam(killerid) == Time_Marinha && GetPlayerTeam(playerid) == Time_Exercito) // Se o matador for marinha, a equipe ganha 1 de score
    {
        Marinha[killerid] += 1; // score +1
        Exercito[playerid] -= 1; //perde 1 score
    }
    if(GetPlayerTeam(killerid) == Time_Exercito && GetPlayerTeam(playerid) == Time_Marinha) // Se o matador for exercito, a equipe ganha 1 de score
    {
        Marinha[killerid] -= 1; // score +1
        Exercito[playerid] += 1; //perde 1 score
    }
    if(Equipe[killerid] == Equipe[playerid]) // Se alguem matar alguem da mesma equipe
    {
        new warning[256];
        format(warning, sizeof(warning), "[Anti-TK]:Por matar um membro de sua gang vocк foi morto!");
        SendClientMessage(killerid, 0xFFFF00AA, warning); // msg de aviso
        SetPlayerHealth(killerid, 0); // mata o assasino
        SetPlayerScore(killerid,GetPlayerScore(playerid) -1); e tira 1 de score do assasino
    }
    else // se quem matar ou morre for de equipe diferente
    {
        SetPlayerScore(killerid,GetPlayerScore(killerid) +1); // add 1 score ao player matador
        GivePlayerMoney(playerid,GetPlayerMoney(playerid) -500); // tira 500 de money de quem morre
        SetPlayerScore(playerid,GetPlayerScore(playerid) -1); // tira 1 score de quem morre
        Exp[killerid] += 1; // adiciona exp +1 pra quem mata
        Exp[playerid] -= 1; // o morto perde 1 de exp
        if(Exp[killerid] == 10) // com 10 de exp ele sobe de level!
        {
            Nivel[killerid] += 1; // matador sobe de level!
            Exp[killerid] = 0; // reseta a exp!
        }
        if(Exp[playerid] <= 0){ Exp[playerid] += 0; } // se a exp ficar menor ou igual a 0 ele volta a 0 pra nгo fica negativa
        if(playerid >= 10){ Nivel[playerid] -= 1; } //se morrer 10 vezes perde 1 nivel
    }
    return 1;
}
Reply
#4

usa assim:
pawn Код:
//
public OnPlayerDeath(playerid, killerid)
{
    if(GetPlayerTeam(killerid) == Time_Marinha && GetPlayerTeam(playerid) == Time_Exercito) // Se o matador for marinha, a equipe ganha 1 de score
    {
        Marinha[killerid]++; // score +1
        Exercito[playerid]--; //perde 1 score
    }
    if(GetPlayerTeam(killerid) == Time_Exercito && GetPlayerTeam(playerid) == Time_Marinha) // Se o matador for exercito, a equipe ganha 1 de score
    {
        Marinha[killerid]++; // score +1
        Exercito[playerid]--; //perde 1 score
    }
    if(Equipe[killerid] == Equipe[playerid]) // Se alguem matar alguem da mesma equipe
    {
        new warning[256];
        format(warning, sizeof(warning), "[Anti-TK]:Por matar um membro de sua gang vocк foi morto!");
        SendClientMessage(killerid, 0xFFFF00AA, warning); // msg de aviso
        SetPlayerHealth(killerid, 0); // mata o assasino
        SetPlayerScore(killerid,GetPlayerScore(playerid) -1); e tira 1 de score do assasino
    }
    else // se quem matar ou morre for de equipe diferente
    {
        SetPlayerScore(killerid,GetPlayerScore(killerid)+1); // add 1 score ao player matador
        GivePlayerMoney(playerid,GetPlayerMoney(playerid) -500); // tira 500 de money de quem morre
        SetPlayerScore(playerid,GetPlayerScore(playerid) -1); // tira 1 score de quem morre
        Exp[killerid] ++; // adiciona exp +1 pra quem mata
        Exp[playerid]--; // o morto perde 1 de exp
        if(Exp[killerid] == 10) // com 10 de exp ele sobe de level!
        {
            Nivel[killerid]++; // matador sobe de level!
            Exp[killerid] = 0; // reseta a exp!
        }
        if(Exp[playerid] <= 0){ Exp[playerid] = 0; } // se a exp ficar menor ou igual a 0 ele volta a 0 pra nгo fica negativa
        if(playerid >= 10){ Nivel[playerid]--; } //se morrer 10 vezes perde 1 nivel
    }
    return 1;
}
Reply
#5

Kasura Observe:

pawn Код:
if(playerid >= 10){ Nivel[playerid] -= 1; } //se morrer 10 vezes perde 1 nivel
Se o id dele for maior que 10 ele perde um nivel?
Reply
#6

pawn Код:
if(/*  para quem morreuu  */[playerid] >= 10){ Nivel[playerid] -= 1; } //se morrer 10 vezes perde 1 nivel
Reply
#7

й ratiei bastante kkkk
Vou refazer umas partes do code
й que no dia eu sertamente tava meio doido O.O nem tinha notado esses erros grotescos kkkk
Vou mexer no code ^^
Vlws ai quem ajudou
se eu tiver + alguma duvida eu posto ^^
--------------------------------------------------------
Este codigo esta certo? MODIFIQUEI ELE

pawn Код:
if(Equipe[killerid] == Equipe[playerid])
    {
    new warning[256];
    format(warning, sizeof(warning), "[Anti-TK]:Por matar um membro de sua gang vocк foi morto!");
    SendClientMessage(killerid, 0xFFFF00AA, warning);
    SetPlayerHealth(killerid, 0);
    SetPlayerScore(killerid,GetPlayerScore(killerid) -1);  //<< modifiquei o killerid do getscore pra tirar 1 de score de quem mato n de quem morreu!
    }
Reply
#8

pawn Код:
if(Marinha[killerid] == Marinha[playerid] || Exercito[killerid] == Exercito[playerid])
    {
    new warning[256];
    format(warning, sizeof(warning), "[Anti-TK]:Por matar um membro de sua gang vocк foi morto!");
    SendClientMessage(killerid, 0xFFFF00AA, warning);
    SetPlayerHealth(killerid, 0);
    SetPlayerScore(killerid,GetPlayerScore(killerid) -1);  //<< modifiquei o killerid do getscore pra tirar 1 de score de quem mato n de quem morreu!
    }
Reply
#9

garfield entra no msn!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)