Wysłany: 2014-07-17, 12:30
Mati4139
Wiek: 27 Na forum: 5125 dni Posty: 17
Piwa : 204
Witam, mam problem, korzystam z gamemode GeoGaming i mam takie pytanie, jak naprawi? to, ?e jak gracz wejdzie do auta frakycjnego dostaje kicka od systemu?
Prawdopodobnie potrzebne kody:
Kod:
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
if(KomendySprawdz(playerid) || GetPVarInt(playerid, "AnimkaPostrzal") == 1) return 1;
new Float:Pos[3];
GetPlayerPos(playerid,Pos[0],Pos[1],Pos[2]);
GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
if(doors)
{
SetPlayerPos(playerid,Pos[0],Pos[1],Pos[2]+0.01);
Unfreeze(playerid, 1);
if(SamochodInfo[vehicleid][sAlarm]==1)
{
SetVehicleParamsEx(vehicleid,engine,lights,1,doors,bonnet,boot,objective);
}
}
if(SamochodInfo[vehicleid][sOwner]==2&&!ispassenger)
{
if(SamochodInfo[vehicleid][sOwnerID]==PlayerInfo[playerid][pGrupa1] || SamochodInfo[vehicleid][sOwnerID]==PlayerInfo[playerid][pGrupa2] || SamochodInfo[vehicleid][sOwnerID]==PlayerInfo[playerid][pGrupa3]) return 1;
SetPlayerPos(playerid,Pos[0],Pos[1],Pos[2]+0.01);
return error(playerid);
}
if(SamochodInfo[vehicleid][sOwner]==3)
{
if(pItem(playerid, 8,13,vehicleid)) return 1;
if(SamochodInfo[vehicleid][sOwnerID]!=PlayerInfo[playerid][pUID]&&!ispassenger)
{
SetPlayerPos(playerid,Pos[0],Pos[1],Pos[2]+0.01);
return error(playerid);
}
return 1;
}
return 1;
}
Kod:
public OnPlayerStateChange(playerid, newstate, oldstate)
{
new vehicleid=GetPlayerVehicleID(playerid),str[250];
GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
{
new Weap[2];
GetPlayerWeaponData(playerid, 4, Weap[0], Weap[1]);
SetPlayerArmedWeapon(playerid, Weap[0]);
}
if(oldstate==PLAYER_STATE_ONFOOT)
{
if(doors&&vehicleid!=0)
{
format(str, sizeof(str),"Nieautoryzowane wejscie do Pojazdu /kick (%d).",vehicleid);
return Kara(0,playerid,-1,str,0);
}
}
if(newstate==PLAYER_STATE_DRIVER)
{
if( pPojazd(playerid, vehicleid) == 0 && Global[playerid][gAdmin]!=6 )
{
if(GetPlayerState(playerid)==PLAYER_STATE_DRIVER&&vehicleid!=0)
{
format(str, sizeof(str),"Nieautoryzowane wejscie do Pojazdu /kick (%d).",vehicleid);
Kara(0,playerid,-1,str,0);
}
}
GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
}
if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
{
if(SamochodInfo[vehicleid][sAudio]==1)
{
PlayAudioStreamForPlayer(playerid, SamochodInfo[vehicleid][sAudioLink]);
}
}
if(oldstate==PLAYER_STATE_DRIVER)
{
TextDrawHideForPlayer(playerid,Licznik[playerid]);
Okupowany[Okupuje[playerid]]=MAX_PLAYERS;
Okupuje[playerid]=0;
}
if(oldstate == PLAYER_STATE_DRIVER || oldstate == PLAYER_STATE_PASSENGER)
{
StopAudioStreamForPlayer(playerid);
}
return 1;
}
Dzi?ki, za wszelk? pomoc
Wysłany: 2014-07-17, 18:01
wiktorp
Wiek: 28 Na forum: 4566 dni Posty: 85
Nick w MP: Maslo
Piwa : 458
Cze??.
U g?ry:
Kod: new PojazdyFrakcyjne[MAX_VEHICLES];
W OnGameModeInit(); lub OnFilterScript();
Kod:
PojazdyFrakcyjne[0] = AddStaticVehicle(411, 1,1, 1,1 1,1, 1,1);
PojazdyFrakcyjne[1] = AddStaticVehicle(411, 1,1, 1,1 1,1, 1,1);
i tak dalej [2], [3]. [4]
w public OnPlayerStateChange:
Kod: public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == PLAYER_STATE_DRIVER)
{
new vehicleid = GetPlayerVehicleID(playerid);
for(new i; i < sizeof(PojazdyFrakcyjne); i++)
{
if(GetPlayerVehicleID(playerid) == PojazdyFrakcyjne[i])
{
if(!twojarangalubfrakcja) // tutaj twoja ranga kt?ra mo?e u?ywa? tych pojazd?w je?li ma korzysta? z tych pojazd?w wi?cej frakcji/rang zmien na: if(!jakasfrakcja && !jakasfrakcja2); i tak dalej ...
{
SCM(playerid, -1, " Nie mo?esz kierowa? tym pojazdem. Wylatujesz z serwera hehehe ");
Kick(playerid); // ja osobicie proponowa?bym u?y?: RemovePlayerFromVehicle(playerid); kt?ra dzia?a tak, ?e wyrzuca po prostu z pojazdu osob? bez rangi/frakcji
}
}
}
Pozdrawiam
Wysłany: 2014-07-17, 20:11
Mati4139
Wiek: 27 Na forum: 5125 dni Posty: 17
Piwa : 204
Tylko to mi wyt?umacz"
Kod:
if(!twojarangalubfrakcja) // tutaj twoja ranga kt?ra mo?e u?ywa? tych pojazd?w je?li ma korzysta? z tych pojazd?w wi?cej frakcji/rang zmien na: if(!jakasfrakcja && !jakasfrakcja2); i tak dalej ...
Da si? to zrobi?, ?e na ID grupy? Nie na nazwe frakcji?
Wysłany: 2014-07-18, 11:49
wiktorp
Wiek: 28 Na forum: 4566 dni Posty: 85
Nick w MP: Maslo
Piwa : 458
Podaj mi te "ID" grupy kt?r? zrobi?e?.
@edit:
Nie wiem czy o to Ci chodzi ale:
if(Hehe[playerid] < 2) retrun SCM(playerid, -1, "Z tych pojazd?w mo?e korzysta? firma Hehe i ludzie z wi?ksz? id = 2 ");
Wysłany: 2014-07-18, 12:58
Mati4139
Wiek: 27 Na forum: 5125 dni Posty: 17
Piwa : 204
Ranga ka?da, ale chodzi o grupe, nie da rady wpisa? nazwy - tworzy si? je dynamicznie. Podaje ci przyk?ad cmd, grupa typu "0" mo?e to robi?, a ja chc? tak, ?e ta grupa b?dzie mia?a ID na serwerze np. "2", rozumiesz?
Kod:
CMD:kolczatka(playerid, params[])
{
if(GrupaTypPracownik(playerid, 0)==-1) return error(playerid);
if(KomendySprawdz(playerid)) return 1;
if(Kolczatki>=5) return Tip(playerid, "Nie mo?na postawi? ju? ?adnej kolczatki.");
if(Kolczatka[playerid] != -1)
{
DestroyObject(Kolczatka[playerid]);
Tip(playerid, "Kolczatka usuni?ta pomy?lnie.");
Kolczatki--;
return Kolczatka[playerid] = -1;
}
new Float:x, Float:y, Float:z, Float:ang;
GetPlayerPos(playerid, x, y, z);
Kolczatki++;
GetPlayerFacingAngle(playerid, ang);
Kolczatka[playerid] = CreateObject(2892, x, y, z-1, 0, 0, ang+90);
Tip(playerid, "Kolczatka utworzona pomy?lnie.");
return 1;
}
Wysłany: 2014-07-18, 18:29
wiktorp
Wiek: 28 Na forum: 4566 dni Posty: 85
Nick w MP: Maslo
Piwa : 458
Gotowca Ci nie napisz?, ale mo?esz to zrobi? jako warunek o ile nie zapisujesz tego na jaki? system (dini, mysql itd.)
Tagi: wywala :: aut :: frakcyjnych
Anonymous
Na forum: 245 dni
Posty: 1
Anonymous Koniecznie zajrzyj na: