Szerző Téma: GM-be kell beilleszteni | Töltés...  (Megtekintve 2922 alkalommal)

GM-be kell beilleszteni | Töltés...
« Dátum: 2010. Október 03. - 19:47:00 »
+1
Ittvan néhány kód amit a gamemode-ba kell beilleszteni,mert ha scriptbe teszem akkor nem mûködik tökéletesen :D
Szükséges include (progress): http://toribio.pastebin.com/TrJXUKtC
Mikor elõször spawnol a gyerek akkor elkezdi tölteni a gamet...igazábol csak díszítésnek jó,meg arra,hogy elolvassák,hogy mi a szerver lényege meg amit odaírsz szóval hasznos is.
Kép:
http://kephost.hu/image-7946_4CA8BF72.jpg
Mód elejére:
 
#include <progress>
//#define COLOR_WHITE 0xFFFFFFAA
#define TOLTES 10 //ide írd,hogy hány mp alatt töltõdjön be
#define RETURN return 1; }

 
Ezeket is valahova az elejére:
 
new Bar:loading;
new bool:betoltott[MAX_PLAYERS];
new Text:toltes;
new Text:jatek;
forward toltodikamap1(playerid);
forward toltodikamap2(playerid);
forward toltodikamap3(playerid);
forward toltodikamap4(playerid);
forward toltodikamap5(playerid);
forward toltodikamap6(playerid);

 
Ezeket valamelyik public fölé:
 
