Ich, Mr.Cro997, nehme an dem Gewinnspiel für den Gutschein von Pusher Apparel teil.
Beiträge von [GM] Giga11
-
-
Funktioniert nun, danke.
-
Guten Tag,
ich habe einen /su Befehl gescriptet der nach dem Schema /su [ID] [Anzahl] [Grund] funktioniert.
Wenn ich nun beispielsweise eingebe /su 0 1 Test um mir selbst 1 Wanted zu geben sollte eigentlich "Man kann Polizisten keine Wanteds geben." im Chat stehen, stattdessen steht dort aber "Dieser Spieler ist nicht online."
Wenn ich eingebe /su 0 1 1 (also statt Grund irgendeine Zahl) funktioniert es.
Ich weiß nicht wo der Fehler liegt, hier der Befehl:
ocmd:su(playerid,params[])
{
if(!IsPlayerMember(playerid,1) || !IsPlayerLeader(playerid,1))return SendClientMessage(playerid,COLOR_RED,"Du bist kein Mitglied vom LVPD.");
new pID,Anzahl,reason,string[128];
if(sscanf(params,"uis",pID,Anzahl,reason))return SendClientMessage(playerid,COLOR_GREY,"Benutze: /su [ID] [Anzahl] [Grund]");
if(!IsPlayerConnected(pID))return SendClientMessage(playerid,COLOR_RED,"Dieser Spieler ist nicht online.");
if(IsPlayerMember(playerid,1) || IsPlayerLeader(playerid,1))return SendClientMessage(playerid,COLOR_RED,"Man kann Polizisten keine Wanteds geben.");
SetPlayerWantedLevel(pID,GetPlayerWantedLevel(pID)+Anzahl);
format(string,sizeof(string),"Du hast dem Spieler %s %i Wanteds gegeben. Grund: %s.",SpielerName(pID),Anzahl,reason);
format(string,sizeof(string),"Der Polizist %s hat dir %i Wanteds gegeben. Grund: %s.",SpielerName(playerid),Anzahl,reason);
SendClientMessage(playerid,COLOR_BLUE,string);
SendClientMessage(pID,COLOR_BLUE,string);
SaveAccount(pID);
return 1;
}
Ich hoffe jemand weiß woran es liegt.Mit freundlichen Grüßen,
Mr.Cro997 -
schau dir nochmal dein sscanf an.
if(sscanf(params,"us",pID))
Du hast ein String Parameter angegeben, jedoch nicht deklariert.
so müsste es eig. bei dir aussehen
if(sscanf(params,"us",pID,reason))Oh mist, gar nicht gesehen, danke
-
es muss doch heissen "!IsPlayerConnected"
denn sonst fragst du ab, ob er da ist, und wenn er da ist wird der string angezeigt das es nicht Online istalso einfach das Ausrufezeichen(!) vor das IsPlayerConnected
//Handy
Klappt jetzt nachdem ich statt dem sscanf Include den sscanf stock benutze.
-
Guten Tag,
ich habe eben einen Befehl gescriptet mit dem man einen Spieler mit dem Schema /auninvite [ID] [Grund] einen Spieler zum Zivilisten machen kann.
Wenn ich nun aber beispielsweise eingebe: /auninvite 0 kommt im Chat: Benutze: /auninvite [ID] [Grund].
Ich hoffe jemand kann mir helfen den Fehler zu lösen.
Hier der Befehl:
ocmd:auninvite(playerid,params[])
{
if(!IsPlayerAnAdmin(playerid,1337))return SendClientMessage(playerid,COLOR_RED,"Du hast nicht das ausreichende Adminlevel.");
new pID,reason[64],string[128];
if(sscanf(params,"us",pID))return SendClientMessage(playerid,COLOR_GREY,"Benutze: /auninvite [ID] [Grund]");
SetPVarInt(pID,"Fraktion",0);
format(string,sizeof(string),"Du hast den Spieler %s aus seiner Fraktion geworfen.",SpielerName(pID));
SendClientMessage(playerid,COLOR_ORANGE,string);
format(string,sizeof(string),"Du wurdest vom Admin %s aus deiner Fraktion geworfen. Grund: %s.",SpielerName(playerid),reason);
SendClientMessage(pID,COLOR_ORANGE,string);
SpawnPlayer(pID);
SetPlayerInterior(pID,0);
SaveAccount(pID);
return 1;
}Mit freundlichen Grüßen,
Mr.Cro997 -
Guten Tag,
ich bin gerade dabei einen Server zu scripten der in LV spielt.
Meine frage an euch ist nun: Soll auf dem Server LV Las Venturas oder Las Vegas bedeuten, bzw. darf ich den Namen Las Vegas überhaupt verwenden?
Ich hoffe jemand beantwortet meine Frage.Mit freundlichen Grüßen,
Mr.Cro997 -
Probiermal so:
ocmd:kick(playerid,params[])
{
if(!isPlayerAnAdmin(playerid,1))return SendClientMessage(playerid,ROT,"Dein Adminlevel ist zu niedrig");
new pID, reason[128],string[128];
if(IsPlayerConnected(pID)) return SendClientMessage(playerid,ROT,"Der Spieler ist nicht online");
if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid,ROT,"/kick [ID] [grund]");
format(string,sizeof(string),"AdmCmd: %s wurde von %s gekickt. Grund: %s",PlayerName(pID),PlayerName(playerid),reason);
SendClientMessageToAll(ROT,string);
Kick(pID);
return 1;
}Ich Chat steht: Der Spieler ist nicht online.
-
Also insgesammt sieht es dann so aus
ocmd:kick(playerid,params[])
{
new pID,string[128],grund[128];
if(!IsPlayerConnected(pID))return SendClientMessage(playerid,ROT,"Der angegebene Spieler ist nicht connected!");
if(sscanf(params,"us",pID,grund))return SendClientMessage(playerid,ROT,"Benutzung: /kick [ID] [Grund]");
if(IstSpielerAdmin(playerid,1))
{
format(string,sizeof(string),"[AdmCmd] %s wurde von %s vom Server gefickt. Grund: %s",SpielerName(pID),SpielerName(playerid),grund);
SendClientMessageToAll(ROT,string);
Kick(pID);
FreezePlayer(pID);
SpielerSpeichern(playerid);
SpielerSpeichern(pID);
}
else
{
SendClientMessage(playerid,ROT,"Dein Adminlevel ist zu niedrig");
return 1;
}
return 1;
}Musst nur deine Adminabfrage und die Farbe ändern
Wenn ich mache /kick 0 test kommt da: [AdmCmd] wurde von Smokey gekickt. Grund:
Server unknown command. -
Guten Morgen,
ich habe ein Problem mit meinem Kick Befehl.
Ich habe bereits die Suchfunktion benutzt und mir sehr viele Beiträge angeschaut aber keiner hat mir geholfen.
Mein Problem ist: Wenn ich beispielsweise /kick 0 Test eingebe, steht nur im Chat: AdmCmd: wurde von Smokey gekickt. Grund:
Dies passiert auch wenn ich ID 1 nehme, obwohl diese ID nicht mal online ist.Ich habe das Problem auch noch mal in einem Video aufgenommen:
http://www.youtube.com/watch?v=5LWLsJheB6s&feature=youtu.beHier mein /kick Befehl:
ocmd:kick(playerid,params[])
{
if(!IsPlayerAnAdmin(playerid,1))return SendClientMessage(playerid,COLOR_RED,"Du hast nicht das ausreichende Adminlevel.");
new pID, reason[128], string[128];
if(sscanf(params,"us[128]",pID,reason))return SendClientMessage(playerid,COLOR_RED,"Benutze: /kick [ID] Grund]");
format(string,sizeof(string),"AdmCmd: %s wurde von %s gekickt. Grund: %s.",Spielername(pID),Spielername(playerid),reason);
SendClientMessageToAll(COLOR_RED,string);
Kick(pID);
return 1;
}
Ich hoffe mir kann jemand helfen meinen /kick Befehl funktionsfähig zu machen.Mit freundlichen Grüßen,
Mr.Cro997 -
Du musst speichern bevor du den Restart machst bzw. vor "gmx".
Jetzt siehts so aus, funktioniert aber trotzdem nicht:
if(strcmp(cmdtext, "/gmx", true) == 0)
{
if(IsPlayerAnAdmin(playerid,2000))
{
for(new i = 0; i < GetMaxPlayers(); i++)
{
SaveAccount(i);
}
SendClientMessageToAll(COLOR_YELLOW,"[Server-Restart] Der Server wird neugestartet, wir sind gleich wieder zurück.");
SendRconCommand("gmx");
}
else
{
SendClientMessage(playerid,COLOR_RED,"Du hast nicht das ausreichende Adminlevel.");
}
return 1;
} -
Guten Tag,
da ich aus Versehen meinen anderen Beitrag auf "Abgeschlossen" gestellt habe erstelle ich jetzt einen neuen Beitrag.
Und zwar: Alle Sachen werden beim Einloggen normal geladen und bei /q auch gespeichert.
Bei einem Serverrestart aber werden nur die Sachen gespeichert die es schon in Pawn gibt, also Geld, Fightstyle usw., aber dazugescriptete Dinge wie Bank, Adminlevel usw. werden aber immer wieder auf 0 gesetzt.
In meinem letzten Beitrag wurde ja schon gesagt, dass ich in den Restart Befehl eine Schleife machen soll die alle Spieler durchläuft und dann speichert, dies habe ich getan, aber nach dem Restart sind die Dinge wieder auf 0 gesetzt.
Hier mein SaveAccount stock:
stock SaveAccount(playerid)
{
new name[128], save[128];
GetPlayerName(playerid,name,sizeof(name));
format(save,sizeof(save),"/Spieler/%s.ini",name);
if(dini_Exists(save))
{
dini_IntSet(save,"Geld",GetPlayerMoney(playerid)); // speichert das aktuelle Geld, was der Spieler zum schluss hatte
dini_IntSet(save,"Skin",GetPlayerSkin(playerid)); // speichert den aktuellen Skin, welchne der Spieler zum schluss hatte
dini_IntSet(save,"Bank",GetPVarInt(playerid,"Bank"));
dini_IntSet(save,"Perso",GetPVarInt(playerid,"Perso"));
dini_IntSet(save,"Fightstyle",GetPlayerFightingStyle(playerid));
dini_IntSet(save,"Adminlevel",GetPVarInt(playerid,"Adminlevel"));
dini_IntSet(save,"Fraktion",GetPVarInt(playerid,"Fraktion"));
dini_IntSet(save,"Level",GetPlayerScore(playerid));
}
return 1;
}Mein OnPlayerDisconnect:
public OnPlayerDisconnect(playerid, reason)
{
new name[128], save[128];// Gleiche
GetPlayerName(playerid,name,sizeof(name)); // wie
format(save,sizeof(save),"/Spieler/%s.ini",name);// oben
if(dini_Exists(save)) // steht
{
SaveAccount(playerid);
}
return 1;
}Und mein Restart Befehl:
if(strcmp(cmdtext, "/gmx", true) == 0)
{
if(IsPlayerAnAdmin(playerid,2000))
{
SendClientMessageToAll(COLOR_YELLOW,"[Server-Restart] Der Server wird neugestartet, wir sind gleich wieder zurück.");
SendRconCommand("gmx");
for(new i = 0; i < GetMaxPlayers(); i++)
{
SaveAccount(i);
}
}
else
{
SendClientMessage(playerid,COLOR_RED,"Du hast nicht das ausreichende Adminlevel.");
}
return 1;
}Ich weiß nicht wo der Fehler liegen könnte und ich hoffe ihr wisst wie ich das Problem lösen kann.
Mit freundlichen Grüßen,
Mr.Cro997 -
public OnPlayerDisconnect(playerid, reason)
{
new name[128], save[128];
GetPlayerName(playerid,name,sizeof(name));
format(save,sizeof(save),"/Spieler/%s.ini",name);
if(dini_Exists(save))
{
SaveAccount(playerid);
}
return 1;
}[quote='Bluescreen','san-andreas-multiplayer/scripting-base/152717-speicherungs-problem/'Wie Speicherst du es den bei OnPlayerDisconnect?
Vielleicht hast du es ja dort anderst[/quote] -
Mach die Schleife bei deinem Restart Command, den OnGameModeExit wird aufgerufen wenn kein Spieler mehr auf dem Server ist, soweit ich es weiß, die Schleife unter den /restart Command Packen und dann Probieren:
for(new i = 0; i < GetMaxPlayers(); i++)
{
SaveAccount(i);
}Hat nicht geklappt...
Mein Restart Befehl sieht so aus:
if(strcmp(cmdtext, "/gmx", true) == 0)
{
if(IsPlayerAnAdmin(playerid,2000))
{
SendClientMessageToAll(COLOR_YELLOW,"[Server-Restart] Der Server wird neugestartet, wir sind gleich wieder zurück.");
SendRconCommand("gmx");
SaveAccount(playerid);
for(new i = 0; i < GetMaxPlayers(); i++)
{
SaveAccount(i);
}
}
else
{
SendClientMessage(playerid,COLOR_RED,"Du hast nicht das ausreichende Adminlevel.");
}
return 1;
} -
for(new i = 0; i < GetMaxPlayers(); i++)
{
SaveAccount(i);
}So, die Schleife geht durch alle Spieler durch
Hat leider nicht geklappt, nach dem Restart sind Adminlevel etc. wieder 0 :O
-
Mach doch bei OnGameModeExit, das die Spieler gespeichert werden
Und wie mache ich das ALLE Spieler gespeichert werden?
-
Guten Tag,
ich habe ein Problem mit der Speicherung der Spieler.
Wenn ich Ingame gehe werden alle Dinge normal geladen und wenn ich /q mache auch gespeichert.
Wenn ich aber einen Serverrestart mache wird aber nur gespeichert: Skin, Geld, Score und Fightstyle, also alles was es in Pawn schon gibt, solche Dinge wie Bank, oder Perso (also selbst dazugescriptete Dinge) werden aber immer wieder auf 0 gesetzt.
Ich weiß nicht wo das Problem liegt oder ob es an dem stock liegt in dem der Spieler gespeichert wird.
Hier mal mein Spieler speichern stock:
stock SaveAccount(playerid)
{
new name[128], save[128];
GetPlayerName(playerid,name,sizeof(name));
format(save,sizeof(save),"/Spieler/%s.ini",name);
dini_IntSet(save,"Geld",GetPlayerMoney(playerid)); // speichert das aktuelle Geld, was der Spieler zum schluss hatte
dini_IntSet(save,"Skin",GetPlayerSkin(playerid)); // speichert den aktuellen Skin, welchne der Spieler zum schluss hatte
dini_IntSet(save,"Bank",GetPVarInt(playerid,"Bank"));
dini_IntSet(save,"Perso",GetPVarInt(playerid,"Perso"));
dini_IntSet(save,"Fightstyle",GetPlayerFightingStyle(playerid));
dini_IntSet(save,"Adminlevel",GetPVarInt(playerid,"Adminlevel"));
dini_IntSet(save,"Fraktion",GetPVarInt(playerid,"Fraktion"));
dini_IntSet(save,"Level",GetPlayerScore(playerid));
return 1;
}Ich hoffe jemand kann mir irgendwie helfen.
Mit freundlichen Grüßen,
Mr.Cro997 -
SetPVarInt(playerid,"Bank", GetPVarInt(playerid,"Bank") + strval(inputtext));
Muss es dann wenn einem Spieler Geld abgezogen ist heißen:
SetPVarInt(playerid,"Bank", GetPVarInt(playerid,"Bank") - strval(inputtext));
? -
Wenn du was verändern willst, musst du SetPVarInt machen
also so:
SetPVarInt(playerid,"Bank", GetPVarInt(playerid,"Bank") + strval(inputtext);Danke für die Antwort.
Die Zeilen kommen ja alle aus meinem Banksystem und meine frage ist jetzt:
Es heißt ja: + strval... wird dann dem Spieler auch das Geld abgezogen was er überwiesen hat oder muss man dann das + durch ein - austauschen? -
Guten Tag,
immer wenn ich meine Script compile bekomme ich diese Errors:
C:\Users\Marcel\Desktop\LV Script [Selfmade]\gamemodes\LegendsLife.pwn(905) : error 022: must be lvalue (non-constant)
C:\Users\Marcel\Desktop\LV Script [Selfmade]\gamemodes\LegendsLife.pwn(915) : error 022: must be lvalue (non-constant)
C:\Users\Marcel\Desktop\LV Script [Selfmade]\gamemodes\LegendsLife.pwn(936) : error 022: must be lvalue (non-constant)
C:\Users\Marcel\Desktop\LV Script [Selfmade]\gamemodes\LegendsLife.pwn(937) : error 022: must be lvalue (non-constant)Hier die Zeilen:
GetPVarInt(playerid,"Bank") += strval(inputtext);
GetPVarInt(playerid,"Bank") -= strval(inputtext);
GetPVarInt(playerid,"Bank") -= strval(inputtext);
GetPVarInt(pID,"Bank") += strval(inputtext);Ich hoffe jemand kann mir weiterhelfen.
Mi freundlichen Grüßen,
Mr.Cro997