SA-MP Forums Archive
Скриптинг курилка - 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: Скриптинг курилка (/showthread.php?tid=111279)



Re: Скриптинг курилка - Mutha_X - 18.03.2017

При разбитии машиной объекта тоже самое происходит?


Re: Скриптинг курилка - Dalayma - 18.03.2017

да, использую Streamer_Update(playerid); в определенном радиусе в секундном таймере, скорее всего в этом проблема, но почему это распространяется даже на тех кто не в радиусе


Re: Скриптинг курилка - Mutha_X - 18.03.2017

Разрушенный вами объект и не должен быть разрушенным для еще не застримленных игроков, поскольку сервер очень ограниченно контролирует их разрушение и в стримере с этого не удаляются объекты.


Re: Скриптинг курилка - Dalayma - 18.03.2017

да я это прекрасно знаю, у меня проблема с игроками которые находятся в зоне стрима при разрушении объекта, то есть должны видеть как я ломаю забор или дверь, а у них он не ломается


Re: Скриптинг курилка - DartfoL - 18.03.2017

в сампе вообще нет синхронизации разрушения объектов. То, что сломанный объект разрушился и у других игроков - это хорошая такая случайность


Re: Скриптинг курилка - Mutha_X - 18.03.2017

В принципе через OnPlayerWeaponShot возможна принудительная синхронизация по разрушению объектов (точнее по удалению), но анимации разрушения у объекта не будет.


Re: Скриптинг курилка - DartfoL - 18.03.2017

а если кулаками?


Re: Скриптинг курилка - Dalayma - 18.03.2017

DartfoL если кулаками или машиной то другие видят это, если оружием нет. Mutha_X я вас обманул, машиной разбиваются, если гранату кинуть и объект сломался другие тоже видят. проблема только со стрелковым оружием


Re: Скриптинг курилка - stabker - 18.03.2017

Ставлю на то, что в OnPlayerWeaponShot в каких-то ситуациях (например, при стрельбе по объектам стримера) возвращается 0. Следовательно пуля не рисуется у окружающих и ничего не разрушает.


Re: Скриптинг курилка - Dalayma - 18.03.2017

