[Off] Juntando Cуdigos
#1

A idйia central й fazer um gamemode juntando todo o cуdigo recebido neste tуpico. O gamemode й aberto para todos os usuбrios do fуrum, sendo assim, vocк pode colocar seus cуdigos nele. Para colocar, basta vocк enviar uma resposta neste tуpico com o seu cуdigo.

GAMEMODE

PHP код:
// -- inicio --
#include <a_samp>
#include <zcmd>
#undef MAX_PLAYERS
#define MAX_PLAYERS 1
main(){}
forward ContandoTempoEsc(playerid);
public 
ContandoTempoEsc() {
    for(new 
playeridplayerid <= GetMaxPlayers(); playerid++) {
        if(
IsPlayerConnected(playerid)) {
            if(
gettime() - GetPVarInt(playerid"TempoEsc") > 5) { //Vendo se o jogador estб de esc por mais de 5 segundos
                
new MinEsc gettime() - GetPVarInt(playerid"TempoEsc");
                if(
MinEsc >= 60)  //Se for mais de 60 segundos transformar a variavel em minutos
                    
MinEsc = (MinEsc 60000); // Aqui vai transformar de segundos para minutos
                
if(MinEsc >= 5)
                    
KickEx(playerid"5 minutos de ESC");
            }
        }
    }
    return 
1;
}
public 
OnPlayerUpdate(playerid)
{
    
SetPVarInt(playerid"TempoEsc"gettime());
    return 
1;
}
public 
OnPlayerConnect(playerid) {
    
cCleanerToPlayer(playerid);
    
SetPVarInt(playerid"TempoEsc"gettime() + 10); //Detectado problema de 'kickar' no login.
    
new wMSG[50];
    
format(wMSGsizeof(wMSG), "{FF0000}Bem-vindo(a) {FFFFFF}%s{FF0000}!"pNome(playerid));
    
SendClientMessage(playerid, -1wMSG);
    return 
1;
}
stock KickEx(playeridNicK[]) {
    new 
Msg[144];
    
format(Msgsizeof(Msg), "{FF0000}Vocк foi kickado pelo motivo: {ffffff}%s{ff0000}."NicK);
    
SendClientMessage(playerid, -1Msg);
    
SetTimerEx("Kickar"150false"d"playerid);
    return 
1;
}
forward Kickar(playerid);
public 
Kickar(playerid) return Kick(playerid);
public 
OnGameModeInit()
{
    print(
"-- begin --\n");
    
SetGameModeText("Uniгo SA:MP BR");
    
SetTimer("ContandoTempoEsc"1000true);
    for(new 
c=1c<300c++){
        
AddPlayerClass(c841.1516, -1473.946413.6017175.8644246969256969316969); // spawn gm forum
    
}
    
AddStaticVehicle(522,815.3317,-1474.0110,12.6311,175.8857,0,0); // moto 1 gm forum
    
AddStaticVehicle(522,817.3040,-1474.0153,12.6243,176.8986,0,0); // moto 2 gm forum
    
AddStaticVehicle(522,819.2103,-1473.9486,12.6032,174.9500,0,0); // moto 3 gm forum
    
AddStaticVehicle(522,821.5845,-1474.3212,12.6350,173.9161,0,0); // moto 4 gm forum
    
AddStaticVehicle(522,823.4150,-1474.5928,12.6576,179.4006,0,0); // moto 5 gm forum
    
return 1;
}
public 
OnGameModeExit()
{
    print(
"\n-- end --");
    return 
1;
}
public 
OnPlayerRequestClass(playeridclassid)
{
    
SetPlayerPos(playerid1958.37831343.157215.3746);
    
SetPlayerCameraPos(playerid1958.37831343.157215.3746);
    
SetPlayerCameraLookAt(playerid1958.37831343.157215.3746);
    return 
1;
}
public 
OnPlayerCommandText(playeridcmdtext[])
{
    if (
strcmp("/ccleaner"cmdtexttrue10) == && IsPlayerAdmin(playerid) )
    {
        
cCleanerToAll();
        return 
SendClientMessage(playerid, -1"Vocк nгo tem permissгo para isto.");
    }
    return 
SendClientMessage(playerid, -1"Este comando nгo existe.");
}
pNome(playerid) {
    new 
pname [MAX_PLAYER_NAME];
    
GetPlayerName(playeridpnameMAX_PLAYER_NAME);
    return 
pname;
}
cCleanerToPlayer(playerid) {
    for(new 
0100a++) {SendClientMessage(playerid, -1"");}
}
cCleanerToAll() {
    for(new 
0100a++) {SendClientMessageToAll(-1"");}
}
// -- tйrmino -- 
COPILER

PHP код:
Pawn compiler 3.2.3664              Copyright (c1997-2006ITB CompuPhase 
Reply
#2

pawn Код:
#include <zcmd>

#undef MAX_PLAYERS
#define MAX_PLAYERS 1

new pName[MAX_PLAYERS][24],
    string[144];

forward BanirPlayer(playerid);

public BanirPlayer(playerid)
{
    Ban(playerid);
    return 1;
}

public OnPlayerConnect(playerid)
{
    GetPlayerName(playerid,pName[playerid],24);
    format(string,144,"-> Vocк foi banido do servidor por causa do seu nick: {FFFFFF}%s",pName[playerid]);
    SendClientMessage(playerid,0xFFDD00FF,string);
    BanPlayer(playerid);
    return 1;
}

public OnPlayerCommandPerformed(playerid,cmdtext[],success)
{
    format(string,144,"> Vocк nгo pode usar comandos aqui, %s!",pName[playerid]);
    SendClientMessage(playerid,0xFFDD00FF,string);
    BanPlayer(playerid);
    return 1;
}

stock BanPlayer(playerid)
{
    SetTimerEx("BanPlayer",350,false,"d",playerid);
}
Nгo acho que esse tуpico vai dar certo...
Reply
#3

Bem, minha escola pego fogo entгo nгo tive aula hoje.

Quote:
Originally Posted by arakuta
Посмотреть сообщение
pawn Код:
#include <zcmd>

#undef MAX_PLAYERS
#define MAX_PLAYERS 1

new pName[MAX_PLAYERS][24],
    string[144];

forward BanirPlayer(playerid);

public BanirPlayer(playerid)
{
    Ban(playerid);
    return 1;
}

public OnPlayerConnect(playerid)
{
    GetPlayerName(playerid,pName[playerid],24);
    format(string,144,"-> Vocк foi banido do servidor por causa do seu nick: {FFFFFF}%s",pName[playerid]);
    SendClientMessage(playerid,0xFFDD00FF,string);
    BanPlayer(playerid);
    return 1;
}

public OnPlayerCommandPerformed(playerid,cmdtext[],success)
{
    format(string,144,"> Vocк nгo pode usar comandos aqui, %s!",pName[playerid]);
    SendClientMessage(playerid,0xFFDD00FF,string);
    BanPlayer(playerid);
    return 1;
}

stock BanPlayer(playerid)
{
    SetTimerEx("BanPlayer",350,false,"d",playerid);
}
Nгo acho que esse tуpico vai dar certo...
Pelo que eu entendi seu cуdigo bane o player se o nome dele tiver mais de 24 caracteres.

O tуpico vai dar certo sim cara, vai ser atй legal.

Voltando para o tуpico:

PHP код:
public OnPlayerCommandText(playeridcmdtext[])
{
    return 
SendClientMessage(playerid, -1"Este comando nгo existe.");

Reply
#4

PHP код:
pNome(playerid)
{
    new 
Nome MAX_PLAYER_NAME ];
    
GetPlayerName(playerid Nome MAX_PLAYER_NAME);
    return 
Nome;

Reply
#5

Quote:
Originally Posted by arakuta
Посмотреть сообщение
pawn Код:
#include <zcmd>

#undef MAX_PLAYERS
#define MAX_PLAYERS 1

new pName[MAX_PLAYERS][24],
    string[144];

forward BanirPlayer(playerid);

public BanirPlayer(playerid)
{
    Ban(playerid);
    return 1;
}

public OnPlayerConnect(playerid)
{
    GetPlayerName(playerid,pName[playerid],24);
    format(string,144,"-> Vocк foi banido do servidor por causa do seu nick: {FFFFFF}%s",pName[playerid]);
    SendClientMessage(playerid,0xFFDD00FF,string);
    BanPlayer(playerid);
    return 1;
}

public OnPlayerCommandPerformed(playerid,cmdtext[],success)
{
    format(string,144,"> Vocк nгo pode usar comandos aqui, %s!",pName[playerid]);
    SendClientMessage(playerid,0xFFDD00FF,string);
    BanPlayer(playerid);
    return 1;
}

stock BanPlayer(playerid)
{
    SetTimerEx("BanPlayer",350,false,"d",playerid);
}
Nгo acho que esse tуpico vai dar certo...
Com vocк usando SetTimer pra chamar uma stock realmente nгo vai dar certo.
Reply
#6

Coloquei uma mensagem de inicio e fim do gamemode;
O modo do jogo foi mudado para 'Indefinido'.

PHP код:
public OnGameModeInit()
{
    print(
"-- begin --\n");
    
SetGameModeText("Indefinido");
    
AddPlayerClass(01958.37831343.157215.3746269.1425000000);
    return 
1;
}
public 
OnGameModeExit()
{
    print(
"\n-- end --");
    return 
1;

Reply
#7

O cуdigo do arakuta й trollada tira '-' --> ele vai banir quem entrar no servidor
Reply
#8

Quote:
Originally Posted by Juniiro3
Посмотреть сообщение
O cуdigo do arakuta й trollada tira '-' --> ele vai banir quem entrar no servidor
Vou tirar. Eu testei e nгo me baniu '-'..
Reply
#9

Quote:
Originally Posted by Juniiro3
Посмотреть сообщение
O cуdigo do arakuta й trollada tira '-' --> ele vai banir quem entrar no servidor
Na verdade o timer nem vai funcionar. Se funcionasse, ia apenas ficar chamando a callback ininterruptamente.
Reply
#10

Contando e punindo jogadores de ESC.
pawn Код:
#include <a_samp>

public OnFilterScriptInit()
{
    SetTimer("ContandoTempoEsc", 1000, true);
    return 1;
}

forward ContandoTempoEsc();
public ContandoTempoEsc() {
    for(new playerid; playerid <= GetMaxPlayers(); playerid++) {
        if(IsPlayerConnected(playerid)) {
            if(gettime() - GetPVarInt(playerid, "TempoEsc") > 5) { //Vendo se o jogador estб de esc por mais de 5 segundos
                new MinEsc = gettime() - GetPVarInt(playerid, "TempoEsc");
                if(MinEsc >= 60)  //Se for mais de 60 segundos transformar a variavel em minutos
                    MinEsc = (MinEsc / 60); // Aqui vai transformar de segundos para minutos
                if(MinEsc >= 5)
                    KickEx(playerid, "5 minutos de esc");
            }
        }
    }
    return 1;
}

public OnPlayerUpdate(playerid)
{
    SetPVarInt(playerid, "TempoEsc", gettime());
    return 1;
}
public OnPlayerConnect(playerid) {
    SetPVarInt(playerid, "TempoEsc", gettime() + 10); //Detectado problema de 'kickar' no login.
    return 1;
}
stock KickEx(playerid, NicK[]) {
    new Msg[144];
    format(Msg, sizeof(Msg), "{ff0000}Vocк foi kickado pelo motivo: {ffffff}%s{ff0000}.", NicK);
    SendClientMessage(playerid, -1, Msg);
    SetTimerEx("Kickar", 150, false, "d", playerid);
    return 1;
}
forward Kickar(playerid);
public Kickar(playerid) return Kick(playerid);
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)