Hallo Breadfish Community,
Ich suche einen /startbonus Befehl den der Spieler sich selbst geben kann jedoch nur 1 Mal. Habe in der SuFu nichts gefunden was gepasst hätte. Kann einer so einen Schreiben für mich.?
Hallo Breadfish Community,
Ich suche einen /startbonus Befehl den der Spieler sich selbst geben kann jedoch nur 1 Mal. Habe in der SuFu nichts gefunden was gepasst hätte. Kann einer so einen Schreiben für mich.?
if(strcmp(cmd, "/Startbonus", true) == 0) {
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, " /Starterbonus [Playerid/Name]");
return 1;
}
new playa;
playa = ReturnUser(tmp);
if (PlayerInfo[playerid][pAdmin] >= 1)
{
if(IsPlayerConnected(playa))
{
if(playa != INVALID_PLAYER_ID)
{
GetPlayerName(playa, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
PlayerInfo[playa][pLevel] = 5;
GivePlayerMoney(playa,30000);
format(string, sizeof(string), "* ADMIN %s hat dir ein Starterpaket gegeben.",sendername);
SendClientMessage(playa, COLOR_BLUE, string);
format(string, sizeof(string), "* Du hast %s ein Starterpaket gegeben.",giveplayer);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
}
}
}
}
return 1; }
Machst halt einfach in deiner Userdatei oder Datenbank, je nachdem was du benutzt, einen Wert reinspeichern. Beim Befehl fragst du einfach ob, ob dieser Wert 0 ist, wenn ja, kriegt er seinen Start-Bonus und der Wert wird auf 1 gesetzt. Wenn er dann auf 1 ist, kann der Spieler ihn nicht mehr benutzen. Ganz simpel.
Ist das jetzt einmalig? Wo muss ich das hinschreiben?
Das war jetzt wieder ne Nummer zu viel für mich Habe ich nicht verstanden, sorry.
Kannst es so machen.
new Startbonus[MAX_PLAYERS];
dann bei OnPlayerConnect, wenn eine Userdatei existiert setzt du Startbonus auf 1 wenn sie nicht Existiert setzt du sie auf 0 das heisst wenn er zum ersten mal connectet kann er mit dem Befehl den du dann dafür machen könntest den befehl /startbonus eingibt. Geht dann halt nur beim ersten mal wenn er Connected und seinen Account neu erstellen muss.
Verstehe es ehrlich gesagt immer noch nicht.
hast du denn dann schonmal gescriptet?^^ Weils ehrlich gesagt sehr einfach ist.
ganz oben zu den news
new Startbonus[MAX_PLAYERS];
Dann wie gesagt wenn Account existiert oder nicht jeweils auf 0 oder 1 Setzen dann der befehl
if(strcmp(cmd, "/startbonus", true) == 0)
{
if(Startbonus[playerid] == 0)
{
if(Startbonus[playerid] == 1) return SendClientMessage(playerid, COLOR_GREY, "Du schummler");
GivePlayerMoney(playerid, 1000000);
SendClientMessage(playerid, COLOR_GREY, "Du hast deinen STartbonus bekommen.");
}
return 1;
}
Ist jetzt n bisschen schlampig geschrieben aber so sollte es gehen
EDIT: Paar verschönerungen
Alles anzeigenhast du denn dann schonmal gescriptet?^^ Weils ehrlich gesagt sehr einfach ist.
ganz oben zu den news
new Startbonus[MAX_PLAYERS];
Dann wie gesagt wenn Account existiert oder nicht jeweils auf 0 oder 1 Setzen dann der befehl
if(strcmp(cmd, "/startbonus", true) == 0)
{
if(Startbonus[playerid] == 0)
{
if(Startbonus[playerid] == 1) return SendClientMessage(playerid, COLOR_GREY, "Du schummler");
GivePlayerMoney(playerid, 1000000);
SendClientMessage(playerid, COLOR_GREY, "Du hast deinen STartbonus bekommen.");
}
return 1;
}
Ist jetzt n bisschen schlampig geschrieben aber so sollte es gehen
EDIT: Paar verschönerungen
aber er kann es dann beim nächsten login wieder machen.. heißt die Variable sollte besser gespeichert werden
Aber grob ist es natürlich richtig.
mfg
kann er nicht weil er beim nächsten login ja logischerweise einen account hat.
wie gesagt es geht wirklich nur beim allerersten connect sobald er sich zum ersten mal einen account erstellt
Ah danke BoB
Zu deiner Frage:
Nein ich habe noch nicht gescriptet würde es aber unwarscheinlich gerne können/lernen.
Da bist du hier im Bread genau richtig , hab auch alles was ich bisher kann hier gelernt, und irgendwann bist an einem Punkt angekommen da kannst du dir logische zusammenhänge zusammenreimen, und du hast die PAWN Sprache sogut wie verstanden^^, also immer schön tuts lesen davon gibts hier eigentlich zu allen was
Am besten fängst mit nem selfmade an hab ich auch gemacht.
Danke für den Tipp.
Wenn ich jetzt noch Level geben will mache ich das doch mit
GivePlayerLevel(playerid, 2);
Oder?
Was benutzt du denn? Godfather?
Ja müsste n Godfather sein
dann müsste es normal
PlayerInfo[playerid][pLevel] += 2;
sollte er nicht automatisch den score bei dir mitzählen mach es so
PlayerInfo[playerid][pLevel] += 2;
new playerlevel = PlayerInfo[playerid][pLevel]
SetPlayerScore(playerid, playerlevel);
Jetzt habe ich folgende Errors:
C:\Users\Daniel\Desktop\SAMP4YOU\gamemodes\BigCityReallife.pwn(834) : error 010: invalid function or declaration
C:\Users\Daniel\Desktop\SAMP4YOU\gamemodes\BigCityReallife.pwn(836) : error 010: invalid function or declaration
C:\Users\Daniel\Desktop\SAMP4YOU\gamemodes\BigCityReallife.pwn(838) : error 010: invalid function or declaration
C:\Users\Daniel\Desktop\SAMP4YOU\gamemodes\BigCityReallife.pwn(840) : error 021: symbol already defined: "JBC_GivePlayerMoney"
C:\Users\Daniel\Desktop\SAMP4YOU\gamemodes\BigCityReallife.pwn(843) : error 010: invalid function or declaration
C:\Users\Daniel\Desktop\SAMP4YOU\gamemodes\BigCityReallife.pwn(43394) : warning 203: symbol is never used: "Startbonus"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
5 Errors.
if(strcmp(cmd, "/starter", true) == 0){if(Startbonus[playerid] == 0)
{
if(Startbonus[playerid] == 1) return SendClientMessage(playerid, COLOR_LIGHTRED, "Du kannst diesen Befehl nur einmal benutzen!");
PlayerInfo[playerid][pLevel] += 2;
GivePlayerMoney(playerid, 100000);
SendClientMessage(playerid, COLOR_YELLOW, "Du hast deinen Startbonus von Admin %s bekommen!");
}
return 1;
}
hast auch ganz oben zu den anderen news
new Startbonus[MAX_PLAYERS];
gemacht?
und anscheinen benutzt du irgend nen Anti Money Hack programm, versuchst mal mit
JBC_GivePlayerMoney.....
new Startbonus[MAX_PLAYERS];
Das habe ich oben drinne, ja
Ja ich habe JunkBuster - Server Wächter drinne. Wo soll ich JBC_GivePlayerMoney..... hinschreiben
sag mir mal welche Error Zeilen welche sind
Ich habe es so gemacht:
(Hier muss ein Admin dem user den Startbonus geben)
if(strcmp(cmd, "/gebebonus", true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /gebebonus [playerid/PartOfName]");
return 1;
}
new playa;
playa = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
if (PlayerInfo[playerid][pAdmin] >= 4)
{
if(IsPlayerConnected(playa))
{
if(playa != INVALID_PLAYER_ID)
{
// ConsumingMoney[playa] = 1;
GetPlayerName(playa, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "AdmCmd: %s hat %s den Startbonus gegeben. (50k + Level 2)",sendername, giveplayer);
ABroadCast(COLOR_LIGHTRED,string,1); //Die nachricht geht an alle Admins
PlayerInfo[playa][pLevel] = 2;
GivePlayerMoney(playa, 50000);
SendClientMessage(playa, 0x009BFFFF, "Ein Administrator hat dir den Startbonus gegeben. (Level 2 + 50k)");
}
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, " Das darfst du nicht tun!");
}
}
return 1;
}
Sobald der User Level 2 Besitzt weis man auch das er schon den Startbonus hat