Рекомендованные сообщения



Не найдено.

5 posts in this topic

Всем привет! Решил покопаться в моде Redline RP (Perfomance, Radmir). Столкнулся с такой проблемкой: При телепортировании персонаж стоит на месте. Например: Я захожу в пикап бизнеса, но меняется только виртуальный мир, координаты не меняются.

Подскажите в чем может быть проблема.

Спойлер

    new Float:px,Float:py,Float:pz,string[128];
    if(sscanf(params,"p<,>fff",px,py,pz)) return SendClientMessage(playerid, 0xcececeFF, "Используйте: {ffffff} /rt [x] [y] [z]");
    SetPlayerPosEx(playerid,px,py,pz);
    format(string, sizeof(string), "Вы были телепортированы: %f, %f, %f",px,py,pz);
    SendClientMessage(playerid, 0xFFFFFFAA, string);

 

Edited by _bogdan_

Share this post


Link to post
Share on other sites

@_bogdan_, покпжите код функции SetPlayerPosEx.

Share this post


Link to post
Share on other sites

@odosenok 
 

Спойлер

stock SetPlayerPosEx(playerid, Float: x, Float: y, Float: z, Float: angle, interior = -1, virtual_world = -1, freeze = true)
{
    if(interior > 0)
        PlayerTeleportInit(playerid, x, y,  z, angle);

    SetPlayerPos(playerid, x, y, z);

    SetPlayerFacingAngle(playerid, angle);
    SetCameraBehindPlayer(playerid);
    
    if(interior != -1 && GetPlayerInterior(playerid) != interior)
        SetPlayerInterior(playerid, interior);
    
    if(virtual_world != -1 && GetPlayerVirtualWorld(playerid) != virtual_world)
        SetPlayerVirtualWorld(playerid, virtual_world);
    
    if(GetPlayerData(playerid, P_LAST_PICKUP) != -1)
        SetPlayerData(playerid, P_LAST_PICKUP, -1);
    
    if(freeze)
        TeleportFreeze(playerid, 1200);
    
    //g_anticheat[playerid][P_SET_POS_X] = x,
    //g_anticheat[playerid][P_SET_POS_Y] = y,
    //g_anticheat[playerid][P_SET_POS_Z] = z,
    //g_anticheat[playerid][P_SET_POS_TICK] = GetTickCount();
    
    //time_fix_brake[playerid] = GetTickCount() + 4000;
    
    return 1;
}

 

Share this post


Link to post
Share on other sites

@odosenok Как исправить баг?

Share this post


Link to post
Share on other sites

Попробуй использовать вот так

 

stock SetPlayerPosEx(playerid, Float: x, Float: y, Float: z, Float: angle, interior = -1, virtual_world = -1, freeze = true)
{
    if(interior > 0)
        PlayerTeleportInit(playerid, x, y,  z, angle);

    SetPlayerPos(playerid, x, y, z);

    SetPlayerFacingAngle(playerid, angle);
    SetCameraBehindPlayer(playerid);
  
  if(interior == -1 || interior > 0)
        PlayerTeleportInit(playerid, x, y,  z, angle);

    SetPlayerPos(playerid, x, y, z);

    SetPlayerFacingAngle(playerid, angle);
    SetCameraBehindPlayer(playerid);
    
    if(interior != -1 && GetPlayerInterior(playerid) != interior)
        SetPlayerInterior(playerid, interior);
    
    if(virtual_world != -1 && GetPlayerVirtualWorld(playerid) != virtual_world)
        SetPlayerVirtualWorld(playerid, virtual_world);
    
    if(GetPlayerData(playerid, P_LAST_PICKUP) != -1)
        SetPlayerData(playerid, P_LAST_PICKUP, -1);
    
    if(freeze)
        TeleportFreeze(playerid, 1200);
    
    //g_anticheat[playerid][P_SET_POS_X] = x,
    //g_anticheat[playerid][P_SET_POS_Y] = y,
    //g_anticheat[playerid][P_SET_POS_Z] = z,
    //g_anticheat[playerid][P_SET_POS_TICK] = GetTickCount();
    
    //time_fix_brake[playerid] = GetTickCount() + 4000;
    
    return 1;
}

 

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • Tony_Cannabis
      By Tony_Cannabis
      Нужна мне собственно проверка на гараж, я хочу чтобы дом N класса не имел гаража, куда только я проверку эту не сувал, но немогу понять как это работает
       
      Имеем код
      Куда мне ее засунуть просто ума не приложу, думал будет легко но понимаю что без вас не разобратся, проверку которую хотел закинуть см. ниже
      if(gHouses[houseid][houseClass] == 0) return ErrorMessage(playerid, "Недоступно для класса Вашего дома");