[Ajuda] Simplificar comando
#1

Olб galera, como o tнtulo diz, nada de bugs ou problemas, simplesmente uma simplificaзгo do cуdigo que ocupa muitas linha no GM jб que sгo vбrios comandos...

o comando й esse:
Quote:

COMMAND:angelpine(playerid, params[])
{
new string[128];
if(PlayerInfo[playerid][pSpawned] == 1)
{

if(ServerInfo[sBlockTele] == 1)
{
SendClientMessage(playerid,COLOR_ERROR,"StringTabl e[0]");
return 1;
}

if(InSniper[playerid] == 1)
{
SendClientMessage(playerid,COLOR_ERROR,"StringTabl e[1]");
return 1;
}

if(InDMS[playerid] == 1)
{
SendClientMessage(playerid,COLOR_ERROR,"StringTabl e[2]");
return 1;
}

if(InMDM[playerid] == 1)
{
SendClientMessage(playerid,COLOR_ERROR,"StringTabl e[3]");
return 1;
}

if(Freezed[playerid] == 1)
{
SendClientMessage(playerid,COLOR_ERROR,"StringTabl e[4]");
return 1;
}

if(PlayerInfo[playerid][pJailed] == 1)
{
SendClientMessage(playerid,COLOR_ERROR,"StringTabl e[5]");
return 1;
}

if(Caged[playerid] == 1)
{
SendClientMessage(playerid,COLOR_ERROR,"StringTabl e[6]");
return 1;
}

if(InDuel[playerid] == 1)
{
SendClientMessage(playerid,COLOR_ERROR,"StringTabl e[7]");
return 1;
}

if(PlayerInfo[playerid][pTeleTime] > 0)
{
SendClientMessage(playerid,COLOR_ERROR,"StringTabl e[8]");
return 1;
}

SetPlayerPosEx(playerid,-2088.4141,-2528.2053,30.4219,44.4519,0,0);
SetCameraBehindPlayer(playerid);

SendClientMessage(playerid,COLOR_ORANGE,"xxxxxxxxx xxxxxxxxx.");

format(string, sizeof(string), "%s (%d) xxxxxxxxxxxxxxxxxx. (/angelpine)",PlayerInfo[playerid][pName],playerid);
SendClientMessageToOthers(playerid,COLOR_ORANGE,st ring);

PlayerInfo[playerid][pTeleTime] = 7;
}else{
SendClientMessage(playerid,COLOR_ERROR,"StringTabl e[9]");
}
return 1;
}

Ignorem a StringTable pq ainda to editando esse recurso.

* Pois bem, quem puder ajudar a simplificar esse code eu agradeзo! *

@EDIT
*StringTable

------------------------------------------------------
Vou aproveitar este post e nгo criar adicionais para outro detalhe (quem souber)
Quero modificar hostname, mapname, website e modename pelo GAMEMODE.. tentei isso mas n deu:


Код:
//topo
#define hostname 	"xxx"
#define mapname 	"xxx"
#define modename 	"xxx"
#define website 		"xxx"
Код:
//OnGameModeInit
	SendRconCommand(hostname);
	SendRconCommand(mapname);
	SendRconCommand(website);
	SetGameModeText(modename);
Reply
#2

