Cуdigos Ъteis #1

O Windows Seven nгo executava o comando via cliente .. Alias, olha a data: 28.05.2010, 02:40:35
Reply

Quote:
Originally Posted by ipsBruno
Посмотреть сообщение
O Windows Seven nгo executava o comando via cliente .. Alias, olha a data: 28.05.2010, 02:40:35
Vacilei
Reply

Minha funзгo que pega parвmetro por parвmetro,

http://pastebin.com/Kwq2sidv

(forum sa-mp dб erro ao postar este script -.-')

Irei desenvolver uma parecida com sscanf, creio que estбs tentando me dizer pegar parвmetro "iii",como o sscanf.


Mas a funзгo que desenvolvi, й para pegar parгmetro por parвmetro exemplos:


pawn Code:
zCMD("/palavras Hello World", string);

Parвmetro 0 = Hello
Parвmetro 1 = World

zCMD(cmdtext, string_out, parametro).


Nota: use a funзгo sem definir parвmetro, que serб lida a string toda.

zCMD("/falar olб mundo cruel", string_out);


sairб: "olб mundo cruel".

Reply

Vocк nгo entendeu. Se eu pegar X parвmetro, eu tenho que pegar o X parвmetro mais toda strng final


pawn Code:
new var1[300];

   

    zCMD("bruno da silva inteligente", var1, 1);
    print(var1);
retorna sу "silva", quando deveria retornar "silva inteligente"


Sem contar que nгo funciona estes casos:

pawn Code:
new var1[300];

   

    zCMD("bruno   da      silva   gostoso", var1, 1);
    print(var1);
retorna null
Reply

Quote:
Originally Posted by ipsBruno
View Post
Vocк nгo entendeu. Se eu pegar X parвmetro, eu tenho que pegar o X parвmetro mais toda strng final


pawn Code:
new var1[300];

   

    zCMD("bruno da silva inteligente", var1, 1);
    print(var1);
retorna sу "silva", quando deveria retornar "silva inteligente"


Sem contar que nгo funciona estes casos:

pawn Code:
new var1[300];

   

    zCMD("bruno   da      silva   gostoso", var1, 1);
    print(var1);
retorna null
Jбjб estou fazendo uma versгo muito mais avanзada e diferente desta
Reply

Okay, se quiser pode se basear no que estou fazendo em ICMD

http://pastebin.com/HLiVNw2m


Funзгo: comandoParametro
Reply

Converter Dini para DOF2:

pawn Code:
#include <DOF2> //Retire o #include <Dini> e poem isso

    #define dini_Exists             DOF2_FileExists
    #define dini_Remove             DOF2_RemoveFile
    #define dini_Create             DOF2_CreateFile
    #define dini_Set                DOF2_SetString
    #define dini_Get                DOF2_GetString
    #define dini_IntSet             DOF2_SetInt
    #define dini_Int                DOF2_GetInt
    #define dini_BoolSet            DOF2_SetBool
    #define dini_Bool               DOF2_GetBool
    #define dini_FloatSet           DOF2_SetFloat
    #define dini_Float              DOF2_GetFloat
    #define dini_Unset              DOF2_Unset
    #define dini_Isset              DOF2_IsSet
Reply

Quote:
Originally Posted by Juniiro3
View Post
Converter Dini para DOF2:

pawn Code:
#include <DOF2> //Retire o #include <Dini> e poem isso

    #define dini_Exists             DOF2_FileExists
    #define dini_Remove             DOF2_RemoveFile
    #define dini_Create             DOF2_CreateFile
    #define dini_Set                DOF2_SetString
    #define dini_Get                DOF2_GetString
    #define dini_IntSet             DOF2_SetInt
    #define dini_Int                DOF2_GetInt
    #define dini_BoolSet            DOF2_SetBool
    #define dini_Bool               DOF2_GetBool
    #define dini_FloatSet           DOF2_SetFloat
    #define dini_Float              DOF2_GetFloat
    #define dini_Unset              DOF2_Unset
    #define dini_Isset              DOF2_IsSet
Se for utilizar, ponha
pawn Code:
DOF2_Exit();
na Callback OnGameModeExit (GM) ou na OnFilterScriptExit (FS).
Reply

Quote:
Originally Posted by Juniiro3
View Post
Converter Dini para DOF2:

pawn Code:
#include <DOF2> //Retire o #include <Dini> e poem isso

    #define dini_Exists             DOF2_FileExists
    #define dini_Remove             DOF2_RemoveFile
    #define dini_Create             DOF2_CreateFile
    #define dini_Set                DOF2_SetString
    #define dini_Get                DOF2_GetString
    #define dini_IntSet             DOF2_SetInt
    #define dini_Int                DOF2_GetInt
    #define dini_BoolSet            DOF2_SetBool
    #define dini_Bool               DOF2_GetBool
    #define dini_FloatSet           DOF2_SetFloat
    #define dini_Float              DOF2_GetFloat
    #define dini_Unset              DOF2_Unset
    #define dini_Isset              DOF2_IsSet
jб existe isto na include, й sу usar "DINI_CONVERT". http://pastebin.com/TQJGwYyZ
Reply

Quote:
Originally Posted by zSuYaNw
View Post
jб existe isto na include, й sу usar "DINI_CONVERT". http://pastebin.com/TQJGwYyZ
Eu sei, mas tem gente que nгo sabe que tem isso, e se a pessoa pensar grande pode perceber que dб para "transformar" uma funзгo em outra usando #define
Reply

Ordenaзгo pelo mйtodo de bolha:

pawn Code:
stock
    OrderValue(vec[])
{
    for (new i = 0; vec[i]; i++)
    {
        new aux = -1;
        for (new j = 0; j < strlen(vec) - 1; j++)
        {
            if (vec[j] > vec[j + 1])
            {
                aux = vec[j];
                vec[j] = vec[j + 1];
                vec[j + 1] = aux;
            }
        }
    }
}
Modo de uso:
pawn Code:
public OnGameModeInit()
{
   
    new v[5];
   
    sscanf("1,6,2,9,5", "p<,>a<i>[5]", v);
   
    for (new i = 0; i < sizeof(v); ++i)
    {
        printf("v%d: %d", i, v[i]);
    }
   
    OrderValue(v);
    print("\n");
   
    for (new i = 0; i < sizeof(v); ++i)
    {
        printf("v%d: %d", i, v[i]);
    }
   
    return 1;
}
Ele irб imprimir os valores da forma que foram recebidos: 1,6,2,9,5
Quando passado para o OrderValue, ele voltarб ordenado em ordem crescente: 1,2,5,6,9
Reply

Quote:
Originally Posted by Willian_Luigi
View Post
Ordenaзгo pelo mйtodo de bolha:

pawn Code:
stock
    OrderValue(vec[])
{
    for (new i = 0; vec[i]; i++)
    {
        new aux = -1;
        for (new j = 0; j < strlen(vec) - 1; j++)
        {
            if (vec[j] > vec[j + 1])
            {
                aux = vec[j];
                vec[j] = vec[j + 1];
                vec[j + 1] = aux;
            }
        }
    }
}
Modo de uso:
pawn Code:
public OnGameModeInit()
{
   
    new v[5];
   
    sscanf("1,6,2,9,5", "p<,>a<i>[5]", v);
   
    for (new i = 0; i < sizeof(v); ++i)
    {
        printf("v%d: %d", i, v[i]);
    }
   
    OrderValue(v);
    print("\n");
   
    for (new i = 0; i < sizeof(v); ++i)
    {
        printf("v%d: %d", i, v[i]);
    }
   
    return 1;
}
Ele irб imprimir os valores da forma que foram recebidos: 1,6,2,9,5
Quando passado para o OrderValue, ele voltarб ordenado em ordem crescente: 1,2,5,6,9
Entendi a lуgica do OrderValue, mas vocк poderia me explicar como funciona essa simbologia toda no sscanf:

sscanf("1,6,2,9,5", "p<,>a<i>[5]", v);
Reply

Carro temporбrio

pawn Код:
new
    _uservehicle[ MAX_PLAYERS ]
;


public OnPlayerConnect(playerid){
    return _uservehicle[ playerid ] = -1;
}


public OnPlayerCommandText(playerid, cmdtext[]){

    if(!strfind(cmdtext, "/cv", true)){
   
   
        if(strlen(cmdtext) == 3 || strlen(cmdtext) == 4)
        {
       
            return SendClientMessage(playerid, -1, "(Erro): digite: /cv <modelo>");

        }
       
       
        strdel(cmdtext, 0, 3);
       
        static
            _model
        ;
       
       
        _model = strval(cmdtext);
       
        if(!(400 < _model < 600)){
            return SendClientMessage(playerid, -1,"(Erro): modelo invбlido");
        }
       
       
        if(_uservehicle[playerid] != -1){
            DestroyVehicle(_uservehicle[playerid]);
           
            _uservehicle[playerid] = -1;
        }
       
       
        static
            Float: _pos[3]
        ;
       
        GetPlayerPos(playerid, _pos[0], _pos[1], _pos[2]);
       
       
        _uservehicle[playerid] = CreateVehicle(_model,  _pos[0], _pos[1], _pos[2], 0.0, -1, -1, 0);
       
        PutPlayerInVehicle(playerid, _uservehicle[playerid], 0);
       
        SendClientMessage(playerid, -1, #Divirta-se com seu novo veнculo!);

        return true;
    }

    return false;
}


public OnPlayerExitVehicle(playerid, vehicleid){

    if(_uservehicle[playerid] == vehicleid){
        DestroyVehicle(vehicleid);
       
        _uservehicle[playerid] = -1;
    }
    return true;
}
Reply

Destroi ao desconectar, й melhor. Se nгo o cara cria o carro, sai, ninguem entra no lugar dele e digita para criar outro carro e acaba ficando lб
Reply

Quote:
Originally Posted by ipsBruno
Посмотреть сообщение
Destroi ao desconectar, й melhor. Se nгo o cara cria o carro, sai, ninguem entra no lugar dele e digita para criar outro carro e acaba ficando lб
й verdade, tinha esquecido isto, rs.

pawn Код:
new
    _uservehicle[ MAX_PLAYERS ]
;


public OnPlayerConnect(playerid){
    return DestroyVehicle(_uservehicle[ playerid ]), _uservehicle[ playerid ] = -1;
}


public OnPlayerCommandText(playerid, cmdtext[]){

    if(!strfind(cmdtext, "/cv", true)){
   
   
        if(strlen(cmdtext) == 3 || strlen(cmdtext) == 4)
        {
       
            return SendClientMessage(playerid, -1, "(Erro): digite: /cv <modelo>");

        }
       
       
        strdel(cmdtext, 0, 3);
       
        static
            _model
        ;
       
       
        _model = strval(cmdtext);
       
        if(!(400 < _model < 600)){
            return SendClientMessage(playerid, -1,"(Erro): modelo invбlido");
        }
       
       
        if(_uservehicle[playerid] != -1){
            DestroyVehicle(_uservehicle[playerid]);
           
            _uservehicle[playerid] = -1;
        }
       
       
        static
            Float: _pos[3]
        ;
       
        GetPlayerPos(playerid, _pos[0], _pos[1], _pos[2]);
       
       
        _uservehicle[playerid] = CreateVehicle(_model,  _pos[0], _pos[1], _pos[2], 0.0, -1, -1, 0);
       
        PutPlayerInVehicle(playerid, _uservehicle[playerid], 0);
       
        SendClientMessage(playerid, -1, #Divirta-se com seu novo veнculo!);

        return true;
    }

    return false;
}


public OnPlayerExitVehicle(playerid, vehicleid){

    if(_uservehicle[playerid] == vehicleid){
        DestroyVehicle(vehicleid);
       
        _uservehicle[playerid] = -1;
    }
    return true;
}
Reply

zSuYaNw

olha isto

pawn Код:
if(!(400 < _model < 600)){
            return SendClientMessage(playerid, -1,"(Erro): modelo invбlido");
        }
...
Reply

Quote:
Originally Posted by PT
Посмотреть сообщение
zSuYaNw

olha isto

pawn Код:
if(!(400 < _model < 600)){
            return SendClientMessage(playerid, -1,"(Erro): modelo invбlido");
        }
...
Ta correto mano, pois os modelos vбlidos sгo maiores que 400 e menores que 600.

#Partiutrabalhar
Reply

Quote:
Originally Posted by zSuYaNw
Посмотреть сообщение
Ta correto mano, pois os modelos vбlidos sгo maiores que 400 e menores que 600.

#Partiutrabalhar
pensei que fosse

pawn Код:
if(!(400 > _model < 600)){
            return SendClientMessage(playerid, -1,"(Erro): modelo invбlido");
        }
pela minha logica era, se nao for maior que 400 e menor que 600 da erro

na verdade a lista de veiculos vai ate 611...
Reply

PHP код:
if(!(400 _model 600)){ 
Caso 400 > model && 600 > model

nгo й isto
Reply

@EDIT Postei errado!
Reply


Forum Jump:


Users browsing this thread: 6 Guest(s)