wie kann man denn sowas scripten das 2 Teams eine Zone einnehmen können ? also rot und blau brauch auch nicht gespeichert werden
arbeite mit enum spielerinfo
[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
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
-
-
if(SpielerInfo[playerid][Team] == 1 || SpielerInfo[playerid][Team] == 5)
{
//Kann einnehmen
}
else
{
//Nicht erlaubt
return SendClientMessage(playerid, 0xFF0000FF, "Error: Du kannst diese Zone nicht einnehmen, nur Team 1 und 5 dürfen das.");
} -
@SirEscobar
sry was denn jetzt? einer stadt zu weisen wat meinste damit genau?
oder willst du dass es von spielern nicht gekauft werden kann?Ich will das es keiner kaufen kann
-
Die Variablen werden nicht in die MySQL DB gespeichert
Wird aufgerufen bei OnGameModeExit -> Ich schalte den Server mit exit aus.
stock SaveServer()
{
new query[500];
format(query, sizeof(query), "UPDATE server SET login=%d, registration=%d, teamchange=%d, deathmatch=%d, weapondrop=%d, dgl=%d, mp5=%d, shotgun=%d, m4=%d, sniper=%d, weste=%d, roadblock=%d, nagelband=%d WHERE dummy=0",
Server[s_Login], Server[s_Registration], Server[s_TeamChange], Server[s_DeathMatch], Server[s_DropWeapons], Server[s_Dgl], Server[s_MP5], Server[s_Shotgun], Server[s_M4], Server[s_Sniper], Server[s_Weste], Server[s_Roadblock], Server[s_Nagelband]);
mysql_tquery(handle, query);
return 1;
}
MySQL Tabelle: http://abload.de/img/unbenanntlhu51.png
In der MySQL Log stehen keine warnings / errors. -
Versuche es eventuell mal mit
mysql_query(handle, query);Setze dort vielleicht auch mal nen print hin:
print(query); -
Ich habe kürzlich Textdraws erstellt und habe ein kleines Problem, ich weiß nicht wie ich das beheben soll. Wenn ich mit der Maus über einem Text "hover", soll diese rot erscheinen.
Das klappt auch nur sind da 2 ungewollte Fehler:1) Bei einem der 3 Textdraws geht es nicht.
2) Wenn ich über dem 2. "hover" und etwas runter gehe zum dritten, sind beide rot markiert. Ich möchte aber das nur einer zur gleichen Zeit markiert werden kann.Screen um es besser zu zeigen:
Brauchst du da den Code um es genau zu sagen oder habe ich einen Allgemeinen Fehler gemacht?
[hide]http://imgur.com/R3mMIqQ[/hide]
-
Ja, poste bitte den Code.
-
-
Poste hier bitte erst mal eines das nicht richtig geht, das reicht vielleicht schon.
Wenn das nichts bringt, dann kannst du mir alle in PN schicken. -
Bittesehr:
PlayerMainText2[playerid] = CreatePlayerTextDraw(playerid, 189.000000, 158.000000, "_"); //Button Register or Login
PlayerTextDrawBackgroundColor(playerid, PlayerMainText2[playerid], 255);
PlayerTextDrawFont(playerid, PlayerMainText2[playerid], 2);
PlayerTextDrawLetterSize(playerid, PlayerMainText2[playerid], 0.200000, 1.200000);
PlayerTextDrawColor(playerid, PlayerMainText2[playerid], -1);
PlayerTextDrawSetOutline(playerid, PlayerMainText2[playerid], 1);
PlayerTextDrawSetProportional(playerid, PlayerMainText2[playerid], 1); -
Du musst die Größe das anklickbaren Bereiches mit PlayerTextDrawTextSize anpassen. https://wiki.sa-mp.com/wiki/PlayerTextDrawTextSize
Der X Wert ist die Position PLUS die Größe des nach rechts anklickbaren Bereiches. Der Y Wert ist die geschätzte Höhe.Angenommen du erstellst dein Textdraw bei X = 120 und Y = 90. Dann machst du den Text "Hallo Welt" da rein. Sagen wir, der Text ist so groß, dass er in etwa über ein Zehntel deines Bildschirmes geht (musst du abschätzen, oder mit einem Lineal abmessen), dann heißt das 640 durch 10, das wäre 64. Somit ist PlayerTextDrawTextSize-X = 120 + 64 = 184.
Nun misst, bzw. schätzt, du die Höhe des Textdraws, sagen wir mal du bekommst den Text in etwa 20 mal untereinander hin, bis dein Bildschirm von oben nach unten voll damit wäre. Heißt also: 480 durch 20, das gibt 24. Somit wäre PlayerTextDrawTextSize-Y = 24.640 und 480 sind die vollen Werte für Breite und Höhe, unabhängig von der Auflösung.
Als Hilfestellung kannst du in diesen Thread schauen, da habe ich es an Hand eines Textdraws beispielhaft erklärt.
Bitte um Hilfe bei Skin Auswahl per TextDrawSchau mal ob du so damit klar kommst.
-
-
Da musst du den X Wert von PlayerTextDrawTextSize (erste Zahl) größer machen, so weit, bis es nicht mehr in die zweite Zeile springt.
-
Dankesehr, war hilfreich. Das Problem 2) ist nun gelöst, fehlt nur noch Problem 1).
Das Problem hierbei ist das ich nicht über den Text "hovern" kann, sprich die Farbe bleibt weiß. Das liegt eventuell daran das ich das anders erstellt habe als 2 und 3, da dass davon abhängt ob man registriert ist oder nicht.
Also hier der Code:
PlayerMainText2[playerid] = CreatePlayerTextDraw(playerid, 189.000000, 158.000000, "_"); //Button Register or Login
PlayerTextDrawBackgroundColor(playerid, PlayerMainText2[playerid], 255);
PlayerTextDrawFont(playerid, PlayerMainText2[playerid], 2);
PlayerTextDrawLetterSize(playerid, PlayerMainText2[playerid], 0.200000, 1.200000);
PlayerTextDrawColor(playerid, PlayerMainText2[playerid], -1);
PlayerTextDrawSetOutline(playerid, PlayerMainText2[playerid], 1);
PlayerTextDrawSetProportional(playerid, PlayerMainText2[playerid], 1);
PlayerTextDrawTextSize(playerid, PlayerMainText2[playerid], 300.0, 15.0)Und
/* Account Management */
if(pData[playerid][P_Logged] == false) {
new Query[60],AS[256];
format(Query, sizeof(Query),"SELECT * FROM Players WHERE Name = '%s'", GetName(playerid));mysql_query(MySQL, Query);
mysql_store_result();if(mysql_num_rows() != 0) {
format(AS, sizeof(AS), "Your account is ~g~Registered~n~~w~~h~Click in the button for login.");
PlayerTextDrawSetString(playerid, PlayerMainText1[playerid], AS);
format(AS, sizeof(AS), "~w~ LOG IN ACCOUNT");
PlayerTextDrawSetString(playerid, PlayerMainText2[playerid], AS);
} else {
format(AS, sizeof(AS), "Your account is ~y~New account~n~~w~~h~Click in the button for register.");
PlayerTextDrawSetString(playerid, PlayerMainText1[playerid], AS);
format(AS, sizeof(AS), "~w~ REGISTER ACCOUNT");
PlayerTextDrawSetString(playerid, PlayerMainText2[playerid], AS);
}
mysql_free_result();
} else {
pData[playerid][P_Logged] = true;
}
return 1;
} -
So wie es aussieht fehlt bei dem Textdraw: https://wiki.sa-mp.com/wiki/PlayerTextDrawSetSelectable
[wiki]PlayerTextDrawSetSelectable[/wiki] -
Sieht jemand den SQL Fehler?
format(query,sizeof(query),"UDPATE banneduser SET IsBanned='0',BannedBis='0',BanAdmin='',BanReason='' WHERE BINARY username='%s'",getPlayerName(playerid));
Tabelle:
Danke im Voraus -
Setze bei den Strings mal ein Abstand rein.
Sollte dann eigentlich funktionieren.Gruß.
-
Habe ich auch im Script. (Bist zwar im Urlaub aber ich kann auf die Antwort warten) :
PlayerTextDrawSetSelectable(playerid, PlayerMainText1[playerid], 0);
PlayerTextDrawSetSelectable(playerid, PlayerMainText2[playerid], 1);
PlayerTextDrawSetSelectable(playerid, PlayerMainText3[playerid], 1);
PlayerTextDrawSetSelectable(playerid, PlayerMainText4[playerid], 1); -
@iEnerqie: Hat nichts gebracht, was ich mir auch gedacht habe. Trotzdem danke für den Versuch
-

