Szerző Téma: Autómatikus kapu help  (Megtekintve 1153 alkalommal)

Nem elérhető BoSS

  • 816
    • Profil megtekintése
Autómatikus kapu help
« Dátum: 2012. május 01. - 10:23:23 »
0 Show voters
Sziasztok elkészítettem azzal amit GameStar rakott fel kapu kezelõ progit...
Ezt.
 
#include <a_samp>
new bool:open = false, gate, timer;
forward AutoCheck();
public OnFilterScriptInit()
{
    timer = SetTimer(\"AutoCheck\", 2500, 1);
    gate = CreateObject(983, 60.200000762939, -249.5, 1.2999999523163, 0.0000, 0.0000, 0.0000, 50.0);
    return 1;
}
public OnFilterScriptExit()
{
    KillTimer(timer);
    DestroyObject(gate);
    return 1;
}
public AutoCheck()
{
    new bool:o;
    for(new i = 0; i < GetMaxPlayers(); i++) if(IsPlayerConnected(i))
    {
        if(IsPlayerInRangeOfPoint(i,8.0,60.200000762939, -249.5, 1.2999999523163))
        {
            o = true;
            if(!open) MoveObject(gate, 67.400001525879, -249.60000610352, 1.299, 2.0);
            break;
        }
    }
    if(!o && open) MoveObject(gate, 60.200000762939, -249.5, 1.2999999523163, 2.0);
    return 1;
}

 
DE berakom a modba így
 
new bool:open = false, gate, timer;
forward AutoCheck();
public OnFilterScriptExit()
{
    KillTimer(timer);
    DestroyObject(gate);
    return 1;
}
public AutoCheck()
{
    new bool:o;
    for(new i = 0; i < GetMaxPlayers(); i++) if(IsPlayerConnected(i))
    {
        if(IsPlayerInRangeOfPoint(i,8.0,60.200000762939, -249.5, 1.2999999523163))
        {
            o = true;
            if(!open) MoveObject(gate, 67.400001525879, -249.60000610352, 1.299, 2.0);
            break;
        }
    }
    if(!o && open) MoveObject(gate, 60.200000762939, -249.5, 1.2999999523163, 2.0);
    return 1;
public OnGameModeInit()
{
    timer = SetTimer(\"AutoCheck\", 2500, 1);
    gate = CreateObject(983, 60.200000762939, -249.5, 1.2999999523163, 0.0000, 0.0000, 0.0000, 50.0);
    return 1;
}

 
Az a bajom,hogy a kapu object sem úgy áll ahogy beraktam a mappba,én keresztbe raktam itt meg ellentétesen van,és amikor kinyilik akkor azután nem zárodik vissza.
Mi a teendõ?Vagy mit és hol rontottam el?Esetleg kijavítanátok jóra?
Köszi elõre is a helpet.

Autómatikus kapu help
« Válasz #1 Dátum: 2012. május 01. - 11:22:46 »
0 Show voters
Hello!Nekem is volt ilyen frissisd az object kezelõ-det!Elvileg utána müködnie kéne.

Nem elérhető BoSS

  • 816
    • Profil megtekintése
Autómatikus kapu help
« Válasz #2 Dátum: 2012. május 01. - 11:24:54 »
0 Show voters
Idézetet írta: Sewor date=1335864166\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"20862\" data-ipsquote-contentclass=\"forums_Topic
Hello!Nekem is volt ilyen frissisd az object kezelõ-det!Elvileg utána müködnie kéne.
 
03d-t használok és ahozz az legújabb van,meg jelenítõ a kaput is meg mindent csak fordítva rakja be és rosszul nyilik a kapu és bese csukodik.

Autómatikus kapu help
« Válasz #3 Dátum: 2012. május 01. - 11:34:37 »
0 Show voters
Valami olyant mondtak ,hogy forgást is be kell Incognito streamerénél állítani.

Üdv. Nocoxil

Autómatikus kapu help
« Válasz #4 Dátum: 2012. május 01. - 11:49:12 »
0 Show voters
Próbáld meg így:
 

new gate;
OnGamemode....{
gate=CreateDynamicObject(983, 60.200000762939, -249.5, 1.2999999523163, 0.0000, 0.0000, 0.0000, 50.0);
return 1;
}
public OnPlayerUpdate(playerid)
{
if(IsPlayerInRangeOfPoint(playerid,8,x,y,z kordináta))
{
MoveDynamicObject(gate,67.400001525879, -249.60000610352, 1.299,3);//hova menyen a kapu
SetTimer(\"close\",4000,0);//becsukási ideje
return 1;
}
  return 1;
}
forward close();
public close()
{
MoveDynamicObject(gate,60.200000762939, -249.5, 1.2999999523163,3);//becsukás kordináció
return 1;
}

Nem elérhető zeteni

  • 1970
  • Ex-Scripter
    • Profil megtekintése
Autómatikus kapu help
« Válasz #5 Dátum: 2012. május 01. - 12:51:48 »
0 Show voters
A modba minek van OnFilterScriptExit?

Nem elérhető BoSS

  • 816
    • Profil megtekintése
Autómatikus kapu help
« Válasz #6 Dátum: 2012. május 01. - 13:10:30 »
0 Show voters
Idézetet írta: zeteni date=1335869508\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"20862\" data-ipsquote-contentclass=\"forums_Topic
A modba minek van OnFilterScriptExit?
 
Õ Itt véletlen maradt bent,de a módban nem hagytam benne...

Autómatikus kapu help
« Válasz #7 Dátum: 2012. május 01. - 18:16:13 »
0 Show voters
Huhuhu.
Idézetet írta: Sewor date=1335865752\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"20862\" data-ipsquote-contentclass=\"forums_Topic
Próbáld meg így:
 

new gate;
OnGamemode....{
gate=CreateDynamicObject(983, 60.200000762939, -249.5, 1.2999999523163, 0.0000, 0.0000, 0.0000, 50.0);
return 1;
}
public OnPlayerUpdate(playerid)
{
if(IsPlayerInRangeOfPoint(playerid,8,x,y,z kordináta))
{
MoveDynamicObject(gate,67.400001525879, -249.60000610352, 1.299,3);//hova menyen a kapu
SetTimer(\"close\",4000,0);//becsukási ideje
return 1;
}
  return 1;
}
forward close();
public close()
{
MoveDynamicObject(gate,60.200000762939, -249.5, 1.2999999523163,3);//becsukás kordináció
return 1;
}

 

Szerintem eddig ez a legjobb. Ezt valaki belerakja egy hosszabb terjedelmû módba nemcsak a módot, de a szervergépet is kinyiffantja ;)
1.Hiba: OnPlayerUpdate(playerid) egy másodperc alatt kb 20x fut le. Akkor ha azon a pizíción van elindítja neki 1mp-ben 20x a \"close\" tájmert ;)
2.Hiba: Ettõl , hogy te is leirtad az objectet más változóval nem fog visszafordulni.
Javaslat: Keress egy frissebb verziót. Vagy frissítsd te magad ;)
 :laugh:

Autómatikus kapu help
« Válasz #8 Dátum: 2012. május 02. - 07:19:50 »
0 Show voters
    new gate,
bool:gopend,
gtimer;
    OnGamemode....{
    gate=CreateDynamicObject(983, 60.200000762939, -249.5, 1.2999999523163, 0.0000, 0.0000, 0.0000, 50.0);
    gopend = false;
    return 1;
    }
    public OnPlayerUpdate(playerid)
    {
            if(IsPlayerInRangeOfPoint(playerid,8,x,y,z kordináta) && gopend == false)
            {
            Killtimer(gtimer);
            MoveDynamicObject(gate,67.400001525879, -249.60000610352, 1.299,3);//hova menyen a kapu
            gtimer = SetTimer(\"close\",4000,0);//becsukási ideje
            gopend = true
            return 1;
            }
      return 1;
    }
    forward close();
    public close()
    {
            MoveDynamicObject(gate,60.200000762939, -249.5, 1.2999999523163,3);//becsukás kordináció
            gopend = false;
            return 1;
    }

 
Így jó, és nem kezdi el 20x ugyanazt.


Ajánlom, hogy használj valami include-t, ami kapukkal foglalkozik. Az egyszerûbb, és mivel nem kezdõk írták, nem terheli annyira a szervert.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal