Advertisement
Guest User

Teleport command for minetestc55_201112030102

a guest
Dec 3rd, 2011
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.39 KB | None | 0 0
  1. //defaultsettings.cpp:116
  2. //Добавляем строку вниз дабы задать дефолтное значение.
  3. //Будет использовано если если не указано в конфиге сервера
  4. settings->setDefault("tp1", "10000,-10000,10000");
  5. settings->setDefault("tp2", "500,136,21324");
  6.  
  7.  
  8. //servercommand.cpp:234
  9. //Добавляем, например, после функции cmd_teleport:
  10. // custom tp
  11. void cmd_tp(std::wostringstream &os,
  12.     ServerCommandContext *ctx)
  13. {
  14.     std::vector<std::wstring> coords = str_split(narrow_to_wide(
  15.         g_settings->get(wide_to_narrow(ctx->parms[0]))
  16.     ), L',');
  17.     if(coords.size() != 3)
  18.     {
  19.         os<<L"-!- Admin must set coordinates first";
  20.         return;
  21.     }
  22.  
  23.     v3f dest(stoi(coords[0])*10, stoi(coords[1])*10, stoi(coords[2])*10);
  24.  
  25.     actionstream<<ctx->player->getName()<<" teleports from "
  26.             <<PP(ctx->player->getPosition()/BS)<<" to "
  27.             <<PP(dest/BS)<<std::endl;
  28.  
  29.     ServerRemotePlayer *srp = static_cast<ServerRemotePlayer*>(ctx->player);
  30.     srp->setPos(dest);
  31.     ctx->server->SendMovePlayer(ctx->player);
  32.  
  33.     os<< L"-!- Teleported.";
  34. }
  35.  
  36. //servercommand.cpp:в самом конце где то
  37. //Находим где идет список команд, и добавляем:
  38.     else if(ctx->parms[0] == L"tp1" || ctx->parms[0] == L"tp2")
  39.         cmd_tp(os, ctx);
  40.  
  41. // winddos
  42. // https://www.linux.org.ru/forum/games/7072294
  43.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement