Szerző Téma: /visz  (Megtekintve 1264 alkalommal)

/visz
« Dátum: 2013. augusztus 27. - 21:56:04 »
0 Show voters
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;
}

/visz
« Válasz #1 Dátum: 2013. augusztus 27. - 22:03:18 »
+1 Show voters
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:

/visz
« Válasz #2 Dátum: 2013. augusztus 27. - 22:07:15 »
0 Show voters
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.

/visz
« Válasz #3 Dátum: 2013. augusztus 28. - 03:12:04 »
0 Show voters

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ó

/visz
« Válasz #4 Dátum: 2013. augusztus 28. - 06:25:56 »
+1 Show voters
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

/visz
« Válasz #5 Dátum: 2013. augusztus 28. - 11:48:26 »
0 Show voters
igaz akkor mikor indítanád a timert?
szerk.: megvan a válasz.
« Utoljára szerkesztve: 2013. augusztus 28. - 11:54:18 írta kriszrap »

/visz
« Válasz #6 Dátum: 2013. augusztus 29. - 09:23:59 »
0 Show voters
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]
« Utoljára szerkesztve: 2013. augusztus 29. - 09:26:22 írta Benceee »

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal