Dann fehlt bei deinem SetSkin stock die SetPVar von "Skin". Das musst du noch hinzufügen.
Beiträge von Jeffry
-
-
Ich schätze mal du hast die Speicherung vergessen, wenn es nicht speichert.
Wie speicherst du die Spieler Statistiken denn?
-
Abfragen ob eine Zahl eingegeben wurde kannst du mit IsNumeric.
Cstock IsNumeric(string[]) { for (new i = 0, j = strlen(string); i < j; i++) { if ((string[i] > '9' || string[i] < '0')) return 0; } return 1; }Abfragen ob der Skin existiert:
http://wiki.sa-mp.com/wiki/Skins:AllZwischen 0 und 311 und prüfen, ob eine der fehlenden IDs vielleicht eingegeben wurde.
-
Nochmal:
Dieser Thread ist für kleine Scripting Fragen gedacht und nicht zum debuggen von Code, das ist einfach zu unübersichtlich, wenn dazwischen fünf Leute andere Dinge posten, wie du siehst ist dein erster Post zu dem Problem bereits untergegangen.
Mache bitte einen neuen Thread auf. -
-
Dann mache es wie im Code von mir im Post drüber beschrieben.
-
-
Wird das Menü immer wieder geöffnet, oder was genau ist das Problem?
Falls das, dann:
Unter den Includes:Cif(pickupid == WaffenPICK) { ShowMenuForPlayer(WaffenMenu,playerid); TogglePlayerControllable(playerid, false); }zu:
Cif(pickupid == WaffenPICK) { if(blockedPickup[playerid]) return 1; blockedPickup[playerid] = true; ShowMenuForPlayer(WaffenMenu,playerid); TogglePlayerControllable(playerid, false); return 1; }
Und dann dort, wo du das Menü wieder hidest:Wenn du nichts bewegen kannst, dann versuche es mal ohne den Spieler zu freezen.
-
Du hast hier 4-dimensionale Arrays in Verwendung, das geht nicht.
Mache es mal so:
C
Alles anzeigenenum playercarEnum { pc_vID, modelid, anmeldung, Float:s_x, Float:s_y, Float:s_z, Float:s_r, db_id } new pCar[MAX_PLAYERS][2][playercarEnum]; new pCarBesitzer[MAX_PLAYERS][2][MAX_PLAYER_NAME]; new pCarPlate[MAX_PLAYERS][2][30];C
Alles anzeigenforward LoadPlayerCars(playerid); public LoadPlayerCars(playerid) { new rows = cache_get_row_count(),str[128]; for(new i=0; i<rows; i++) { if(i > sizeof(pCar[])) return 1; cache_get_field_content(i, "besitzer", str); //Besitzername format(pCarBesitzer[playerid][i], MAX_PLAYER_NAME, str); pCar[playerid][i][modelid] = cache_get_field_content_int(i, "modelid"); //Modelid pCar[playerid][i][db_id] = cache_get_field_content_int(i, "id"); //Datenbank ID cache_get_field_content(i,"numplate",str); format(pCarPlate[playerid][i], MAX_PLAYER_NAME, str); pCar[playerid][i][anmeldung] = cache_get_field_content_int(i, "anmeldung"); //AnmeldeStatus pCar[playerid][i][s_x] = cache_get_field_content_float(i, "s_x"); //Spawnpos x pCar[playerid][i][s_y] = cache_get_field_content_float(i, "s_y"); pCar[playerid][i][s_z] = cache_get_field_content_float(i, "s_z"); pCar[playerid][i][s_r] = cache_get_field_content_float(i, "s_r"); //Spawnpos rotation SetVehicleNumberPlate((pCar[playerid][i][pc_vID] = CreateVehicle(pCar[playerid][i][modelid], pCar[playerid][i][s_x], pCar[playerid][i][s_y], pCar[playerid][i][s_z], pCar[playerid][i][s_r], -1, -1, -1)),pCarPlate[playerid][i]); format(str,128,"LPC numplate: %s",pCarPlate[playerid][i]); print(str); SetVehicleParamsEx(pCar[playerid][i][pc_vID],0,0,0,1,0,0,0); } return 1; } -
Bei OnPlayerCommandText:
C
Alles anzeigenif(!strcmp(cmdtext, "/sethpall", true)) { for(new i = 0; i < MAX_PLAYERS; i++) { if(!IsPlayerConnnected(i) || IsPlayerNPC(i)) continue; SetPlayerHealth(i, 100.0); } new str[145]; GetPlayerName(playerid, str, MAX_PLAYER_NAME); format(str, sizeof(str), "[Info] %s gibt allen Spielern volle Health.", str); return SendClientMessageToAll(0x09ACE3FF, str); }
Wenn du willst, dass man die Health eingeben kann:C
Alles anzeigenif(!strcmp(cmdtext, "/sethpall", true, 9)) { if(!strlen(cmdtext[9])) return SendClientMessage(playerid, 0xFF0000FF, "Error: /sethpall [HP]"); if(cmdtext[9] == ' ') { if(!strlen(cmdtext[10])) return SendClientMessage(playerid, 0xFF0000FF, "Error: /sethpall [HP]"); if(!IsNumeric(cmdtext[10])) return SendClientMessage(playerid, 0xFF0000FF, "Error: Ungültige HP"); new hp = strval(cmdtext[10]); if(hp > 100 || hp < 0) return SendClientMessage(playerid, 0xFF0000FF, "Error: Ungültige HP"); for(new i = 0; i < MAX_PLAYERS; i++) { if(!IsPlayerConnnected(i) || IsPlayerNPC(i)) continue; SetPlayerHealth(i, hp); } new str[145]; GetPlayerName(playerid, str, MAX_PLAYER_NAME); format(str, sizeof(str), "[Info] %s gibt allen Spielern %d Health.", str, hp); return SendClientMessageToAll(0x09ACE3FF, str); } }
Dazu das hier ganz unten im Gamemode einfügen: -
Schreibe es in mehrere Zeilen.
Einen Zeilenumbruch machst du mit \nDann kannst du Absätze erstellen und so den Text sinnvoll gliedern.
-
Das steht zwei Zeilen drüber vor der Schleife jeweils.
-
Wie sieht dein enum zu pCar aus?
-
-
Ja, nur die 24 bei der Deklaration vom String musst du etwas größer machen.
-
Das liegt an deinem stopcountdown Befehl.
Du musst, wie im Beispiel, den string mit format formatieren. -
Das ist nicht möglich, außer du fragst ab ob der Spieler AFK ist (Sanduhr über dem Kopf), denn er geht ja ins ESC Menü, müsste dann aber etwas Zeit drin bleiben.
-
Im Modus in dem man Textdraws anklicken kann, oder einfach so?
-
-