SA-MP Forums Archive
Проблема (Скопление домов RLS) - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: Проблема (Скопление домов RLS) (/showthread.php?tid=571551)



Проблема (Скопление домов RLS) - Surprice - 19.04.2015

Всех приветствую. Взял за основу мод RLS, и обнаружил такую проблему, при регистрации после выбора пола происходит спавн и у кого слабый интернет персонаж просто не успивает заспавниться как хватает дома на ферме.

https://pp.vk.me/c623923/v623923647/...sz9gGXlO98.jpg - скриншот

Код после выбора пола:
PHP код:
    case dRegPol:
        {
            if(
response)
            {
                
PlayerInfo[playerid][pSex] = 1;//Парень
                
PlayerInfo[playerid][pTut] = 1;
                new 
skin random(7);
                switch(
skin)
                {
                case 
0PlayerInfo[playerid][pChar] = 79;
                case 
1PlayerInfo[playerid][pChar] = 78;
                case 
2PlayerInfo[playerid][pChar] = 134;
                case 
3PlayerInfo[playerid][pChar] = 135;
                case 
4PlayerInfo[playerid][pChar] = 136;
                case 
5PlayerInfo[playerid][pChar] = 137;
                case 
6PlayerInfo[playerid][pChar] = 230;
                }
                for(new 
030i++) SendClientMessage(playerid, -1"");
                
SendClientMessage(playerid0x00CD00FF"{7FB151}» {FAEBD7}Добро пожаловать в штат {7FB151}Purple Role Play!");
                
SendClientMessage(playerid0x00CD00FF"{7FB151}» {FAEBD7}Основные команды сервера: /mm - главное меню, /gps - GPS навигатор.");
                
SendClientMessage(playerid0x00CD00FF"{7FB151}» {FAEBD7}Приятной игры. Не забывайте приглашать своих друзей.");
                
SpawnPlayer(playerid);
            }
            else
            {
                
PlayerInfo[playerid][pSex] = 2;
                
PlayerInfo[playerid][pTut] = 1;
                new 
skin random(5);
                switch(
skin)
                {
                case 
0PlayerInfo[playerid][pChar] = 40;
                case 
1PlayerInfo[playerid][pChar] = 75;
                case 
2PlayerInfo[playerid][pChar] = 85;
                case 
3PlayerInfo[playerid][pChar] = 92;
                case 
4PlayerInfo[playerid][pChar] = 131;
                }
                for(new 
030i++) SendClientMessage(playerid, -1"");
                
SendClientMessage(playerid0x00CD00FF"{7FB151}» {FAEBD7}Добро пожаловать в штат {7FB151}Purple Role Play!");
                
SendClientMessage(playerid0x00CD00FF"{7FB151}» {FAEBD7}Основные команды сервера: /mm - главное меню, /gps - GPS навигатор.");
                
SendClientMessage(playerid0x00CD00FF"{7FB151}» {FAEBD7}Приятной игры. Не забывайте приглашать своих друзей.");
                
SpawnPlayer(playerid);
            }
        } 



Re: Проблема (Скопление домов RLS) - nikita86826 - 19.04.2015

проблему нужно в калбеке спавна искать.


Re: Проблема (Скопление домов RLS) - Surprice - 19.04.2015

