[Tutorial] ShootLog (Registro de Tiro)
#1

Oi. :3


Essa й minha primeira release, justamente porque aprendi format, PVar, e fini (o qua nгo й dificil) Mas eu fiz e gostaria de compartilhar. Pode nгo ser um script muito otmizado, mas vocк pode me ajudar ._.


Versгo antiga (eu)
pawn Код:
public OnPlayerShootPlayer(shooter,target,Float:damage)
{
    new nome[MAX_PLAYER_NAME],msg[80], nomeshooter[MAX_PLAYER_NAME], nometarget[MAX_PLAYER_NAME], shootlog[70]; // Aqui cria as Variaveis para colocar os dados para juntar e fazer uma linha para mandar pro player
    GetPlayerName(shooter,nome,sizeof(nome)); // Aqui ele pega o nome do player e guarda ele na string "name"
    format(msg,sizeof(msg),"(( %s atirou em vocк e tirou %.1f de dano. ))",name,damage); // Com isso, Ele usa o nome e a float damage, que jб й retornada na callback pra formatar a mensagem.
    SendClientMessage(target,0xFFFFFFAA,msg); //aqui ele sу manda
    GetPlayerName(target,nome,sizeof(nome)); // Aqui pega o nome do cara que levou bala e coloca na mesma string 'nome'
    format(msg,sizeof(msg),"(( Vocк atirou em %s e tirou %.1f de dano. ))",name,damage); // Aqui formata a mensagem pro shooter
    SendClientMessage(shooter,0xFFFFFFAA,msg); // aqui manda pra ele
    GetPlayerName(shooter,nomeshooter,sizeof(nomeshooter)); // aqui pega o nome dos dois
    GetPlayerName(target,nometarget,sizeof(nometarget)); // aqui tbem
    format(shootlog, sizeof(shootlog), " Aviso de tiro: %s atirou em %s e tirou %.1f de dano  ", nomeshooter, nometarget, damage); // aqui formata os dados do tiro para o log
    new tempo[50], Year, Month, Day, Hour, Minute, Second; // aqui cria as variaveis de tempo
    gettime(Hour, Minute, Second); // aqui pega a hora
    getdate(Year, Month, Day); // a data
    format(tempo, sizeof(tempo), "%02d/%02d/%d - %02d:%02d:%02d", Day, Month, Year, Hour, Minute, Second); // aqui formata a 'timestamp'
    if(!Fini_Exists("shootlog.txt"))
    Fini_Create("shootlog.txt"); // se nг tiver, cria um arquivo chamado shootlog.txt
   
    Fini_OpenFile("shootlog.txt"); // abre
    Fini_SetStr(tempo, shootlog); // coloca a timestamp e os dados do tiro
    Fini_SaveFile(); // salva
    Fini_CloseFile(); // fecha
     return 1;
}
Versгo nova (Drakins)

pawn Код:
public OnPlayerShootPlayer(shooter,target,Float:damage)
{
    static
        sShooter[24],
        sTarget[24],
        sString[80],
        iYear,iMonth,iDay,iHour,iMinute,iSecond;

    //Target
    GetPlayerName(shooter,sShooter,22);
    format(sString,64,"(( %s atirou em vocк e tirou %.1f de dano. ))",sShooter,damage);
    SendClientMessage(target,0xFFFFFFAA,sString);
   

    //Shootter
    GetPlayerName(target,sShooter,22);
    format(sString,64,"(( Vocк atirou em %s e tirou %.1f de dano. ))",sShooter,damage);
    SendClientMessage(target,0xFFFFFFAA,sString);

    //Hora de Data
    gettime(iHour, iMinute, iSecond);
        getdate(iYear, iMonth, iDay);
    format(sShooter,80, "%02d/%02d/%d - %02d:%02d:%02d", iDay, iMonth, iYear, iHour, iMinute, iSecond);

    //Salvar      
    if(!Fini_Exists("iShotLog.txt"))
    {
        Fini_Create("iShotLog.txt");
    }
   
    Fini_OpenFile("iShotLog.txt");
    {
            Fini_SetStr(tempo, iShotLog);
            Fini_SaveFile();
            Fini_CloseFile();
    }
    return true;
}

