-
Sziasztok. Volna egy /visz parancsom csak sajnos nem nagyon értem, hogy hogyan mükszik, és szeretnék kérni egy kis útmutatót. ( Szerk.: Ugye elõször 1x rátelézik de utána többet nem) :)
CMD:visz(playerid, params[])
{
new Float:x,
Float:y,
Float:z;
if(admins[playerid][frakcio] == 1 || admins[playerid][frakcio] == 2)
{
if(sscanf(params, \"u\", id)) return SendClientMessage(playerid,-1, \"Használhat: /visz <id>\");
{
if(admins[id][bilincsbe] == 0) return SendClientMessage(playerid,-1,\"Nincs bilincsben!\");
{
if(id == INVALID_PLAYER_ID) return SendClientMessage(playerid, -1, \"Rossz Játékos ID!\");
if(id == playerid) return SendClientMessage(playerid, -1, \"Ne akard saját magad vinni!\");
GetPlayerPos(id,x,y,z);
if(!IsPlayerInRangeOfPoint(playerid, 1.75 ,x,y,z)) return SendClientMessage(playerid,-1,\"nincs a közeledben\");
admins[id][viszve] = 1;
GetPlayerPos(playerid,x,y,z);
SetPlayerPos(id,x+2,y+2,z);
}
}
}
else return 0;
return 1;
}
forward vitel();
public vitel()
{
new Float:X,
Float:Y,
Float:Z;
if(admins[id][viszve] == 1)
{
for(new playerid=0; playerid < MAX_PLAYERS;playerid++)
{
if(IsPlayerConnected(id))
{
GetPlayerPos(playerid,X,Y,Z);
SetPlayerPos(id,X+1,Y+1,Z);
}
}
}
return 1;
}
-
Változók létrehozása
new Float:x,
Float:y,
Float:z;
Admin változó (Hogy csak admin használhassa), ellenõrzések (bilincsben van-e) útmutató (használat)
if(admins[playerid][frakcio] == 1 || admins[playerid][frakcio] == 2)
{
if(sscanf(params, \"u\", id)) return SendClientMessage(playerid,-1, \"Használhat: /visz <id>\");
{
if(admins[id][bilincsbe] == 0) return SendClientMessage(playerid,-1,\"Nincs bilincsben!\");
{
if(id == INVALID_PLAYER_ID) return SendClientMessage(playerid, -1, \"Rossz Játékos ID!\");
if(id == playerid) return SendClientMessage(playerid, -1, \"Ne akard saját magad vinni!\");
Ellenõrzi azt hogy a közeledben van-e és a pozíciódhoz hozzáad X összeget így tudod vinni (szerintem :D )
GetPlayerPos(id,x,y,z);
if(!IsPlayerInRangeOfPoint(playerid, 1.75 ,x,y,z)) return SendClientMessage(playerid,-1,\"nincs a közeledben\");
admins[id][viszve] = 1;
GetPlayerPos(playerid,x,y,z);
SetPlayerPos(id,x+2,y+2,z);
Ebbe 7ugyancsak admin változó és az van benne hogy hogy tudod vinni a játékost
public vitel()
{
new Float:X,
Float:Y,
Float:Z;
if(admins[id][viszve] == 1)
{
for(new playerid=0; playerid < MAX_PLAYERS;playerid++)
{
if(IsPlayerConnected(id))
{
GetPlayerPos(playerid,X,Y,Z);
SetPlayerPos(id,X+1,Y+1,Z);
}
}
}
return 1;
}
Nem vagyok benne biztos de szerintem így van ha nem valaki javítson ki :shurg:
-
De ezt a scriptet hogyan tudom mûködõ képessé varázsolni??? Mivel ugye egyszer eltelportálja amikor beírom a parancsot de többször nem. És én azt szeretném, hogy amíg le nem állítom addig folyamatosan rámtelézzen.
-
forward vitel(playerid,idje);
CMD:visz(playerid, params[])
{
new Float:x,
Float:y,
Float:z;
if(admins[playerid][frakcio] == 1 || admins[playerid][frakcio] == 2)
{
if(sscanf(params, \"u\", id)) return SendClientMessage(playerid,-1, \"Használhat: /visz <id>\");
{
if(admins[id][bilincsbe] == 1) return SendClientMessage(playerid,-1,\"Már bilincsben!\");
{
if(id == INVALID_PLAYER_ID) return SendClientMessage(playerid, -1, \"Rossz Játékos ID!\");
if(id == playerid) return SendClientMessage(playerid, -1, \"Ne akard saját magad vinni!\");
GetPlayerPos(id,x,y,z);
if(!IsPlayerInRangeOfPoint(playerid, 1.75 ,x,y,z)) return SendClientMessage(playerid,-1,\"nincs a közeledben\");
admins[id][viszve] = 1;
TogglePlayerControllable(playerid,params);// lefagyasztom
vitel(playerid, params);
SetTimer(\"vitel\",1000,true);
}
}
}
else return 0;
return 1;
}
public vitel(playerid,idje)
{
new Float:X,Float:Y,Float:Z;
new id;
idje= id;
if(admins[id][viszve] == 1)
{
GetPlayerPos(playerid,X,Y,Z);
SetPlayerPos(id,X+1,Y+1,Z);
}
return 1;
}
tessék talán jó
-
Nem tom minek kellett ide felrakni szegénykét amit küldtem fs-ben az teljesen jól mûködött (teszteltem, mert hát én írtam még asszem régebben Backup-nak)
És am meg mire felkelsz megkapod az aranyos onplayerupdate-es változatot ne kelljen timer azon majd magyarázok, de ejjnye.. jah am ha valakit érdekel itt van az eredeti, benne még pár ehhez kapcsolódó tesztelõs parancs illetve bilincselés és jármûbe berakás hátha valakinek még jól jön LINK (megj.: igen igen ez timer-es megoldás és kicsit cpu igényes tudom tudom optimálisabb onplayerupdate-el, ilyesmi megjegyzéseket nem kérek hozzá mert tudok róla)
Megj.: a timert én nem a parancs beírásakor indítanám mert többen beírják több timer nagyobb foglalás több bug lehetõség stb...de majd megmutatom ha felkelsz onplayerupdate-el
-
igaz akkor mikor indítanád a timert?
szerk.: megvan a válasz.
-
Megoldottam köszi puszi ment a plusz mindnekinek!
[gmod]Megkérnék minden kedves témanyitót, ha kérdésére/kérésére választ kapott, akkor legyen szíves használni, a \"Téma megoldva\" funkciót![/gmod]