Der Premium User sollte 1x seinen Namen ändern können mit dem Befehl /changename
WICHTIG: Das sollte nur 1x gehn und das sollte nur Premium User machen können.
(Habe es versucht aber bekomme es i-wie nicht hin)
Premium
- ∂єя вαηgєя
- Geschlossen
- Erledigt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
Ích glaube das wird schwer zu scripten sein einfacher wäre es wenn die premium user ein Admin fragen und der Admin dan den Namen ändert
-
Ích glaube das wird schwer zu scripten sein einfacher wäre es wenn die premium user ein Admin fragen und der Admin dan den Namen ändert
Ja , aber dann hatt ja jeder Admin mit den Namen zu tun statt mit den neuen auf'm Server -
ja,schließe mich Tscheche an,
mach es lieber so,Ein User hat Premium,
Dieser will seinen Namen von "UserD" in "UserY" ändern,dann schreibt er das einem Admin,und dieser ändert den namen der .ini Datei des Users,schon hat er einen anderen NamenDann könnt ihr ja im forum nen Bereich für Admins machen,indem ihr alle Premium User eintragt,und dort könnt ihr dann immer hinschreiben,ob der User den namen schon geändertbekahm,und wann oder so,das wäre unnötig zu scripten,wenn es auch leichter geht
Scripten dauert bestimmt 2 stunden,dieses system was ich meine gerade mal 5 minutn,mit foren bereich einrichten
Gruß
-
ja,schließe mich Tscheche an,
Da warst du wohl grade in Gedanken xD
Naja muss noch dazu sagen es ist am einfachsten zu Skripten und dauert keine ewichkeit vorallem kann dort kein bug oder so auftreten
Naja ich denke das müsstes du auch selbst hin bekommen wenn nicht es gibt ein paar scripts die diese Systeme drin haben musst du ebent ein paar runterladen und mal durch gucken
-
Ist doch einfach was der Threadersteller will?
Was für ein Script? Was für eine Datenspeicherung? Also dini, mysql oder sowas -
Ist doch einfach was der Threadersteller will?
Was für ein Script? Was für eine Datenspeicherung? Also dini, mysql oder sowas
Godfather und Dini -
Jo einfach wie sonstwas, es gibt standart eine Variable die wird nur einmalig gesetzt und danach nie wieder...
pReg oder pTut z.B.Also einfach eine neue Variable die dafür steht ob der Name schonmal geändert wurde z.B. pNameChanged
Bei OnPlayerConnect diese auf 0 setzen und natürlich Laden/SpeichernDer NameChange sollte dann so aufgebaut sein, wenn er premium ist und wenn pNameChanged auf 0 ist dann ändert es den Namen und setzt die Variable auf 1
Und ansonsten sind das noch 2 else Nachrichten "Du bist kein Premium" und "Du hast deinen Namen schonmal geändert"Desweiteren müsste man danach noch Abfragen ob er einen Hausschlüssel hat, wenn ja ob ihm das haus gehört, jenachdem muss man den HouseOwner-Namen noch ändern sonst kann er das nichtmehr verkaufen
//Edit
Achja und Datei müsste man auch neu schreiben aber das ist ja nicht schwer, passiert ja z.B. auch beim Registrieren, den Code einfach von da nehmen -
Okay ich pobiere es mal
Danke schon mal für deine Hilfe -
Okay ich pobiere es mal
Danke schon mal für deine Hilfe
lad dir ma das LoH 0.4 runter da suchst du /umbenennen da hast du eine vorlage -
Schlechte Idee...
LoH kannste knicken, machs selbst dann lernste noch was dabei... -
So ich hab da mal was gebastelt und eben bei mir lokal getestet = funktioniert. Eines vorab dieser Code ist etwas zum nachdenken, solltest du garkeine Erfahrung darin haben kannst du den Code gleich vergessen, da du ziemlich viel an dein Script anpassen musst!
COMMAND:premium(playerid,params[])
{
if(SpielerInfo[playerid][pLevel]==3)
{
new pID,name[20],premium,string[256],query[128],ausgabe[256]; GetPlayerName(pID,name,sizeof(name));
format(ausgabe,sizeof(ausgabe),"`Name`='%s'",name);
if(sscanf(params,"ii",pID,premium)) return SendClientMessage(playerid,COLOR_WHITE,"Verwendung: /premium [ID] [premiumlevel]");
if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,COLOR_WHITE,"kein Spieler mit der angegebenen ID online");
if(premium>2) return SendClientMessage(playerid,COLOR_WHITE,"es gibt nur 2 Premiumlevel");
if(premium==2) return SendClientMessage(playerid,COLOR_WHITE,"Premium level 2 ist derzeit deaktiviert");
if(premium<0) return SendClientMessage(playerid,COLOR_WHITE,"unter 0 gibts nichts");
else
{
SpielerInfo[pID][PlrP] = premium;
SetPVarInt(pID,"premium",1);
format(string,sizeof(string),"%s hat nun Premiumstatus Level %i",name,premium);
SendClientMessageToAll(COLOR_WHITE,string);
format(query, 256, "UPDATE `player_info` SET `premium` = '%i' WHERE %s", SpielerInfo[pID][PlrP], ausgabe);
mysql_query(query);
}
}
else return SendClientMessage(playerid,COLOR_WHITE,"Du bist nicht autorisiert diesen Befehl zu benutzen!");
return 1;
}COMMAND:changename(playerid,params[])
{
if(GetPVarInt(playerid,"premium")==1)
{
new newName[20],string[256],nameold[20]; GetPlayerName(playerid,nameold,sizeof(nameold));format(ausgabe,sizeof(ausgabe),"`Name`='%s'",nameold);
if(sscanf(params,"s",newName)) return SendClientMessage(playerid,COLOR_WHITE,"Verwendung: /changename [Name]");
else
{
SetPlayerName(playerid,newName);
format(string,sizeof(string),"%s hat seinen Namen in %s geändert",nameold,newName);
SendClientMessageToAll(COLOR_WHITE,string); DeletePVar(playerid,"premium");
format(query, 256, "UPDATE `player_info` SET `Name` = '%s' WHERE %s", newName, ausgabe);
}
}
else return SendClientMessage(playerid,COLOR_WHITE,"Du bist nicht autorisiert diesen Befehl zu benutzen!");
return 1;// ein Enum könnte etwa so aussehen
enum SpielerDaten
{
pName[MAX_PLAYER_NAME],
pLevel,
PlrP
// rest hab ich mal entnommen, dies sind die Relevanten Variablen
}
new SpielerInfo[MAX_PLAYERS][SpielerDaten];
}Benötigte Plugins:
- Sscanf2
- mysql
- Hirn !
Sollte man leicht auf DINI umstellen können, war gerade zu faul und hab es auch erst zu spät gelesen. Pass es deinen Bedürnissen an und gut ist.
Dies hat mich etwa 15 - 20 min gekostet. Support kannst du dir per PN holen, was diesen Code angeht(kein GF support, da ich GF nicht leiden kann und lieber Selfmade schreibe!)//EDIT: speichern des neuen Namens in der DB eingefügt !
-
Hast du mal die Hirn.inc zum Download? Fehlt mir
-
SetPlayerName(playerid,newName);
Muss er dann auch nicht die Datei im Accounts Ordner bearbeiten? Nur so ginge es soweit ich weiß nicht
-
ich hab es mal mit eingefügt, für mysql.. sollte man aber selber rausfinden wenn man nicht gerade doof ist
-
breadfish.de
Hat das Thema geschlossen.