public toltodikamap1(playerid)
{
SetProgressBarValue(loading, 20);
UpdateProgressBar(loading, playerid);
RETURN
public toltodikamap2(playerid)
{
SetProgressBarValue(loading, 40);
UpdateProgressBar(loading, playerid);
RETURN
public toltodikamap3(playerid)
{
SetProgressBarValue(loading, 60);
UpdateProgressBar(loading, playerid);
RETURN
public toltodikamap4(playerid)
{
SetProgressBarValue(loading, 80);
UpdateProgressBar(loading, playerid);
RETURN
public toltodikamap5(playerid)
{
SetProgressBarValue(loading, 100);
UpdateProgressBar(loading, playerid);
RETURN
public toltodikamap6(playerid)
{
HideProgressBarForPlayer(playerid,loading);
SetPlayerVirtualWorld(playerid,0);
betoltott[playerid] = true;
SpawnPlayer(playerid);
SetCameraBehindPlayer(playerid);
TogglePlayerControllable(playerid,true);
TextDrawHideForPlayer(playerid,toltes);
TextDrawHideForPlayer(playerid,jatek);
RETURN

 
OnPlayerDisconnect alá:
 
betoltott[playerid] = false;

 
OnGameModeInit alá:
 
loading = CreateProgressBar(374.00, 366.00, 234.50, 14.19, 1687547306, 100.0);
toltes = TextDrawCreate(374,350,\"~r~Loading...\");
TextDrawFont(toltes,1);
TextDrawSetShadow(toltes,0);
jatek = TextDrawCreate(68,265,\"[HUN] Szerverem~n~~y~jatekmod lenyege: olj meg minel tobb embert~n~~y~es szerezz minel tobb pontot~n~~r~Segitsegert /help teleportok /tele~n~~g~Jo jatekot kivan az admin csapat!\");
TextDrawColor(jatek,0x33AA33AA);
TextDrawFont(jatek,1);

 
OnGameModeExit alá:
 
    DestroyProgressBar(loading);
    TextDrawDestroy(toltes);
TextDrawDestroy(jatek);

 
OnPlayerSpawn alá:
 
    if(betoltott[playerid] == false){
    new rand = random(3);
    new cucc = TOLTES * 1000 - 8000;
    new cucc2 = TOLTES * 1000 - 6000;
    new cucc3 = TOLTES * 1000 - 4000;
    new cucc4 = TOLTES * 1000 - 2000;
    new cucc5 = TOLTES * 1000;
    new cucc6 = TOLTES * 1000 + 500;
    SetTimerEx(\"toltodikamap1\",cucc,0,\"i\",playerid);
    SetTimerEx(\"toltodikamap2\",cucc2,0,\"i\",playerid);
    SetTimerEx(\"toltodikamap3\",cucc3,0,\"i\",playerid);
    SetTimerEx(\"toltodikamap4\",cucc4,0,\"i\",playerid);
    SetTimerEx(\"toltodikamap5\",cucc5,0,\"i\",playerid);
    SetTimerEx(\"toltodikamap6\",cucc6,0,\"i\",playerid);
    SetPlayerVirtualWorld(playerid,55);
    TogglePlayerControllable(playerid,false);
    ShowProgressBarForPlayer(playerid,loading);
    TextDrawShowForPlayer(playerid,toltes);
    TextDrawShowForPlayer(playerid,jatek);
    if(rand == 0){
    SetPlayerCameraPos(playerid,141.9375,1927.7435,19.1933);
    SetPlayerCameraLookAt(playerid,153.0080,1922.2366,18.8875);
    SetPlayerPos(playerid,141.9375,1927.7435,26.1933);
    }
    if(rand == 1){
    SetPlayerCameraPos(playerid,1475.7966,-1647.6646,15.1484);
    SetPlayerCameraLookAt(playerid,1482.2134,-1640.1676,14.1484);
    SetPlayerPos(playerid,1475.7966,-1647.6646,20.1484);
    }
    if(rand == 2){
    SetPlayerCameraPos(playerid,-2741.7656,710.9208,42.1296);
    SetPlayerCameraLookAt(playerid,-2732.6184,718.2512,41.2734);
    SetPlayerPos(playerid,-2741.7656,710.9208,48.1296);
    }
    if(rand == 3){
    SetPlayerCameraPos(playerid,696.6507,-1737.3748,14.2125);
    SetPlayerCameraLookAt(playerid,705.6835,-1723.9795,8.6881);
    SetPlayerPos(playerid,696.6507,-1737.3748,19.2125);
    }
    }

 
Az textdrawot írjátok át arra amire akarjátok én csak valamit beírtam.
Illetve a betöltésnél mutatott képeket is le cserélhetitek.
Meg még annyival turbózhatjátok,hogy a progress bar vagy a loading felirat villog nagyon jól néz ki :D
Ha scriptbe teszem azért nemjó mert, elindítja a töltést csak aztán a GM OnPlayerSpawn része miatt lespawnoltatja a játékost vhova máshova és homályos lesz a ház,ezért kell GM-be copyzni.
Ha valamit kifelejtettem szóljatok :D
« Utoljára szerkesztve: 2011. November 13. - 12:10:09 írta APC »

Gang[St]e[R]

  • Vendég
GM-be kell beilleszteni | Töltés...
« Válasz #1 Dátum: 2010. Október 03. - 20:39:29 »
0
Elég jó script megin csak anyit tok mondani hogy te csak jó scriptet tudsz irni megnéztem a pastebint.
OFF: Új l4d szervert csinálsz?

Nem elérhető Kinder

  • 707
    • Profil megtekintése
GM-be kell beilleszteni | Töltés...
« Válasz #2 Dátum: 2010. Október 03. - 21:20:27 »
0
Ez nekem is tetszik :D

GM-be kell beilleszteni | Töltés...
« Válasz #3 Dátum: 2010. Október 03. - 21:47:08 »
0
köszi :D
OFF:Ezt ki mondta? nem akarok

Gang[St]e[R]

  • Vendég
GM-be kell beilleszteni | Töltés...
« Válasz #4 Dátum: 2010. Október 04. - 18:44:26 »
0
OFF: A képen ot volt ,hogy left 4 dead szerver meg hogy ölj meg minél több ember té seböl következtettem.

GM-be kell beilleszteni | Töltés...
« Válasz #5 Dátum: 2010. Október 04. - 21:45:09 »
0
OFF:ja nem csak vmit kikellett találni, a szerót meg a régi l4d-hez használtam tesztszerónak csak még nem írtam át a nevét

GM-be kell beilleszteni | Töltés...
« Válasz #6 Dátum: 2010. Október 05. - 15:57:41 »
0
Tetszik gratula!  ;)

Nem elérhető Popec16

  • 1267
    • Profil megtekintése
GM-be kell beilleszteni | Töltés...
« Válasz #7 Dátum: 2010. Október 06. - 20:13:33 »
0
Rég voltam már fent fórumon , nem hiszem hogy ismerlek de a scripted elég hatékonynak tûnik!
Remek munka!

GM-be kell beilleszteni | Töltés...
« Válasz #8 Dátum: 2010. Október 07. - 12:00:19 »
0
megcsinálnád pls ezt nekem FS-be?

GM-be kell beilleszteni | Töltés...
« Válasz #9 Dátum: 2010. Október 07. - 14:21:57 »
0
Idézetet írta: Szilord date=1286128020\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"3654\" data-ipsquote-contentclass=\"forums_Topic
...mert ha scriptbe teszem akkor nem mûködik tökéletesen :D
 
odaírtam elejére:D Ha filterscriptbe teszem akkor a képek homályosak lesznek,mert a GameMode lespawnoltatja a játékost,csak akkor lesz tökéletes ha gamemodeba van beillesztve.

GroX

  • Vendég
GM-be kell beilleszteni | Töltés...
« Válasz #10 Dátum: 2010. Október 07. - 14:29:39 »
0
Ezt sokkal egyszerûbben meg lehet oldani. Ez nem lesz elég gyors, és még pazarol is.
 
#include <a_samp>
#include <progress>
forward Load(playerid); //A Load funkció prototípusát létrehozzuk
forward Loaded(playerid); // Majd a Loaded funkcióét is.
forward UpdateBar(playerid); //Valamint a csík frissítõ funkciót
enum load_info //enumerátor létrehozása
{
   Bar:LoadBar, //Enumerátoron belül a \"csíkunk\" változója
   bool:Loading //Egy változó, ami segítségével figyelmünk alatt lehet hogy töltie a mapot, vagy nem
};
new PlayerInfo[MAX_PLAYERS][load_info]; //Mátrix létrehozása, a MAX_PLAYERS értékével, és az enumerátorunkkal
public Load(playerid)
{
   PlayerPlaySound(playerid, 1056, 0.0, 0.0, 0.0); //csak a móka kedvéért, egy kis hang
    PlayerInfo[playerid][LoadBar] = CreateProgressBar(10.00, 433.00, 620.50, 11.19, -83885825, 100.0); //Csík létrehozása
    SetProgressBarColor(PlayerInfo[playerid][LoadBar], 0xFFFFFFFF); //Színezés (jelen esetben fehér)
    SetProgressBarValue(PlayerInfo[playerid][LoadBar], 0.0); //Az értéket 0-ra állítjuk, tehát nem töltött még
   SetTimerEx(\"UpdateBar\",50+random(500),0,\"i\",playerid); //Idõzítõ elindítása a töltéshez
   PlayerInfo[playerid][Loading] = true; //És végül a változónkat igazra állítjuk, tehát most éppen \"tölti a mapot\"
   return 1;
}
public UpdateBar(playerid)
{
   SetProgressBarValue(PlayerInfo[playerid][LoadBar],GetProgressBarValue(PlayerInfo[playerid][LoadBar])+random(10)); //\"töltjük a csíkot\" véletlenszerû értékkel
   UpdateProgressBar(PlayerInfo[playerid][LoadBar],playerid); //Frissítjük a csíkot
   if(GetProgressBarValue(PlayerInfo[playerid][LoadBar]) >= 100) //Mikor 100, vagy nagyobb az értéke, jöhet a többi
   {
       Loaded(playerid); //azaz véget vetünk a töltésnek, mivel meghívjuk a befejezõ funkciót
       return 1; //visszatérés, hogy az idõzítõ ne fusson le
   }
   return SetTimerEx(\"UpdateBar\",50+random(500),0,\"i\",playerid); //ha még nem érte el a végét a csík, akkor \"tovább forog a kör\"
}
public Loaded(playerid)
{
   PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0); //hang megint, csak úgy, nem fontos
   DestroyProgressBar(PlayerInfo[playerid][LoadBar]); //Megsemmisítjük a csíkunkat
   PlayerInfo[playerid][Loading] = false; //hamisra állítjuk az értékét a változónknak, tehát nem \"tölti a mapot\"
   return 1;
}

 
Én így használom, nekem bevált :) Kicsit reálisan tölti, tehát véletlenszerûen növeli mindig. Vége meg akkor van, ha a csík értéke eléri a 100-at, vagy annál többet.
A \"Loading\" változónak itt most semmi jelentõsége nincs, azért hoztam létre, hát ha valaki használni fogja.
« Utoljára szerkesztve: 2010. Október 07. - 14:31:14 írta Fade »

GM-be kell beilleszteni | Töltés...
« Válasz #11 Dátum: 2010. Október 07. - 14:38:35 »
0
hm..nem is rossz  ;)

GroX

  • Vendég
GM-be kell beilleszteni | Töltés...
« Válasz #12 Dátum: 2010. Október 07. - 14:39:56 »
0
Amúgy ezen kívül a tieddel semmi baj. Csak a \"RETURN\"-t kis betûvel kellene írni, és hozzá egy paramétert (1).

GM-be kell beilleszteni | Töltés...
« Válasz #13 Dátum: 2010. Október 07. - 14:41:05 »
0
Idézetet írta: Fade date=1286455196\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"3654\" data-ipsquote-contentclass=\"forums_Topic
Amúgy ezen kívül a tieddel semmi baj. Csak a \"RETURN\"-t kis betûvel kellene írni, és hozzá egy paramétert (1).
 
a RETURN Definálva van return 1; } -re

GroX

  • Vendég
GM-be kell beilleszteni | Töltés...
« Válasz #14 Dátum: 2010. Október 07. - 14:43:22 »
0
Ja, akkor rendben van.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal