[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
-
-
C
Alles anzeigenstock s_SetPlayerWantedLevel(playerid,wlvl) { if(wlvl > 0) { HideWantedStars(playerid); pTextDraw[playerid][StarNumber] = CreatePlayerTextDraw(playerid, 520.000000, 103.000000, "12"); PlayerTextDrawBackgroundColor(playerid, pTextDraw[playerid][StarNumber], 255); PlayerTextDrawFont(playerid, pTextDraw[playerid][StarNumber], 3); PlayerTextDrawLetterSize(playerid, pTextDraw[playerid][StarNumber], 0.569999, 2.000000); PlayerTextDrawColor(playerid, pTextDraw[playerid][StarNumber], -1); PlayerTextDrawSetOutline(playerid, pTextDraw[playerid][StarNumber], 1); PlayerTextDrawSetProportional(playerid, pTextDraw[playerid][StarNumber], 1); new tdstring[32]; PlayerTextDrawShow(playerid,pTextDraw[playerid][StarNumber]); TextDrawShowForPlayer(playerid,gTextDraw[LightStar1]); format(tdstring, sizeof(tdstring), "%d", wlvl); PlayerTextDrawSetString(playerid, pTextDraw[playerid][StarNumber], tdstring); } else { HideWantedStars(playerid); } return 1; }Hab dann im "Wanted-Gebe"-Befehl:
s_SetPlayerWantedLevel(pID,Spieler[pID][pWanteds]);Der "Stern" also LightStar1 wird angezeigt, aber die StarNumber nicht. Woran liegts?
-
Wie sieht denn der Befehl aus?
-
Wie sieht denn der Befehl aus?
C
Alles anzeigenocmd:suspect(playerid, params[]) { new pID, string[128], reason[64]; if(DM[playerid][7] != 1)return SendClientMessage(playerid, COLOR_GREY, "Du bist kein Polizist."); if(sscanf(params, "us[64]", pID, reason))return SendClientMessage(playerid, COLOR_GREY, "Benutze: (/su)spect [SpielerID/Name] [Grund]"); if(!IsPlayerConnected(pID))return SendClientMessage(playerid, COLOR_GREY, "Dieser Spieler ist nicht online."); if(IsPlayerNPC(pID))return 1; //if(DM[pID][7] == 1)return SendClientMessage(playerid, COLOR_GREY, "Der Spieler ist ein Polizist."); //if(DM[pID][7] != 2)return SendClientMessage(playerid, COLOR_GREY, "Der Spieler ist kein Robber."); Spieler[pID][pWanteds] += 1; j_SetPlayerWantedLevel(pID,Spieler[pID][pWanteds]); format(string, sizeof(string), "Du hast ein Verbrechen begangen. (%s) Zeuge: %s", reason, SpielerName(playerid)); SendClientMessage(pID, COLOR_RED, string); format(string, sizeof(string), "Dein aktuelles Wanted Level: %d", Spieler[pID][pWanteds]); SendClientMessage(pID, COLOR_YELLOW, string); format(string, sizeof(string), "HQ: %s (ID: %d) hat ein Verbrechen begangen: %s, over.", SpielerName(pID), pID, reason); SendCopMessage(COLOR_COP_MELDUNG, string); format(string, sizeof(string), "HQ: Zeuge: %s, Aktuelles Wantedlevel: %d, over.", SpielerName(playerid), Spieler[pID][pWanteds]); SendCopMessage(COLOR_COP_MELDUNG, string); return 1; } -
Du rufst j_SetPlayerWantedLevel auf, dein stock heißt aber s_SetPlayerWantedLevel.
-
Du rufst j_SetPlayerWantedLevel auf, dein stock heißt aber s_SetPlayerWantedLevel.
War n "fail".
Ist geändert.
Zahl erscheint nur kurz und verschwindet. -
Wie kann ich am besten die Position für z.b TextDraws herausfinden? Also wenn ich jetzt Z.b Rechts unten am Rand ein TextDraw haben will wie finde ich die Position raus?
-
Das kannst du mit einem Textdraw Editor deiner Wahl machen.
Beispiel: http://forum.sa-mp.com/showthread.php?t=543002
Zahl erscheint nur kurz und verschwindet.
Erstelle bitte einen Thread und poste dort nochmal den ganzen Code, da das keine kleine Frage mehr ist.
Prüfe vorher, ob du das Textdraw auch wirklich nirgends aus Versehen löschst. -
Hi ich habe ein Problem und zwar wenn ich den Server Starte Laden die Geldautomaten aber nicht der Text kann mir da einer Helfen hier der Text
Codet_count=0; for(new i = 0;i<sizeof(automat);i++) { automat[i][o_id] = CreateDynamicObject(2942, automat[i][fxa],automat[i][fya],automat[i][fza], automat[i][faa], automat[i][faa2], automat[i][faa3]);//Motel CreateDynamic3DTextLabel("Geldautomat\n/auszahlen\n/einzahlen\n/ueberweisen",COLOR_BRIGHTRED,automat[i][fxa],automat[i][fya],automat[i][fza],8,INVALID_PLAYER_ID,INVALID_VEHICLE_ID,1,-1,-1,-1,100.0); t_count++; } printf("[SERVER] %i Geldautomaten wurden geladen.",t_count); -
-
Wieso spuckt der mir die Meldung raus.
Das ist keine Zahl!
?
-
Welche Meldung?
-
Das ist keine Zahl
-
Du musst, wenn du VARCHAR auswählst eine Länge angeben.
Eigene Frage:
Ich würde mein Fraktionsauto System gerne Dynamisch mit mysql schreiben. nur wie kann ich die Vehicle IDS dann den Fahrzeugen zuweisen? z.B Es wird ein neues gekauft, das wird dann einfach in die Tabelle eingefügt.
Sagen wir es gibt schon 3 Fahrzeuge mit den carid variablen lspd[0],lspd[1],lspd[2].
Wie stelle ich jetzt beim Kauf des 4 fest, dass es schon 3 Gibt?
Die eigentliche Frage:
Wie fragt man ab ob ein Array leer ist?
-
Nochmal ich xD
ich sitze in der zwickmühle
ich möchte gerne den wert von TeleportID haben und den um 1 erhöhen um einen neuen Spalt hinzuzufügen
also wenn ich den befehl ausführe
TelportID 1
nochmal ausführe
TeleportID 2 sollte reinCSS
Alles anzeigenmysql_GetInt("Teleport","TeleportID","TeleportID",??); //DER BEFEHL (ist jetzt nur zum testen grad da) ocmd:createtp(playerid,params[]) { if(pInfo[playerid][pAdminlevel] !=4) return SCM(playerid,ROT,"Du bist kein Admin!"); { new name[128],string[128],aname[MAX_PLAYER_NAME]; GetPlayerName(playerid,aname,sizeof(aname)); if(sscanf(params,"s",name)) return SCM(playerid,ROT,"Benutze: /createtp [ORTSNAME]"); new Float:pos[3]; GetPlayerPos(playerid,pos[0],pos[1],pos[2]); SendClientMessagef(playerid,BLAU,"Du hast den Teleport-Punkt zum %s erstellt. \nKoordinaten: X: %f\nY: %f\nZ: %f",name,pos[0],pos[1],pos[2]); format(string,sizeof(string),"[AdmMsg]: Der Admin %s hat den Teleport-Punkt %s erstellt!",aname,name); ABroadCast(ROT,string,1); mysql_GetInt("Teleport","TeleportID","TeleportID", format(query, sizeof(query), "INSERT INTO Teleport VALUES('', '%s', '%s', '%s', '0')", ...); mysql_query(query); mysql_SetString("Teleport","Ort",name,"TeleportID","1"); mysql_SetString("Teleport","Admin",aname,"TeleportID","1"); mysql_SetFloat("Teleport","X",pos[0],"Ort",name); mysql_SetFloat("Teleport","Y",pos[1],"Ort",name); mysql_SetFloat("Teleport","Z",pos[2],"Ort",name); return 1; } } -
Wie stelle ich jetzt beim Kauf des 4 fest, dass es schon 3 Gibt?
Hmm, naja, eigentlich genügt hier eine temporäre Variable:
C
Alles anzeigennew tmp; //Und dann da wo du dein Auto kaufst: if(tmp >= sizeof(lspd)) return ....; //Hier wurde die maximale Anzahl an Autos schon gekauft! lspd[tmp++] = CreateVehicle(...); //Aber theoretisch kann man das auch mit einer Funktion machen, falls alte Autos gelöscht werden sollten: //Da wo du das Auto kaufst: new x = GetFreeSlost(); if(x == -1) return ....; //Hier wurde die maximale Anzahl an Autos schon gekauft! lspd[x] = CreateVehicle(...); //Die Funktion: stock GetFreeSlot() { for(new i; i<sizeof(lspd); i++) if(!lspd[i]) return i; return -1; } -
ich sitze in der zwickmühle
Das ist keine kleine Scripting Frage, das siehst du schon an der Länge des Codes. Erstelle bitte einen Thread und poste dort auch die Informationen, wie du die gespeicherten Werte aus der Datenbank ausliest, um sie zu verwenden, davon hängt nämlich ab, wie man das machen muss.
-
//gelöst durch Jeffrey Tut, gute arbeit
-
Wie scriptet man selbsterstellte Sprunk Automaten? Ist das aufwendig oder nur ein kleiner Code?
-
@[LnD]JustMe.77
955 das objekt einfach erstellen?

