Verstehe nicht ganz den Sinn dahinter wenn man LVL 5 ist trotzdem die ganzen Nachrichten zu bekommen von LVL 1 an.
if(!strcmp(cmdtext, "/ah", true))
{
if (PlayerInfo[playerid][pAdminLVL] == 0)
{
SendClientMessage(playerid, weiß, "Du bist kein Admin!");
}
else if (PlayerInfo[playerid][pAdminLVL] == 1)
{
SendClientMessage(playerid, gelb, "Supporter: -");
}
else if (PlayerInfo[playerid][pAdminLVL] == 2)
{
SendClientMessage(playerid, gelb, "Moderator: /adminduty");
}
else if (PlayerInfo[playerid][pAdminLVL] == 3)
{
SendClientMessage(playerid, gelb, "Super-Moderator: -");
}
else if (PlayerInfo[playerid][pAdminLVL] == 4)
{
SendClientMessage(playerid, gelb, "Administrator: /veh");
}
else if (PlayerInfo[playerid][pAdminLVL] == 5)
{
SendClientMessage(playerid, gelb, "1337-Admin: -");
}
else if (PlayerInfo[playerid][pAdminLVL] >= 6)
{
SendClientMessage(playerid, gelb, "1338-Admin: -");
}
return 1;
}
Toll das jetzt immer mehr auf den 1338 Trip sind .Muss man sich bald etwas neues überlegen ... :0
Beiträge von Goldkiller
-
-
@Cardoso,mach weiter so.Hat man wenigstens was zum lachen
Ich weiss nicht ob das extra sein soll,aber in deinem PAWN-Quelltext in deiner Signatur ist ein Fehler :\
... "Allerbester Freund: %s", abf[playerid]); // PHALI! -
Nutze SII selber schon etwas länger (klick).
Wäre gut wenn das mal ein Moderator in den Tutorial Bereich verschiebt,hier geht der Thread noch unter. -
Kommt drauf an.Da hat Y_Less aber nicht ganz recht wie ich finde.
Zitat
for(new i = 0;i<MAX_PLAYERS;i++)
for(new i = 0;i<GetMaxPlayers();i++)
Das ist genau genommen die langsamste Variante,wenn man davon aus geht das in der server.cfg 200 als Maximale Spieleranzahl eingetragen ist sowie MAX_PLAYERS auf 200 definiert ist.Wenn man jetzt davon aus geht,dass der Server sowieso nur maximal 100 Spieler zu lässt sieht es aber anders aus.Ohne MAX_PLAYERS auf 100 zu re-definieren.Dann wäre allerdings immernoch die erste variante mit MAX_PLAYERS schneller.
Schneller wäre es schon so,wenn man von folgendem ausgeht:ZitatServer.cfg 100
MAX_PLAYERS 200
for(new i = 0;i<MAX_PLAYERS;i++)
for(new i = 0,j = GetMaxPlayers();i<j;i++)
i<GetMaxPlayers() - Bei jedem neuen durchlauf wird GetMaxPlayers() (Gibt den Server.cfg Eintrag zurück) abgefragt,was viel langsamer ist als eine Konstante,200.Auch wenn es vielleicht nur 100 möglich Slots sind.Deswegen wurde das zuerst geändernt.Die beste Methode um GetMaxPlayers() zu nutzen wäre in OnGameModeInit() die Anzahl in einer Variable zu speichern und dann in der for()/while() Schleife zu benutzten.Ich benutze es so nur in meinem Admin Script,da ich nicht davon ausgehe das jemand das Script re-kompiliert und direkt MAX_PLAYERS re-definiert.
ZitatServer.cfg 100
MAX_PLAYERS 200for(new i = 0;i<MAX_PLAYERS;i++)
for(new i = 0;i<g_Max_Players;i++) //g_Max_Players = GetMaxPlayer();
Jetzt wäre es mit g_Max_Players tatsächlich schneller,wer aber zu Faul ist um MAX_PLAYERS an seine Maximale Spieleranzahl an zu passen ist irgendwo selber Schuld.Um das mal an der Speed-Reihenfolge darzustellen:
ZitatDifferent language features take different times to execute, in general the order is (from fastest to slowest):
* Nothing
* Constants - MAX_PLAYERS
* Variables - Variable die durch GetMaxPlayers() Slot Anzahl enthält
* Arrays
* Native functions - GetMaxPlayer()
* Custom functions
* Remote functionsKurz gesagt,
for(new i = 0;i<MAX_PLAYERS;i++)
ist die schnellste Variante,wenn man MAX_PLAYERS re-definiert an seine Maximale Spieler Anzahl die auch in der server.cfg eingetragen ist.Wundert mich das hier einige Wert auf Speed-Optimierung legen.Freut mich jedenfalls
-
enum spielerpaket
{
geld,
bank,
}
new SpielerDaten[MAX_PLAYERS][spielerpaket];
Ich nenn die immer anderes,sonst kommt es vielleicht vor am ende das es Variablen mit den gleichen Namen gibt.
enum e_Spielerpaket
{
spGeld
spBank,
}
new SpielerDaten[MAX_PLAYERS][e_Spielerpaket];
sp steht dabei für SpielerpaketZitatnew Playername[16];
GetPlayerName(playerid,Playername,sizeof Playername);
Defines sind da um sie zu nutzen.Deswegen sollte man MAX_PLAYER_NAME nehmen,man weiss ja nie.Falls es in einer neueren Version von SA:MP dazu kommt,dass die MAX_PLAYER_LEN erhöht wird auf 34 steht man dumm da mit einer größe von 16 .//Edit:
ZitatDa denk ich mir doch Sa-mp unterstützt allgemein nur 128 Zeichen ,
und zuviele Text Index Zellen machen das Skript noch unnötig Groß und den Code Langsamer
Das stimmt nicht.Der Chat unterstützt nur 128 Zeichen,deswegen ist es unnötig unter OnPlayerText oder OnPlayerCommandText einen string alá new string[256] zu erstellen.
Beim auslesen einer Datei mit fread() kann es gut möglich sein das man mehr als 127 Zellen brauch,denn dort ist kein Limit (Irgendwann wir man wahrscheinlich an Grenzen kommen).Eben so bei SQL arbeiten. -
Du bist jetzt der 2. der aus dem Tutorial die Commands direkt in sein Admin Script übernimmt X___0.Findet ihr das nicht ein wenig peinlich?
Du könntest dann schon wenigstens alle Commands in dem Style mit dcmd + sscanf machen . -
Naya will halt n N00b RL Script zum download stellen und da muss alles automatisch gemacht werden
Dann muss derjenige der das Script downloadet trotzdem das Plugin installieren (server.cfg einschreiben und in den Plugins Ordner einfügen).
Auch nicht wirklich besser . Ansonsten freezt der Server. -
Ist möglich laut dem Autor dieses Plugins wenn man es natürlich benutzt.
Zitatdfind(const pattern[], filename[], len, &idx); - Fine directories matching a pattern.
dcreate(const name[]); - Create a directory.
drename(const oldname[], const newname[]); - Rename a directory*.* This function used to be identical to frename, it's now not, make sure you're using the correct one (they still interchangeable on Windows).
-
Goldkiller nix gegen ist aber wirklich so haben dein FS rein gemacht server startet net mehr
Gehörst eindeutig in die Kategorie install.txt/faq.txt nicht gelesen.Will hier auch keine Werbung oder Sonstiges machen.Nehm halt V-Admin,LAdmin oder vllt XtremeAdmin. -
gAdmin macht zu viele fehler
Solche Aussagen sind immer toll.Einfach sagen es funktioniert nicht ist immer gut -
Hai
When you talk 'bout computer games,you should definitely mention that there are many different genres.A very succesfull genre is RPG (Role...dingens).The most known RPG computer game is WoW ( Richtig?).You play in a virtual world as some kind of hero.In this world you are able to do many things.You can kill monsters,explore the endless world together with your friends or collect things for employers.
Another genre is Ego-Shooter.Counterstrike or Battlefield should be known to the most.You play in the ego-perspective and run through a world and kill other players or bots.Many of these games are according to specialists a reason for people doing massacres in schools (like in winnenden this year).Mehr schaffst ja wohl selber Habs versucht in einfachem englisch zu halten :X
BLAH
//Edit: DMA suckt.
-
Dann musst du auch im forward angeben das der 2 Parameter ein String ist.
forward MySQLUpdatePlayerInt(query[], playername[], sqlvalname[], sqlupdateint);
public MySQLUpdatePlayerInt(query[], playername[], sqlvalname[], sqlupdateint) // by Luk0r
{
MySQLUpdateBuild(query, playername);
new updval[64];
format(updval, sizeof(updval), "%s=%d", sqlvalname, sqlupdateint);
strcat(query, updval, MAX_STRING);
return 1;
} -
Gibt es einen Besonderen Grund warum du dafür 2neue Varaiblen erstellst
Ungetestet :>
Man bist du cool.
Wenn du schon keine Lust hast zu testen,dann poste den Schrott doch nicht .new
Float:fArmour[MAX_PLAYERS], // Wir brauchen Float,nicht Integer
Float:fHealth[MAX_PLAYERS];GetPlayerHealth(playerid, fHealth[playerid]);
GetPlayerArmour(playerid, fArmour[playerid]);dini_FloatSet(s,"armour",fArmour[playerid]); //Wir speichern Float,nicht Integer.
dini_FloatSet(s,"health",fHealth[playerid]); -
Ich hab es hier gelernt: MYSQL Tutorial
UPDATE - Brauchst du um etwas auf der Database zB beim User neu festzulegen (Update von irgendwas,Score,Money etc).
SELECT - Brauchst du um einen Eintrag aus der Database auszulesen.Wenn du beispielweise das Geld,Adminlevel etc auslesen möchtest.
INSERT - Brauchst du um einen neuen Eintrag zB User in die Database hinzuzufügen.
Ansonsten schau in ModernTopia nach und frag nochmal.Bin selber nicht gut in MYSQL,hab es trotzdem irgendwie geschafft mich da zurechtzufinden.
-
Wo liegt das Problem?Dann würde deine Version ebenfalls nicht funktionieren X__0. Richtig unnötig ...
-
Zitat
new Stats[MAX_PLAYERS][1]
So wird das nicht gehen.Denn wenn die Größe 1 ist,wird es niemals möglich sein auf "Stats[playerid][1]" zuzugreifen,da es nur den index 0 besitzt.
new Stats[MAX_PLAYERS][2], str[32]; -
Geht noch einfacher.
Wenn jeder eine andere VirtualWorld haben soll,kannst es auch gleich an der playerid festmachen.
SetPlayerVirtualWorld(playerid,playerid);
Damit kannst du sicher sein,dass jeder eine eigene VirtualWorld hat ;). -
Warum empfiehlt ihr nur Leute mit hoher Postzahl (500+) als Experten? ô.0
Ich kenne genug Leute hier im Forum die keine 100 Posts haben, und trotzdem um EINIGES mehr können als so mancher mit 500+ Posts.
++;
Von den meisten mit so vielen Post halte ich persöhnlich nix.Sind viele dabei die entweder nur Hilfe brauchen,schlechte (Meiner Meinung nach) Lösungen anbieten oder sinnlos posten.
Nur weil jemand ständig Online ist oder postet heisst es nicht,er hätte Ahnung von Scripten oder sonstigem.Da ist besser wenn man eher weniger postet,dafür aber Qualtität in seinen Beiträgen hat und anständig hilfe bietet . -
gAdmin funktioniert nicht zusammen mit Godfather,da sowohl gAdmin als auch Godfather ein eigenes UserSystem haben und jeweil /login & /register nutzen.
Es gibt zwei "Lösungen",
Nr.1 ... du bastelst gAdmin und Godfather zusammen.Ist aber unglaublich viel Arbeit.
Nr.2 ... du suchst in gAdmin.pwn nach "RegisterCommands",änderst dort die Befehle /register und /login zu zB /aregister und /alogin.Kompilierst neu und nutzt diese *.amx.Nachteil ist allerdings dass du sowohl bei Godfather dich einloggen musst als auch bei gAdmin. -
bigD,
Es ist eigentlich nicht meine Aufgabe dir zu erklären wie man Includes installiert.Du bist nämlich nicht der erste dem man erklären muss wie man so etwas leichtes macht.ZitatInstall.txt
3.Copy the 'gAdmin' folder from here : full_gAdmin.rar\gAdmin\pawno\include ( ONLY NEEDED IF YOU HAVE THE FULL VERSION WITH SOURCE )
and paste it there : PATH\TO\YOUR\SERVER\FOLDER\pawno\include
Now you should have a possible path like that : \pawno\include\gAdmin\languageIf you didn't get it right,just look at the screenshot gAdmin_Folder_Pic.png
Wenn du dir das Bild anschaust,siehst du dass die Includes in den Ordner gehören wo auch a_samp.inc,a_sampdb.inc,a_players.inc,a_objects.inc,string.inc,time.inc usw sind.Dort wo sich bei dir Pawn befindet (pawno.exe) ist ein Ordner der "Include" heisst.Dort musst du den "Includes" Ordner von gAdmin hinkopieren.@basshoernchen,
welchen Gamemode benutzt du?