PHP код:
COMMAND:angelpine(playeridparams[])
{
    new 
string[128];
    if(
PlayerInfo[playerid][pSpawned] == 1)
    {
        if(
ServerInfo[sBlockTele] || InSniper[playerid] || InDMS[playerid/* e por aн em diante */// O "== 1" estб subentendido
        
{
            
SendClientMessage(playerid,COLOR_ERROR,"StringTabl e.");
            return 
1;
        }
        
SetPlayerPosEx(playerid,-2088.4141,-2528.2053,30.4219,44.4519,0,0);
        
SetCameraBehindPlayer(playerid);
        
SendClientMessage(playerid,COLOR_ORANGE,"xxxxxxxxx xxxxxxxxx.");
        
format(stringsizeof(string), "%s (%d) xxxxxxxxxxxxxxxxxx. (/angelpine)",PlayerInfo[playerid][pName],playerid);
        
SendClientMessageToOthers(playerid,COLOR_ORANGE,st ring);
        
PlayerInfo[playerid][pTeleTime] = 7;
    }
    else
    {
        
SendClientMessage(playerid,COLOR_ERROR,"StringTabl e.");
    }
    return 
1;

Reply
#3

Quote:
Originally Posted by Nixtren
Посмотреть сообщение
PHP код:
COMMAND:angelpine(playeridparams[])
{
    new 
string[128];
    if(
PlayerInfo[playerid][pSpawned] == 1)
    {
        if(
ServerInfo[sBlockTele] || InSniper[playerid] || InDMS[playerid/* e por aн em diante */// O "== 1" estб subentendido
        
{
            
SendClientMessage(playerid,COLOR_ERROR,"StringTabl e.");
            return 
1;
        }
        
SetPlayerPosEx(playerid,-2088.4141,-2528.2053,30.4219,44.4519,0,0);
        
SetCameraBehindPlayer(playerid);
        
SendClientMessage(playerid,COLOR_ORANGE,"xxxxxxxxx xxxxxxxxx.");
        
format(stringsizeof(string), "%s (%d) xxxxxxxxxxxxxxxxxx. (/angelpine)",PlayerInfo[playerid][pName],playerid);
        
SendClientMessageToOthers(playerid,COLOR_ORANGE,st ring);
        
PlayerInfo[playerid][pTeleTime] = 7;
    }
    else
    {
        
SendClientMessage(playerid,COLOR_ERROR,"StringTabl e.");
    }
    return 
1;

De certa forma vocк estб certo, de outra estб errado por um detalhe que eu acabei confundindo vocк:
A StringTable como eu comentei, estava apenas editando, a real funзгo dela nгo й apenas uma resposta, sгo varias:

StringTable,[0]
StringTable[1],
StringTable[2]


Como eu disse, vocк estб certo no cуdigo, mas SendClientMessage terб outras respostas e nгo somente uma.

Obrigado por tentar ajudar e desculpa a confusгo!
Reply
#4

PHP код:
CMD:angelpine(playeridparams[]) 

    new 
string[128]; 
    if(
PlayerInfo[playerid][pSpawned] == 1
    { 

        if(!
ServerInfo[sBlockTele])return SendClientMessage(playerid,COLOR_ERROR,"[0]");
        if(!
InSniper[playerid])return SendClientMessage(playerid,COLOR_ERROR,"[1]");
        if(!
InDMS[playerid])return SendClientMessage(playerid,COLOR_ERROR,"[2]");
        
SetPlayerPosEx(playerid,-2088.4141,-2528.2053,30.4219,44.4519,0,0); 
        
SetCameraBehindPlayer(playerid); 
        
SendClientMessage(playerid,COLOR_ORANGE,"Vocк foi para AngelPine!"); 
        
format(stringsizeof(string), "%s (%d) foi para Angel pine. (/angelpine)",PlayerInfo[playerid][pName],playerid); 
        
SendClientMessageToAll(playerid,COLOR_ORANGE,string); 
        
PlayerInfo[playerid][pTeleTime] = 7
    }else{ 
        
SendClientMessage(playerid,COLOR_ERROR,"StringTabl e."); 
    } 
    return 
1

Reply
#5

Quote:
Originally Posted by matheusspohr
Посмотреть сообщение
PHP код:
CMD:angelpine(playeridparams[]) 

    new 
string[128]; 
    if(
PlayerInfo[playerid][pSpawned] == 1
    { 
        if(!
ServerInfo[sBlockTele])return SendClientMessage(playerid,COLOR_ERROR,"[0]");
        if(!
InSniper[playerid])return SendClientMessage(playerid,COLOR_ERROR,"[1]");
        if(!
InDMS[playerid])return SendClientMessage(playerid,COLOR_ERROR,"[2]");
        
SetPlayerPosEx(playerid,-2088.4141,-2528.2053,30.4219,44.4519,0,0); 
        
SetCameraBehindPlayer(playerid); 
        
SendClientMessage(playerid,COLOR_ORANGE,"Vocк foi para AngelPine!"); 
        
format(stringsizeof(string), "%s (%d) foi para Angel pine. (/angelpine)",PlayerInfo[playerid][pName],playerid); 
        
SendClientMessageToAll(playerid,COLOR_ORANGE,string); 
        
PlayerInfo[playerid][pTeleTime] = 7
    }else{ 
        
SendClientMessage(playerid,COLOR_ERROR,"StringTabl e."); 
    } 
    return 
1

Bem, entгo penso que essa seja a simplificaзгo mais apropriada

Vim sу corrigir aqui uma coisa que o matheusspohr se enganou:
PHP код:
if(!ServerInfo[sBlockTele])
// Tem de tirar o "!" porque nуs queremos fazer == 1
if(ServerInfo[sBlockTele]) 
Edit: E para corrigir o seu segundo problema:
Quote:
Код:
//topo
#define hostname 	"xxx"
#define mapname 	"xxx"
#define modename 	"xxx"
#define website 		"xxx"
Код:
//OnGameModeInit
	SendRconCommand(hostname);
	SendRconCommand(mapname);
	SendRconCommand(website);
	SetGameModeText(modename);
Vocк estб definindo "hostname" para "xxx". Quando vocк executa o comando SendRconCommand, este ficarб SendRconCommand(xxx). Vocк quer fazer SendRconCommand("hostname xxx"). Vocк vai ter que mudar o nome dos #define para nгo fazer conflito. Provavelmente tambйm vai ter de usar um format para construir a string a passar no SendRconCommand.
Reply
#6

Obrigado a vocкs!
Reply
#7

Quote:
Originally Posted by Nixtren
Посмотреть сообщение
Bem, entгo penso que essa seja a simplificaзгo mais apropriada

Vim sу corrigir aqui uma coisa que o matheusspohr se enganou:
PHP код:
if(!ServerInfo[sBlockTele])
// Tem de tirar o "!" porque nуs queremos fazer == 1
if(ServerInfo[sBlockTele]) 
Edit: E para corrigir o seu segundo problema:


Vocк estб definindo "hostname" para "xxx". Quando vocк executa o comando SendRconCommand, este ficarб SendRconCommand(xxx). Vocк quer fazer SendRconCommand("hostname xxx"). Vocк vai ter que mudar o nome dos #define para nгo fazer conflito. Provavelmente tambйm vai ter de usar um format para construir a string a passar no SendRconCommand.
Certo amigo, fiz isso no GM e foi de boa...
PHP код:
SendRconCommand("hostname "hostname);
    
SendRconCommand("mapname "mapname);
    
SendRconCommand("weburl "website);
    
SetGameModeText(" "modename); 
Thx
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)