PHP Code:
BadFloat(Float:x) return(>= 10.0 || <= -10.0) ?true:false;
public 
OnPlayerWeaponShot(playeridweaponidhittypehitidFloat:fXFloat:fYFloat:fZ)
{
    switch(
weaponid){ case 0..1839..54: return 1;}//invalid weapons
    
if(hittype != BULLET_HIT_TYPE_NONE) if( !( -1000.0 <= fX <= 1000.0 ) || !( -1000.0 <= fY <= 1000.0 ) || !( -1000.0 <= fZ <= 1000.0 ) ) return 0;
    new 
Float:vpos[3];
    
GetPlayerPos(playeridvpos[0], vpos[1], vpos[2]);
    if (
weaponid 22 || weaponid 38 || hittype 4) return 0;
    if(!(-
20000.0 <= vpos[2] <= 20000.0)) return 0;
    if (
hittype == BULLET_HIT_TYPE_PLAYER && hitid != INVALID_PLAYER_ID && (GetPVarInt(hitid"PlayerInAFK") > || !PData[playerid][spawned] || !PData[hitid][spawned])) return 0;
    if(
hittype == BULLET_HIT_TYPE_VEHICLE && hitid != INVALID_VEHICLE_ID)
    {
        if((
floatcmp(floatabs(fX), 100.0) == 1) || (floatcmp(floatabs(fY), 100.0) == 1) || (floatcmp(floatabs(fZ), 100.0) == 1)) return 0;
    }
    new 
Float:kLibPos[3];
    
GetPlayerCameraPos(playerid,kLibPos[0],kLibPos[1],kLibPos[2]);
    if ( 
kLibPos[2] < -50000.0 || kLibPos[2] > 50000.0 ) return 0;
    if(
hittype == BULLET_HIT_TYPE_PLAYER && (BadFloat(fX) || BadFloat(fY) || BadFloat(fZ))) return 0;
    if (
ServerInfo[AntiAim] == 1)
    {
    if(
ServerInfo[AntiCBug] == || GetPVarInt(playerid,"AntiC") == 1)
    {
    switch(
weaponid)
    {
        case 
23242534:
        {
            new
            
server_tick GetTickCount();
            if(
server_tick GetPVarInt(playerid"last_shot_player_tick") < 300 && server_tick GetPVarInt(playerid"last_key_is_pressed") > 1000 && ++last_shot_player{playerid} > && !IsPlayerInAnyVehicle(playerid))
        {
        new 
msg[256];
        
formatex(msg,"{00F200}*** {62FF62}Игрок %s (ID: %d) подозревается в использовании RapidFire/Auto +C (Weapon: %s).",PlayerInfo[playerid][pName],playerid,wName(weaponid));
        
MessageToAdmins(GREEN,msg);
        
last_shot_player{playerid} = 0;
        }
        
SetPVarInt(playerid"last_shot_player_tick"server_tick);
        }
    }
    }
    if(
hittype == BULLET_HIT_TYPE_PLAYER && IsPlayerConnected(hitid) && !IsPlayerNPC(hitid) && !IsPlayerInAnyVehicle(hitid))
        {
                new 
Float:Shot[3], Float:Hit[3];
                
GetPlayerLastShotVectors(playeridShot[0], Shot[1], Shot[2], Hit[0], Hit[1], Hit[2]);
                new 
playersurf GetPlayerSurfingVehicleID(playerid);
                new 
hitsurf GetPlayerSurfingVehicleID(hitid);
                new 
Float:targetpackets NetStats_PacketLossPercent(hitid);
                new 
Float:playerpackets NetStats_PacketLossPercent(playerid);
                if(~(
playersurf) && ~(hitsurf) && !IsPlayerInAnyVehicle(playerid) && !IsPlayerInAnyVehicle(hitid))
                {
                        if(!
IsPlayerAimingAtPlayer(playeridhitid) && !IsPlayerInRangeOfPoint(hitid5.0Hit[0], Hit[1], Hit[2]))
                        {
                                
AimbotWarnings[playerid] ++;
                                if(
AimbotWarnings[playerid] > 10 && targetpackets 2.0 && playerpackets 2.0)
                                {
                                                new 
msg[256];
                                                
formatex(msg,"{00F200}*** {62FF62}Игрок %s (ID: %d) подозревается в использовании AimBot/Joypad (Weapon: %s).",PlayerInfo[playerid][pName],playerid,wName(weaponid)); // [ProAim Detector #2]
                                                
MessageToAdmins(GREEN,msg);
                                                
AimbotWarnings[playerid] = 0;
                                }
                                return 
0;
                        }
                        else return 
1;
                }
                else return 
1;
    }
    }
    return 
1;




Re: Скриптинг курилка - Diman777 - 18.03.2017

PHP Code:
if(~(playersurf) && ~(hitsurf
~ разве так можно в Pawn?


Re: Скриптинг курилка - stabker - 18.03.2017

Quote:
Originally Posted by Diman777
View Post
PHP Code:
if(~(playersurf) && ~(hitsurf
~ разве так можно в Pawn?
Да.

Quote:
Originally Posted by Dalayma
View Post
PHP Code:
BadFloat(Float:x) return(>= 10.0 || <= -10.0) ?true:false;
public 
OnPlayerWeaponShot(playeridweaponidhittypehitidFloat:fXFloat:fYFloat:fZ)
{
    switch(
weaponid){ case 0..1839..54: return 1;}//invalid weapons
    
if(hittype != BULLET_HIT_TYPE_NONE) if( !( -1000.0 <= fX <= 1000.0 ) || !( -1000.0 <= fY <= 1000.0 ) || !( -1000.0 <= fZ <= 1000.0 ) ) return 0;
    new 
Float:vpos[3];
    
GetPlayerPos(playeridvpos[0], vpos[1], vpos[2]);
    if (
weaponid 22 || weaponid 38 || hittype 4) return 0;
    if(!(-
20000.0 <= vpos[2] <= 20000.0)) return 0;
    if (
hittype == BULLET_HIT_TYPE_PLAYER && hitid != INVALID_PLAYER_ID && (GetPVarInt(hitid"PlayerInAFK") > || !PData[playerid][spawned] || !PData[hitid][spawned])) return 0;
    if(
hittype == BULLET_HIT_TYPE_VEHICLE && hitid != INVALID_VEHICLE_ID)
    {
        if((
floatcmp(floatabs(fX), 100.0) == 1) || (floatcmp(floatabs(fY), 100.0) == 1) || (floatcmp(floatabs(fZ), 100.0) == 1)) return 0;
    }
    new 
Float:kLibPos[3];
    
GetPlayerCameraPos(playerid,kLibPos[0],kLibPos[1],kLibPos[2]);
    if ( 
kLibPos[2] < -50000.0 || kLibPos[2] > 50000.0 ) return 0;
    if(
hittype == BULLET_HIT_TYPE_PLAYER && (BadFloat(fX) || BadFloat(fY) || BadFloat(fZ))) return 0;
    if (
ServerInfo[AntiAim] == 1)
    {
    if(
ServerInfo[AntiCBug] == || GetPVarInt(playerid,"AntiC") == 1)
    {
    switch(
weaponid)
    {
        case 
23242534:
        {
            new
            
server_tick GetTickCount();
            if(
server_tick GetPVarInt(playerid"last_shot_player_tick") < 300 && server_tick GetPVarInt(playerid"last_key_is_pressed") > 1000 && ++last_shot_player{playerid} > && !IsPlayerInAnyVehicle(playerid))
        {
        new 
msg[256];
        
formatex(msg,"{00F200}*** {62FF62}Игрок %s (ID: %d) подозревается в использовании RapidFire/Auto +C (Weapon: %s).",PlayerInfo[playerid][pName],playerid,wName(weaponid));
        
MessageToAdmins(GREEN,msg);
        
last_shot_player{playerid} = 0;
        }
        
SetPVarInt(playerid"last_shot_player_tick"server_tick);
        }
    }
    }
    if(
hittype == BULLET_HIT_TYPE_PLAYER && IsPlayerConnected(hitid) && !IsPlayerNPC(hitid) && !IsPlayerInAnyVehicle(hitid))
        {
                new 
Float:Shot[3], Float:Hit[3];
                
GetPlayerLastShotVectors(playeridShot[0], Shot[1], Shot[2], Hit[0], Hit[1], Hit[2]);
                new 
playersurf GetPlayerSurfingVehicleID(playerid);
                new 
hitsurf GetPlayerSurfingVehicleID(hitid);
                new 
Float:targetpackets NetStats_PacketLossPercent(hitid);
                new 
Float:playerpackets NetStats_PacketLossPercent(playerid);
                if(~(
playersurf) && ~(hitsurf) && !IsPlayerInAnyVehicle(playerid) && !IsPlayerInAnyVehicle(hitid))
                {
                        if(!
IsPlayerAimingAtPlayer(playeridhitid) && !IsPlayerInRangeOfPoint(hitid5.0Hit[0], Hit[1], Hit[2]))
                        {
                                
AimbotWarnings[playerid] ++;
                                if(
AimbotWarnings[playerid] > 10 && targetpackets 2.0 && playerpackets 2.0)
                                {
                                                new 
msg[256];
                                                
formatex(msg,"{00F200}*** {62FF62}Игрок %s (ID: %d) подозревается в использовании AimBot/Joypad (Weapon: %s).",PlayerInfo[playerid][pName],playerid,wName(weaponid)); // [ProAim Detector #2]
                                                
MessageToAdmins(GREEN,msg);
                                                
AimbotWarnings[playerid] = 0;
                                }
                                return 
0;
                        }
                        else return 
1;
                }
                else return 
1;
    }
    }
    return 
1;

Ну так вот же наркомания:

PHP Code:
if(hittype != BULLET_HIT_TYPE_NONE) if( !( -1000.0 <= fX <= 1000.0 ) || !( -1000.0 <= fY <= 1000.0 ) || !( -1000.0 <= fZ <= 1000.0 ) ) return 0



Re: Скриптинг курилка - Diman777 - 18.03.2017

А как использовать ~? Для чего?


Re: Скриптинг курилка - stabker - 18.03.2017

Quote:
Originally Posted by Diman777
View Post
А как использовать ~? Для чего?
Вроде как обращает биты, т.е. 0101 поменяет на 1010.


Re: Скриптинг курилка - Dalayma - 18.03.2017

убрал, не помогло, та же ситуевина


Re: Скриптинг курилка - stabker - 18.03.2017

Quote:
Originally Posted by Dalayma
View Post
убрал, не помогло, та же ситуевина
1. Не разрушаются только объекты, созданные стримером или вообще все?
2. Есть ли что-то в OnPlayerShootDynamicObject?
3. Попробуйте полностью закомментировать OnPlayerWeaponShot и проверить.


Re: Скриптинг курилка - Dalayma - 18.03.2017

1. Не разрушаются только объекты, созданные стримером или вообще все?
Только стримером
2. Есть ли что-то в OnPlayerShootDynamicObject?
Не использовал никогда
3. Попробуйте полностью закомментировать OnPlayerWeaponShot и проверить.
Закомментировал, проблема не исчезла


Re: Скриптинг курилка - stabker - 18.03.2017

Quote:
Originally Posted by Dalayma
View Post
1. Не разрушаются только объекты, созданные стримером или вообще все?
Только стримером
2. Есть ли что-то в OnPlayerShootDynamicObject?
Не использовал никогда
3. Попробуйте полностью закомментировать OnPlayerWeaponShot и проверить.
Закомментировал, проблема не исчезла
Тогда последнее соображение, попробуйте вот это добавить в мод:

PHP Code:
public OnPlayerShootDynamicObject(playeridweaponidSTREAMER_TAG_OBJECT objectidFloat:xFloat:yFloat:z)
{
    return 
1;




Re: Скриптинг курилка - Dalayma - 18.03.2017

А это помогло, спасибо большое


Re: Скриптинг курилка - thebatya - 19.03.2017

Недавно начал работать с гит
Подскажите кто сталкивался с проблемой кодировки
У меня все файлы проекта в кодировке cp1251 и после пуша проекта на гитхаб все в кракозябрах

Локальный конфиг
PHP Code:
[core]
    
repositoryformatversion 0
    filemode 
false
    bare 
false
    logallrefupdates 
true
    symlinks 
false
    ignorecase 
true
    quotepath 
false
[i18n]
    
commitencoding cp1251
    logoutputencoding 
cp1251