Der Code failt...weil vID = 0 ist..weil der Spieler sich noch in keinem Auto befindet...
Zeig uns mal den ganzen command, dann können wir dir besser helfen ![]()
Du solltest da nämlich direkt den input, den er eingibt als model nehmen ![]()
Der Code failt...weil vID = 0 ist..weil der Spieler sich noch in keinem Auto befindet...
Zeig uns mal den ganzen command, dann können wir dir besser helfen ![]()
Du solltest da nämlich direkt den input, den er eingibt als model nehmen ![]()
soo geht´s aber da steht halt dann nur 1 oder 0 un das ist schei´ße
...wenn du da gebannt oder nicht gebannt stehen haben magst...dann schreibs doch hin:
Du bist doch schon im php-Tag, da brauchste kein <?php nochmal ![]()
jailTimer[playerid] = SetTimerEx("SetPlayerUnjail", 1000, 1, "d", playerid);
if(jailTimer[playerid] != -1) KillTimer(jailTimer[playerid]);
Das ist ja auch quatsch...du setzt den Timer...(dann ist er immer != -1) und dann killst du ihn direkt ![]()
Eigentlich suche ich eher eine Vitrine, keine Kommode
...wie wäre es mit:
2459, 2502, 2467, 2475, 2460
....ich habe geschrieben ich bekomme da keine Fehler beim compilen...
Hast du eventuell noch eine andere Variable mit dem selben Namen?
Ihr beiden seid ganz schön streitlustig, wir treffen uns um 21 Uhr am Hbf auf Gleis 12
Das höchste Gleis vom Hbf ist doch nur 9 3/4 oder? ![]()
Also ich hab deinen Code mal kurz getestet und ich bekomme da keinen Fehler ![]()
Na klar ![]()
Ich denke du suchst sowas hier:
2084
Gibt aber auch noch sowas wie...1743, 2087, 2328, 2306
unter tachoupdate finde ich leider nichts
...das war ein Beispiel ![]()
Natürlich heißt die Funktion so nicht...ich kenne dein Skript schließlich nicht...
Die nachicht an den Fraktionsmember wird nicht gesendet da steht dann immer noch Info: /r [Nachicht]
Nutz einfach mal ocmd... ![]()
Als erstes empfehle ich dir nicht dcmd zu nutzen...sondern eher ocmd/zcmd/ycmd...oder sonst was ![]()
Bei einem Parameter solltest du übrigens kein sscanf nutzen, sondern kannst direkt auf params zugreifen:
dcmd_r(playerid,params[])
{
if(IstSpielerInFraktion(playerid, 0))return SendClientMessage(playerid,ROT,"Du bist in keiner Fraktion.");
new string[128];
if(params[0] == EOS)return SendClientMessage(playerid,GELB,"INFO: /r [Nachicht]");
new fID = sSpieler[playerid][Fraktion];
GetPlayerName(playerid,string,MAX_PLAYER_NAME);
format(string,sizeof(string), "**(( %s: %s ))**", string, params);
for(new i=GetPlayerPoolSize(); i!=-1; i--)
{
if(!IsPlayerConnected(i) || !IstSpielerInFraktion(i, fID))continue;
SendClientMessage(i,HBLAU, string);
}
return 1;
}
Alles anzeigen
Der Code steht ja in einem public wie "TachoUpdate"...
und dann such mal im Skript nach "TachoUpdate" dann solltest du einen Timer finden ![]()
Das ist scheinst das falsche MySQL Plugin...welche Include Version nutzt du denn...dafür das passende Plugin musste auch verwenden ![]()
Dein MySQL Plugin wird nicht geladen ![]()
Poste am besten mal den ganzen Server Log ![]()
Du rufst das ja in einem gewissen Intervall auf..z.B. von ~1000ms welches du in SetTimer/Ex eingestellt hast.
Den könntest du einfach etwas runter setzen, dann aktualisiert sich das öfters ![]()
aber den Standardwert zu setzen würde sicher nicht schaden.
Oki, hier dann:
/* SA:MP Include GetVehicleNumberPlate
*
* (c) by Kaliber, 2016
*
*/
#if !defined _samp_included
#include <a_samp>
#endif
#if defined _samp_plate_ex
#endinput
#endif
#define _samp_plate_ex
native __SetVehicleNumberPlate(vehicleid, numberplate[]) = SetVehicleNumberPlate;
native __DestroyVehicle(vehicleid) = DestroyVehicle;
stock _DestroyVehicle(vehicleid)
{
if(existproperty(.value=50+vehicleid)) deleteproperty(.value=50+vehicleid);
return __DestroyVehicle(vehicleid);
}
#if defined _ALS_DestroyVehicle
#undef DestroyVehicle
#else
#define _ALS_DestroyVehicle
#endif
#define DestroyVehicle _DestroyVehicle
stock _SetVehicleNumberPlate(vehicleid, numberplate[])
{
if(strlen(numberplate) > 32) return 0; //Um Schaden zu vermeiden!
setproperty(.value=50+vehicleid,.string=numberplate);
return __SetVehicleNumberPlate(vehicleid, numberplate);
}
#if defined _ALS_SetVehicleNumberPlate
#undef SetVehicleNumberPlate
#else
#define _ALS_SetVehicleNumberPlate
#endif
#define SetVehicleNumberPlate _SetVehicleNumberPlate
/*
native GetVehicleNumberPlate(vehicleid);
*/
stock GetVehicleNumberPlate(vehicleid)
{
new plate[32];
if(existproperty(.value=50+vehicleid))
{
getproperty(.value=50+vehicleid,.string=plate);
strunpack(plate,plate,sizeof(plate));
}
else plate="XYZSR998";
return plate;
}
Alles anzeigen
Soo jetzt müsste alles gut sein ![]()
Das macht aber nicht immer Sinn.
Angenommen in einem Dialog möchte ich alle Fahrzeuge mit deren Nummernschild anzeigen, habe aber nie SetVehicleNumberPlate genutzt. Dann gibt der Dialog nichts aus, oder, wenn man dort dann das Nummernschild setzt, ändert es sich weg vom Standard (wäre reiner Zufall das gleiche Schild zu bekommen).
new string[512],plate[32];
for(new i=GetVehiclePoolSize(); i!=0; i--)
{
format(plate,32,GetVehicleNumberPlate(i));
format(string,sizeof(string),"%sID: %d | Plate: %s",string,i,((plate[0]==EOS)?("XYZ1234"):(plate)));
}
ShowPlayerDialog(..., string, ...);
So meinte ich das...
und da dieses Nummernschild anfangs immer das selbe ist..brauchste nichts hooken..
DestroyVehicle sollte ebenfalls gehookt werden.
Stimmt, das hab ich vergessen...
/* SA:MP Include GetVehicleNumberPlate
*
* (c) by Kaliber, 2016
*
*/
#if !defined _samp_included
#include <a_samp>
#endif
#if defined _samp_plate_ex
#endinput
#endif
#define _samp_plate_ex
native __SetVehicleNumberPlate(vehicleid, numberplate[]) = SetVehicleNumberPlate;
native __DestroyVehicle(vehicleid) = DestroyVehicle;
stock _DestroyVehicle(vehicleid)
{
if(existproperty(.value=50+vehicleid)) deleteproperty(.value=50+vehicleid);
return __DestroyVehicle(vehicleid);
}
#if defined _ALS_DestroyVehicle
#undef DestroyVehicle
#else
#define _ALS_DestroyVehicle
#endif
#define DestroyVehicle _DestroyVehicle
stock _SetVehicleNumberPlate(vehicleid, numberplate[])
{
if(strlen(numberplate) > 32) return 0; //Um Schaden zu vermeiden!
setproperty(.value=50+vehicleid,.string=numberplate);
return __SetVehicleNumberPlate(vehicleid, numberplate);
}
#if defined _ALS_SetVehicleNumberPlate
#undef SetVehicleNumberPlate
#else
#define _ALS_SetVehicleNumberPlate
#endif
#define SetVehicleNumberPlate _SetVehicleNumberPlate
/*
native GetVehicleNumberPlate(vehicleid);
*/
stock GetVehicleNumberPlate(vehicleid)
{
new plate[32];
getproperty(.value=50+vehicleid,.string=plate);
strunpack(plate,plate,sizeof(plate));
return plate;
}
Alles anzeigen
Ne, das mit dem Standard setzen find ich bescheuert..weil ist ja eh immer XYZ1234 oder sowas..und man kann ja einfach prüfen ob die Funktion was leeres wiedergibt, dann setzt man halt das Standard Ding..ansonsten das Nummernschild, das wesentlich effizienter ![]()
Sehr gut ![]()