Hey, wie erstelle ich eine Schleife ? Z.b. ich drücke Leertaste und er Settet dann einen skin Drücke ich nochmal Settet er den Nächsten drück ich Enter wird er Gespeichert wie mach ich sowas ?
Schleife erstellen
- Devel1982
- Geschlossen
- Erledigt
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
-
-
Du willst also mit Tastendrücken zwischen den Skins wechseln und dann anschließend einen auswählen?
-
Falscher Bereich.
OnPlayerKeyStateChange:
Fragen ob ein Spieler Leertaste drückt, Variable für den aktuellen Skin erstellen oder GetPlayerSkin benutzen.
Skin auf GetPlayerSkin + 1 (oder Variable +1) setzen [...].
Anders herum (wenn du wieder zurück willst) auf GetPlayerSkin -1.Für die Bestätigung fragen ob ein Spieler Enter drückt und einfach GetPlayerSkin in einer Datenbank oder Textdatei speichern.
Beachte das Skins von 0 anfangen und bis https://wiki.sa-mp.com/wiki/Skins:All 311 gehen.
Also if(GetPlayerSkin(playerid) == 0 && zurück)
setplayerskin 311und anders herum
if(GetPlayerskin(playerid) == 311 && weiter)
setplayerskin 0 -
@ ja so Sollte es sein @alva Kannst du ein kleines Beispiel machen ? Verstehe das noch nicht so Ganz bin Relativ neu
shoxinat0r -
Hey,
hier hast du ein Kleines Beispiel
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(Deine Abfrage ob der Spieler in der Skin Auswahl ist)
{
if(newkeys == KEY_JUMP) //Shift
{
if(GetPlayerSkin(playerid) == 311)
{
SetPlayerSkin(playerid, 0);
}
else
{
SetPlayerSkin(playerid, GetPlayerSkin(playerid) + 1);
}
//Nächster Skin
}
if(newkeys == KEY_WALK) //Alt
{
if(GetPlayerSkin(playerid) == 0)
{
SetPlayerSkin(playerid, 311);
}
else
{
SetPlayerSkin(playerid, GetPlayerSkin(playerid) - 1);
}
//Vorheriger Skin
}
if(newkeys == KEY_SECONDARY_ATTACK) //Enter
{
//Skin Auswahl Beenden (Skin Annehmen)
}
if(newkeys == KEY_SPRINT) //Space
{
//Skin Auswahl abbrechen
}
}
return 1;
}//Handy
-
Danke dafür jetzt weiß ich wie man es macht
Nachtrag Ich bekomme den Error Undefined Symbol "CMD"
Code
Alles anzeigenFunction OnPlayerKeyStateChange(playerid, newkeys, oldkeys) { if(strcmp(cmd, "/noobskin", true) == 0) { if(newkeys == KEY_JUMP) //Shift { if(GetPlayerSkin(playerid) == 311) { SetPlayerSkin(playerid, 0); } else { SetPlayerSkin(playerid, GetPlayerSkin(playerid) + 1); } //Nächster Skin } if(newkeys == KEY_WALK) //Alt { if(GetPlayerSkin(playerid) == 0) { SetPlayerSkin(playerid, 311); } else { SetPlayerSkin(playerid, GetPlayerSkin(playerid) - 1); } //Vorheriger Skin } if(newkeys == KEY_SECONDARY_ATTACK) //Enter { //Skin Auswahl Beenden (Skin Annehmen) } if(newkeys == KEY_SPRINT) //Space { //Skin Auswahl abbrechen } }
-
Error in Zeile 3? Wenn ja, dann musst du die Variable cmd vorher erst noch erstellen, da du die offensichtlich nicht definiert hast.
-
Nachtrag Fehler behoben Funzt nun alles Bestens Allerdings werden die Skins nicht Gespeichert welche Funktion muss ich Dafür einbauen ? Script "GermanEliteReallife"
-
Ich kenne das Script leider nicht.
Du könntest z.B. einen anderen Wert anschauen und vergleichen, wie der gespeichert wird. Das ließe sich dann auch auf den Skin übertragen. -
Code
Alles anzeigenif(strcmp(cmd, "/setskin", true) == 0) { if(IsPlayerConnected(playerid)) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_GRAD2, "Hilfe : /setskin [playerid/PartOfName] [skin model]"); return 1; } new playa; new health; playa = ReturnUser(tmp); tmp = strtok(cmdtext, idx); health = strvalEx(tmp); if (PlayerInfo[playerid][pAdmin] >= 2000) { if(IsPlayerConnected(playa)) { if(playa != INVALID_PLAYER_ID) { new name[20]; new victim[20]; GetPlayerName(playerid, name, sizeof(name)); GetPlayerName(playa, victim, sizeof(victim)); PlayerInfo[playa][pModel] = health; PlayerInfo[playa][pChar] = health; SetPlayerSkin(playa, PlayerInfo[playa][pChar]); format(string, 256, "AdmWarning: [%s] Skin was just set to %d by %s!",victim,health,name); ABroadCast(COLOR_YELLOW,string,1347); } } } else { SendClientMessage(playerid, COLOR_GRAD1, " Du darfst diesen CMD nicht nutzen,schäm dich!"); } } return 1; }
Kannst damit was Anfangen ?
-
-
Bedingt.
Diesen Wert hier musst du für jeden Spieler speichern:
PlayerInfo[playa][pChar] -
Wie mache ich das bei dem Script das er Jeden Skin speichert wenn ich Enter Drücke ?
-
breadfish.de
Hat das Thema geschlossen.