Danke Jeffry,hat geklappt jz nurnoch eine einzige Frage
Wie mach ich das in meinem Stats befehl :
ocmd:stats(playerid,params[])
{
new string[128];
format(string, sizeof(string),""COLB"|===============Allgemeine Informationen===============|"COLO"Name: "COLW"%s\n"COLO"Level: "COLW"%d\n"COLO"Geld: "COLW"%d\n"COLO"Adminlevel:"COLW"%d\nFraktion:",GetName(playerid), SpielerInfo[playerid][pLevel],SpielerInfo[playerid][pGeld],SpielerInfo[playerid][pAdminlevel]);
ShowPlayerDialog(playerid,DIALOG_STATS,DIALOG_STYLE_MSGBOX,""COLO"4You Reallife Stats",string,"Ok","");
return 1;
}
Bei Fraktion der Name steht?
Letzte frage
sry für's nerven
Beiträge von [PeL]Smiley
-
-
mysql_SetInt(Tabelle_Spieler,"Rang",SpielerInfo[playerid][pLevel],"pRang",GetName(playerid));
Zu
mysql_SetInt(Tabelle_Spieler,"Rang",SpielerInfo[playerid][pRang],"pRang",GetName(playerid));
ok danke,es klappt.
Allerdings erst dann,wenn der Spieler sich reloggt,wird es gespeichert -
stock LoadPlayer(playerid)
{
if(IsPlayerConnected(playerid))
{
SpielerInfo[playerid][ pLevel] = mysql_GetInt(Tabelle_Spieler, "Level","Name", GetName(playerid));
SpielerInfo[playerid][ pAdminlevel] = mysql_GetInt(Tabelle_Spieler, "Adminlevel","Name", GetName(playerid));
SpielerInfo[playerid][ pSkin] = mysql_GetInt(Tabelle_Spieler, "Skin","Name", GetName(playerid));
SpielerInfo[playerid][ pGeld] = mysql_GetInt(Tabelle_Spieler, "Geld","Name", GetName(playerid));
SpielerInfo[playerid][ pFraktion] = mysql_GetInt(Tabelle_Spieler, "Fraktion","Name", GetName(playerid));
SpielerInfo[playerid][ pRang] = mysql_GetInt(Tabelle_Spieler, "Rang","Name", GetName(playerid));
format(SpielerInfo[playerid][pRegDate],32,"%s", mysql_GetString(Tabelle_Spieler, "Registrierungsdatum","Name", GetName(playerid)));
//Sachen werden gegeben
GivePlayerMoney(playerid, SpielerInfo[playerid][ pGeld ]);
SetPlayerScore (playerid, SpielerInfo[playerid][ pLevel ]);
SetPlayerSkin (playerid, SpielerInfo[playerid][ pSkin ]);
}
return 1;
}stock SavePlayer(playerid)
{
if(IsPlayerConnected(playerid))
{
SpielerInfo[playerid][ pGeld ] = GetPlayerMoney(playerid);
SpielerInfo[playerid][ pLevel ] = GetPlayerScore(playerid);
SpielerInfo[playerid][ pSkin ] = GetPlayerSkin(playerid);
mysql_SetInt(Tabelle_Spieler, "Level", SpielerInfo[playerid][ pLevel ], "Name", GetName(playerid));
mysql_SetInt(Tabelle_Spieler, "Adminlevel", SpielerInfo[playerid][ pAdminlevel ], "Name", GetName(playerid));
mysql_SetInt(Tabelle_Spieler, "Skin", SpielerInfo[playerid][ pSkin ], "Name", GetName(playerid));
mysql_SetInt(Tabelle_Spieler, "Geld", SpielerInfo[playerid][ pGeld ], "Name", GetName(playerid));
mysql_SetString(Tabelle_Spieler, "Registrierungsdatum", SpielerInfo[playerid][ pRegDate ], "Name", GetName(playerid));
mysql_SetInt(Tabelle_Spieler,"Fraktion",SpielerInfo[playerid][pFraktion],"Name",GetName(playerid));
mysql_SetInt(Tabelle_Spieler,"Rang",SpielerInfo[playerid][pLevel],"pRang",GetName(playerid));
}
return 1;
}stock CreateAccount(playerid, passwort[])
{
new query[256],Name[MAX_PLAYER_NAME];
GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
mysql_real_escape_string(Name,Name);
mysql_real_escape_string(passwort,passwort);
format(query, sizeof(query), "INSERT INTO "Tabelle_Spieler" (Name, Passwort) VALUES ('%s', '%s')", Name, passwort);
mysql_query(query);
SetPlayerColor(playerid, Zivifarbe);
SetPlayerSkin(playerid, SpielerInfo[playerid][ pSkin ]);
mysql_SetInt(Tabelle_Spieler, "Level",Startlevel, "Name", GetName(playerid));
mysql_SetInt(Tabelle_Spieler, "Adminlevel",0, "Name", GetName(playerid));
mysql_SetInt(Tabelle_Spieler, "Skin",(ZiviSkin[random(10)]), "Name", GetName(playerid));
mysql_SetInt(Tabelle_Spieler, "Geld",Startgeld, "Name", GetName(playerid));
mysql_SetInt(Tabelle_Spieler, "Fraktion",0, "Name", GetName(playerid));
mysql_SetInt(Tabelle_Spieler, "Rang",0, "Name", GetName(playerid));
//Registrierungsdatum
new Datum[30];
getdate(Jahr, Monat, Tag);gettime(Stunde,Minute);
format(Datum, sizeof(Datum), "%d.%d.%d um %d:%d", Tag, Monat, Jahr, Stunde,Minute);
SpielerInfo[playerid][pRegDate] = Datum;
mysql_SetString(Tabelle_Spieler, "Registrierungsdatum", Datum, "Name", GetName(playerid));
return 1;
} -
Hier drei Tutorials die eigentlich alles beschreiben was du aufgezählt hast:
1.) Mit MySQL speichern/laden: http://forum.sa-mp.com/showthread.php?t=392856
2.) Für die Struktur der Befehle: http://forum.sa-mp.com/showthread.php?t=368631
3.) Mit Dini (hat eigentlich alles, ist aber ziemlich chaotisch aufgebaut): http://forum.sa-mp.com/showthread.php?t=296601Das sollten mehr als genug Informationen sein um deine Wünsche zu erfüllen!
Die Grundbasis habe ich ja schon aber das Problem:
Jz speichert er die Fraktion,aber den Rank 6 nicht:
PAWN Quelltext
1
2
3
4
5
6
7
8
9
10
11
12
13
14
ocmd:makeleader(playerid, params[])
{
if(SpielerInfo[playerid][pAdminlevel] < 6) return SendClientMessage(playerid,Rot,"Möglich ab: "COLO" Adminrank 6");
new pID, fID;
if(sscanf(params,"ui",pID,fID))return SendClientMessage(playerid,Rot, "INFO: /makeleader [playerid] [fraktid]");
if(fID >= sizeof(fInfo))return SendClientMessage(playerid,Rot, "Fraktion existiert nicht.");
SpielerInfo[pID][pFraktion] = fID;
SpielerInfo[pID][pRang] = 6;
new string[128];
format(string,sizeof(string),"%s hat dich zum Leader der Fraktion %s gemacht",GetName(playerid), fInfo[fID][f_name]);
SendClientMessage(pID, Rot, string);
SendClientMessage(playerid, Rot, "Du hast einen Spieler zum Leader gemacht.");
return 1;
} -
Jz speichert er die Fraktion,aber den Rank 6 nicht:
ocmd:makeleader(playerid, params[])
{
if(SpielerInfo[playerid][pAdminlevel] < 6) return SendClientMessage(playerid,Rot,"Möglich ab: "COLO" Adminrank 6");
new pID, fID;
if(sscanf(params,"ui",pID,fID))return SendClientMessage(playerid,Rot, "INFO: /makeleader [playerid] [fraktid]");
if(fID >= sizeof(fInfo))return SendClientMessage(playerid,Rot, "Fraktion existiert nicht.");
SpielerInfo[pID][pFraktion] = fID;
SpielerInfo[pID][pRang] = 6;
new string[128];
format(string,sizeof(string),"%s hat dich zum Leader der Fraktion %s gemacht",GetName(playerid), fInfo[fID][f_name]);
SendClientMessage(pID, Rot, string);
SendClientMessage(playerid, Rot, "Du hast einen Spieler zum Leader gemacht.");
return 1;
} -
Hallo Liebe Samp leute, ich habe ein Fraktionssystem erstellt und bin bis jz soweit:
enum fraktEnum{
f_name[128],
Float:f_x,
Float:f_y,
Float:f_z,
Float:f_r,
f_inter,
f_world,
}
new fInfo[][fraktEnum] = {
{"Zivilist", 0.0, 0.0, 0.0, 0.0, 0, 0},
{"LSPD", 295.2865,-55.4151,2.7772,293.463, 0, 0},
{"Taxi", 0.0, 0.0, 0.0, 0.0, 0, 0}};
if(!isPlayerInFrakt(playerid, 0)){
new fID;
fID = SpielerInfo[playerid][pFraktion];
SetPlayerPos(playerid, fInfo[fID][f_x],fInfo[fID][f_y],fInfo[fID][f_z]);
SetPlayerFacingAngle(playerid, fInfo[fID][f_r]);
SetPlayerInterior(playerid, fInfo[fID][f_inter]);
SetPlayerVirtualWorld(playerid, fInfo[fID][f_world]);Wie kann ich daraus nun ein /makeleader Befehl machen und auch speichern dann ob er leader ist oder nicht?
Und auch ein invite und uninvite befehl und /setrang? -
Welche MySQL Version benutzt du ? (Plugin + Include Version)
mfg
MYSQL R5 -
Ich wollte euch nachfragen nwie ich ein Ban System auf mysql Basis erstelle also ganz normal /ban und /ipban.
Das es auch abgespeichert wird im MYSQL Datenbank und das man sich dann auch nicht mehr einloggen kann etc.
Danke im voraus -
Wieso kommt dieser Warning?
C:\Users\kevin\Desktop\server\gamemodes\self.pwn(177) : warning 204: symbol is assigned a value that is never used: "rollerpoint"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase1 Warning.
rollerpoint = CreatePickup(1239,1,604.7900,-1489.4922,14.9479,0);
-
Also, Serverleiter gibt /setspawn ein. Und alle Neulinge die sage ich mal noch in KEINER Fraktion sind. Sollen dann am neuen Neulingspawn Spawnen, richtig?
Klar sowas wäre möglich
Genau
Und wie wäre sowas möglich?Erklärung bitte
-
Versteh die Frage nicht so ganz?
Willst du das man mit einem Befehl per InGame den Allgemeinen Spielerspawn ändern kann?Grüße
Genau sprich der Serverleiter gibt /Setspawn ein und beim nächsten Login von den SPielern sollen die auch da spawnen -
Hallo Liebe Scripting Profis,
ich wollte nachfragen ob es möglich ist ein dynamischen /setspawn Befehl zumachen.
Der Befehl soll für die Serverleiter nur sein,damit die die Spawns,aller Spieler,varieren können
Ist das möglich? -
//edit funktionirt
-
C:\Users\kevin\Desktop\server\gamemodes\self.pwn(334) : error 017: undefined symbol "SupCarID"
C:\Users\kevin\Desktop\server\gamemodes\self.pwn(337) : error 017: undefined symbol "SupCarID"
C:\Users\kevin\Desktop\server\gamemodes\self.pwn(338) : error 017: undefined symbol "SupCarText"
C:\Users\kevin\Desktop\server\gamemodes\self.pwn(339) : error 017: undefined symbol "SupCarID"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase4 Errors.
-
Ersetze diese Zeile mal:
SupCarText[playerid] = Create3DTextLabel(string,-1,x,y,z,10,0);
Ich hatte komischerweise eine Rotation mit eingebaut, was gar keinen Sinn gemacht hätteSpoiler anzeigen new SupCarID[MAX_PLAYERS],Text3D:SupCarText[MAX_PLAYERS];Spoiler anzeigen if(dialogid == DIALOG_SUPCAR)
{
if(response)
{
if(SupCarID[playerid] > 0)return SendClientMessage(playerid,-1,"Du hast bereits ein SupCar erstellt!");
new Float:x,Float:y,Float:z,string[128];
GetPlayerPos(playerid,x,y,z);
format(string,sizeof string,"Supportermobil von %s",SpielerName(playerid));//SpielerName ggf. anpassen
switch(listitem)
{
case 0:SupCarID[playerid] = CreateVehicle(560,x,y,z,0,0,0,0);
case 1:SupCarID[playerid] = CreateVehicle(415,x,y,z,0,0,0,0);
case 2:SupCarID[playerid] = CreateVehicle(495,x,y,z,0,0,0,0);
}
SupCarText[playerid] = Create3DTextLabel(string,-1,0,0,0,0,10,0);
Attach3DTextLabelToVehicle(SupCarText[playerid],SupCarID[playerid],0,0,0.2);
PutPlayerInVehicle(playerid,SupCarID[playerid],0);
}
return 1;
}
Wegen dem löschen, dazu musst du mir dein Befehl schicken, damit ich dir das dort einbauen kann.
Oder du machst es selbst:
1) • Abfragen ob SupCarID[playerid] größer als 0 ist (dann besteht ein Supmobil)
2) • Wenn ja, löscht du das Fahrzeug und das 3DTextLabel
3) • Die beiden Variablen SupCarID[playerid] & SupCarText[playerid] setzt du wieder auf 0EDIT:
Das du das 3DTextLabel nicht gesehen hast, lag wahrscheinlich dadran das ich die DrawDistance auf 0 stehen hatte
Und damit das Auto beim zweiten mal eingeben wieder weg geht?
den Anfang habe ich:
ocmd:supcar(playerid,params[])
{
if(SpielerInfo[playerid][pAdminlevel] < 1) return SendClientMessage(playerid,Rot,"Möglich ab: "COLO" Adminrank 1");
if(!IsPlayerConnected(playerid))return SendClientMessage(playerid,Rot,"Du musst eingeloggt sein!");
if(SupCarID[playerid] == 1) return SendClientMessage(playerid,Rot,"Das Auto wird gelöscht!");
DestroyVehicle(SupCarID);
ShowPlayerDialog(playerid,DIALOG_SUPCAR,DIALOG_STYLE_LIST,"Supauto Menü","Sultan\nCheetah\nSandking","Wählen","Abbrechen");
return 1;
} -
SupCarText[playerid] = Create3DTextLabel(string,-1,x,y,z,10,0);
funktioniert,danke dir
ICy.
Wie mach ich denn nun das?
SetVehicleNumberPlate(SupCarID,"Supmobil"); -
new SupCarID[MAX_PLAYERS],Text3D:SupCarText[MAX_PLAYERS];
Spoiler anzeigen new SupCarID[MAX_PLAYERS],Text3D:SupCarText[MAX_PLAYERS];Spoiler anzeigen if(dialogid == DIALOG_SUPCAR)
{
if(response)
{
if(SupCarID[playerid] > 0)return SendClientMessage(playerid,-1,"Du hast bereits ein SupCar erstellt!");
new Float:x,Float:y,Float:z,string[128];
GetPlayerPos(playerid,x,y,z);
format(string,sizeof string,"Supportermobil von %s",SpielerName(playerid));//SpielerName ggf. anpassen
switch(listitem)
{
case 0:SupCarID[playerid] = CreateVehicle(560,x,y,z,0,0,0,0);
case 1:SupCarID[playerid] = CreateVehicle(415,x,y,z,0,0,0,0);
case 2:SupCarID[playerid] = CreateVehicle(495,x,y,z,0,0,0,0);
}
SupCarText[playerid] = Create3DTextLabel(string,-1,0,0,0,0,10);
Attach3DTextLabelToVehicle(SupCarText[playerid],SupCarID[playerid],0,0,0.2);
PutPlayerInVehicle(playerid,SupCarID[playerid],0);
}
return 1;
}
Wegen dem löschen, dazu musst du mir dein Befehl schicken, damit ich dir das dort einbauen kann.
Oder du machst es selbst:
1) • Abfragen ob SupCarID[playerid] größer als 0 ist (dann besteht ein Supmobil)
2) • Wenn ja, löscht du das Fahrzeug und das 3DTextLabel
3) • Die beiden Variablen SupCarID[playerid] & SupCarText[playerid] setzt du wieder auf 0EDIT:
Das du das 3DTextLabel nicht gesehen hast, lag wahrscheinlich dadran das ich die DrawDistance auf 0 stehen hatteJetzt geht der im Auto rein,also automatisch TextLabel erscheitn auch,allerdings nur ganz kurz.
ocmd:supcar(playerid,params[])
{
if(SpielerInfo[playerid][pAdminlevel] < 1) return SendClientMessage(playerid,Rot,"Möglich ab: "COLO" Adminrank 1");
if(!IsPlayerConnected(playerid))return SendClientMessage(playerid,Rot,"Du musst eingeloggt sein!");
ShowPlayerDialog(playerid,DIALOG_SUPCAR,DIALOG_STYLE_LIST,"Supauto Menü","Sultan\nCheetah\nSandking","Wählen","Abbrechen");
return 1;
} -
new SupCarID[MAX_PLAYERS],Text3D:SupCarText[MAX_PLAYERS];
if(dialogid == DIALOG_SUPCAR)
{
if(response)
{
if(SupCarID[playerid] > 0)return SendClientMessage(playerid,-1,"Du hast bereits ein SupCar erstellt!");
new Float:x,Float:y,Float:z,string[128];
GetPlayerPos(playerid,x,y,z);
format(string,sizeof string,"Supportermobil von %s",SpielerName(playerid));//SpielerName ggf. anpassen
switch(listitem)
{
case 0:SupCarID[playerid] = CreateVehicle(560,x,y,z,0,0,0,0);
case 1:SupCarID[playerid] = CreateVehicle(415,x,y,z,0,0,0,0);
case 2:SupCarID[playerid] = CreateVehicle(495,x,y,z,0,0,0,0);
}
SupCarText[playerid] = Create3DTextLabel(string,-1,0,0,0,0,0);
Attach3DTextLabelToVehicle(SupCarText[playerid],SupCarID[playerid],0,0,0.2);
}
return 1;
}Das sollte so funktionieren
Das klappt,allerdings wird der 3DTextLabel nicht angezeigt,und ich meine,wenn man den Befehl zweimal eingibt und in dem Auto sitzt das,dass Car dann gelöscht wird und automatisch auch in dem auto gesetzt wird,aber danke erstmal -
Hallo Liebe Leute ich habe ein Problem mit meinem supcar befehl,wie mach ich das,dass dort 3DTextLabel erstellt wird über dem Auto mit "Supportermobil von %S und Kennzeichen Supcar ist und wenn ich /supcar eingebe das es dann auch wieder gelöscht wird, die Auto ids sind schon drin,soweit bin ich:
if(dialogid == DIALOG_SUPCAR){
new Float:x,Float:y,Float:z;
GetPlayerPos(playerid,x,y,z);
switch(listitem){
case 0:{
CreateVehicle(560,x,y,z,0,0,0,0);return 1;
}
case 1:{
CreateVehicle(415,x,y,z,0,0,0,0);
return 1;
}
case 2:{
CreateVehicle(495,x,y,z,0,0,0,0);
return 1;
}
}
return 1;
}den befehl hab ich auch erstellt schon
-
Setzt du den Spieler zuvor irgendwann in den Spectate Modus? Wenn ja, füge nach SetSpawnInfo noch das hinzu:
TogglePlayerSpectating(playerid, 0);
Jetzt funktioniert es danke