[Ajuda] Retirar script "Lag zero"
#1

Seguinte eu peguei um GM Base de DM pra eu poder dar uma melhorada pra eu e uns amigos jogarem pra treinar x1,etc...

Eu jб melhorei bastante, coloquei vбrios cmd, mudei sistema de login, e mais algumas coisas... (bбsico dos bбsicos pro GM nгo ficar pesado)

Acontece que eu preciso tirar esse Script Lag Zero (Tiro na skin), eu jб atй consegui tirar o tiro na skin mas o resto dos sistemas do GM nгo funfa porque parece que o GM nгo reconhece mais quando algum player morre...

pawn Code:
public OnPlayerTakeDamage(playerid,issuerid,Float:amount,weaponid)
{
    if(Lagduel[playerid] == true) return 1;
    if(weaponid == 24) amount = 32;
    SetPlayerScore(issuerid,GetPlayerScore(issuerid) + floatround(amount) / 10);
    new Float:life;
    GetPlayerHealth(playerid,life);
    if((life - amount) <= 0)
    {
        Morto[playerid] = true;
        SendDeathMessage(issuerid,playerid,weaponid);
        DeadPlayer(playerid,issuerid,weaponid);
    }
    return 1;
}
   

public OnPlayerGiveDamage(playerid, damagedid, Float:amount, weaponid)
{
    if (damagedid != INVALID_PLAYER_ID)
    {
        PlayerPlaySound(playerid, 17802, 0.0, 0.0, 0.0);
    }
    if(Aj[playerid] == false && GetPlayerSpecialAction(playerid) == 2) return SetPlayerHealth(playerid,0);
    switch(weaponid)
    {
        case 24: amount = 32;
        case 9: amount = 10;
        case 38: amount = 0;
    }
    if(Morto[damagedid] == true) return 1;
    if(Lagduel[damagedid] == true) return 1;
    new Float:Life, Float:Coleete, Float:Dano;
    GetPlayerArmour(damagedid,Coleete);
    GetPlayerHealth(damagedid,Life);
    if(Coleete > 0)
    {
        if(amount > Coleete)
        {
            Dano = amount - Coleete;
            Life = Life - Dano;
            SetPlayerArmour(damagedid, 0.0);
            SetPlayerHealth(damagedid, Life);
            SetPlayerScore(playerid,GetPlayerScore(playerid) + floatround(amount) / 10);
            return 1;
        }
        SetPlayerScore(playerid,GetPlayerScore(playerid) + floatround(amount) / 10);
        Coleete = Coleete - amount;
        SetPlayerArmour(damagedid, Coleete);
    }
    if(Coleete < 1)
    {
        Life = Life - amount;
        SetPlayerScore(playerid,GetPlayerScore(playerid) + floatround(amount) / 10);
        SetPlayerHealth(damagedid, Life);
        if(Life <= 0)
        {
            Morto[damagedid] = true;
            SendDeathMessage(playerid,damagedid,weaponid);
            DeadPlayer(damagedid,playerid,weaponid);
        }
    }
    return 1;
}
pawn Code:
public OnPlayerSpawn(playerid) //deixei sу oq importa aqui, mas tem o resto dos codigos no GM
{
    SetPlayerTeam(playerid,1);
        return 1;
}
pawn Code:
CMD:duel(playerid)
{
    if(Morto[playerid] == true) return SendClientMessage(playerid,azul,"(AVISO): Vocк nгo pode digitar este comando estando morto!");
    if(Duel[playerid] != 998) return SendClientMessage(playerid,azul,"(AVISO): Vocк jб estб em um DUEL.");
    Duel[playerid] = 999;
    SetPlayerInterior(playerid,1);
    Lagduel[playerid] = false;
    SetPlayerVirtualWorld(playerid,playerid);
    SetPlayerPos(playerid,1403.6039,-20.7303,1000.9115);
    SetPlayerFacingAngle(playerid,92.2);
    new anuncio[80];
    format(anuncio,sizeof anuncio,"[DUEL] %s criou um duel! Digite /aceitar {FFFFFF}%d.",GetName(playerid),playerid);
    SendClientMessageToAll(verde,anuncio);
    return 1;
}
pawn Code:
CMD:aceitar(playerid,params[])
{
    if(Morto[playerid] == true) return SendClientMessage(playerid,azul,"(AVISO): Vocк nгo pode digitar este comando estando morto!");
    new id;
    if(sscanf(params,"d",id)) return SendClientMessage(playerid,azul,"Uso: /aceitar [ID]");
    if(!IsPlayerConnected(id)) return SendClientMessage(playerid,azul,"(AVISO): ID Invalido!");
    if(Duel[id] != 999) return SendClientMessage(playerid,azul,"(AVISO): Duel ja comeзou ou nгo existe!");
    if(id == playerid) return SendClientMessage(playerid,azul,"(AVISO): Vocк nгo pode aceitar seu proprio duel");
    new a[95];
    format(a,sizeof a,"[DUEL] {FFFFFF}%s {FF7A17}aceitou duel com {FFFFFF}%s!",GetName(playerid),GetName(id));
    SendClientMessageToAll(laranja,a);
    Duel[id] = playerid;
    Duel[playerid] = id;
    Lagduel[playerid] = Lagduel[id];
    SetPlayerVirtualWorld(playerid,id);
    SetPlayerInterior(playerid,1);
    SetPlayerPos(playerid,1376.0934,-22.0428,1000.9268);
    SetPlayerFacingAngle(playerid,271.4);
    SetPlayerPos(id,1403.6039,-20.7303,1000.9115);
    SetPlayerFacingAngle(id,92.4);
    Contagem(playerid,id);
    return 1;
}
pawn Code:
stock EndDuel(winner,loser,bool:dueltype)
{
    Duel[winner] = 998;
    Duel[loser] = 998;
    Player[winner][wins] ++;
    Player[loser][losses] ++;
    Lagduel[winner] = false;
    Lagduel[loser] = false;
    SetPlayerTeam(winner,1);
    SetPlayerTeam(loser,1);
    new wl[132];
    new Float:result,Float:life,Float:armour;
    GetPlayerArmour(winner,armour);
    GetPlayerHealth(winner,life);
    result = life + armour;
    new type[4];
    if(dueltype == true) type = "LAG";
    if(result >= 200)
    {
        format(wl,sizeof wl,"[%sDUEL] O Player {FFFFFF}%s {FF7A17}venceu {FFFFFF}%s de {FFFF22}perfect!",type,GetName(winner),GetName(loser));
    }
    else
    {
        format(wl,sizeof wl,"[%sDUEL] O Player {FFFFFF}%s {FF7A17}venceu {FFFFFF}%s, {FF7A17}sobrando {FFFFFF}%d.",type,GetName(winner),GetName(loser),floatround(result));
    }
    SendClientMessageToAll(laranja,wl);
    SetPlayerVirtualWorld(winner,0);
    SetPlayerInterior(winner,0);
    SetPlayerHealth(winner,100);
    SetPlayerArmour(winner,100);
    SetPlayerRandomPos(winner);
    return 1;
}
Esse codigo funciona perfeitamente, acontece que eu quero tirar esse "Tiro na skin" e deixar no lag, mas sem bugar o sistema de duel, de mensagens, de killdeath,etc...

(Jб tentei de tudo quanto й jeito, mas nгo consegui, entгo estou socorrendo a ajuda de vcs)
Reply
#2

Se alguйm puder me ajudar pls :/

Jб consegui deixar o tiro no LAG (tirando o SetPlayerTeam do GM) mas ai o resto dos sistemas fica bugado porque o GM nгo reconhece quando o player mata/morre (sendo que ele morre e mata normal, mas nгo reconhece)

Ai o SendDeathMessage, Duel, SendClientMessageToAll nгo aparece...
Reply
#3

pra que 2 topicos sobre o mesmo?

pawn Code:
if(Lagduel[damagedid] == true) return 1;
sera que n e isso acima so que vc quer retirar?
Reply
#4

Mas eu sу mudo isso no OnPlayerGiveDamage?

Se nгo me engano eu jб tentei fazer isso uma vez mas ai todos os players pareciam que ficava de "GOD", nгo sai life nem colete de ninguйm...

:S
Reply
#5

ups!
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)