Wysłany: 2017-12-09, 10:17
RakNet00
Wiek: 25 Na forum: 3126 dni Posty: 66
Witam. Mam sobie tak? komend?. I jest problem w tym, ?e ona dzia?a tylko dla id 0. Jak ustawia Mozep na 1 to komenda wykonuje sie tylko dla gracza, kt?ry ma id 0. Gl?wnie chodzi oto, ?e jak ustawi Mozep na 1 to i tak pokazuje si? informacja test2. Oto ona:
Kod:
CMD:rob(playerid, cmdtext[])
{
//if(PlayerInfo[playerid][Team]==5)
//return SendClientMessage(playerid, Szary, "test 1");
if(PlayerInfo[playerid][Urlop] == 0) return SendClientMessage(playerid, Szary, "Jestes w pracy!");
if(PlayerInfo[playerid][Mozep] == 0) return SendClientMessage(playerid, Szary, "test2");
LoadPraca(playerid);
return 1;
}
Timer:
Kod:
forward Mozep1(playerid);
public Mozep1(playerid)
{
PlayerInfo[playerid][Mozep] = 1;
}
Prosz? o szybk? pomoc.
Wysłany: 2017-12-09, 10:19
Seboo
Wiek: 30 Na forum: 5515 dni Posty: 124
Nick w MP: Sebo
Piwa : 1228
Poka? funkcj?, kt?ra uruchamia timer Mozep1.
Wysłany: 2017-12-09, 10:27
OchIAch
Wiek: 26 Na forum: 3114 dni Posty: 144
Nick w MP: OchIAch
Piwa : 1311
Podejrzewam ze jest to zwiazane z funkcja PlayerInfo
Pokaz jak stworzyles ten new PlayerInfo
Podejrzewam ze zamiast
Pawn
if( PlayerInfo [ playerid ][ Urlop ] == 0 ) return SendClientMessage ( playerid , Szary , "Jestes w pracy!" );
if( PlayerInfo [ playerid ][ Mozep ] == 0 ) return SendClientMessage ( playerid , Szary , "test2" );
powinno byc
Pawn
if( PlayerInfo [ Urlop ][ playerid ] == 0 ) return SendClientMessage ( playerid , Szary , "Jestes w pracy!" );
if( PlayerInfo [ Mozep ][ playerid ] == 0 ) return SendClientMessage ( playerid , Szary , "test2" );
Bo funkcje pewnie wywolujesz w sposob:
Pawn
new PlayerInfo [ FUNKCJA ][ MAX_PLAYERS ];
Mysle ze zrozumiales.
Więcej szczegółów
Wystawiono 1 piw(a):RakNet00
Wysłany: 2017-12-09, 10:35
RakNet00
Wiek: 25 Na forum: 3126 dni Posty: 66
Wszystko z PlaayerInfo dzi?a dobrze tylko z tym co? jest nie tk. To doda?em do PlayerInfo:
Kod:
Wysłany: 2017-12-09, 10:49
OchIAch
Wiek: 26 Na forum: 3114 dni Posty: 144
Nick w MP: OchIAch
Piwa : 1311
Pawn
#include <a_samp>
#include <zcmd>
enum funkcja
{
Urlop ,
Mozep
}
new PlayerInfo [ MAX_PLAYERS ][ funkcja ];
public OnPlayerConnect ( playerid )
{
SendClientMessage ( playerid , - 1 , "Witaj na serwerze. itp." );
return 1 ;
}
CMD : rob ( playerid , cmdtext [])
{
if( playerid >= 0 && playerid <= 1000 )
if( PlayerInfo [ playerid ][ Urlop ] == 0 ) return SendClientMessage ( playerid , - 1 , "test1" );
if( PlayerInfo [ playerid ][ Mozep ] == 0 ) return SendClientMessage ( playerid , - 1 , "test2" );
LoadPraca ( playerid );
return 1 ;
}
stock LoadPraca ( playerid )
{
//WywolajFunkcjePraca
return 1 ;
}
?ap gotowca, wklej to sobie gdzies
Więcej szczegółów
Wystawiono 1 piw(a):RakNet00
Wysłany: 2017-12-09, 12:44
Zamek
Wiek: 26 Na forum: 3788 dni Posty: 168
Nick w MP: Zamek
Piwa : 276
Poka? jak wywo?ujesz timer Mozep1.
Więcej szczegółów
Wystawiono 1 piw(a):RakNet00
Wysłany: 2017-12-09, 13:51
RakNet00
Wiek: 25 Na forum: 3126 dni Posty: 66
SetTimer("Mozep1", 60000, true);
Wysłany: 2017-12-09, 15:48
WWilk1
Wiek: 30 Na forum: 4699 dni Posty: 116
Nick w MP: eep.Wilk
Piwa : 147
No i dlatego dzia?a tylko na id 0, bo odpalasz za pomoc? zwyk?ego timera callback kt?ry w argumencie playerid domy?lnie zwraca 0.
Musisz za pomoc? SetTimerEx wywo?a? ten callback(public) i poda? w argumencie pi?tym ID gracza kt?remu ma zmieni? warto?? tablicy Mozep na 1.
Pawn SetTimerEx ( "Mozep1" , 60000 , false , "i" , IDGracza );
http://wiki.sa-mp.com/wiki/SetTimerEx
oraz przeczytaj do czego s?u?y trzeci argument w funkcji SetTimer
http://wiki.sa-mp.com/wiki/SetTimer
Więcej szczegółów
Wystawiono 1 piw(a):RakNet00
Wysłany: 2017-12-10, 13:25
RakNet00
Wiek: 25 Na forum: 3126 dni Posty: 66
Ok, git. Dzi?kuj? za pomoc.
Tagi: komenda :: działa :: tylko :: dla
Anonymous
Na forum: 245 dni
Posty: 1
Anonymous Koniecznie zajrzyj na: