hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.03.28. 14:37



Jelenlévő felhasználók

Jelenleg 218 felhasználó van jelen :: 1 regisztrált, 0 rejtett és 217 vendég

A legtöbb felhasználó (1565 fő) 2020.11.21. 11:26-kor tartózkodott itt.

Regisztrált felhasználók: Google [Bot] az elmúlt 5 percben aktív felhasználók alapján

Utoljára aktív
Ahhoz hogy lásd ki volt utoljára aktív, be kell jelentkezned.



Az oldal teljeskörű
használatához regisztrálj.

Regisztráció

Kereső


Új téma nyitása  Hozzászólás a témához  [ 3 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: [TUT] Pontrendszer + Bolt
HozzászólásElküldve: 2016.08.07. 22:06 
Offline
SM Fejlesztő
Avatar

Csatlakozott: 2012.10.18. 15:58
Hozzászólások: 2486
Megköszönt másnak: 28 alkalommal
Megköszönték neki: 132 alkalommal
Üdv, [profil]CrB[/profil] tutoriáljában bemutatott pontrendszerhez hasonlót fogunk irni sourcepawn-ban.
Kezdjünk hozzá.
  1. #include <sourcemod> //szükséges függvénykönyvtár
  2. new pont[64]; //egy tömb 64 elemmel, ugyanis 64 slotos lehet egy játékszerver szerver
  3. /*
  4. *        Alapból 0 ponttal indul a player, későbbiekben egy mentés tutorial varhato ezzel kapcsolatban.
  5. */
  6. public OnPluginStart() // Plugin kezdése
  7. {
  8.         HookEvent("player_death", Event_PlayerDeath); // Halál event, pontokhoz kell.
  9.     RegConsoleCmd("sm_bolt",dd,""); // Egy konzol parancs a bolt eléréséhez.
  10. }

Halál event:
  1. public Event_PlayerDeath(Handle:event, const String:name[], bool:dontBroadcast) //Halál event kifejtése
  2. {
  3.     new attacker = GetClientOfUserId(GetEventInt(event, "attacker")); //gyilkos lekérése
  4.  
  5.     pont[attacker] += 5; // öt pont hozzáadása a gyilkosnak.
  6.    
  7. }

Bolt:
  1. /*
  2. *
  3. * Menü készitésről már volt tutorialom, ajánlott elolvasni!
  4. */
  5. public Action:dd(client, args)
  6. {
  7.     new Handle:menu_handle = CreateMenu(Menu_CallBack);
  8.    
  9.     SetMenuTitle(menu_handle, "Szerver bolt!");
  10.     AddMenuItem(menu_handle, "func1", "200HP ( 30 pont )");  //példa menüpont
  11.     AddMenuItem(menu_handle, "func2", "16000$ ( 20 pont )");  //példa menüpont
  12.     SetMenuPagination(menu_handle, 7);
  13.     SetMenuExitButton(menu_handle, true);
  14.     DisplayMenu(menu_handle, client, 200);
  15. }

Menü kifejtése:
  1. public Menu_CallBack(Handle:menu_handle, MenuAction:action, Client, Position)
  2. {
  3.     if(action == MenuAction_Select)
  4.     {
  5.         decl String:Item[20];    
  6.         GetMenuItem(menu_handle, Position, Item, sizeof(Item));    
  7.        
  8.         if(StrEqual(Item, "func1"))  //első menüpont
  9.         {
  10.             if(pont[Client] >= 30) // ha van 30 pontja a Client-nek
  11.             {
  12.                 PrintToChat(Client, "200HP-d lett!"); //Kiirás
  13.                 SetEntityHealth(Client, 200); //200hp megadása
  14.                 pont[Client] -= 30; //30 pont levétele.
  15.             }
  16.             else PrintToChat(Client, "Nincs elég pontod!"); //Ha nincs 30 pontja a Clientnek, illetve kiirás.
  17.         }
  18.         else if(StrEqual(Item, "func2"))    //...
  19.         {
  20.             if(pont[Client] >= 20) //Ha van 20 pontja
  21.             {
  22.                 PrintToChat(Client, "16000$-od lett!"); //kiirás
  23.                 SetEntProp(Client, Prop_Send, "m_iAccount", 16000); //16000$ megadása
  24.                 pont[Client] -= 20; //20 pont levétele.
  25.             }
  26.             else PrintToChat(Client, "Nincs elég pontod!"); //Ha nincs 20pontja a Clientnek, illetve kiirás.
  27.         }
  28.     } else if(action == MenuAction_End)
  29.     {
  30.         CloseHandle(menu_handle);
  31.     }
  32. }


Egész plugin egybe:

  1. /* HLmod.hu */
  2.  
  3. #include <sourcemod>
  4.  
  5.  
  6. new pont[64];
  7.  
  8. public OnPluginStart()
  9. {
  10.     RegConsoleCmd("sm_bolt",dd,"");
  11.     HookEvent("player_death", Event_PlayerDeath);
  12. }
  13. public Event_PlayerDeath(Handle:event, const String:name[], bool:dontBroadcast)
  14. {
  15.     new attacker = GetClientOfUserId(GetEventInt(event, "attacker"));  
  16.    
  17.     pont[attacker] += 5;
  18.    
  19. }
  20.  
  21.  
  22. public Action:dd(client, args)
  23. {
  24.     new Handle:menu_handle = CreateMenu(Menu_CallBack);
  25.    
  26.     SetMenuTitle(menu_handle, "Szerver bolt!");
  27.     AddMenuItem(menu_handle, "func1", "200HP ( 30 pont )");
  28.     AddMenuItem(menu_handle, "func2", "16000$ ( 20 pont )");
  29.     SetMenuPagination(menu_handle, 7);
  30.     SetMenuExitButton(menu_handle, true);
  31.     DisplayMenu(menu_handle, client, 200);
  32. }
  33. public Menu_CallBack(Handle:menu_handle, MenuAction:action, Client, Position)
  34. {
  35.     if(action == MenuAction_Select)
  36.     {
  37.         decl String:Item[20];    
  38.         GetMenuItem(menu_handle, Position, Item, sizeof(Item));    
  39.        
  40.         if(StrEqual(Item, "func1"))  
  41.         {
  42.             if(pont[Client] >= 30)
  43.             {
  44.                 PrintToChat(Client, "200HP-d lett!");
  45.                 SetEntityHealth(Client, 200);
  46.                 pont[Client] -= 30;
  47.             }
  48.             else PrintToChat(Client, "Nincs elég pontod!");
  49.         }
  50.         else if(StrEqual(Item, "func2"))    //...
  51.         {
  52.             if(pont[Client] >= 20)
  53.             {
  54.                 PrintToChat(Client, "16000$-od lett!");
  55.                 SetEntProp(Client, Prop_Send, "m_iAccount", 16000);
  56.                 pont[Client] -= 20;
  57.             }
  58.             else PrintToChat(Client, "Nincs elég pontod!");
  59.         }
  60.     } else if(action == MenuAction_End)
  61.     {
  62.         CloseHandle(menu_handle);
  63.     }
  64. }


Remélem hasznotokra vált.

maxi.


Off Topic
Changelog:
- Egyenlőre nincs

_________________
www.akosvagyok.hu


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: [TUT] Pontrendszer + Bolt
HozzászólásElküldve: 2016.08.08. 10:14 
Offline
Tiszteletbeli
Avatar

Csatlakozott: 2011.09.18. 13:01
Hozzászólások: 4270
Megköszönt másnak: 55 alkalommal
Megköszönték neki: 513 alkalommal
Nincs sok szoveg de belenyomhattad volna a multilanguage rejtelyeit mert ugye ez sourcemod ott pedig izi es hasznos.

_________________
Idk. Csak ugy funbooo.
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: [TUT] Pontrendszer + Bolt
HozzászólásElküldve: 2016.08.08. 10:27 
Offline
SM Fejlesztő
Avatar

Csatlakozott: 2012.10.18. 15:58
Hozzászólások: 2486
Megköszönt másnak: 28 alkalommal
Megköszönték neki: 132 alkalommal
Persze, lehetett volna itt nagyon sok mindenről beszélni. Alapvetően nagyon felületesen írtam le, nem véletlenül. Fele így sem olvassa végig.

_________________
www.akosvagyok.hu


Hozzászólás jelentése
Vissza a tetejére
   
Hozzászólások megjelenítése:  Rendezés  
Új téma nyitása  Hozzászólás a témához  [ 3 hozzászólás ] 


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 1 vendég


Nyithatsz új témákat ebben a fórumban.
Válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.
Nem küldhetsz csatolmányokat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB® Forum Software © phpBB Limited
Magyar fordítás © Magyar phpBB Közösség
Portal: Kiss Portal Extension © Michael O'Toole