Szerző Téma: Egy soros teleport ? (stock)  (Megtekintve 991 alkalommal)

Nem elérhető buci11

  • 502
    • Profil megtekintése
Egy soros teleport ? (stock)
« Dátum: 2012. január 22. - 15:48:53 »
0 Show voters
üdv valaki megcsinálná nekem ezt a paracsot stockal ojanra hogy csak annyit keljen írni hogy
[pawn]Teleport(\"/lv\",x,y,z,\"Üdv Las Venturasba\");[/pawn] mert ugye itt bármit akarok csak 1 parancsot kell babrálni mert mindennek az az alapja pl dm et akarok betenni akkor nem kell minden teleportot tíltani köszi ja és itt a parancsom:
[pawn]   if (strcmp(\"/lv\", cmdtext, true, 10) == 0)
{
   new vehid;
   vehid=GetPlayerVehicleID(playerid);
   if(!IsPlayerInAnyVehicle(playerid)) return SetPlayerPos(playerid,2136.8357,1439.0697,10.8203);
        SetVehiclePos(vehid, 2136.8357,1439.0697,10.8203);
   return 1;
}[/pawn]

Nem elérhető kurta999

  • 2759
  • Éllő fédisznó
    • Profil megtekintése
Egy soros teleport ? (stock)
« Válasz #1 Dátum: 2012. január 22. - 16:27:22 »
0 Show voters
Ha így a teleportokat az OnGameModeInit() alá akarod rakni, akkor az jó hülye megoldás, mert mindent tárolni kell és ciklussal kikeresni, hogy egyezik-e a parancs. ( Bár meglehet másképp is, de akkor is pazarlós módszer ).
Én simán ZCMD-vel használom az összes teleportomat, mindegy teleport \"egy sor\".
Ittvan rá a stock függvényen, próbáld meg ezt átalakítani.
 

CMD:aa(playerid, params[])
{
NormalTeleEx(playerid, \"Elhagyatott Reptér\", \"aa\", 415.1741, 2524.0662, 16.3035, 88.6967);
return 1;
}

 
Függvény:
 

stock NormalTeleEx(playerid, const Message[], const TeleName[], Float:x, Float:y, Float:z, Float:ang = 0.0, interior = 0, worldid = 0)
{
if(NoTele(playerid)) return ShowWelcome(playerid, \"~r~Jelenleg nem telézhetz~w~!\");
new
    bool:Boolval,
bool:ChangeWorld = (!GetPVarType(playerid, \"ClearWorld\"));
if(DM_ZONE_WORLD < GetPlayerVirtualWorld(playerid) < DM_ZONE_WORLD + 24)
{
cmd_exitdm(playerid, \"295375\");
}
if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_USEJETPACK)
{
        Boolval = true;
}
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
        vID = GetPlayerVehicleID(playerid);
    SetVehiclePos(vID, x, y, z + 1.5);
        if(!GetPVarType(playerid, \"Invis\"))
        {
   LinkVehicleToInterior(vID, interior);
        }
SetVehicleZAngle(vID, ang);
if(ChangeWorld) SetVehicleVirtualWorld(vID, worldid);
foreach(Player, i)
{
   if(i == playerid) continue;
   if(GetPlayerVehicleID(i) == vID)
   {
      SetPlayerVirtualWorld(i, worldid);
      SetPlayerInterior(i, interior);
   }
}
}
else
{
        DeletePVar(playerid, \"Falled\");
SetPlayerPos(playerid, x, y, z + 1.5);
        SetPlayerFacingAngle(playerid, Float:ang);
    }
if(Boolval)
{
SetPlayerSpecialAction(playerid, SPECIAL_ACTION_USEJETPACK);
        Boolval = false;
}
    SetCameraBehindPlayer(playerid);
ShowWelcome(playerid, Message, false);
    if(ChangeWorld) SetPlayerVirtualWorld(playerid, worldid);
SetPlayerInterior(playerid, interior);
format(i_str, sizeof(i_str), \"~b~~h~%s(~w~%d~b~~h~) ~>~~>~~>~ ~w~(/%s~w~)\", pName(playerid), playerid, FixGameString(TeleName));
if(TeleTDShowed != -1)
{
KillTimer(TeleTDShowed);
        TextDrawHideForAll(Tele0);
}
TextDrawSetString(Tele0, i_str);
TextDrawShowForAll(Tele0);
TeleTDShowed = SetTimer(\"HideTeleTD\", 3000, false);
return PlayerPlaySound(playerid, 1085);
}

Nem elérhető buci11

  • 502
    • Profil megtekintése
Egy soros teleport ? (stock)
« Válasz #2 Dátum: 2012. január 22. - 16:35:16 »
0 Show voters
hát ez eléggé zavaros nem tudná nekem valaki kijavítani?arra ami kell

dexi

  • Vendég
Egy soros teleport ? (stock)
« Válasz #3 Dátum: 2012. január 22. - 17:31:15 »
0 Show voters
Nekem ez a megoldásom:
 
stock PlayerTeleport(playerid,Float:x,Float:y,Float:z,Cmd[],Message[])
{
    SetPlayerPos(playerid,x,y,z);
    new stR[200];
    new pName[MAX_PLAYER_NAME];
    GetPlayerName(playerid, pName, sizeof(pName));
    format(stR,sizeof(stR),\"%s elteleportált ide: %s [ /%s ]\", pName, Message, Cmd);
    SendClientMessageToAll( -1, stR);
    GameTextForPlayer(playerid, Message, 1500, 1);
PlayerPlaySound(playerid, 1085, x, y, z);
return 1;
}

 
Használata:
[pawn]
CMD:ls(playerid)
{
PlayerTeleport(playerid, 1, 2, 3, \"ls\",\"Los Santos\");
}[/pawn]

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal