GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: TheChansee - 2013. Augusztus 27. - 21:56:04

Cím: /visz
Írta: TheChansee - 2013. Augusztus 27. - 21:56:04
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;
}
Cím: /visz
Írta: ninjo98 - 2013. Augusztus 27. - 22:03:18
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:
Cím: /visz
Írta: TheChansee - 2013. Augusztus 27. - 22:07:15
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.
Cím: /visz
Írta: kriszrap - 2013. Augusztus 28. - 03:12:04

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ó
Cím: /visz
Írta: Red-Eye - 2013. Augusztus 28. - 06:25:56
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
Cím: /visz
Írta: kriszrap - 2013. Augusztus 28. - 11:48:26
igaz akkor mikor indítanád a timert?
szerk.: megvan a válasz.
Cím: /visz
Írta: TheChansee - 2013. Augusztus 29. - 09:23:59
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]