1. PC: Windows 7 Ultimate 64-Bit
Laptop: Windows 7 Ultimate 32-Bit
2. PC: Windoes XP Professional SP3 32-Bit
3. PC: Windoes XP Professional SP3 32-Bit
Der Wenn-grade-nichts-besseres-da-ist-PC: Windoes XP Professional SP3 32-Bit
Beiträge von maddin911
-
-
Zwar schade, dass du ihn releasest, aber 2342346238467543765/10!
Absolut genial, schon allein die Idee mit den Clubs! -
Nein, gibt aber auch Student-Versionen... Kosten um die 200-300€!
Das sind halt Adode-Preise... -
Hmm... Sollte eigentlich nicht so sein. Ist bei allen Testservern bisher normal gegangen... Haste irgendwas verändert oder so?
-
Registrieren geht auch nur beim Connecten...
-
Okay, das erste Update ist da, Links sind im 1. Post aktualisiert!
- /ungod und /pungod sind gefixt
- Änderung in /getallhere
- /commands eingefügt (mit stylishem Dialog) -
Ich bin gerade an der Arbeit, lange musste nicht mehr warten!
-
@ Hoscht: Hmm... Unter OnPlayerSpawn habe ich rein gar nichts mit Kicks... Vielleicht liegts an deinem Gamemode.
@ All: Bin ja ganz erstaunt! Hätte nicht gedacht, dass das auf so ne Resonanz stösst... xD
-
Hallo Leute. Auch ich habs geschafft, hab mein erstes "größeres" Projekt fertig. Bin zwar kein Profi, aber mit ein paar Tutorials und dem Wiki kann man alles schaffen... Hab mich schwer reingehängt, ich hoffe, es gefällt euch. Es ist ein Adminscript mit dem Namen...
v1.3
Features
- Keine Menüs, nur Dialoge
- Login-/Registersystem
- 5 Adminlevel
- Name-/IP-Ban
- Speichert Passwort/Wanteds/Geld/Adminlevel/Tode/Kills/Spawns/IP und verbleibende Jailtime
- Bei Klick auf Spieler in der Scorelist (für Admins):
- Dialoge zur Auswahl von Waffen/Wetter:
- Jail:
...und viele mehr!Commands
Ab Adminlevel 0
Ab Adminlevel 1
Ab Adminlevel 2
Ab Adminlevel 3
Ab Adminlevel 4
Ab Adminlevel 5
/commands um alle zu sehen!Credits
Danke an Kleiner_Opa fürs Tipps geben, danke an Goldkiller für das Commands mit Parametern-Tutorial, danke an M4rCiii für das Dini-Tutorial.Download + Installation
Da das Script die Funktionen der dini-Include benutzt, müsst ihr sie euch, sofern noch nicht vorhanden downloaden und in den EUER_SERVER/pawno/include Ordner verschieben. Dort muss ebenfalls diese Include hineinkopiert werden.Nun erstellt ihr in eurem scriptfiles-Ordner einen Ordner namens "madAd" und darin wiederum einen Ordner names "Users".
Dann könnt ihr das Filterscript in den filterscripts-Ordner ziehen, kompilieren und in eurer server.cfg eintragen.
Nach dem ersten Connecten und Registrieren könnt ihr in den scriptfiles/madAd/Users-Ordner gehen und in eurer Save-Datei hinter AdminLevel= 5 hinschreiben. Ihr seid nun Fulladmin. Speichern nicht vergessen!
Pastebin: http://pastebin.com/86f45h9Q
Solidfiles (inkl. Includes + Scriptfiles):
Falls einige Bugs drin sind, wie gesagt, ich bin neu im Metier, verzeiht mir, postet sie hier und ich werde mich bemühen, sie zu beheben.
Falls ihr Fragen habt -> fragt!
Ansonsten: Habt Spaß damit und beachtet die Lizenz...
Euer
maddin911 -
Hab jetzt noch was im gleichen Stil für deine (recht seltsame) Auflöung:
Bin aber nicht ganz so zufrieden, hatte zu wenig Platz in die Höhe... -_-
xDD
Naja, hoffe du hast Spaß damit... -
Langeweile hält immer noch an, gib mir die Maße und ich machs dir passend...
-
Gerade ein bisschen Langeweile gehabt, schenk ich dir...
-
Vielleicht ist das CameraLookAt woanders wie dort wo die Skins stehen?
-
Du musst ganz oben bei den anderen new
new rein;
new raus;
machen.Unter OnGameModeInit
rein = CreatePickup(blablabla...);
raus = CreatePickup(blablabla...);und rück deinen Code am besten sauber ein...
if(pickupid == rein)
{ //du hattest [
SetPlayerPos(246.783996, 63.900199, 1003.640625);
}
if(pickupid == raus)
{
SetPlayerPos(-1605.508666, 711.299377, 13.867187);
}Achtung: In den Pickup-Code kommen nicht nur die Coords! Siehe hier!
-
Neue unter OnGameModeInit mit AddPlayerClass
Und die Texte welche Gang es ist einfach wiederif (classid == einshöheralsdasvorherige)
{
format(string, sizeof(string), "~y~blablabla");
} -
Heyho, ich hab jetzt mithilfe eines Tutorials ein Login-/Register-Script erstellt.
Nur sendet es beim Einloggen die MeldungenZitatWillkommen!
Du hast dich erfolgreich mit den Name : XY und dem Passwort : XY registriert
Willkommen!
Du wurdes automatisch eingloggt, was mir ein Rätsel ist, da ich ja alle Klammern etc. richtig gesetzt habe?!?
That's my code:
#include <a_samp>
#include <dini>#define Weiß 0xFFFFFFAA
#define Grau 0xAFAFAFAA
#define Rot 0xAA3333AAnew passwort[256];
new FalschesPasswort[MAX_PLAYERS];
new Eingeloggt[MAX_PLAYERS];
new login;
new regis;forward Anmelden(playerid);
forward SpielerUpdate(playerid);
forward PasswortFalsch(playerid);enum SInfo
{
Passwort[256],
Wanteds,
Geld,
alvl,
Tode,
Kills,
Spawn,
}
new SpielerInfo[MAX_PLAYERS][SInfo];public OnPlayerConnect(playerid)
{
new Spielerdatei[256];
new SpielerName[MAX_PLAYER_NAME];
GetPlayerName(playerid,SpielerName,sizeof(SpielerName));
format(Spielerdatei,sizeof(Spielerdatei),"/madAd/Users/%s.ini",SpielerName);if(dini_Exists(Spielerdatei))
{
login = ShowPlayerDialog(playerid, login, DIALOG_STYLE_INPUT, "Logge dich ein!", " ", "Login!", "Abbrechen!");
}
else if(!dini_Exists(Spielerdatei))
{
regis = ShowPlayerDialog(playerid, regis, DIALOG_STYLE_INPUT, "Registriere dich!", " ", "Registrieren!", "Abbrechen!");
}
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
SpielerInfo[playerid][Tode]++;
SpielerInfo[killerid][Kills]++;
SpielerUpdate(playerid);
return 1;
}public OnPlayerDisconnect(playerid, reason)
{
SpielerUpdate(playerid);
Eingeloggt[playerid] = 0;
return 1;
}public OnPlayerSpawn(playerid)
{
if(Eingeloggt[playerid] == 1)
{
SpielerInfo[playerid][Spawn]++;
}
if(Eingeloggt[playerid] == 0)
{
SendClientMessage(playerid,Rot,"Wenn du dich einloggst, kannst du mehr Funktionen benutzen...");
}
return 1;
}public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == login)
{
if(response == 1)
{
if(listitem)
{
new Spielerdatei[256];
new SpielerName[MAX_PLAYER_NAME];
GetPlayerName(playerid,SpielerName,sizeof(SpielerName));
format(Spielerdatei,sizeof(Spielerdatei),"/madAd/Users/%s.ini",SpielerName);
passwort = dini_Get(Spielerdatei,"Passwort");if(strcmp(inputtext,passwort,false) == 0)
{
Anmelden(playerid);
}
else
{
FalschesPasswort[playerid] += 1;
PasswortFalsch(playerid);
}
}
}
else
{
SendClientMessage(playerid,Rot,"Wenn du dich einloggst, kannst du mehr Funktionen benutzen...");
}
return 1;
}
if(dialogid == regis)
{
if(response == 1)
{
if(listitem)
{
new Spielerdatei[256];
new SpielerName[MAX_PLAYER_NAME];
GetPlayerName(playerid,SpielerName,sizeof(SpielerName));
format(Spielerdatei,sizeof(Spielerdatei),"/madAd/Users/%s.ini",SpielerName);
dini_Create(Spielerdatei);
dini_Set(Spielerdatei,"Passwort",inputtext);
dini_IntSet(Spielerdatei,"Wanteds",SpielerInfo[playerid][Wanteds]);
dini_IntSet(Spielerdatei,"Geld",SpielerInfo[playerid][Geld]);
new GlueckWunschText[128];
format(GlueckWunschText,sizeof(GlueckWunschText),"Du hast dich erfolgreich mit den Name : %s und dem Passwort : %s registriert",SpielerName,inputtext);
SendClientMessage(playerid,Weiß,GlueckWunschText);
Anmelden(playerid);
SendClientMessage(playerid,Weiß,"Du wurdes automatisch eingloggt");
return 0;
}
}
else
{
SendClientMessage(playerid,Rot,"Wenn du dich registrierst, kannst du mehr Funktionen benutzen...");
}
return 1;
}
return 1;
}public Anmelden(playerid)
{
new Spielerdatei[256];
new SpielerName[MAX_PLAYER_NAME];
GetPlayerName(playerid,SpielerName,sizeof(SpielerName));
format(Spielerdatei,sizeof(Spielerdatei),"/madAd/Users/%s.ini",SpielerName);
SpielerInfo[playerid][Geld] = dini_Int(Spielerdatei,"Geld");
SpielerInfo[playerid][Wanteds] = dini_Int(Spielerdatei,"Wanteds");
SpielerInfo[playerid][alvl] = dini_Int(Spielerdatei,"alvl");
SetPlayerMoney(playerid,SpielerInfo[playerid][Geld]);
SetPlayerWantedLevel(playerid,SpielerInfo[playerid][Wanteds]);
SendClientMessage(playerid,Weiß,"Wilkommen!");
Eingeloggt[playerid] = 1;
return 1;
}public SpielerUpdate(playerid)
{
new Spielerdatei[256];
new SpielerName[MAX_PLAYER_NAME];
GetPlayerName(playerid,SpielerName,sizeof(SpielerName));
format(Spielerdatei,sizeof(Spielerdatei),"/madAd/Users/%s.ini",SpielerName);
GetPlayerMoney(playerid,SpielerInfo[playerid][Geld]);
GetPlayerWantedLevel(playerid,SpielerInfo[playerid][Wanteds]);
dini_IntSet(Spielerdatei,"Geld",SpielerInfo[playerid][Geld]);
dini_IntSet(Spielerdatei,"Wanteds",SpielerInfo[playerid][Wanteds]);
dini_IntSet(Spielerdatei,"AdminLevel",SpielerInfo[playerid][alvl]);
dini_IntSet(Spielerdatei,"Tode",SpielerInfo[playerid][Tode]);
dini_IntSet(Spielerdatei,"Kills",SpielerInfo[playerid][Kills]);
dini_IntSet(Spielerdatei,"Spawn",SpielerInfo[playerid][Spawn]);
return 1;
}public PasswortFalsch(playerid)
{
if(FalschesPasswort[playerid] == 1)
{
SendClientMessage(playerid,Rot,"Du hast das Passwort bereits 1 mal falsch eingegeben du hast noch 2 Versuche");
login = ShowPlayerDialog(playerid, login, DIALOG_STYLE_INPUT, "Logge dich ein!", " ", "Login!", "Abbrechen!");
}
if(FalschesPasswort[playerid] == 2)
{
SendClientMessage(playerid,Rot,"Du hast das Passwort bereits 2 mal falsch eingegeben du hast noch 1 Versuch!");
login = ShowPlayerDialog(playerid, login, DIALOG_STYLE_INPUT, "Logge dich ein!", " ", "Login!", "Abbrechen!");
}
if(FalschesPasswort[playerid] == 3)
{
SendClientMessage(playerid,Rot,"Du hast das Passwort 3 mal falsch eingegeben, du wurdest gekickt");
Kick(playerid);
}
return 1;
} -
Okay, da hat die Alles-was-bunt-ist-Render-Atombombe eingeschlagen...
Aber gute Backgrounds ist mit ein paar coolen Brushes und Halbtrasparenzebenen gar nicht so schwer, probiers mal aus... -
Ich habe mir einen Login-Command erstellt.
dcmd_login(playerid,params[])
{
new name[MAX_PLAYER_NAME], string[256];
GetPlayerName(playerid, name, sizeof(name));
format(string, sizeof(string), "/madAd/%s.ini", name );
new passwort;
if(sscanf(params, "s", passwort))
{
return SendClientMessage(playerid,COLOR_RED,"Benutzung: /login [Passwort]");
}
/*new stringword[128];
stringword = dini_Get(string, "Passwort:"); */if(passwort == dini_Get(string, "Passwort:"))
{
loggedin[playerid] = 1;
SendClientMessage(playerid, COLOR_GREEN, "Du hast dich erfolgreich eingeloggt, herzlichen Glückwunsch!");
new plip[128];
GetPlayerIp(playerid, plip, sizeof(plip));
dini_Set(string, "IP:", plip);
alvl = dini_Get(string, "AdminLevel:");
}
else
{
return SendClientMessage(playerid, COLOR_GREEN, "Falsches Passwort!");
}
return 1;
}
Nur leider hat er irgendiwe immer ein Problem mit dem der Dini-Abfrage beim Passwort-String.
Er meldet immerZitatC:\Users\Martin\Desktop\samp03asvr_win32\filterscripts\madAd.pwn(843) : error 033: array must be indexed (variable "dini_Get")
Ich kann es auch so machen, wie es momentan auskommentiert ist, also
new stringword[512];
stringword = dini_Get(string, "Passwort:");
und dann die Abfrage
if(passwort == stringword"))
benutzen, der gleiche Error(nur mit: variable "stringword") erscheint. Ich hoffe, ihr helft mir, Licht ins Dunkel zu bringen.Mit freundlichen Grüßen,
der ratlose Maddin... -
Hallo Community. Ich habe mich mal an einem Server für Mini-Wars versucht, sprich ein Gamemode läuft 10 Minuten und dann kommt der nächste. Das ganze soll als TDM ablaufen, man benötigt also auch einen Score um zu entscheiden, wer gewonnen hat.
Ich hab mir gedacht, das is als Integer ganz gut, machste
new TeamScore; und unter OnPlayerDeath nach ein paar Teamabfragen dann TeamScore++; (hab später noch im Wiki TeamScore +=1; gefunden und auch verwendet) aber nichts get. Ich wollte das in nem Textdraw, den ich alle 100 ms zerstöre und neu anzeige anzeigen. Jedoch klappt das nicht ganz, egal wie ich es probiere.
Ich hab ganz oben:
forward SCA(playerid);
forward SCAN(playerid);
new CooleTypenScore = 0;
new PennerScore = 0;
new Text:CooleTypenShow;
new Text:PennerShow;
new Text:CooleTypenShowNumber;
new Text:PennerShowNumber;
Unter OnGameModeInit
CooleTypenShow = TextDrawCreate(250.0,410, "~r~ Coole Typen:");
PennerShow = TextDrawCreate(250.0,428, "~g~ Penner:");
new string[250];
format(string, sizeof(string),"~r~ %d" ,CooleTypenScore);
CooleTypenShowNumber = TextDrawCreate(400.0, 410, string);
new string2[250];
format(string2, sizeof(string2),"~g~ %d" ,PennerScore);
PennerShowNumber = TextDrawCreate(400.0, 428, string2);
return 1;
Meine Death-Abfragen
public OnPlayerDeath(playerid, killerid, reason)
{
new plt = GetPlayerTeam(playerid);
new kit = GetPlayerTeam(killerid);SendDeathMessage(killerid,playerid,reason);
if(killerid == INVALID_PLAYER_ID)
{
SendDeathMessage(INVALID_PLAYER_ID,playerid,reason);if(plt == CooleTypen)
{
PennerScore += 1;
}
if(plt == Penner)
{
CooleTypenScore += 1;
}
}
if(kit == CooleTypen)
{
if(plt == CooleTypen)
{
SendClientMessage(killerid, COLOR_RED, "Keine Teamkills!");
}
if(plt == Penner)
{
CooleTypenScore += 1;
}
}if(kit == Penner)
{
if(plt == Penner)
{
SendClientMessage(killerid, COLOR_RED, "Keine Teamkills!");
}
if(plt == CooleTypen)
{
PennerScore += 1;
}
}
return 1;
}
Unter OnPlayerConnect
TextDrawShowForPlayer(playerid, CooleTypenShow);
TextDrawShowForPlayer(playerid, PennerShow);
SetTimerEx("SCA", 100, true, "i",playerid);
und zu guter letzt
public SCA(playerid)
{
TextDrawHideForPlayer(playerid, CooleTypenShowNumber);
TextDrawHideForPlayer(playerid, PennerShowNumber);
SetTimerEx("SCAN", 100, 0, "i",playerid);
return 1;
}public SCAN(playerid)
{
TextDrawShowForPlayer(playerid, CooleTypenShowNumber);
TextDrawShowForPlayer(playerid, PennerShowNumber);
return 1;
}Ausserdem habe ich einen Timer (bei mir "GME") der den Gamemode nach 10 Minuten neustartet. Ich würde das gerne als Countdown-Textdraw machen, hab jedoch keine Ahnung, wie sich das realisieren lässt.
Ich hoffe, ihr könnt mir helfen und bedanke mich jetzt schon mal...
P.S.: Wundert euch nicht über die Namen, hab Coole Typen vs. Penner...
Der ganze Gamemode ist übrigens hier . -
Doch, nur kann im Prinzip nur einer in den Shamal, der Pilot. Der Inennraum is eig. n Interior, deshalb auch der Umstand...