Guten tag,
ich wollte fragen wie man die Score (mit tab öffnen) mit einem befehl immer +1 erhöhen kann.
Hoffe auf Antwort.
Mit freundlichen Grüßen
Shoxi
Guten tag,
ich wollte fragen wie man die Score (mit tab öffnen) mit einem befehl immer +1 erhöhen kann.
Hoffe auf Antwort.
Mit freundlichen Grüßen
Shoxi
dcmd_score(playerid, params[])
{
new pID = strval(params);
if(!params[0]) return SendClientMessage(playerid, COLOR_RED, "/score [ID]");
if(!IsPlayerConnected(pID) && IsPlayerNPC(pID)) return SendClientMessage(playerid, COLOR_RED, "Spieler ist nicht verbunden oder ist ein Bot.");
else SetPlayerScore(pID,GetPlayerScore(pID) + 1);
return 1;
}
Damit wird der Score eines Spielers immer um 1 erhöht
nein das jeder spieler selber das machen kann /score und dann +1 kriegt und das das was kostet so meine ich das
dcmd_score(playerid) {
SetPlayerScore(playerid,GetPlayerScore(playerid) + 1);
GivePlayerMoney(playerid,-5000); // - 5000$
new msg[128];
format(msg,sizeof(msg),"Du hast deinen Score für 5000$ um 1 erhöht und hast nun einen Score von %d",GetPlayerScore(playerid));
SendClientMessage(playerid,FARBE,msg);
return 1; }
und wie muss das aussehen Beispiel: dcmd(taze, 4, cmdtext);
dcmd(score,5, cmdtext);
Den Befehl eintragen + dahinter die Länge des Wortes, in dem fall besitzt score 5 Buchstaben daher die 5 dahinter.
wo muss das + hin?
dcmd(score,5, cmdtext);
if (strcmp("/stats", cmdtext, true, 10) == 0){new name[MAX_PLAYER_NAME], string[256], string2[256];GetPlayerName(playerid, name, sizeof(name));format(string, sizeof(string), "* Statistiken von %s *", name);format(string2, sizeof(string2), "[Geld: %d] [Deaths: %d] [Kills: %d] [Respektpunkte: %d]",GetPlayerMoney(playerid),Spieler[playerid][Deaths],Spieler[playerid][Kills],Spieler[playerid][Respekt]);SendClientMessage(playerid, DUNKELROT, string);SendClientMessage(playerid, GRAU, string2);return 1;}dcmd_score(playerid){SetPlayerScore(playerid,GetPlayerScore(playerid) + 1);GivePlayerMoney(playerid,-5000); // - 5000$new msg[128];format(msg,sizeof(msg),"Du hast deinen Score für 5000$ um 1 erhöht und hast nun einen Score von %d",GetPlayerScore(playerid));SendClientMessage(playerid,Info,msg);return 1; }
return 0;}
Da kommen die Errors
C:\Users\DDoemsky\Desktop\Selfmade Gang Wars\gamemodes\TDM.pwn(230) : error 017: undefined symbol "dcmd_score"
C:\Users\DDoemsky\Desktop\Selfmade Gang Wars\gamemodes\TDM.pwn(244) : error 017: undefined symbol "dcmd_score"
C:\Users\DDoemsky\Desktop\Selfmade Gang Wars\gamemodes\TDM.pwn(253) : warning 225: unreachable code
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
2 Errors.
230: dcmd(score,5, cmdtext);
244: dcmd_score(playerid)
253: return 0;
Nirgendwohin ...
Das kommt in OnPlayerCommandText :
dcmd(score,5, cmdtext);
Und dieser Abschniit kommt unter die gesamte Public (OnPlayercommanmdtext) :
dcmd_score(playerid) { SetPlayerScore(playerid,GetPlayerScore(playerid) + 1); GivePlayerMoney(playerid,-5000); // - 5000$ new msg[128]; format(msg,sizeof(msg),"Du hast deinen Score für 5000$ um 1 erhöht und hast nun einen Score von %d",GetPlayerScore(playerid)); SendClientMessage(playerid,FARBE,msg); return 1; }
Alternativ (falls du das obere nicht hinbekommst) machst du alles rückgängig und fügst einfach nur diesen Abschnitt :
if (strcmp(cmd, "/score", true) == 0) {
SetPlayerScore(playerid,GetPlayerScore(playerid) + 1);
GivePlayerMoney(playerid,-5000); // - 5000$
new msg[128];
format(msg,sizeof(msg),"Du hast deinen Score für 5000$ um 1 erhöht und hast nun einen Score von %d",GetPlayerScore(playerid));
SendClientMessage(playerid,FARBE,msg); return 1; }
In die Public OnPlayerCommandText.
Ps. Das was ich dazu geschrieben hatte war einfach nur eine Erklärung wie man zu diesem Ergebnis kommt, ich empfehle dir mal diese Seite : http://wiki.sa-mp.com/wiki/Dcmd
€//
So hier mal alles richtig eingefügt :
public OnPlayerCommandText(playerid, cmdtext[]){
if (strcmp("/stats", cmdtext, true, 10) == 0){
new name[MAX_PLAYER_NAME], string[256], string2[256];
GetPlayerName(playerid, name, sizeof(name));
format(string, sizeof(string), "* Statistiken von %s *", name);
format(string2, sizeof(string2), "[Geld: %d] [Deaths: %d] [Kills: %d] [Respektpunkte: %d]",GetPlayerMoney(playerid),Spieler[playerid][Deaths],Spieler[playerid][Kills],Spieler[playerid][Respekt]);
SendClientMessage(playerid, DUNKELROT, string);
SendClientMessage(playerid, GRAU, string2);
return 1;}
//---------
if (strcmp(cmd, "/score", true) == 0) {
SetPlayerScore(playerid,GetPlayerScore(playerid) + 1);
GivePlayerMoney(playerid,-5000); // - 5000$
new msg[128];
format(msg,sizeof(msg),"Du hast deinen Score für 5000$ um 1 erhöht und hast nun einen Score von %d",GetPlayerScore(playerid));
SendClientMessage(playerid,FARBE,msg); return 1; }
return 0;}
ok ohne dcmd hat geklappt danke an alle
noch 1 frage wie kann ich das jez machen else wenn spieler nicht 5000 doller hat kommt text?
hoffe auf letzte antwort