Wysłany: 2012-05-03, 18:51
xxmikel611xx
~!@#$%^!
Wiek: 30 Na forum: 5812 dni Posty: 163
Nick w MP: Mikel__xD
Piwa : 159
Hej mam problem jak zdefiniowa? admina, ja zrobi?em tak:
Kod: admin = IsPlayerAdmin(playerid);
ale wywala mi b??d.
Jak zdefiniowa? ?eby wsz?dzie jak dodam admin to b?dzie jako IsPlayerAdmin
Wysłany: 2012-05-03, 19:17
Quis
Wszechwiedzący
Wiek: 31 Na forum: 5146 dni Posty: 464
Nick w MP: Quis
Piwa : 1110
M?g?by? bardziej wyt?umaczy?, o co Ci chodzi?
Je?li chodzi po prostu o skr?cenie, to dodaj na g?rze:
Kod: #define admin IsPlayerAdmin
i u?ywasz:
Kod: if(admin(playerid)) //je?li jest adminem
Mo?esz te? da?:
Kod: #define admin IsPlayerAdmin(playerid)
I wtedy u?ywasz:
Kod: if(admin) // czy jest adminem
Ale to drugie sprawdza tylko gracza pod "playerid", nie ?adnego innego.
Wysłany: 2012-05-03, 19:38
xxmikel611xx
~!@#$%^!
Wiek: 30 Na forum: 5812 dni Posty: 163
Nick w MP: Mikel__xD
Piwa : 159
Nie po prostu chc? doda? do paska informacji Admin?w online mam ju? graczy.
Czyli tak na g?rze
Kod:
P??niej w OnPlayerSpawn mam
Kod:
w OnPlayerDisconnect mam
Kod:
itd.
No i teraz moje pytanie jak zrobic tak samo ale ?eby to by? admin. Moim zdaniem trzeba na g?rze mapy zdefiniowa? ?e admin = IsPlayerAdmin.
ja mam tak ale wywala mi b??d:
Kod: admin = IsPlayerAdmin(playerid);
Jak to inaczej zdefiniowa? aby nie wywala?o b??du i dobrze dzia?a?o
Wysłany: 2012-05-03, 19:41
Quis
Wszechwiedzący
Wiek: 31 Na forum: 5146 dni Posty: 464
Nick w MP: Quis
Piwa : 1110
Na g?rze dodaj:
Kod:
Potem w public OnRconLoginAttempt (utw?rz jak nie masz):
Kod: public OnRconLoginAttempt(ip[], password[], success)
{
if(success) admins++;
return 1;
}
A w OnPlayerDisconnect:
Kod: if(IsPlayerAdmin(playerid)) admins--;
I potem w TextDraw wklepujesz zmienn? "admins" i b?dzie ona zawiera? liczb? admin?w.
Wysłany: 2012-05-03, 19:59
xxmikel611xx
~!@#$%^!
Wiek: 30 Na forum: 5812 dni Posty: 163
Nick w MP: Mikel__xD
Piwa : 159
Nie dzia?a ju? od samego pocz?tku kiedy wejd? ju? jest ustawione na 1 czyli ?e jest ju? 1 admin.
Wysłany: 2012-05-03, 20:24
Quis
Wszechwiedzący
Wiek: 31 Na forum: 5146 dni Posty: 464
Nick w MP: Quis
Piwa : 1110
A logujesz si? na admina? No i sprawd? czy poprawnie wklepujesz t? zmienn? do textdrawu, sprawd? te? czy ten textdraw si? od?wie?a do?? cz?sto. Najlepiej ?eby? wywo?ywa? "refresh" tego textdrawa wtedy, kiedy ulega zmianie warto?? zmiennej "admins".
Wysłany: 2012-05-03, 20:50
xxmikel611xx
~!@#$%^!
Wiek: 30 Na forum: 5812 dni Posty: 163
Nick w MP: Mikel__xD
Piwa : 159
Tak w?a?nie chodzi o to ?e jak wchodz? na server bez logowania to pokazuje ?e jest ju? 1 admin, co do od?wie?ania to od?wie?a si? co sekund?.
Wysłany: 2012-05-03, 20:58
Quis
Wszechwiedzący
Wiek: 31 Na forum: 5146 dni Posty: 464
Nick w MP: Quis
Piwa : 1110
To mam inn? propozycj?. Usu? t? zmienn? "admins" i zamiast niej daj CountAdmins() w textdrawie. Na dole gamemode dodaj:
Kod:
stock CountAdmins()
{
new count = 0;
for(new i=0; i<GetMaxPlayers(); i++)
{
if(!IsPlayerConnected(i) || !IsPlayerAdmin(i)) continue;
count++;
}
return count;
}
Mog?em od razu tak Ci da?, zamiast dawa? Ci ten spos?b ze zmienn?, przepraszam
Wysłany: 2012-05-04, 10:29
xxmikel611xx
~!@#$%^!
Wiek: 30 Na forum: 5812 dni Posty: 163
Nick w MP: Mikel__xD
Piwa : 159
Ok mam do Ciebie jeszcze jedn? pro?b?, a jak by zrobi? ?eby w tym pasku pisa?o od ilu minut grasz. Jak zrobi? to z Timerem np.
Grasz: 0 godzin 5 minut
Co? w tym stylu
Wysłany: 2012-05-04, 10:44
Combacior
Wiek: 29 Na forum: 5795 dni Posty: 1516
Piwa : 2161
G?ra mapy
Kod: new Timer[MAX_PLAYERS], Sek[MAX_PLAYERS, Min[MAX_PLAYERS], Hour[MAX_PLAYERS];
OnPlayerConnect
Kod: Timer[playerid] = SetTimerEx("Czas",1000,0,"i",playerid);
Gdzie? na dole mapki
Kod: forward Czas(playerid);
public Czas(playerid)
{
Sek[playerid]++;
if(Sek[playerid] > 60)
{
Sek[playerid] = 0;
Min[playerid]++;
}
if(Min[playerid] == 60)
{
Min[playerid] = 0;
Hour[playerid]++;
}
TextDrawSetString(...)
return 1;
}
P??niej w komendzie, czy gdzie chcesz, aby to pokazywa?o:
Kod: new string[64];
format(string, sizeof(string, , "Grasz: %d godzin %d minut %d sekund",Hour[playerid], Min[playerid], Sek[playerid]);
OnPlayerDisconnect
Kod: KillTimer(Timer[playerid]);
Ostatnio zmieniony przez Combacior 2012-05-04, 11:17, w całości zmieniany 1 raz
Wysłany: 2012-05-04, 10:55
Quis
Wszechwiedzący
Wiek: 31 Na forum: 5146 dni Posty: 464
Nick w MP: Quis
Piwa : 1110
CombaT , podany przez Ciebie spos?b ju? jest przestarza?y i nieoptymalny (50 graczy = 50 timer?w), do tego potrzebuje o wiele wi?cej pami?ci Teraz robi si? inaczej:
Na g?rze mapy:
Kod: new GameStart[MAX_PLAYERS];
W OnPlayerConnect
Kod: GameStart[playerid] = gettime();
Na dole mapy:
Kod: stock ConvertSeconds(seconds, &hours, &minutes, &sec) //by Quis
{
new hrs = floatround(seconds/3600, floatround_floor);
hours = hrs;
new mins = floatround((seconds-(hours*3600))/60, floatround_floor);
minutes = mins;
sec = seconds-((hours*3600)+(minutes*60));
return 1;
}
A pobieranie czasu gry:
Kod: new hours, minutes, seconds;
ConvertSeconds(gettime()-GameStart[playerid], hours, minutes, seconds);
I zmienne o nazwach "hours", "minutes" i "seconds" zawieraj? teraz czas gry.
Pozdrawiam
@DOWN
Jak podzielisz 3650 przez 3600 to na pewno nie wyjdzie zwyk?a liczba, tylko liczba zmiennoprzecinkowa. floatround tutaj to podstawa.
Ostatnio zmieniony przez Quis 2012-05-04, 12:48, w całości zmieniany 1 raz
Wysłany: 2012-05-04, 12:39
P.Devil
Wiek: 29 Na forum: 5930 dni Posty: 104
Piwa : 603
Quis , floatround nie jest do tego potrzebny.
"Quis" napisał/a :przestarza?y i nieoptymalny (50 graczy = 50 timer?w), do tego potrzebuje o wiele wi?cej pami?ci
Nie m?wi?c ju?, ?e zwyk?e timery si? strasznie op??niaj?. (Nastaw timer na sekund?, a wykona si? za 1.25 sek)
Wysłany: 2012-05-04, 13:52
xxmikel611xx
~!@#$%^!
Wiek: 30 Na forum: 5812 dni Posty: 163
Nick w MP: Mikel__xD
Piwa : 159
Dobra ju? nie b?d? zak?ada? nowego tematu mam problem potrzebuje respawn samochod?w z funkcj? kt?ra b?dzie sprawdza? czy pojazd jest u?ywany czy nie, ?eby nie zabiera?o pojazdu w kt?rym siedzi gracz.
Wysłany: 2012-05-04, 13:56
Quis
Wszechwiedzący
Wiek: 31 Na forum: 5146 dni Posty: 464
Nick w MP: Quis
Piwa : 1110
Co? takiego?
Kod: stock RespawnVehicles()
{
for(new i=0; i<MAX_VEHICLES; i++)
{
if(GetVehicleModel(i) != 0 && GetVehiclePlayersCount(i) == 0)
SetVehicleToRespawn(i);
}
return 1;
}
stock GetVehiclePlayersCount(vehicleid)
{
new count = 0;
for(new i=0; i<GetMaxPlayers(); i++)
{
if(!IsPlayerConnected(i)) continue;
if(IsPlayerInVehicle(i, vehicleid))
count++;
}
return count;
}
Mam nadziej? ?e napisa?em bez b??du
@EDIT
?eby respawnowa?o co 20 minut to tak:
W OnGameModeInit/OnFilterScriptInit:
Kod: SetTimer("RespawnVehicles", 1000*60*20, true);
A pierwsz? linijk? mojego pierwszego kodu:
Kod:
Zamie? na:
Kod: forward RespawnVehicles();
public RespawnVehicles()
Ostatnio zmieniony przez Quis 2012-05-04, 14:13, w całości zmieniany 4 razy
Wysłany: 2012-05-04, 14:03
xxmikel611xx
~!@#$%^!
Wiek: 30 Na forum: 5812 dni Posty: 163
Nick w MP: Mikel__xD
Piwa : 159
Kod: public OnPlayerCommandText( playerid, cmdtext[] )
{
if(!strcmp( cmdtext, "/vresp", true))
{
for(new v; v < MAX_VEHICLES; v++)
if(GetVehicleModel(v) && !IsVehicleUsed(v)) SetVehicleToRespawn(v);
SendClientMessageToAll(playerid, COLOR_GREEN, "Pojazdy zosta?y zrspawnowane!");
return 1;
}
return 0;
}
IsVehicleUsed(vehicleid) //Sprawdzanie czy auto jest u?ywane
{
(new p; p < GetMaxPlayers(); p++)
{
if(IsPlayerInVehicle(p, vehicleid))
{
return 1;
}
}
return 0;
}
ja mam tak.
[ Dodano : 2012-05-04, 19:13 ]
Mam jeszcze jedno pytanie jak do tego paska tak jak dodawa?em Admina teraz doda? Vip'a
Tagi: jak :: zdefiniować :: admina
Anonymous
Na forum: 245 dni
Posty: 1
Anonymous Koniecznie zajrzyj na: