Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Wait for new version
- // s,u and i scanf.
- // By Bruno da Silva
- // www.ips-team.blogspot.com
- sscanf(string[], format[],{Float,_}:...)
- {
- if((!string[0] || string[0] == '\1' && !string[1]) || (!format[0] || format[0] == '\1' && !format[1])||numargs()-2 != strlen(format)) return false;
- new ultimoCaractere = 0;
- for(new f; format[f]; f++) {
- switch(format[f]) {
- case 'i','d':
- {
- new
- i = ultimoCaractere,
- valorArmazenar = 0;
- for( ; string[i] > ' '; ++i) {
- if(('0' <= string[i] <= '9')) {
- valorArmazenar = (valorArmazenar * 10) + (string[i] - '0');
- }
- else if(string[i] != '-') {
- return false;
- }
- }
- setarg(f + 2, 0, string[ultimoCaractere] == '-' ? ~valorArmazenar + 1 : valorArmazenar );
- ultimoCaractere = i + 1;
- }
- case 's','z':
- {
- new i = ultimoCaractere;
- for( ; string[i] > ' '; i++) {
- setarg(f + 2, i - ultimoCaractere, string[i]);
- }
- ultimoCaractere = i + 1;
- }
- case 'u', 'j':
- {
- new
- i = ultimoCaractere,
- nomeJogador[MAX_PLAYER_NAME],
- jogadorDigitado = INVALID_PLAYER_ID;
- for( ; string[i] > ' '; i++) {
- nomeJogador[i - ultimoCaractere] = string[i];
- }
- if(IsNumeric(nomeJogador)) {
- for(new x ; nomeJogador[x] ; ++x) {
- jogadorDigitado = (jogadorDigitado * 10) + (nomeJogador[i] - '0');
- }
- }
- if(IsPlayerConnected(jogadorDigitado)) {
- setarg(f + 2, 0, jogadorDigitado);
- }
- else {
- jogadorDigitado = GetPlayerByPartName(nomeJogador);
- }
- if(IsPlayerConnected(jogadorDigitado)) {
- setarg(f + 2, 0, jogadorDigitado);
- }
- else {
- setarg(f + 2, 0, INVALID_PLAYER_ID);
- }
- }
- }
- }
- return true;
- }
- GetPlayerByPartName(sNome[])
- {
- if(strlen(sNome) < 3) return INVALID_PLAYER_ID;
- static sName[MAX_PLAYER_NAME];
- for(new x = 0; x != MAX_PLAYERS; x++) if(IsPlayerConnected(x)) {
- GetPlayerName(x, sName, MAX_PLAYER_NAME);
- if(strfind(sName, sNome, true)) {
- return x;
- }
- }
- return INVALID_PLAYER_ID;
- }
- IsNumeric(const string[])
- {
- for (new i = 0, j = strlen(string); i < j; i++)
- if (string[i] > '9' || string[i] < '0')
- return 0;
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement