Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2012-08-06, 21:04


RedC







Wiek: 37
Na forum: 5053 dni
Posty: 83

Piwa: 5

Respekt: 50

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.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-08-06, 21:15


xqz

otaku desu!






Wiek: 32
Na forum: 6406 dni
Posty: 723
Nick w MP: xqz

Piwa: 5465

Respekt: 418,6
Respekt: 418,6

daj komende i funkcje wywolywana timerem

Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-08-07, 19:17


RedC







Wiek: 37
Na forum: 5053 dni
Posty: 83

Piwa: 5

Respekt: 50

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

Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-08-07, 20:29


Combacior







Wiek: 29
Na forum: 5795 dni
Posty: 1516

Piwa: 2161

Respekt: 1060
Respekt: 1060

Ostrzeżeń: 20%
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;
}


Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-08-07, 20:32


xqz

otaku desu!






Wiek: 32
Na forum: 6406 dni
Posty: 723
Nick w MP: xqz

Piwa: 5465

Respekt: 418,6
Respekt: 418,6

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;
}


Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-08-08, 12:10


RedC







Wiek: 37
Na forum: 5053 dni
Posty: 83

Piwa: 5

Respekt: 50

Ok dzia?a nie przysz?o mi na my?l, aby doda? p?tle :p Dzi?ki.
:piwo: :piwo: dla was ;)

A jest jeszcze jedna sprawa jak podzieli? zapisanych na 2 grupy (SetPlayerTeam) aby by?o ich po r?wno?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-08-08, 16:07


xqz

otaku desu!






Wiek: 32
Na forum: 6406 dni
Posty: 723
Nick w MP: xqz

Piwa: 5465

Respekt: 418,6
Respekt: 418,6

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);}
}


Postaw piwo autorowi tego posta
 

 
Tagi: automatyczne :: zabawy
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » PAWN Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi

Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Dodaj temat do Ulubionych
Wersja do druku