Wieso wird immer CJ angezeigt wenn ich als TextdrawObject id 369 drinne hab?(Infarot) Ich habe schon überall nachgeschaut, Es wird nirgends die ID 0 abgefragt also CJ ?
Zeig doch mal deinen Code, dann kann man dir besser helfen ![]()
Wieso wird immer CJ angezeigt wenn ich als TextdrawObject id 369 drinne hab?(Infarot) Ich habe schon überall nachgeschaut, Es wird nirgends die ID 0 abgefragt also CJ ?
Zeig doch mal deinen Code, dann kann man dir besser helfen ![]()
Zeig doch mal deinen Code, dann kann man dir besser helfen
else if(!strcmp(WaffenDaten[playerid][w_1Extra2], "ThermalGerät"))//ist in einem Stock drin, wo halt abgefragt hat wenn er diesen Extra ausgewählt hat, dass dann das als Bild angezeigt wird.
{
PlayerTextDrawSetPreviewModel(playerid, Textdraw55[playerid], 369);
PlayerTextDrawTextSize(playerid, Textdraw55[playerid], 68.000000, 23.000000);
PlayerTextDrawSetPreviewRot(playerid, Textdraw55[playerid], -1.000000, 0.000000, 36.000000, 0.610328);
//Textdraw55
Textdraw55[playerid] = CreatePlayerTextDraw(playerid, 51.500000, 215.977798, "");//Extra2
PlayerTextDrawLetterSize(playerid, Textdraw55[playerid], 0.000000, 0.000000);
PlayerTextDrawTextSize(playerid, Textdraw55[playerid], 67.000000, 25.000000);
PlayerTextDrawAlignment(playerid, Textdraw55[playerid], 1);
PlayerTextDrawColor(playerid, Textdraw55[playerid], -1);
PlayerTextDrawSetShadow(playerid, Textdraw55[playerid], 0);
PlayerTextDrawSetOutline(playerid, Textdraw55[playerid], 0);
PlayerTextDrawBackgroundColor(playerid, Textdraw55[playerid], 0);
PlayerTextDrawFont(playerid, Textdraw55[playerid], 5);
PlayerTextDrawSetProportional(playerid, Textdraw55[playerid], 0);
PlayerTextDrawSetShadow(playerid, Textdraw55[playerid], 0);
PlayerTextDrawSetPreviewRot(playerid, Textdraw55[playerid], 0.000000, 0.000000, 0.000000, 0.516431);
//Es gibt ja mehrere Extra 2 und oben habe ich halt alle Spezielen Sachen drinne wie Rotation usw. -> Die anderen gehen ja bloss nur hier wird immer wieder CJ angezeigt
}
Hey,
wie kann ich, wenn ich ein Timer verwende um etwas bestimmtes für X Sekunden zu verhindern ausgeben wie lange man noch warten muss?
Sprich, das sich die Zeit immer aktuallisiert.
Beispiel:
Du musst noch 10 Sekunden warten..
Du musst noch 5 Sekunden warten etc.
Variablen eventuell hoch/-runterzählen lassen und dann die Variable ausgeben?
Das kannst du so machen:
Unter den Includes:
new befehlBlocked[MAX_PLAYERS];
In dem Befehl:
if(befehlBlocked[playerid] > gettime())
{
new str[145];
format(str, sizeof(str), "Error: Du kannst diesen Befehl erst in %ds wieder nutzen.", befehlBlocked[playerid]-gettime());
return SendClientMessage(playerid, 0xFF0000FF, str);
}
befehlBlocked[playerid] = gettime() + 30; //30 Sekunden gesperrt
Gibt es eine Abfrage, um zu schauen ob der Wert, der (in meinem Fall) generiert wurde, bereits in der Tabelle existiert?
Habe bisher folgendes (als cmd, nur damits schneller geht beim testen):
ocmd:pin(playerid,params[])
{
new pin=randomEx(9990,10000);
//Abfrage
new string[128];
format(string,sizeof(string),"Dein Pin ist '%i'. Bewahre ihn gut auf!",pin);
SendClientMessage(playerid,CLR_YELLOW,string);
new query[84];
format(query,sizeof(query),"UPDATE accounts SET bankkartenpin='%i' WHERE id='%i'",pin,pInfo[playerid][ID]);
mysql_function_query(dbhandle,query,false,"","");
return 1;
}
Ich möchte natürlich nicht, dass Leute den gleichen Pin haben.
Versuche es mal so:
stock CreatePin(playerid){
new pin=randomEx(9990,10000);
format(string,sizeof(string),"SELECT * FROM `accounts` WHERE bankkartenpin=%d",pin);
mysql_function_query(dbhandle,string,true,"CheckPin","ii",playerid,pin);
return 1;
}
forward CheckPin(playerid,pin);
public CheckPin(playerid,pin)
{
new rows,fields;
cache_get_data(rows,fields);
if(rows > 0)
{
//Pin existiert bereits
CreatePin(playerid);//nochmal ausführen
}
else if(!rows){
//Pin existiert noch nicht
new query[84];
format(query,sizeof(query),"UPDATE accounts SET bankkartenpin='%i' WHERE id='%i'",pin,pInfo[playerid][ID]);
mysql_function_query(dbhandle,query,false,"","");
}
return 1;
}
Alles anzeigen
PlayerTextDrawSetPreviewModel(playerid, Textdraw55[playerid], 369);
PlayerTextDrawTextSize(playerid, Textdraw55[playerid], 68.000000, 23.000000);
PlayerTextDrawSetPreviewRot(playerid, Textdraw55[playerid], -1.000000, 0.000000, 36.000000, 0.610328)
Schreib das mal nach unten...du kannst doch keine Eigenschaften für ein TextDraw setzen, welches erst danach erstellt wird ![]()
Schreib das mal nach unten...du kannst doch keine Eigenschaften für ein TextDraw setzen, welches erst danach erstellt wird
Dankeschön! Geht endlich ![]()
Aber ich hätte noch eine Frage..
Ich bin grad dabei so ein Extra zu machen, das heißt wenn man denn auswählt dass man mehr Munition bekommt. Aber i-wie funktioniert das nicht. Ammo bleibt immer auf 0 wieso?
new Ammo = GetPlayerAmmo(playerid);
SetPlayerAmmo(playerid, 2, Ammo+50);//Pistolen(9mm,S 9mm, Desert Eagle)
SetPlayerAmmo(playerid, 3, Ammo+30);//Shotungs(Shotguns,Sawn-off-Shotgun,Combat Shotgun)
SetPlayerAmmo(playerid, 4, Ammo+100);//MP's(MP5,UZI,Tec-9)
SetPlayerAmmo(playerid, 5, Ammo+150);//Sturmgewehr(AK-47,M4)
SetPlayerAmmo(playerid, 6, Ammo+70);//Scharfschützengewehre(Country Rifle,Sniper)
SetPlayerAmmo(playerid, 7, Ammo+3);//Raketenwerfer
printf("%i",Ammo);
Aber i-wie funktioniert das nicht. Ammo bleibt immer auf 0 wieso?
https://wiki.sa-mp.com/wiki/SetPlayerAmmo
SetPlayerAmmo(playerid, WEAPON_SHOTGUN, 100); // Set ammo of Shotgun to 100 bullets
Geht aber immer noch nicht?
new Ammo = GetPlayerAmmo(playerid);
SetPlayerAmmo(playerid, WEAPON_AK47, Ammo+150);
Geht aber immer noch nicht?
Return Values:
The amount of ammo in the player's current weapon.
Hast du die AK47 in der Hand? Sonst gibt das die Ammo der Waffe zurück, die du in der Hand hältst.
Sonst musst du https://wiki.sa-mp.com/wiki/GetPlayerWeaponData nutzen, um die Ammo in dem Slot (Achtung, hier wirklich der Slot) auszulesen.
Könntest du mir ein Beispiel geben?
-> Also wenn ich diese Funktion benutze dann gibt er auch zb nur der Ak Munition mehr? Zb wenn ich jetzt nur AK-47 -- MP5 ausgerüstet habe, aber im skript steht dass UZI, M4 auch Ammo gegeben werden soll, aber trz. nur AK und MP5 mehr Munition weil er die waffen ausgerüstet hat, ich möchte jetzt nicht dass er die Waffen bekommt.
Für die Sturmgewehre zum Beispiel so:
new weap, ammo;
GetPlayerWeaponData(playerid, 5, weap, ammo);
SetPlayerAmmo(playerid, weap, ammo+150);
Dann bekommt die Waffe in Slot 5 (egal ob M4 oder AK47) die 150 Ammo drauf.
Für die Sturmgewehre zum Beispiel so:
new weap, ammo;GetPlayerWeaponData(playerid, 5, weap, ammo);SetPlayerAmmo(playerid, weap, ammo+150);
Dann bekommt die Waffe in Slot 5 (egal ob M4 oder AK47) die 150 Ammo drauf.
i-wie geht das auch nicht bei mir. Die Munition bleibt bei mir gleich?
//Hab es mal printfen lassen, bei beiden werten stehen 0
Hast du es mal mit GivePlayerWeapon anstatt SetPlayerAmmo versucht? Ich habe eigentlich immer GivePlayerWeapon für solche Dinge genutzt.
new weap, ammo;
GetPlayerWeaponData(playerid, 5, weap, ammo);
GivePlayerWeapon(playerid, weap, 150);
Hast du es mal mit GivePlayerWeapon anstatt SetPlayerAmmo versucht? Ich habe eigentlich immer GivePlayerWeapon für solche Dinge genutzt.
new weap, ammo;GetPlayerWeaponData(playerid, 5, weap, ammo);GivePlayerWeapon(playerid, weap, 150);
Passiert auch nichts
//EDIT
, problem gefunden , danke ![]()
Es muss doch irgendwie möglich sein, dass man bei einer Animation laufen kann. Es geht auf anderen Servern ja auch. Ich hatte es auch mal, weiß aber nicht mehr Wie..