settime
#1

For some reason it only sets my time to 0?

Код:
CMD:settime(playerid, params[])
{
  if(connected[playerid] == true) return GameTextForPlayer(playerid, "~r~Spawn First", 5000, 5);
  {
	 new str[256], time[256];
	 if(sscanf(params, "i", time)) return SendClientMessage(playerid, -1, "{c3c3c3}(INFO) /settime [time]");
	 new h = strval(time);
	 if(h < 0 || h > 50)
	 {
		 SendClientMessage(playerid, -1, "{c3c3c3}(INFO) /settime [time]");
		 return 1;
	 }
	 SetPlayerTime(playerid, h, h);
	 format(str, sizeof(str), "{c3c3c3}{INFO) You have set your time to %d", h);
	 SendClientMessage(playerid, -1, str);
	 
  }
  return 1;
}
Reply
#2

Quote:
Originally Posted by ivndosos
Посмотреть сообщение
For some reason it only sets my time to 0?
How is that a problem? You have set it to be for you only. SetPlayerTime(playerid, h, h);
If you want it to be for all players, loop trough players:

PHP код:
for(new i=0MAX_PLAYERSi++)
    {
        if(
IsPlayerConnectedEx(i))
        {
            
SetPlayerTime(ihh);
        }
    } 
Reply
#3

not for all players
Reply
#4

Because you're setting the time using h (using strval of the variable) when you need to use time (value of the variable using sscanf).
Briefly, this:
PHP код:
SetPlayerTime(playeridhh); 
Should be like this:
PHP код:
SetPlayerTime(playeridtimetime); 
Reply
#5

try this

Код:
CMD:settime(playerid, params[])
{
	if(connected[playerid] == true) return GameTextForPlayer(playerid, "~r~Spawn First", 5000, 5);
	new str[50], time;
	if(sscanf(params, "i", time)) return SendClientMessage(playerid, -1, "{c3c3c3}(INFO) /settime [time]");
	if(time < 0 || time > 50)
	{
		SendClientMessage(playerid, -1, "{c3c3c3}(INFO) /settime [time]");
		return 1;
	}
	SetPlayerTime(playerid, time, time);
	format(str, sizeof(str), "{c3c3c3}{INFO) You have set your time to %d", time);
	SendClientMessage(playerid, -1, str);
	return 1;
}
Reply
#6

This is how i'd solve it:

pawn Код:
CMD:settime(playerid, params[]) {
    new h, m;
    if( sscanf(params, "p<:>ii", h, m) ) {
        return SendClientMessage(playerid, 0xFF0000FF, "USAGE: /settime hh:mm"), 1;
    }

    if( h < 0 || h >= 24 || m < 0 || m >= 60 ) {
        return SendClientMessage(playerid, 0xFF0000FF, "ERROR: You did not enter valid time values!"), 1;
    }

    SetPlayerTime(playerid, h, m);    

    new msg[144+1];
    format(msg, sizeof msg, "You have set the time to %02i:%02i", h, m);
    SendClientMessage(playerid, 0x00FF00FF, msg);
    return 1;
}
Reply
#7

Quote:
Originally Posted by RedFusion
Посмотреть сообщение
This is how i'd solve it:

pawn Код:
...

    SetWorldTime(h);
    for(new i, max_playerid = GetPlayerPoolSize(); i <= max_playerid; i ++) {
        if( IsPlayerConnected(i) ) {
            SetPlayerTime(i, h, m);    
        }
    }

    new msg[144+1];
    format(msg, sizeof msg, "You have set the time to %02i:%02i", h, m);
    SendClientMessage(playerid, 0x00FF00FF, msg);
    return 1;
}
Should be:
PHP код:
    SetWorldTime(h);
    new 
msg[39];
    
format(msgsizeof msg"You have set the time to %02i:%02i"hm);
    
SendClientMessage(playerid0x00FF00FFmsg); 
Also, mention to the author's post he can do "23:47" to set the world time.
Plus, check if it's valid hour/minute isn't useful since the pawn native already do it. Saying that for every code presented here.
Reply
#8

Changing all players's time: (ADMIN)
PHP код:
CMD:changetime(playeridparams[]) 

    if(
IsPlayerAdmin(playerid)) 
    { 
    new 
timestring[128]; 
    if(
sscanf(params"i"time)) return SendClientMessage(playerid0xf8f8f8fff"Syntax: {f00f00}/changetime <0 - 23>"); 
    if(
time || time 23) return SendClientMessage(playerid0xf8f8f8fff"ERROR: {FFFFFF}Invalid time! <0 - 23>"); 
    for(new 
0<= MAX_PLAYERSi++) 
    { 
        
SetPlayerTime(i,time); 
        
format(stringsizeof(string), "{} {f00f00}an admin has changed the time to %d!",time); 
        
SendClientMessage(i0xf8f8f8fffstring); 
    } 
    } 
    else 
    { 
        
SendClientMessage(playerid,0xf8f8f8fff,"ERROR: {f00f00}You are not allowed to use this command!"); 
    } 
    return 
1

Changing player's time:

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

    new 
timeestring[128]; 
    if(
sscanf(params"i"timee)) return SendClientMessage(playerid0xf8f8f8fff"Syntax: {f00f00}/changemytime <0 - 23>"); 
    if(
timee || timee 23) return SendClientMessage(playerid0xf8f8f8fff"ERROR: {FFFFFF}Invalid Time <0 - 23>."); 
    
format(stringsizeof(string), "{ff0ff0}Your time has changed to %d!",timee); 
    
SendClientMessage(playerid0xf8f8f8fffstring); 
    
SetPlayerTime(playeridtimee0); 
    return 
1

Reply
#9

Quote:
Originally Posted by ivndosos
Посмотреть сообщение
not for all players
Oops.. reading error. my fault
Reply
#10

Why doesn't it change my weather? Nothing happens, btw settime works thanks!

Код:
CMD:setweather(playerid, params[])
{
  if(connected[playerid] == true) return GameTextForPlayer(playerid, "~r~Spawn First", 5000, 5);
  {
	 new str[50], weather;
	 if(sscanf(params, "i", weather)) return SendClientMessage(playerid, -1, "{c3c3c3}(INFO) /setweather [weather]");

	 if(weather < 0 || weather > 50)
	 {
		 SendClientMessage(playerid, -1, "{c3c3c3}(INFO) /setweather [weather]");
		 return 1;
	 }
	 SetPlayerWeather(playerid, weather);
	 format(str, sizeof(str), "{c3c3c3}{INFO) You have set your weather to %d", weather);
	 SendClientMessage(playerid, -1, str);

  }
  return 1;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)