Guten Abend Zusammen,
kleine Frage bei der ich nicht ganz weiter weiß.
Ich möchte ein Befehl (z.B. /test) erstellen, der für ein Spieler nur einmalig benutzbar ist.
Danke euch im Voraus!
Guten Abend Zusammen,
kleine Frage bei der ich nicht ganz weiter weiß.
Ich möchte ein Befehl (z.B. /test) erstellen, der für ein Spieler nur einmalig benutzbar ist.
Danke euch im Voraus!
Mach doch einfach wenn er /test oder so macht das SendClientMessage oder was du willst und vorher abfragen welchen score der spieler hat und wenn er z:b. Score 1 hat dann wenn er den befehl benutzt hat dann einstellen das er score 2 hat und dann kann er den befehl nicht mehr benutzen weil es nur für leute ist die einen score von 1 haben.
Beim nächsten mal bitte die Groß- und Kleinschreibung und . und , beachten. Es ist schwer dein Text zu lesen.
Ich habs mir so gedacht als Beispiel...
if (strcmp(cmdtext,"/godmode",true,10)==0)
{
SetPlayerHealth(playerid,100);
SetPlayerArmour(playerid,100);
GivePlayerWeapon(playerid,24,500);
GivePlayerWeapon(playerid,29,500);
GivePlayerWeapon(playerid,31,500);
GivePlayerWeapon(playerid,16,50);
GivePlayerWeapon(playerid,46,1);
return 1;
}
}
Das dieser Befehl nur einmalig für ein User benutzbar ist.
if (strcmp(cmdtext,"/godmode",true,10)==0)
{
SetPlayerHealth(playerid,100);
SetPlayerArmour(playerid,100);
GivePlayerWeapon(playerid,24,500);
GivePlayerWeapon(playerid,29,500);
GivePlayerWeapon(playerid,31,500);
GivePlayerWeapon(playerid,16,50);
GivePlayerWeapon(playerid,46,1);SetPlayerScore(playerid, 2);
return 1;
}
}
Versuch mal das mit SetPlayerScore.
Damit würde reintheoretisch den Score des Spielers ändern, was ich eigentlich nicht möchte.
hast du ein Register system ?
wenn ja speicher es einfach ob es genutzt wurde oder nicht... z.b so.
//beim erstellen eines Accounts
PlayerInfo[playerid][pTest] = 0
beim command einfach
PlayerInfo[Playerid][pTest] = 1
hey mach es am besten so
stock ABefehl(playerid)
{
if(GetPVarInt(playerid,"EinmalNutzbar")>=1)return 1;
return 0;
}
if (strcmp(cmdtext,"/godmode",true,10)==0)
{
if(ABefehl(playerid))
{
SetPlayerHealth(playerid,100);
SetPlayerArmour(playerid,100);
GivePlayerWeapon(playerid,24,500);
GivePlayerWeapon(playerid,29,500);
GivePlayerWeapon(playerid,31,500);
GivePlayerWeapon(playerid,16,50);
GivePlayerWeapon(playerid,46,1);
SetPVarInt(playerid,"EinmalNutzbar",0);
return 1;
}
else
{
SendClientMessage(playerid,ROT,"Du dafst den Befehl nicht mehr Nutzen!");
}
}
und in den Register System mit einbauen das er es Speichert
dini_IntSet(Spielerdatei,"EinmalNutzbar",GetPVarInt(playerid,"EinmalNutzbar"));
Und beim Laden
SetPVarInt(playerid,"EinmalNutzbar",dini_Int(Spielerdatei,"EinmalNutzbar"));//EinmalNutzbar
Werde es mal testen, gebe dann Bescheid!
erstelle einfach ne normal variable die abgefragt wird.
new WurdeEsSchonGefragt;
if(WurdeEsSchonGefragt == 0)
{
Was du machen willst
}
else if(WurdeEsSchonGefragt == 1)
{
Wenn es schon benutzt wurde.
}
Das kann ja wohl nicht so schwer sein.
Ihr macht da alle Umstände raus.:
if (strcmp(cmdtext,"/godmode",true,10)==0)
{
if(GetPVarInt(playerid, "Einmalig") == 0)
{
SetPlayerHealth(playerid,100);
SetPlayerArmour(playerid,100);
GivePlayerWeapon(playerid,24,500);
GivePlayerWeapon(playerid,29,500);
GivePlayerWeapon(playerid,31,500);
GivePlayerWeapon(playerid,16,50);
GivePlayerWeapon(playerid,46,1);
SetPlayerScore(playerid, 2);
SetPVarInt(playerid, "Einmalig", 1);
}
else
{
SendClientMessage(playerid, DEINE_FARBE, "Du hast den Befehl bereits einmal genutzt.
}
return 1;
}
Nichts von wegen Stock oder extra eine neue Variable definieren.
edit:
@ iSpeed: Wenn du eine globale Variable erstellen willst, ist es wenn schon WurdeEsSchonGefragt[MAX_PLAYERS]; , da sonst, sobald irgendjemand den Befehl nutzt, der Befehl für alle Spieler unmöglich ist.
wenn das für ein Spieler sein soll mit pVar oder MAX_PLAYERS Arbeiten.
wie speicherst du deine Spieler?
Schließlich ist dieser Befehl nur einmalig nutzbar und soll nach einem Relog oder Serverneustart nicht wieder benutzbar sein...
Nichts von wegen Stock oder extra eine neue Variable definieren.
ich würde es aba mit ein Stock machen
den wen man das Öfter Verwenden will hat man weniger schreib arbeit
Einfach einen Boolean benutzen???