GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: Sanyko - 2016. március 22. - 21:28:08

Cím: Fagyasztás
Írta: Sanyko - 2016. március 22. - 21:28:08
Sziasztok!
Azt szeretném kérdezni hogy is kell olyan csinálni hogy pl valaki kijön/bemegy azt lefagyasztja míg be nem töltenek az objectek? :hmmm:
UI:RP mod
Cím: Fagyasztás
Írta: BackUP - 2016. március 22. - 21:35:11
Elindítasz neki egy timert, amikor a pozícióját megváltoztatod, tetszőleges értékkel. Ugyanekkor a lefagyasztod a játékost, és mikor lejár a timer pedig felolvasztod, ilyen egyszerű. :)
2 függvényre van szükséged hozzá(+ egyéni dolgok amiket te készítesz):
Lefagyasztás: TogglePlayerControllable
SetTimerEx: SetTimerEx
Direkt nem írom meg a szkriptet, mert akkor sosem tanulod meg. :) Majd próbálkozz és ha kész egy próbaszkripted, és nem működik, és nem érted(de átnézted legalább 8x) akkor szólj és küld el a szkriptet ;)
Cím: Fagyasztás
Írta: Sanyko - 2016. március 22. - 21:44:46
Idézetet írta: BackUP date=1458678911\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"59928\" data-ipsquote-contentclass=\"forums_Topic
Elindítasz neki egy timert, amikor a pozícióját megváltoztatod, tetszőleges értékkel. Ugyanekkor a lefagyasztod a játékost, és mikor lejár a timer pedig felolvasztod, ilyen egyszerű. :)
2 függvényre van szükséged hozzá(+ egyéni dolgok amiket te készítesz):
Lefagyasztás: TogglePlayerControllable
SetTimerEx: SetTimerEx
Direkt nem írom meg a szkriptet, mert akkor sosem tanulod meg. :) Majd próbálkozz és ha kész egy próbaszkripted, és nem működik, és nem érted(de átnézted legalább 8x) akkor szólj és küld el a szkriptet ;)
 
Nem jön be az oldal :/
Cím: Fagyasztás
Írta: BackUP - 2016. március 22. - 21:47:17
Akkor megint szar a hivatalos wiki :/
Tessék sampfórumos linkek:
SetTimerEx
TogglePlayerControllable

Dupla hozzászólás automatikusan összefûzve. ( 2016. március 22. - 21:49:16 )

Bár lényegtelen szkriptileg, ill. nézőpont kérdése, de én azt ajánlom, hogy a \'TogglePlayerControllable\' függvénynél a \'toggle\' helyén ne 1 és 0 értékeket adj meg, hanem true(igaz - 1), és false(hamis - 0) értékekkel, szerintem könnyebben átlátható a szemnek mikor sok kódod van már a környezetében. :)
Cím: Fagyasztás
Írta: Sanyko - 2016. március 22. - 22:13:38
forward belepes(playerid);
if(PlayerToPointStripped(1, playerid,-2627.4290,2024.6559,8.4660, cx,cy,cz))
{//VÁROSHÁZA BE / BS
SetPlayerVirtualWorld(playerid, 27);
GameTextForPlayer(playerid, \"~w~Varoshaza\", 5000, 1);
SetPlayerInterior(playerid, 10);
SetPlayerPos(playerid,246.375991,109.245994,1003.218750);
PlayerInfo[playerid][pInt] = 10;
TogglePlayerControllable(playerid,0);
SetTimerEx(\"belepes\", 5000, false, \"i\", playerid);
}
public belepes(playerid)
{
    SendClientMessage(playerid, -1, \"Objectek betöltve\");
    return 1;
}

 
Így? Már csak az kéne h 5 másodperc mulva felolvasztja
Cím: Fagyasztás
Írta: BackUP - 2016. március 22. - 22:22:31
Kicsit gondolkozz, lefagyasztani már letudod, ott a függvény ugyanazzal kell felolvasztani is. :) Na de hol? Ez a kérdés ;)
Cím: Fagyasztás
Írta: Sanyko - 2016. március 22. - 22:24:32
Idézetet írta: BackUP date=1458681751\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"59928\" data-ipsquote-contentclass=\"forums_Topic
Kicsit gondolkozz, lefagyasztani már letudod, ott a függvény ugyanazzal kell felolvasztani is. :) Na de hol? Ez a kérdés ;)
 
Hmm nem bisztos hogy jó.
 
forward belepes(playerid);
if(PlayerToPointStripped(1, playerid,-2627.4290,2024.6559,8.4660, cx,cy,cz))
{//VÁROSHÁZA BE / BS
SetPlayerVirtualWorld(playerid, 27);
GameTextForPlayer(playerid, \"~w~Varoshaza\", 5000, 1);
SetPlayerInterior(playerid, 10);
SetPlayerPos(playerid,246.375991,109.245994,1003.218750);
PlayerInfo[playerid][pInt] = 10;
TogglePlayerControllable(playerid,0);
SetTimerEx(\"belepes\", 5000, false, \"i\", playerid);
}
public belepes(playerid)
{
    SendClientMessage(playerid, -1, \"Objectek betöltése\");
    TogglePlayerControllable(playerid,1);
    return 1;
}
Cím: Fagyasztás
Írta: BackUP - 2016. március 22. - 22:34:13
Teszteld, jónaktűnik.
Cím: Fagyasztás
Írta: Sanyko - 2016. március 22. - 22:40:23
Idézetet írta: BackUP date=1458682453\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"59928\" data-ipsquote-contentclass=\"forums_Topic
Teszteld, jónaktűnik.
 
Köszönöm majd csak holnap tudom tesztelni! És ha tényleg jó akkor már értem az egészet! És csak azért írtam oda a felolvasztást mert ha a belép az initbe akkor lefagyasztja és elkezd 5Mp-et számolni. És ha lejár az 5Mp akkor kiírja hogy betöltve és egybe felolvasztja! Ennyit tanultam meg belőle
Cím: Fagyasztás
Írta: CMike - 2016. március 23. - 07:40:58
Hogy ne kelljen minden teleporthoz beirni a timert, használd az onplayerinteriorchange alatt a timert
Cím: Fagyasztás
Írta: Sanyko - 2016. március 23. - 18:39:01
Idézetet írta: CMike date=1458715258\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"59928\" data-ipsquote-contentclass=\"forums_Topic
Hogy ne kelljen minden teleporthoz beirni a timert, használd az onplayerinteriorchange alatt a timert
 
és azt hogy?
Cím: Fagyasztás
Írta: CMike - 2016. március 23. - 19:57:12
public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
    SetTimerEx(\"spawnvedelem\", 5000, false, \"i\", playerid);
    SendClientMessage(playerid,-1,\"Objectek betöltése..........\");
    TogglePlayerControllable(playerid,false);
    return 1;
}

 

forward spawnvedelem(playerid);

 

public spawnvedelem(playerid)
{
TogglePlayerControllable(playerid,true);
SendClientMessage(playerid,-1,\"Objectek betöltve!\");
return1;
}

 
Ha esetélegvalami nem lenne jó írj, csak böngészőbe írtam tesztelés nélkül, de szerintem jó