Möglicherweise.
Falls nicht, lass dir die playerid mal per print drunter ausgeben.
printf("pID: %d // params: '%s'", pID, params);
Möglicherweise.
Falls nicht, lass dir die playerid mal per print drunter ausgeben.
printf("pID: %d // params: '%s'", pID, params);
Nein, das ist falsch so.
Du musst die pickupid als ersten Index nehmen, nur diese ist eindeutig. Außerdem hast du einen sofortigen Zugriff, ohne Schleife.
PickupCounter[weapontype] kann ja für jeden "weapontype" die gleichen Werte wieder annehmen, somit besteht keine Eindeutigkeit.
new pickupid = CreateDynamicPickup(modelid,type,rx1,ry2,rz3,virtualworld);
WeaponInfo[pickupid][wModel] = modelid;
WeaponInfo[pickupid][wAmmo] = random(1000)+10;
Beim Pickup:
if(WeaponInfo[pickupid][wModel] != 0) GivePlayerWeapon(playerid, WeaponInfo[pickupid][wModel], WeaponInfo[pickupid][wAmmo]);
Mehr ist es nicht.
Wenn du das Plugin nutzt:
if(sscanf(params,"uis[28]",pID,Anzahl,Grund))
1000 habe ich auch mal probiert, mag er leider auch nicht
Das ist viel zu viel.
Überleg mal, das entspricht alleine schon 1000*1000*1000 einzelnen Variablen, sprich 1.000.000.000 (eine Milliarde!) Variablen. Dass das den Compiler sprengt dürfte klar sein.
Bei 20000: 8.000.000.000.000 (8 Billionen!).
WeaponPickups[PickupCounter[weapontype]][modelid][ammo]
Warum nimmst du überhaupt die modelid und die ammo ins Array? Das macht wenig Sinn.
Mache es doch so:
new pickupid = CreateDynamicPickup(modelid,type,rx1,ry2,rz3,virtualworld);
WeaponPickups[pickupid][wModel] = modelid;
WeaponPickups[pickupid][wAmmo] = ammo;
wModel und wAmmo kommen dann aus dem enum zu WeaponPickups (gleich wie bei PlayerInfo).
if(sInfo[playerid][payday]>=30)
Lass dir in deinem Code hier den Wert jeweils mal ausgeben, vor dieser Zeile.
printf("PayDay Timer: playerid: %d / payday: %d", playerid, sInfo[playerid][payday]);
Was wird dann im Server Log ausgegeben?
Das Problem ist, dass die Länge vom ersten Katalog fest ist, daher kannst du da nichts hinzufügen.
Versuche es so:
new wc[sizeof(wantedcatalogue) + sizeof(wantedcataloguetwo) + sizeof(wantedcataloguethree) + sizeof(wantedcataloguefour) + 8];
strcat(wc,wantedcatalogue);
strcat(wc,wantedcataloguetwo);
strcat(wc,wantedcataloguethree);
strcat(wc,wantedcataloguefour);
SetPVarInt(playerid,"ClickedPlayer",clickedplayerid);
ShowPlayerDialog(playerid,DIALOG_WANTEDVERGABE,DIALOG_STYLE_LIST,"Wantedkatalog",wc,"Abbrechen","Eingabe");
Das kannst du über eine Funktion wie diese machen:
stock GetRangName(playerid)
{
new frak = sSpieler[playerid][Member], name[32];
if(frak == 0) frak = sSpieler[playerid][Leader];
name = "<Unbekannt>";
switch(frak)
{
case 1: //Fraktion 1
{
switch(sSpieler[playerid][Rang])
{
case 1: name = "Newbie";
case 2: name = "Pro";
//...
}
}
case 2:
{
switch(sSpieler[playerid][Rang])
{
case 1: name = "Praktikant";
case 2: name = "Angestellter";
//...
}
}
//...
}
return name;
}
Dann so:
format(spieler,sizeof(spieler),"Du wurdest von %s zum Rang %d (%s)gemacht",leadername,rang, GetRangName(pid));
Ich hätte es auch so verstanden, wie @Mogly1 .
Das was im Video dargestellt wird könnte ich mir nur so vorstellen:
Das Objekt der Karte wird von oben angeschaut, und auf der Karte werden diese Kugeln (Billardkugeln texturiert?) in entsprechender Farbe jeweils an die entsprechende Position (lässt sich berechnen) gesetzt.
Der Name wird mit einem Textlabel erzeugt und ebenfalls an entsprechende Position gesetzt.
Meinst du es so?
Die Koordinaten habe ich nicht, aber du kannst sie mit einem Editor wie diesem herausfinden:
http://forum.sa-mp.com/showthread.php?t=416138
Füge vor GetPlayerPos das ein:
if(parkid == -1) return SCM(playerid,GRAU,"Kein Tor in der Nähe.");
Ist es ein TextMessage oder TextDraw
Das ist ein Textdraw mit der Font 1.
Ok, dann lade dir bitte das Crashdetect Plugin herunter und gehe nach Punkt 1.5 vor: Tipps: Scripting-Probleme richtig erklären
Gehe auch durch den Schritt mit der Zeilenausgabe.
So erfährst du, in welcher Zeile der Fehler liegt, wenn du den Befehl nochmal eingibst.
Poste dann die Fehlerzeile nochmal separat, zusammen mit dem Log.
Also dass der Spieler sich nur in dem Bereich bewegen kann?
Das kannst du mit http://wiki.sa-mp.com/wiki/SetPlayerWorldBounds machen.
return SendClientMessage(playerid,Pink,str);
Zu
SendClientMessage(playerid,Pink,str);
return 0;
Da wird aller Voraussicht nach ein Array gesprengt.
Wie hast du ParkSchranke und Park deklariert?
ich hab ein neues Textdraw zu meinem waffenlager hinzugefügt aber wenn ich jetzt auf Beenden drücke, dann öffnet er den Bestand... gibt es da einen Tipp ? (Wenn ich codes braucht, sagt bescheid) @Jeffry
Das könnte, ohne den Code gesehen zu haben, an hier (Textdraws funktionieren nicht?) von mir beschriebenem Fehlen von (Player)TextDrawTextSize liegen.
Versuche es mal, indem du den Textdraws das hinzufügst.
ich hab ein einziges Filterscript gehabt, ich hab es rausgenommen und zack es funktioniert alles
Ok, Lösung wäre dann hier gegebenenfalls, dass du in dem Filterscript auch das OnPlayerClickTextDraw Callback drin hast, und dort ein return 1 am Ende steht.
Ändere dieses im Filterscript zu return 0, dann kannst du den Filterscript wieder verwenden.
Grund:
Returning 1/true in this callback will prevent it being called in other scripts. This should be used to signal that the textdraw on which they clicked was 'found' and no further processing is needed. You should return 0/false if the textdraw on which they clicked wasn't found, just like in OnPlayerCommandText.
Das Objekt wird erstellt, jedoch leuchtet die Sirene nicht.
Laut diesem Thread (http://forum.sa-mp.com/showthread.php?t=534862) könnte es ein Client-Problem sein, sprich an deinem GTA liegen.
Versuche es mal mit Wetter ID 2, wie dort genannt.
Alternativ kannst du es mal hiermit versuchen, ob das geht:
http://forum.sa-mp.com/showthread.php?t=352070
Wenn das nicht geht, liegt es an deinem GTA, oder einem Mod (etc).
Sorry, bin erst jetzt dazu gekommen dir zu antworten.
Der Code ist in meinem Gamemode.
Nutzt du Filterscripts?
Falls ja, beende den Server mal und starte den Server ohne die Filterscripts.
Geht es dann?
Falls nein:
Füge das PlayerTextDrawTextSize bitte mal ein, das hast du ja nicht drin.
das haben wir schon gemacht und es passiert nichts in der Konsole
Nutzt du das PlayerTextDrawTextSize denn jetzt?
Ist der Code in einem Gamemode oder Filterscript?