Versгo nova nova (eu)

pawn Код:
public OnPlayerShootPlayer(shooter,target,Float:damage)
{
    static
        sShooter[24],
        sTarget[24],
        sString[80],
        iYear,iMonth,iDay,iHour,iMinute,iSecond,
        sTime[35],
        sShotMsg[100];

    //Target
    GetPlayerName(shooter,sShooter,22);
    format(sString,64,"(( %s atirou em vocк e tirou %.1f de dano. ))",sShooter,damage);
    SendClientMessage(target,0xFFFFFFAA,sString);


    //Shootter
    GetPlayerName(target,sTarget,22);
    format(sString,64,"(( Vocк atirou em %s e tirou %.1f de dano. ))",sTarget,damage);
    SendClientMessage(target,0xFFFFFFAA,sString);

    //Hora de Data
    gettime(iHour, iMinute, iSecond);
        getdate(iYear, iMonth, iDay);
       
    // Formatando

    format(sTime,35, "%02d/%02d/%d - %02d:%02d:%02d", iDay, iMonth, iYear, iHour, iMinute, iSecond);
    format(sShotMsg,100,"Aviso de tiro: %s atirou em %s e tirou %.1f de dano",sShooter,sTarget,damage);
    //Salvar
    if(!Fini_Exists("iShotLog.txt"))
    {
        Fini_Create("iShotLog.txt");
    }

    Fini_OpenFile("iShotLog.txt");
    {
            Fini_SetStr(sTime, sShotMsg);
            Fini_SaveFile();
            Fini_CloseFile();
    }
    return true;
}

Lembrando que vocк precisa do OPSP. (onPlayerShootPlayer) https://sampforum.blast.hk/showthread.php?tid=195439

Lembrando tambйm que vocк pode tirar a mensagem pro player pra nгo floodar.

As armas tipo minigun nгo dгo 482390480923 tiros em um segundo. Mas a cada segundo, ela dб UM tiro que tira 46 de damage. Mas, no lag nгo й totalmente possivel fazer isso. Por que usa IsPlayerAimingAt. Mas, para server RP onde as pessoas tem cйrebro, funciona perfeitamente.


Quote:

18/02/2011 - 22:13:43= Aviso de tiro: Dominick_Cruz atirou em Stewie e tirou 46.0 de dano

Obrigado pela atenзгo u.u
Reply
#2

Muito legal parabens
sу uma duvida quando ta usando hack de vida infinita que leva tiro mais nao ganha dano
mostra a mensagem si o tiro pego no player e o dano foi de 0 ja testo isso?
Reply
#3

Quote:
Originally Posted by brunogysin
Посмотреть сообщение
Muito legal parabens
sу uma duvida quando ta usando hack de vida infinita que leva tiro mais nao ganha dano
mostra a mensagem si o tiro pego no player e o dano foi de 0 ja testo isso?
isso й verdade... se nгo tiver vai ser pouco ъtil :-s
ъtil em server de rpg e tal.
Reply
#4

Ainda nгo testei, mais creio que, como o OPSP usa o IsPlayerAiming at, o server registra quando o player mira, entгo se tirar 0 de damage, tem algo estranho. Vou testar e postar.
Reply
#5

Quote:
Originally Posted by Luнs Miki
Посмотреть сообщение
Ainda nгo testei, mais creio que, como o OPSP usa o IsPlayerAiming at, o server registra quando o player mira, entгo se tirar 0 de damage, tem algo estranho. Vou testar e postar.
Sera muito util mesno em muitos sv se fucionar vamos esperar o seu resoltado
Reply
#6

Se resolver este bug ficarб legal
Reply
#7

Concordo Com O Bruno Seria Muitoo Util ...
Reply
#8

nгo й muito bom, pois envolve mais a Include,

6/10.
Reply
#9

5/10
Reply
#10

Seria diferente para fazer uma contagem de tiros que X cara deu no dia... Porйm algo meio pesadinho, nгo acha?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)