Wysłany: 2012-08-06, 21:04
RedC
Wiek: 37 Na forum: 5053 dni Posty: 83
Piwa : 5
Witam mam problem z automatycznymi zabawami chodzi o to, ?e zapisze si? np. 4 osoby na /wg i automatycznie startuje. Czy mo?e kto? mnie naprowadzi? jak zacz??? Z g?ry dzi?kuj? pozdrawiam.
Wysłany: 2012-08-06, 21:15
xqz
otaku desu!
Wiek: 32 Na forum: 6406 dni Posty: 723
Nick w MP: xqz
Piwa : 5465
daj komende i funkcje wywolywana timerem
Wysłany: 2012-08-07, 19:17
RedC
Wiek: 37 Na forum: 5053 dni Posty: 83
Piwa : 5
Ok da?em komend?
Kod: CMD:wg(playerid, params[])
{
if(wgTrwa == 1)
return SendClientMessage(playerid, -1, "Zabawa trwa!");
if(zapisany[playerid] == 0)
{
wgZapisani ++;
zapisany[playerid] = 1;
wgMiejsca --;
SendClientMessageToAll( -1, "Zapisa?e? si? na Wojne Gang?w!");
}
else
{
SendClientMessage(playerid, -1, "Zapisa?e? si? ju? na zabawe!");
}
if(wgZapisani == 1)
{
wgTimer[playerid] = SetTimer("wgStart", 60000, true);
SendClientMessage(playerid, -1, "Wojna gang?w wystartuje za 60 sekund!");
}
return 1;
}
A na g?rze Kod: new zapisany[MAX_PLAYERS],
wgZapisani,
wgMiejsca = 10,
wgTrwa,
wgTimer[MAX_PLAYERS]
i Kod: forward wgStart(playerid);
I jeszcze public na dole
Kod: public wgStart(playerid)
{
SetPlayerArmour(playerid, 100.0);
SetPlayerPos(playerid, 2157.8655,987.8000,10.4886);
KillTimer(wgTimer[playerid]);
wgTrwa = 1;
return 1;
}
I gdy zapisz? si? na wg jest napis, ?e si? zapisa?em na wg i wysy?a wiadomo??, ?e za 60 rozpocznie si? wg lecz za te 60 sekund nic si? nie dzieje
Wysłany: 2012-08-07, 20:29
Combacior
Wiek: 29 Na forum: 5795 dni Posty: 1516
Piwa : 2161
Kod: CMD:wg(playerid, params[])
{
if(wgTrwa == 1)
return SendClientMessage(playerid, -1, "Zabawa trwa!");
if(zapisany[playerid] == 0)
{
wgZapisani ++;
zapisany[playerid] = 1;
wgMiejsca --;
SendClientMessageToAll( -1, "Zapisa?e? si? na Wojne Gang?w!");
}
else
{
SendClientMessage(playerid, -1, "Zapisa?e? si? ju? na zabawe!");
}
if(wgZapisani == 1)
{
wgTimer[playerid] = SetTimerEx("wgStart", 60000, 0, "i", playerid);
SendClientMessage(playerid, -1, "Wojna gang?w wystartuje za 60 sekund!");
}
return 1;
}
Wysłany: 2012-08-07, 20:32
xqz
otaku desu!
Wiek: 32 Na forum: 6406 dni Posty: 723
Nick w MP: xqz
Piwa : 5465
RedC , kod bedzie dzialal dla gracza o id 0.
Aby wywolac wgTimer musisz uzyc timera z dodatkowymi parametrami (SetTimerEx) lub uzyc petli w wgTimer.
Lepsza jest druga opcja (petla w wgTimer):
Kod: CMD:wg(playerid, params[])
{
if(wgTrwa == 1)
return SendClientMessage(playerid, -1, "Zabawa trwa!");
if(zapisany[playerid] == 0)
{
wgZapisani ++;
zapisany[playerid] = 1;
wgMiejsca --;
SendClientMessageToAll( -1, "Zapisa?e? si? na Wojne Gang?w!");
}
else
{
SendClientMessage(playerid, -1, "Zapisa?e? si? ju? na zabawe!");
}
if(wgZapisani == 1)
{
SetTimer("wgStart", 60000, true);
SendClientMessage(playerid, -1, "Wojna gang?w wystartuje za 60 sekund!");
}
return 1;
}
Kod:
forward wgStart();
public wgStart()
{
for(new playerid, ff=GetMaxPlayers(); playerid<ff; playerid++)
{
if(zapisany[playerid]==1)
{
SetPlayerArmour(playerid, 100.0);
SetPlayerPos(playerid, 2157.8655,987.8000,10.4886);
wgTrwa = 1;
}
}
return 1;
}
Wysłany: 2012-08-08, 12:10
RedC
Wiek: 37 Na forum: 5053 dni Posty: 83
Piwa : 5
Ok dzia?a nie przysz?o mi na my?l, aby doda? p?tle Dzi?ki.
dla was
A jest jeszcze jedna sprawa jak podzieli? zapisanych na 2 grupy (SetPlayerTeam) aby by?o ich po r?wno?
Wysłany: 2012-08-08, 16:07
xqz
otaku desu!
Wiek: 32 Na forum: 6406 dni Posty: 723
Nick w MP: xqz
Piwa : 5465
zlicz wszystkich graczy w obu teamach i porownaj lub dodaj zmienna ktora bedzie dodawala jeden gdy gracz przejdzie do ktoregos teamu i porownaj wartosci (bardziej optymalne niz to ponizej).
Kod: new zmienna[2];
for(new o; o<500; o++)
{
if(GetPlayerTeam(o)==1){ zmienna[0]++;}
else
if(GetPlayerTeam(o)==2){ zmienna[1]++;}
if(zmienna[0] >= zmienna[1]){ SetPlayerTeam(o,2);}
else
if(zmienna[1] > zmienna[0]) {SetPlayerTeam(o,1);}
}
Tagi: automatyczne :: zabawy
Anonymous
Na forum: 245 dni
Posty: 1
Anonymous Koniecznie zajrzyj na: