Posts by -AVATAR-
A new update is now available, introducing seasons and more!
Latest hotfix: 0.8.0.1 (2024-12-20)
Latest hotfix: 0.8.0.1 (2024-12-20)
-
-
It comes from a different engine .
This is only a template -
Here you can have a little look at what I've written.
It's not finished yet. But you can also edit like .Source code with me
-
So hier erkläre ich mal die ganzen Funktionen:
[lua]
function OnPlayerCommandText(playerid, cmdtext)
local cmd,params = GetCommand(cmdtext);
if cmdtext == "/ahelp" then
CMD_AdminHelp(playerid);elseif cmd == "/kick" then
CMD_Kick(playerid,params);elseif cmd == "/ban" then
CMD_Ban(playerid,params);elseif cmd == "/kill" then
CMD_Kill(playerid,params);elseif cmd == "/tp" then
CMD_Teleport(playerid,params);elseif cmd == "/giveitem" then
CMD_GiveItem(playerid,params);
elseif cmd == "/time" then
CMD_Time(playerid,params);
elseif cmd == "/name" then
CMD_Name(playerid,params);
elseif cmd == "/color" then
CMD_Color(playerid,params);
end
end[/lua]
Hier sehen wir wenn der Administrator einen Befehl ein gibt kann er bestimme Funktionen ausführen.
Erklären wir erstmal diesen Teil[lua]function OnPlayerCommandText(playerid, cmdtext)
end
[/lua]So bei diesem Befehl "function OnPlayerCommandText(playerid, cmdtext)" setzen wir eine Funktion das man im Spiel einige Befehle nutzen kann.
Nun zu einigen Befehlen die man im Spiel eingeben kann
[lua]
if cmdtext == "/ahelp" then
CMD_AdminHelp(playerid);
elseif cmd == "/kick" then
CMD_Kick(playerid,params);
elseif cmd == "/ban" then
CMD_Ban(playerid,params);
elseif cmd == "/kill" then
CMD_Kill(playerid,params);
elseif cmd == "/tp" then
CMD_Teleport(playerid,params);
elseif cmd == "/giveitem" then
CMD_GiveItem(playerid,params);
elseif cmd == "/time" then
CMD_Time(playerid,params);
elseif cmd == "/name" then
CMD_Name(playerid,params);
elseif cmd == "/color" then
CMD_Color(playerid,params);
end
[/lua]
Hier haben wir einige Befehle gesetzt um später Funktionen zu schreiben, dass diese umsetzt.
Nehmen wir hier mal einen einfachen Befehl den jeder Server Besitzer kennen sollte
[lua]
elseif cmd == "/kick" then
CMD_Kick(playerid,params);
[/lua]
hier können wir schon herauslesen das der Spieler bei diesen Befehl vom Server gekickt werden soll.
Jetzt müssen wir noch die dazu gehörende Funktion Programmieren, dass zeige ich euch hier im Beispiel:
[lua]
function CMD_Kick(playerid, params)
if IsPlayerAdmin(playerid) == 1
then
local result,id,reason = sscanf(params,"ds");if result == 1
then
if IsPlayerConnected(id) == 1
then
for i = 0, MAX_SLOTS - 1
do
SendPlayerMessage(i,255,0,0,string.format("%s %s %s %s%s %s %s","(Server):",GetPlayerName(id),"has been kicked by",GetPlayerName(playerid),".","Reason:",reason));
endKick(id);
else
SendPlayerMessage(playerid,255,250,200,string.format("%s %d %s","(Server): Player ID",id,"is not connected with server."));
end
else
SendPlayerMessage(playerid,255,250,200,"Use: /kick (playerid) (reason)");
end
else
SendPlayerMessage(playerid,255,250,200,"(Server): You are not admin!");
end
end[/lua]
Ich werde das Tutorial später vervollständigen, da ich gerade keine Zeit mehr habe.
Für Fragen könnt ihr mich per PN anschreiben und bitte nur per PN. Damit dieser Thread übersichtlich bleibt.
Grüße,
-
[lua]function CMD_GiveItem(playerid, params)
if IsPlayerAdmin(playerid) == 1
then
local result,id,item,amount = sscanf(params,"dsd");if result == 1
then
if IsPlayerConnected(id) == 1
then
SendPlayerMessage(id,255,250,200,string.format("%s %d %s %s %s","You have received",amount,item,"from",GetPlayerName(playerid)));
SendPlayerMessage(playerid,255,250,200,string.format("%s %d %s %s %s","You gave",amount,item,"for",GetPlayerName(id)));
GiveItem(id,item,amount);
else
SendPlayerMessage(playerid,255,250,200,string.format("%s %d %s","(Server): Player ID",id,"is not connected with server."));
end
else
SendPlayerMessage(playerid,255,250,200,"Use: /giveitem (playerid) (iteminstance) (amount)");
end
else
SendPlayerMessage(playerid,255,250,200,"(Server): You are not admin!");
end
endfunction CMD_Time(playerid, params)
if IsPlayerAdmin(playerid) == 1
then
local result,hour,minute = sscanf(params,"dd");
if result == 1
then
SendMessageToAll(255,250,200,string.format("%s %s %s %d:%02d","(Server):",GetPlayerName(playerid),"set time at",hour,minute));
SetTime(hour,minute);
else
SendPlayerMessage(playerid,255,250,200,"Use: /time (hour) (minute)");
end
else
SendPlayerMessage(playerid,255,250,200,"(Server): You are not admin!");
end
endfunction CMD_Name(playerid, params)
if IsPlayerAdmin(playerid) == 1 then
local result,id,name = sscanf(params,"ds");if result == 1 then
if IsPlayerConnected(id) == 1 then
local adminname = GetPlayerName(playerid);
local beforename = GetPlayerName(id);
if SetPlayerName(id,name) == 1 then
SendMessageToAll(0,255,0,string.format("%s %s %s %s %s %s","Admin",adminname,"set name player",beforename,"to",name));
else
SendPlayerMessage(playerid,255,250,200,"(Server) Can't set name.");
end
else
SendPlayerMessage(playerid,255,250,200,string.format("%s %d %s","(Server): Player ID",id,"is not connected with server."));
end
else
SendPlayerMessage(playerid,255,250,200,"Use: /name (playerid) (name)");
end
else
SendPlayerMessage(playerid,255,250,200,"(Server) You are not admin!");
end
endfunction CMD_Color(playerid, params)
if IsPlayerAdmin(playerid) == 1 then
local result,id,r,g,b = sscanf(params,"dddd");
if result == 1 then
if IsPlayerConnected(id) == 1 then
local adminName = GetPlayerName(playerid);
SendPlayerMessage(id,255,250,200,string.format("%s %d %d %d %s %s","Your color was changed to",r,g,b,"by",adminName));
SetPlayerColor(id,r,g,b);
end
else
SendPlayerMessage(playerid,255,250,200,"Use: /color (playerid) (r) (g) (b)");
end
else
SendPlayerMessage(playerid,255,250,200,"(Server) You are not admin!");
end
end[/lua]Im weiteren Beitrag werde ich den Quelltext auseinander nehmen, um das ganze zu Verstehen.
-
Hallo liebe Community,
Ein Englisches Tutorial wird folgen, sobald ich dafür Zeit habe.
Da ich sehr viele Anfragen in Skype erhalten habe, und ich da nicht hinterherkomme, habe ich mich dazu entschlossen hier im Forum ein Tutorial zu schreiben.
Dies ist das erste Tutorial. Weitere werden folgen.
Schauen wir uns erstmal den Quellcode an, um erstmal einen einblick zu bekommen, wie das ungefähr aussehen muss.
Dies ist erstmal ein kleines Tutorial um die Funktionen erstmal kennen zu lernen.
INFO: Der Quelltext darf weiter gegeben werden! Nur soll im Quelltext mein Name darin stehen bleiben.
Um in LUA Programmieren zu können, empfehle ich den Editor Notepad++
So dann fangen wir mal, mit den einfachsten Befehlen an;
[lua]print("Hallo, Welt!")[/lua]
Hier haben wir der Befehl "print" Der Befehl "print" dient dazu das etwas auf dem Bildschirm ausgegeben wird. Deshalb haben wir hier
[lua]print("Hallo Welt!")
-- Hier haben wir den Befehl print("Hallo Welt!") in den Klammern kann auch dein Belibiger Text stehen z.B.
[/lua]hier zeigen wir das hier dein weiterer Text stehen könnte
[lua]print("Hallo liebe Welt!")
-- Hier haben wir einfach Hallo Welt mit einem Wort erweitert und zwar "liebe"
[/lua]Hier sehen wir das ich in dem Quelltext einige Kommentare mit rein geschrieben habe.
Sehen wir uns erstmal wieder den Befehl dazu an:
[lua]-- Dies ist ein Kommentar[/lua]
Da sehen wir das ich -- genommen habe um ein beliebiges Kommentar zu schreiben. Achtet aber darauf das es nur eine Zeile geht. Um über mehrere Zeilen ein Kommentar zu schreiben benutzen wir den Befehl:
[lua]
--[[
Dies ist ein Kommentar.
Dieses Kommentar geht über mehrere Zeilen.
Du kannst es gerne mal ausprobieren.
]][/lua]Herzlichen Glückwunsch! Du hast gerade dein eigenes kleines Programm geschrieben, wo du einige kleine Grundlagen erstmal gelernt hast!
Nun machen wir etwas Komplexeres, und zwar "Programmieren" wir jetzt einige Funktionen.
Ich versuche es so gut wie möglich zu erklären. Also wenn ich etwas auslassen sollte, dass euch aufgefallen ist, so schreibt mir doch bitte eine PN damit ich das umändern kann.Nun Programmieren wir etwas komplexes. Keine Sorge wir gehen jeden einzelnen Code durch. Ich nehme jetzt einen Quelltext, von einem anderem Projekt was ich mal geschrieben habe.
Gucken wir uns das Gewurstel mal an:
[lua]function OnPlayerCommandText(playerid, cmdtext)
local cmd,params = GetCommand(cmdtext);
if cmdtext == "/ahelp" then
CMD_AdminHelp(playerid);elseif cmd == "/kick" then
CMD_Kick(playerid,params);elseif cmd == "/ban" then
CMD_Ban(playerid,params);elseif cmd == "/kill" then
CMD_Kill(playerid,params);elseif cmd == "/tp" then
CMD_Teleport(playerid,params);elseif cmd == "/giveitem" then
CMD_GiveItem(playerid,params);
elseif cmd == "/time" then
CMD_Time(playerid,params);
elseif cmd == "/name" then
CMD_Name(playerid,params);
elseif cmd == "/color" then
CMD_Color(playerid,params);
end
endfunction CMD_AdminHelp(playerid)
if IsPlayerAdmin(playerid) == 1
then
for i = 0, 8
do
SendPlayerMessage(playerid,255,255,255,"");
endSendPlayerMessage(playerid,255,255,255,"Admin help:");
SendPlayerMessage(playerid,255,250,200,"/kick /ban /kill /tp /giveitem /name /color");
else
SendPlayerMessage(playerid,255,250,200,"(Server): You are not admin!");
end
endfunction CMD_Kick(playerid, params)
if IsPlayerAdmin(playerid) == 1
then
local result,id,reason = sscanf(params,"ds");if result == 1
then
if IsPlayerConnected(id) == 1
then
for i = 0, MAX_SLOTS - 1
do
SendPlayerMessage(i,255,0,0,string.format("%s %s %s %s%s %s %s","(Server):",GetPlayerName(id),"has been kicked by",GetPlayerName(playerid),".","Reason:",reason));
endKick(id);
else
SendPlayerMessage(playerid,255,250,200,string.format("%s %d %s","(Server): Player ID",id,"is not connected with server."));
end
else
SendPlayerMessage(playerid,255,250,200,"Use: /kick (playerid) (reason)");
end
else
SendPlayerMessage(playerid,255,250,200,"(Server): You are not admin!");
end
endfunction CMD_Ban(playerid, params)
if IsPlayerAdmin(playerid) == 1
then
local result,id,reason = sscanf(params,"ds");if result == 1
then
if IsPlayerConnected(id) == 1
then
for i = 0, MAX_SLOTS - 1
do
SendPlayerMessage(i,255,0,0,string.format("%s %s %s %s%s %s %s","(Server):",GetPlayerName(id),"has been banned by",GetPlayerName(playerid),".","Reason:",reason));
endBan(id);
else
SendPlayerMessage(playerid,255,250,200,string.format("%s %d %s","(Server): Player ID",id,"is not connected with server."));
end
else
SendPlayerMessage(playerid,255,250,200,"Use: /ban (playerid) (reason)");
end
else
SendPlayerMessage(playerid,255,250,200,"(Server): You are not admin!");
end
endfunction CMD_Kill(playerid, params)
if IsPlayerAdmin(playerid) == 1
then
local result,id = sscanf(params,"d");if result == 1
then
if IsPlayerConnected(id) == 1
then
SendPlayerMessage(id,255,250,200,string.format("%s %s","You have been killed by",GetPlayerName(playerid)));
SendPlayerMessage(playerid,255,250,200,string.format("%s %s","You killed",GetPlayerName(id)));
SetPlayerHealth(id,0);
else
SendPlayerMessage(playerid,255,250,200,string.format("%s %d %s","(Server): Player ID",id,"is not connected with server."));
end
else
SendPlayerMessage(playerid,255,250,200,"Use: /kill (playerid)");
end
else
SendPlayerMessage(playerid,255,250,200,"(Server): You are not admin!");
end
endfunction CMD_Teleport(playerid, params)
if IsPlayerAdmin(playerid) == 1
then
local result,from_id,to_id = sscanf(params,"dd");if result == 1
then
if IsPlayerConnected(from_id) == 1
then
if IsPlayerConnected(to_id) == 1
then
SendPlayerMessage(from_id,255,250,200,string.format("%s %s","You have been teleported to",GetPlayerName(to_id)));
SendPlayerMessage(to_id,255,250,200,string.format("%s %s","To you has teleported",GetPlayerName(from_id)));local x,y,z = GetPlayerPos(to_id);
SetPlayerPos(from_id,x + 50,y,z);
else
SendPlayerMessage(playerid,255,250,200,string.format("%s %d %s","(Server): Player ID",to_id,"is not connected with server."));
end
else
SendPlayerMessage(playerid,255,250,200,string.format("%s %d %s","(Server): Player ID",from_id,"is not connected with server."));
end
else
SendPlayerMessage(playerid,255,250,200,"Use: /tp (fromplayerid) (toplayerid)");
end
else
SendPlayerMessage(playerid,255,250,200,"(Server): You are not admin!");
end
end[/lua]Ich musste alles leider erstmal kürzen, da es nur 10.000 Zeichen zur Verfügung stehen.
Im Anhang könnt ihr euch das Script Herunterladen.Weitere Erklärungen im weiteren Beitrag.
-
Moin!
Hast du einen Server gemietet? oder startest du deinen Server auf deinem Rechner?
Liebe Grüße,
-
HI,
Thanks, i come from Germany
Yes i make a tutorial
-
Hello,
Want to learn LUA ?
I'm a developer and I write the LUA language for several years .
Please join with me in Skype
And I 'm going to help .Skype: Ketzler92
regards,
Sorry for my bad English.