Typen wie du haben auch nur anonym eine so große Klappe

Typen wie du haben auch nur anonym eine so große Klappe

Es ist immer wichtig eine Länge bei sscanf anzugeben. Wieso? Es kommt ansonsten dauernd eine Nachricht in der Console und ich glaube bei längeren Strings wird einfach ab 32 Zeichen abgebrochen oderso..
Das kommt darauf an, ob man das Plugin oder nur die Funktion verwendet ![]()
/mute [ID/Spielername] [z.B 10] [grund: z.B test]
...ja wenn du das so eingibst, dann kein Wunder...du musst z.B. sowas eingeben:
/mute 10 5 Test
10 = Spielerid
5 = für 5 Minuten
Test = Grund...
Was gibst n ein im Chat? ![]()
so meinst du ja? >:)
Ja ![]()
In der if-Anweisung von deinem /motor Befehl wo du [vehMotor] == true fügst du einfach das ein:
Vehicle[vehicleid][vehLicht] = false;
GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
SetVehicleParamsEx(vehicleid, engine, VEHICLE_PARAMS_OFF, alarm, doors, bonnet, boot, objective);
![]()
Da Div1 Absolut positioniert ist, richtet sich Div2 doch gar nicht nach Div1?
Doch, das machen die Elemente: https://jsfiddle.net/vu0pxaeo/
![]()
Gott, wieso muss ich da an Breadfish Leute denken ![]()
Vielleicht...zeigst du bzw erklärst du uns kurz, was du machen magst? ![]()
Meinst du sowas: https://jsfiddle.net/pn5d836j/
Die..Tür passt irgendwie 0 ![]()
Einfach so eine Küchentür xD
Eventuell eine schöne Holztür o.ä. ![]()
Das ist nur so mit den Bäumen, einfach die Z-Achse von denen ein wenig verringern ![]()
He?
Da ist nirgens ein Lösch button..wo drückst n auf löschen? xD
Mal ein paar Hinweise...
An sich...finde ich sowas als Include nicht gerade sehr sinnvoll, da man so oder so..die Texte in der Include anpassen muss...und naja...man ist an das Design gebunden..usw...
Dennoch nett, dass du dein Design veröffentlichst ![]()
Noch ein Optionaler Punkt:
"Dieser Name ist ~g~nicht~w~ in Verwendung.~n~Du kannst dich jetzt ~g~registrieren."
Alle deine Texte sind statisch, das ist sehr gut
Dadurch kannst du sie packen
Setz am Anfang ein ! davor:
Zum Beispiel:
LoginTextDraw[playerid][29] = CreatePlayerTextDraw(playerid,346.000000, 162.000000, !"Dieser Name ist ~g~nicht~w~ in Verwendung.~n~Du kannst dich jetzt ~g~registrieren.");
Der eine Satz (das kannst du überall machen) besteht aus 82 Zeichen.
Normalerweise brauch jede Cell 4 Bytes. Also 82 * 4 Bytes = 328 Bytes
Wenn du es aber packst, brauch jede Cell nur 1 Byte, also 82 * 1 Byte = 82 Bytes ![]()
Kannst hier also 25% Speicher sparen
Und das summiert sich ja..da du viele Texte hast :3
Ehh keine Ahnung, was du meinst..poste am besten mal deinen Code ![]()
....den stock hast du unten im Skript..und die Nutzung in einem Callback / einer Funktion? ![]()
Stats0 = CreatePlayerTextDraw(playerid,222.000000, 158.000000, "_");
Überall wo du Stats0 verwendest...musst du eigentlich: Stats0[playerid] verwenden ![]()
Aber als Tipp: [SAMMELTHREAD] Kleine Scripting Fragen
Ouhh...ehh
Wie hast du das denn alles deklariert? ![]()
Du lädst das falsch..dass muss so aussehen:
cache_get_field_content(0, "IP", sInfo[playerid][sIP]);
sInfo[playerid][sBargeld] = cache_get_field_content_int(0, "Bargeld");
sInfo[playerid][sLevel] = cache_get_field_content_int(0, "Level");
sInfo[playerid][sGeschlecht] = cache_get_field_content_int(0, "Geschlecht");
sInfo[playerid][sSkin] = cache_get_field_content_int(0, "Skin");
Es gab keinen Fehler, weil man optional das connection Handle da angeben kann ![]()
Es würde auch sowas reichen:
stock GetRandomPlayer()
{
new list[MAX_PLAYERS],idx;
for(new i=GetPlayerPoolSize(); i!=-1; i--)
{
if(!IsPlayerConnected(i) || IsPlayerNPC(i)) continue;
list[idx++] = i;
}
return (!idx) ? INVALID_PLAYER_ID : list[random(idx)];
}
//Nutzung:
new id = GetRandomPlayer();
if(id == INVALID_PLAYER_ID) return 1; //Hier ist kein Spieler online!
SetContract(id, 1000); //Beispiel Code
Alles anzeigen
Schreibweise etwas kompliziert
Makros sind nice ![]()
//Hier paar Makros:
#define LoopTextDraws(%0,%1,%2) new __@tmp=_:(%2);for(new %0=_:(%1); (%0) < __@tmp; (%0)++)
//Und zur Deklaration:
new PlayerText:x = CreatePlayerTextDraw(..); //Es reicht hier nur x zu nutzen
//Unter das erste TextDraw:
LoginTextDraw[playerid][0] = x;
//Unter das letzte TextDraw:
LoginTextDraw[playerid][1] = x;
//Loop:
LoopTextDraws(textid, LoginTextDraw[playerid][0], LoginTextDraw[playerid][1])
{
PlayerTextDrawHide(playerid, PlayerText:textid);
}
//Oder mit PVars:
#define LoopTextDraws(%0,%1,%2,%3) new __@tmp=GetPVarInt(%0,%3);for(new %1=GetPVarInt(%0,%2); (%1) < __@tmp; (%1)++)
#define SetPointer(%0,%1,%2) SetPVarInt(%0,%1,_:(%2))
#define DeletePointer(%0,%1) DeletePVar(%0,%1)
//zur Deklaration:
new PlayerText:x = CreatePlayerTextDraw(..); //Es reicht hier nur x zu nutzen
//Unter das erste TextDraw:
SetPointer(playerid, "Start", x);
//Unter das letzte TextDraw:
SetPointer(playerid, "Ende", x);
LoopTextDraws(playerid, textid, "Start", "Ende")
{
PlayerTextDrawHide(playerid, PlayerText:textid);
PlayerTextDrawDestroy(playerid, PlayerText:textid);
}
DeletePointer(playerid, "Start");
DeletePointer(playerid, "Ende");
Alles anzeigen
Hahah xD
Aber ist okay, dein Skript ![]()