Quote:
Originally Posted by nikita86826
Посмотреть сообщение
проблему нужно в калбеке спавна искать.
PHP код:
public OnPlayerSpawn(playerid)
{
    if(
gPlayerLogged[playerid] == 0) { SendClientMessage(playerid, -1" !"); KickEx(playerid); return true; }
    
StopAudioStreamForPlayer(playerid);
    if(
PlayerInfo[playerid][pMember]) SetPlayerSkin(playeridPlayerInfo[playerid][pModel]);
    else 
SetPlayerSkin(playeridPlayerInfo[playerid][pChar]);
    
GSetPlayerArmour(playerid,0);
    
GSetPlayerHealth(playerid,80);
    if(
PlayerInfo[playerid][pTut] == 0)
    {
        
ShowPlayerDialog(playeriddRegPolDIALOG_STYLE_MSGBOX," ","{FFFFFF}    :\n","","");
        
TogglePlayerControllable(playeridfalse); return 1;
    }
    if(
panreg[playerid]==1)
    {
        if(
allregp==0)
        {
            new 
rands random(sizeof(paintgun)); GiveWeapon(playeridpaintgun[rands], 1000);
            new 
rand random(sizeof(PaintballSpawns)); SetPPos(playeridPaintballSpawns[rand][0], PaintballSpawns[rand][1], PaintballSpawns[rand][2],0,0,0);
        }
        else { 
SetPPos(playerid,288.2651,-38.9118,1001.5156,292.9460,1,10); }
        
GSetPlayerHealth(playerid,100); SetPlayerColor(playeridCOLOR_RED);
        return 
1;
    }
    
KillTimer(STimer[playerid]);
    if(
IsPlayerConnected(playerid))
    {
        if(
PlayerInfo[playerid][pAdmin] > && dostup[playerid] == 0) {  ShowPlayerDialog(playerid2934DIALOG_STYLE_PASSWORD," "," \n\n       \n  4  15 ","",""); }
        if(
PlayerInfo[playerid][pWanted] > 6PlayerInfo[playerid][pWanted] = 6;
        if(
PlayerInfo[playerid][pChar] == 0PlayerInfo[playerid][pChar] = 230;
        if(
PlayerInfo[playerid][pModel] == 0PlayerInfo[playerid][pModel] = 230;
        if(
PlayerInfo[playerid][pLeader] == && PlayerInfo[playerid][pRank] != 15PlayerInfo[playerid][pRank] = 15;
        if(
PlayerInfo[playerid][pLeader] == && PlayerInfo[playerid][pRank] != 10PlayerInfo[playerid][pRank] = 10;
        if(
PlayerInfo[playerid][pLeader] == && PlayerInfo[playerid][pRank] != 15PlayerInfo[playerid][pRank] = 15;
        if(
PlayerInfo[playerid][pLeader] == && PlayerInfo[playerid][pRank] != 10PlayerInfo[playerid][pRank] = 10;
        if(
PlayerInfo[playerid][pLeader] == && PlayerInfo[playerid][pRank] != 10PlayerInfo[playerid][pRank] = 10;
        if(
PlayerInfo[playerid][pLeader] == && PlayerInfo[playerid][pRank] != 10PlayerInfo[playerid][pRank] = 10;
        if(
PlayerInfo[playerid][pLeader] == && PlayerInfo[playerid][pRank] != 6PlayerInfo[playerid][pRank] = 6;
        if(
PlayerInfo[playerid][pLeader] == && PlayerInfo[playerid][pRank] != 5PlayerInfo[playerid][pRank] = 5;
        if(
PlayerInfo[playerid][pLeader] == && PlayerInfo[playerid][pRank] != 13PlayerInfo[playerid][pRank] = 13;
        if(
PlayerInfo[playerid][pLeader] == 10 && PlayerInfo[playerid][pRank] != 15PlayerInfo[playerid][pRank] = 15;
        if(
PlayerInfo[playerid][pLeader] == 11 && PlayerInfo[playerid][pRank] != 10PlayerInfo[playerid][pRank] = 10;
        if(
PlayerInfo[playerid][pLeader] == 12 && PlayerInfo[playerid][pRank] != 10PlayerInfo[playerid][pRank] = 10;
        if(
PlayerInfo[playerid][pLeader] == 13 && PlayerInfo[playerid][pRank] != 10PlayerInfo[playerid][pRank] = 10;
        if(
PlayerInfo[playerid][pLeader] == 14 && PlayerInfo[playerid][pRank] != 10PlayerInfo[playerid][pRank] = 10;
        if(
PlayerInfo[playerid][pLeader] == 15 && PlayerInfo[playerid][pRank] != 10PlayerInfo[playerid][pRank] = 10;
        if(
PlayerInfo[playerid][pLeader] == 16 && PlayerInfo[playerid][pRank] != 13PlayerInfo[playerid][pRank] = 13;
        if(
PlayerInfo[playerid][pLeader] == 17 && PlayerInfo[playerid][pRank] != 10PlayerInfo[playerid][pRank] = 10;
        if(
PlayerInfo[playerid][pLeader] == 18 && PlayerInfo[playerid][pRank] != 10PlayerInfo[playerid][pRank] = 10;
        if(
PlayerInfo[playerid][pLeader] == 19 && PlayerInfo[playerid][pRank] != 15PlayerInfo[playerid][pRank] = 15;
        if(
PlayerInfo[playerid][pLeader] == 21 && PlayerInfo[playerid][pRank] != 15PlayerInfo[playerid][pRank] = 15;
        if(
PlayerInfo[playerid][pMuteTime] == && PlayerInfo[playerid][pMuted] == 1PlayerInfo[playerid][pMuteTime] = 5;
        if(
PlayerInfo[playerid][pWanted] >= 1) { SetPlayerWantedLevel(playerid,PlayerInfo[playerid][pWanted]); }
        
SetPlayerSkillLevel(playeridWEAPONSKILL_PISTOL990);
        
SetPlayerSkillLevel(playeridWEAPONSKILL_SAWNOFF_SHOTGUN990);
        
SetPlayerSkillLevel(playeridWEAPONSKILL_MICRO_UZI990);
        
ResetWeapons(playerid);
        
GSetPlayerHealth(playerid95);
        
SetPlayerWeapons(playerid);
        
SetPlayerToTeamColor(playerid);
        
SetCameraBehindPlayer(playerid);
        
SetPVarInt(playerid"FakeDeath",0);
        
SetPVarInt(playerid"GunCheck"2);
        
SetPVarInt(playerid"PlayerInAFK"0);
        if(
PlayerInfo[playerid][pMember] > 0SetPlayerSkin(playeridPlayerInfo[playerid][pModel]);
        if(
PlayerInfo[playerid][pMember] <= 0SetPlayerSkin(playeridPlayerInfo[playerid][pChar]);
        if(
PlayerInfo[playerid][pExitTied] == && PlayerInfo[playerid][pExitTiedNomer] == 1)
        {
            
PlayerInfo[playerid][pMember] = 0;
            
PlayerInfo[playerid][pLeader] = 0;
            
PlayerInfo[playerid][pJob] = 0;
            
PlayerInfo[playerid][pWarns]++;
            
PlayerInfo[playerid][pExitTied] = 0;
            
PlayerInfo[playerid][pExitTiedNomer] = 0;
            
SendClientMessage(playerid,COLOR_LIGHTRED,"         .");
            
format(stringer1sizeof(stringer1), ": %s[%d]         ",NamePlayer[playerid],playerid);
            
SendAdminMessage(COLOR_GREY,stringer1);
        }
        if(
PlayerInfo[playerid][pExitTied] == && PlayerInfo[playerid][pExitTiedNomer] == 1)
        {
            
SendClientMessage(playerid,COLOR_LIGHTRED,"     ,      20 .");
            
format(stringer1sizeof(stringer1), ": %s[%d]   10       .",NamePlayer[playerid],playerid);
            
SendAdminMessage(COLOR_GREY,stringer1);
            
SetPlayerInterior(playerid10);
            
PlayerInfo[playerid][pInt] = 10;
            
SetPlayerPos(playerid,219.5400,109.9767,999.0156);
            
SetPlayerFacingAngle(playerid1.0160);
            
PlayerInfo[playerid][pJailed] = 1;
            
PlayerInfo[playerid][pWanted] = 0;
            
PlayerInfo[playerid][pJailTime] = 600;
            
PlayerInfo[playerid][pExitTiedNomer] = 0;
            
PlayerInfo[playerid][pMestoJail] = 2;
            
SetPlayerWantedLevel(playerid0);
        }
        if(
PlayerInfo[playerid][pJailed] == 1)
        {
            if(
PlayerInfo[playerid][pMestoJail] == 1SetPPos(playerid,264.1425,77.4712,1001.0391,1,6,0);
            if(
PlayerInfo[playerid][pMestoJail] == 2SetPPos(playerid,219.5400,109.9767,999.0156,1,10,0);
            if(
PlayerInfo[playerid][pMestoJail] == 3SetPPos(playerid,198.3642,161.8103,1003.0300,1,3,0);
            
SetPlayerFacingAngle(playerid1.0000);
        }
        else if(
PlayerInfo[playerid][pJailed] == 4)
        {
            
SetPlayerInterior(playerid0);
            
SetPlayerVirtualWorld(playerid0);
            
SetPlayerPos(playerid5512.3403,1244.4066,23.1886);
        }
        
//SetPlayerVirtualWorld(playerid, 0);
        
if(PlayerInfo[playerid][pPhousekey] != 255)
        {
            if(
SpawnChange[playerid] == 1)
            {
                new 
house PlayerInfo[playerid][pPhousekey];
                
SetPlayerInterior(playerid,HouseInfo[house][hInt]);
                
SetPlayerPos(playeridHouseInfo[house][hExitx], HouseInfo[house][hExity],HouseInfo[house][hExitz]); // Warp the player
                
PlayerInfo[playerid][pLocal] = house;
                
PlayerInfo[playerid][pInt] = HouseInfo[house][hInt];
                
SetPlayerVirtualWorld(playeridhouse+50);
                return 
true;
            }
        }
        switch(
PlayerInfo[playerid][pMember])
        {
        case 
2:
            {
                
FreezePlayerForTime(playerid2000);
                
SetPlayerInterior(playerid5);
                
PlayerInfo[playerid][pInt] = 5;
                
SetPlayerPos(playerid2476.7217,2393.9460,16.3959);
                
SetPlayerFacingAngle(playerid270.4539);
                
zakonn++;
            }
        case 
3:
            {
                if(
forma[playerid] == 1)
                {
                    
SetPlayerSkin(playerid252);
                    
SetPlayerInterior(playerid0);
                    
SetPlayerPos(playerid, -1346.2050,492.3983,11.2027);
                    
PlayerInfo[playerid][pInt] = 0;
                    
SetPlayerVirtualWorld(playerid0);
                }
                
SetPlayerInterior(playerid0);
                
SetPlayerPos(playerid, -1346.2050,492.3983,11.2027);
                
PlayerInfo[playerid][pInt] = 0;
                
SetPlayerVirtualWorld(playerid0);
            }
        case 
10:
            {
                
SetPlayerInterior(playerid10);
                
SetPlayerPos(playerid225.1647,121.0442,999.0786);
                
SetPlayerFacingAngle(playerid89.0733);
                
PlayerInfo[playerid][pInt] = 10;
                
zakonn++;
            }
        case 
19:
            {
                if(
forma[playerid] == 1)
                {
                    
SetPlayerSkin(playerid252);
                    
SetPlayerInterior(playerid0);
                    
SetPlayerPos(playerid241.7503,1852.6790,8.7578);
                    
PlayerInfo[playerid][pInt] = 0;
                    
SetPlayerVirtualWorld(playerid0);
                }
                
SetPlayerInterior(playerid0);
                
SetPlayerPos(playerid241.7503,1852.6790,8.7578);
                
PlayerInfo[playerid][pInt] = 0;
                
SetPlayerVirtualWorld(playerid0);
            }
        case 
21:
            {
                
SetPlayerInterior(playerid3);
                
SetPlayerPos(playerid211.3636,184.3113,1003.0313);
                
SetPlayerFacingAngle(playerid174.3579);
                
PlayerInfo[playerid][pInt] = 3;
                
SetPlayerVirtualWorld(playerid122);
            }
        case 
16:
            {
                
FreezePlayerForTime(playerid2000);
                
SetPlayerPos(playerid398.7616,277.1779,1008.6359);
                
SetPlayerInterior(playerid0);
                
SetPlayerFacingAngle(playerid180.5557);
                
SetPlayerVirtualWorld(playerid0);
                
lNews[playerid] = 0;
            }
        case 
6:
            {
                
SetPlayerInterior(playerid5);
                
SetPlayerPos(playerid1265.7104,-793.7453,1084.0078);
                
PlayerInfo[playerid][pInt] = 5;
                
SetPlayerVirtualWorld(playerid0);
            }
        case 
14:
            {
                
SetPlayerInterior(playerid5);
                
SetPlayerPos(playerid1265.7104,-793.7453,1084.0078);
                
PlayerInfo[playerid][pInt] = 5;
                
SetPlayerVirtualWorld(playerid1);
            }
        case 
11:
            {
                
SetPPos(playerid, -2044.1704,-262.8180,1071.9889,0.7341,0,0);
                
SetPlayerFacingAngle(playerid268.5241);
            }
        case 
5:
            {
                
SetPlayerInterior(playerid5);
                
SetPlayerPos(playerid1265.7104,-793.7453,1084.0078);
                
PlayerInfo[playerid][pInt] = 5;
                
SetPlayerVirtualWorld(playerid2);
            }
        case 
23:
            {
                
PlayerInfo[playerid][pInt] = 0;
                
SetPlayerInterior(playerid0);
                
SetPlayerVirtualWorld(playerid0);
                
SetPlayerPos(playerid, -1162.254,-1033.339,130.732);
                
SetPlayerFacingAngle(playerid180.1550);
            }
        case 
4:
            {
                
FreezePlayerForTime(playerid2000);
                
SetPlayerInterior(playerid15);
                
SetPlayerVirtualWorld(playerid4);
                
PlayerInfo[playerid][pInt] = 15;
                
SetPlayerPos(playerid366.0385,-22.7510,1076.4578);
                
SetPlayerFacingAngle(playerid179.8157);
                
Medics ++;
            }
        case 
12:
            {
                
SetPlayerPos(playerid, -61.2984,1364.5847,1080.2109);
                
SetPlayerFacingAngle(playerid100);
                
SetPlayerInterior(playerid,6);
                
SetPlayerVirtualWorld(playerid34);
                
PlayerInfo[playerid][pInt] = 6;
                
SetPlayerCheckpoint(playerid,-58.0202,1366.2246,1080.2109,1.0);
                
PicCP[playerid] = 12;
            }
        case 
18:
            {
                
SetPlayerInterior(playerid18);
                
SetPlayerVirtualWorld(playerid63);
                
SetPlayerPos(playerid, -223.84,1410.51,27.77);
                
RemovePlayerAttachedObject(playerid1);
                
PlayerInfo[playerid][pInt] = 18;
                
SetPlayerCheckpoint(playerid,-219.9122,1407.0699,27.7656,1.0);
                
PicCP[playerid] = 18;
            }
        case 
17:
            {
                
SetPlayerFacingAngle(playerid90.4248);
                
SetPlayerPos(playerid, -49.7558,1400.3553,1084.4297);
                
SetPlayerInterior(playerid,8);
                
SetPlayerVirtualWorld(playerid36);
                
PlayerInfo[playerid][pInt] = 8;
                
SetPlayerCheckpoint(playerid,-46.0471,1398.3119,1084.4297,1.0);
                
PicCP[playerid] = 17;
            }
        case 
13:
            {
                
SetPlayerInterior(playerid4);
                
SetPlayerVirtualWorld(playerid75);
                
SetPlayerFacingAngle(playerid263.0497);
                
SetPlayerPos(playerid303.63,309.25,999.15);
                
PlayerInfo[playerid][pInt] = 4;
                
SetPlayerCheckpoint(playerid,300.5920,307.3983,1003.5391,1.0);
                
PicCP[playerid] = 13;
            }
        case 
15:
            {
                
SetPlayerInterior(playerid3);
                
SetPlayerVirtualWorld(playerid0);
                
SetPlayerPos(playerid,  2496.012939,-1708.923217,1014.742187);
                
SetPlayerFacingAngle(playerid0.191693);
                
PlayerInfo[playerid][pInt] = 3;
                
SetPlayerVirtualWorld(playerid1);
                
SetPlayerCheckpoint(playerid,2492.4380,-1708.5669,1018.3368,1.0);
                
PicCP[playerid] = 15;
            }
        case 
8:
            {
                
SetPlayerInterior(playerid0);
                
PlayerInfo[playerid][pInt] = 0;
                
SetPlayerPos(playerid1658.60,2253.22,11.06);
                
SetPlayerFacingAngle(playerid0);
            }
        case 
1:
            {
                
SetPlayerInterior(playerid6);
                
SetPlayerPos(playerid235.8750,73.5106,1005.0391);
                
PlayerInfo[playerid][pInt] = 6;
                
SetPlayerVirtualWorld(playerid0);
                
zakonn++;
            }
        case 
7:
            {
                
FreezePlayerForTime(playerid2000);
                
SetPlayerInterior(playerid0);
                
SetPlayerPos(playerid417.0271,265.5677,1036.3860);
                
PlayerInfo[playerid][pInt] = 0;
            }
        default:
            {
                
FreezePlayerForTime(playerid2000);
                
SetPlayerInterior(playerid0);
                
PlayerInfo[playerid][pInt] = 0;
                
SetPlayerVirtualWorld(playerid0);
                
SetPlayerPos(playerid1725.9181,-1660.9187,20.8094);
            }
        }
    }
    return 
true;




Re: Проблема (Скопление домов RLS) - ZiGGi - 19.04.2015

Скорее всего используется функция SetSpawnInfo с нулевыми координатами. Решение: вставлять в SetSpawnInfo те координаты, на которых игрок должен появиться.