beste
Nützliche Codeschnipsel
- breadfish
- Geschlossen
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
...ich tippe darauf, dass du diesen Thread und ein anderen Thread gleichzeitig offen hattest, und die Threads verwechselt hast. Hab' ich recht?
Wahrscheinlich eine Seite weiter vorne. -
Ein dcmd um einem Spieler Geld zu geben.
public OnPlayerCommandText(playerid, cmdtext[])
{
dcmd(gibgeld,7,cmdtext);//definirt den dcmd [gibgeld]ist der befehl[7] wie viele buchstaben der befehl hat
}
dcmd_gibgeld(playerid , params[])
{
new pID, Betrag;//pID=die id des spielers
if(sscanf(params, "dd", pID, Betrag))
{
return SendClientMessage(playerid,COLOR_RED, "Nutze: /gibgeld [SpielerID] [Betrag]");//hast du alles richtig eingegeben?
}
else
{
GivePlayerMoney(playerid,-Betrag);//zieht dir das geld von betrag ab
GivePlayerMoney(pID,Betrag);//gibt den spieler den betrag
}
return 1;
}
war auf das hier bezogen^^ sry -
Achso, ich entschuldige x)
stock AddPlayerTag(playerid, tag[])
{
new string[32];
GetPlayerName(playerid,string,sizeof(string));
format(string,sizeof(string),"%s%s",tag,string);
if(strlen(string) > MAX_PLAYER_NAME) { return 0; }
SetPlayerName(playerid,string);
return 1;
}stock DeletePlayerTag(playerid,tag[])
{
new string[32],strfound;
GetPlayerName(playerid,string,sizeof(string));
strfound=strfind(string,tag);
if(strfound>-1) { strdel(string,strfound,(strfound+strlen(tag))); }
SetPlayerName(playerid,string);
return 1;
} -
bei DeletePlayerTag holst du zwar den namen und löscht den tag, aber wenn der name dann nicht wieder geändert wird machts wenig sinn^^
-
dam dam daaaam
Füg auch am besten mal bei AddPlayerTag eine Abfrage ein, die prüft, ob Name + Tag nicht die maximale Länge (MAX_PLAYER_NAME) überschreiten. -
ok habs geändert x)
-
Ich weis das der Befehl kürzer geht aber in langer form ist halt mein Programmierstil, ich habs so gelernt und finde es übersichtlicher.
wiso U für user mit d gehts auch is ja beides ein intger oder? -
Nein das ist nicht ganz richtig, denn wenn du z.b. /gibgeld black 1000 bei deinem befehl machst, kommt die meldung das was falsch ist, bei seiner methode kommt das nicht, außer der Spieler ist nicht online
-
achso U kann auch ein string sein?
-
-
Bei 'u' kannst du die ID sowohl auch den namen eingeben, bei 'd' (oder auch 'i') aber nur die id
-
na dann wieder wat dazu gelernt aber wenn ich bei u ein string eingebe muss das der EXATE username sein oder?
-
Nein es muss nur ein Teil des Namens sein.
Z.B. bei mir reicht b oder bl aus, aber nicht Ace oder lac, vorausgesetzt ist ist kein anderer User mit diesen Buchstaben an der Position Online
-
Nein, nur nen teil reicht auch
-
was ist wenn einer ShockRone heist und sein kleiner bruder ShockRone231?
-
Zitat
stock AddPlayerTag(playerid, tag[])
{
new string[32];
GetPlayerName(playerid,string,sizeof(string));
format(string,sizeof(string),"%s%s",tag,string);
if(strlen(string) > MAX_PLAYER_NAME) { return 0; }
SetPlayerName(playerid,string);
return 1;
}stock DeletePlayerTag(playerid,tag[])
{
new string[32],strfound;
GetPlayerName(playerid,string,sizeof(string));
strfound=strfind(string,tag);
if(strfound>-1) { strdel(string,strfound,(strfound+strlen(tag))); }
SetPlayerName(playerid,string);
return 1;
}
ich würde ja unter OnPlayerConnect den Namen in einem globalen Array speichern. Dann kannst du SetPlayerName nutzen wie du willst und später einfach wieder SetPlayerName(playerid,NameArray[playerid]); -
Naja, ich will Codeschnipsel lieber kurz und einfach halten, deswegen hab ichs so gemacht.
Sonst, speichere ich in meinem Selfmade bei OnPlayerConnect die namen vom Spieler, und benutze statt "GetPlayerName" einfach "PlayerName[playerid]", so ist es besser und man benutzt die "GetPlayerName" Funktion nicht so oft, ressourcenschonnend -
Ja mach ich auch so. So kannst du auch problemlos Tags hinzufügen, ohne dass der Name im String verändert wird
-
Es geht nichts über den
stock ReturnPlayerName(playerid)
{
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, sizeof(pname));
return pname;
} -
Doch eine Globale Variable die den Namen bei OnPlayerConnect in die Var einträgt
new PlayerName[MAX_PLAYER_NAME];
bei OnPlayerConnect(playerid)
GetPlayerName(playerud,PlayerName[playerid],MAX_PLAYER_NAME);verwendet werden kanns dann so
format(string,sizeof(string),"Name: %s",PlayerName[playerid);
Spart viel Zeit -