Üdv!
Ebben a tutorialban megmutatom, hogy hogyan készítsünk magunknak egyszerű, (mégis nagyszerű

) könnyen használható kezdő védelmet.
Kezdem is:
1.Beírjuk a használni kívánt inc-ket
#include <amxmodx>
#include <amxmisc>
#include <fun> // Isten mód beállításához
#include <hamsandwich> // Spawnolás lekéréséhez
2.Beállítjuk a definíciókat
#define PLUGIN "Hogyan készítsünk kezdő védelmet tutorial" // Plugin neve
#define VERSION "1.0" // Verzió
#define AUTHOR "Bence98007" // Készítő
3.plugin_initünkbe regisztráljuk a pluginunkat, és azt, hogy amikor a játékos feléled, lefutassunk rajta egy kódot
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
RegisterHam(Ham_Spawn, "player", "godmode", 1); // Ha a játékos lespawnol (újraéled) meghívjuk a "godmode" parancsot
}
4.Itt lecsekkoljuk, hogy él-e a játékosunk, és ha igen, beállítunk neki isten módot és egy szépen világító,
zöld aurát
public godmode(id)
{
if (is_user_alive(id)) // Ha a játékos él, lefuttatjuk rajta a kódot
{
set_user_godmode(id, 1) // Beállítjuk neki az isten módot
set_user_rendering(id, kRenderFxGlowShell, 0, 255, 0, kRenderTransAlpha, 255) // Itt beállítunk neki egy zöld aurát, hogy mások lássák, hogy Ő kezdő védelemben van
vissza(id) // Elindítjuk neki a visszaszámlálást, hogy levegyük róla az aurát, és az isten módot
}
}
5.Ez lesz az a visszaszámláló, amiben levesszük majd róla az isten módot, és az auránkat
public vissza(id)
{
set_task(0.1, "valtozo", id) // 0.1 tized másodperccel később, beállítjuk a változónkat, ami majd a kezdővédeelm idejét adja meg
set_task(0.2, "indit", id)
}
6.Ezt a részt hívja meg a visszaszámláló indításkor, mert ezzel tudjuk beállítani, hogy hány mp-ig tartson a kezdő védelem.
public valtozo(id)
{
ido[id] = 3 // Itt tudjuk beállítani, hogy hány másodpercig legyen védelembe
}
7.Itt kiírunk neki hud üzenetet, változónkból levonunk, és meghívjuk önmagát
public indit(id)
{
if(ido[id] > 0) // Ha az idő több, mint 0 meghívjuk megint önmagát
{
set_hudmessage(42, 255, 42, -1.0, 0.25, 0, 6.0, 1.0)
show_hudmessage(id, "..Kezdo vedelmed lejar %d mp mulva!..", ido[id]) // Kiírjuk neki hud üzenetben, hogy még védelembe van
ido[id]-- // Levonunk 1 et a változónkból, amivel csökkentjük a beállított időnket
set_task(1.0, "indit") // 1 másodpercel később elindítjuk megint a vissza számlálónkat
}
else // Ha az idő, már 0...
{
set_hudmessage(250, 0, 0, -1.0, 0.25, 0, 6.0, 1.0)
show_hudmessage(id, "..Mostmar nem vagy kezdo vedelemben!..") // Kiírjuk neki hud üziben, hogy vigyázzunk, mert már nincs kezdő védelme
set_user_godmode(id, 0) // Kikapcsoljuk az isten módját
set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 255) // Leszedjük róla a zöld auránkat
}
}
Megjegyzések:A 4. pontban, azért fontos hogy leellenőrizzük, hogy él-e a játékos, mert lehet hogy kilépett, és akkor feleslegesen futtatjuk le rajta a pluginunkat.
És végül maga a pluginunk, kommentek nélkül:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <hamsandwich>
#define PLUGIN "Hogyan készítsünk kezdő védelmet tutorial"
#define VERSION "1.0"
#define AUTHOR "Bence98007"
new ido[33]
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
RegisterHam(Ham_Spawn, "player", "godmode", 1);
}
public godmode(id)
{
if (is_user_alive(id))
{
set_user_godmode(id, 1)
set_user_rendering(id, kRenderFxGlowShell, 0, 255, 0, kRenderTransAlpha, 255)
vissza(id)
}
}
public vissza(id)
{
set_task(0.1, "valtozo", id)
set_task(0.2, "indit", id)
}
public valtozo(id)
{
ido[id] = 3
}
public indit(id)
{
if(ido[id] > 0)
{
set_hudmessage(42, 255, 42, -1.0, 0.25, 0, 6.0, 1.0)
show_hudmessage(id, "..Kezdo vedelmed lejar %d mp mulva!..", ido[id])
ido[id]--
set_task(1.0, "indit")
}
else
{
set_hudmessage(250, 0, 0, -1.0, 0.25, 0, 6.0, 1.0)
show_hudmessage(id, "..Mostmar nem vagy kezdo vedelemben!..")
set_user_godmode(id, 0)
set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 255)
}
}
Ha valami nem érthető, vagy csak kérdésed lenne, írj egy kommentet alulra!A plugin sma-ja:
Csatolmány:
kezdovedelem.sma [2.3KiB]
Letöltve 37 alkalommal.