Schau mal ins Callback ONPlayerDisconnect. Da gibts noch einen Parameter namens "Reason" den du dafür benützen kannst.
Mit switch & case geht das ganze dann noch einfacher.
MFG
Schau mal ins Callback ONPlayerDisconnect. Da gibts noch einen Parameter namens "Reason" den du dafür benützen kannst.
Mit switch & case geht das ganze dann noch einfacher.
MFG
Alles anzeigenin nem Public erstellst du den Timer der sich jede sekunde wiederholt.
Und in dem Timer, fragst du dann das Geld ab, und setzt den TextDrawString mit TextDrawSetString ..
Sollte meines Erachtens nach klappen.
LG
Eigentlich braucht man gar keinen Timer.
Wenn du serverseitiges Geld hast einfach immer die entsprechende Geldmenge im entsprechenden Stock abfragen und aufs Textdraw setzen.
MFG
Meinetwegen im Anhang ist die Include.
Wenns dann immer noch nicht geht dann schau mal in dein OnPlayerCommandText Callback und poste was da drin steht.
P.S: ocmd Commands auch in keinem Callback ?
MFG
Ja bei mir funktioniert alles. Also nicht case sensitive. Bei Unknown Command wahrscheinlich das Return vergessen oder ?
MFG
Die stimmen jedoch auch nicht mit der neusten Version überein. Das geht nur bis 1.6.1. Die
neuste ist jedoch 2.0.
Hier:
/*---------------------------------------
/--------\ /--------\ /\
| | | | / \
| | | | / \ |-----
| | |--------/ / \ |
| | | |--------| \----\
| | | | | |
\--------/ | | | -----/
OBJECTSTREAMER & MAPEDITOR
VERSION 5.1.1
OCMD MODULE
---------------------------------------*/
/*
OCMD 2.0.0
by kleinerOpa
best command-solution for sa:mp
supports samp 0.2X, 0.3a without OCMD_CHECK_UPDATE function
supports samp 0.3b, 0.3c
WEB: www.kleiner-opa.de
ICQ: 611064955
*/
#include <a_samp>
#if defined OCMD_CHECK_UPDATE
#tryinclude <a_http>
#if !defined HTTP
#error OCMD_CHECK_UPDATE only works with a_http.inc
#undef OCMD_CHECK_UPDATE
#endif
#endif
forward ocmdOnPlayerCommandText(playerid,cmdtext[]);
#if defined OCMD_BEFORE_CALLBACK
forward BeforePlayerCommandText(playerid,cmdtext[]);
#endif
#if defined OCMD_CHECK_UPDATE
forward ocmdCheckUpdate();
forward ocmdCheckUpdate2(index,response_code,data[]);
#endif
#if defined OCMD_BEFORE_CALLBACK
new bool:ocmdBeforeCallback;
#endif
#if defined OCMD_BEFORE_CALLBACK || defined OCMD_CHECK_UPDATE
new bool:ocmdInit;
#endif
#define ocmd:%1(%2) forward ocmd_%1(%2);\
public ocmd_%1(%2)
#define OCMD_VERSION "2.0.0"
public OnPlayerCommandText(playerid,cmdtext[])
{
#if defined OCMD_BEFORE_CALLBACK || defined OCMD_CHECK_UPDATE
if(!ocmdInit)
{
#if defined OCMD_BEFORE_CALLBACK
if(funcidx("BeforePlayerCommandText")!=-1)ocmdBeforeCallback=true;
#endif
#if defined OCMD_CHECK_UPDATE
SetTimer("ocmdCheckUpdate",(60*1000),false);
SetTimer("ocmdCheckUpdate",(60*60*1000),true);
#endif
ocmdInit=true;
}
#endif
new ocmdStr[32]="ocmd_",
i=1,
#if defined OCMD_COMMAND_LOG
ocmdName[MAX_PLAYER_NAME],
#endif
bool:ocmdNoParams;
#if defined OCMD_COMMAND_LOG
GetPlayerName(playerid,ocmdName,sizeof ocmdName);
printf("[cmd] [%s]: %s",ocmdName,cmdtext);
#endif
#if defined OCMD_BEFORE_CALLBACK
if(ocmdBeforeCallback&&!CallLocalFunction("BeforePlayerCommandText","ds",playerid,cmdtext))return 1;
#endif
for(;i<128;i++)
{
if(!cmdtext[i]||cmdtext[i]==' ')
{
if(!cmdtext[i]||!cmdtext[i+1])ocmdNoParams=true;
break;
}
ocmdStr[i+4]=tolower(cmdtext[i]);
}
if(!ocmdNoParams&&CallLocalFunction(ocmdStr,"ds",playerid,cmdtext[i+1]))return 1;
if(ocmdNoParams&&CallLocalFunction(ocmdStr,"ds",playerid," "))return 1;
return CallLocalFunction("ocmdOnPlayerCommandText","ds",playerid,cmdtext);
}
#if defined OCMD_CHECK_UPDATE
public ocmdCheckUpdate()
{
HTTP(1,HTTP_GET,"www.kleiner-opa.de/sc/ocmd.txt","","ocmdCheckUpdate2");
}
public ocmdCheckUpdate2(index,response_code,data[])
{
if(strlen(data)&&strcmp(OCMD_VERSION,data)!=0)
{
new ocmdStr[128];
format(ocmdStr,sizeof ocmdStr,"An update for OCMD is available (version %s) - www.kleiner-opa.de",data);
print(ocmdStr);
for(new i;i<MAX_PLAYERS;i++)if(IsPlayerAdmin(i))SendClientMessage(i,0xD3D3FFFF,ocmdStr);
}
}
#endif
#define OnPlayerCommandText ocmdOnPlayerCommandText
Was genau gibst du denn als inputtext ein
Exakt meinen Namen der auch in der Tabelle unter Name steht. Jedoch wird er nicht gelöscht.
Alles anzeigen
Ja dann musst du das auch machen
Sähe dann so aus:
new query[128], name[24];
GetPlayerName(playerid, name, 24); //playerid = der spieler der gelöscht werden soll
format(query,128,"DELETE * FROM whitelist WHERE Name = '%s'",name);
db_query(wDatabase,query);
SendClientMessage(playerid,RED,"Erfolgreich.");
mfg.
Es geht jetzt immer noch nicht :O
Hier der Code:
new query[128],str[128];
format(query,128,"DELETE * FROM whitelist WHERE Name = '%s'",inputtext);
db_query(wDatabase,query);
format(str,128,"Player %s successfully ******************",inputtext);
SendClientMessage(playerid,RED,str);
Du musst schon eine ID hinter DIALOG_REGISTER setzen das ist dir wohl klar ?
MFG
Alles anzeigen
Also, GetPlayerID(inputtext), gibt das einen Integer oder einen String wieder
Ich befürchte nämlich einen Integer und deshalb müsste das so aussehen:
format(query,128,"DELETE * FROM whitelist WHERE Name = '%i'",GetPlayerID(inputtext));
mfg.
Ups ja das habe ich gerade selber gemerkt, jedoch steht ja der Name in DB und diesen möchte ich löschen lassen.
MFG
Hey Leute,
arbeite derzeit an nem kleinem System, das über SQLite läuft.
Habe mir auch schon das Tut von BlackAce angesehen.
Und ich möchte per Eingabe des Namens im Dialog den Namen in der Datenbank löschen.
Hier mal der code:
new query[128];
format(query,128,"DELETE * FROM whitelist WHERE Name = '%s'",GetPlayerID(inputtext));
db_query(wDatabase,query);
SendClientMessage(playerid,RED,"Erfolgreich.");
Da laut Black Aces Tutorial beim Daten einfügen/removen nicht mehr nötig ist dachte ich das funk so, was es aber nicht tut.
Es wird nichts aus der Database gelöscht.
MFG
Hier mal der Link zum Plugin: http://forum.sa-mp.com/showthread.php?t=65290 ( Es ist nicht mehr down )
Zusätzlich muss du das oben im Script hinzufügen:
native WP_Hash(buffer[], len, const str[]);
Nutzen kannst du das dann z.B so. Der String muss aber den index 129 haben
sonst wird das nichts:
new buf[129];
WP_Hash(buf,sizeof buf,inputtext); // hier wird z.B der gehashte Inputtext in "buf" gespeichert
Zitat
pGrund[256],
pAdmin[256],
bDatum[256],
bUhrzeit[256],
Nur mal so ich schaue gerade in deinen Enum... w000t ? WTF?!
Wieso verwendest du 256 Zeichen als Index? Zu mal ist Admin das Admin Level ein Integer und kein Array/string oder? Und ein Datum oder
eine Uhrzeit ist auch nicht 255 Zeichen lang, genauso wie ein grund vllt. max. 30 Zeichen.
Du musst dir auch die Vollversion schon kaufen ne ![]()
MFG
Bandicam ist gut.
Verbraucht wesentlich weniger Speicherplatz als Fraps, da die Videos gleich komprimiert werden, aber immer noch gute Quali besitzen.
MFG
Jap das Wiki ist aber noch immer instabil, immer wenn man einen Suchbegriff eingibt kommt immmer ne Fehlermeldung :O
MFG
Alles anzeigenEine IP kann sich nicht komplett verändern, sondern nur die IP - Range, sprich die letzten Zahlen.
Nehmen wir mal als Beispiel. 127.0.0.1 das wäre eine statische IP, sprich sie ändert sich nicht.
Eine dynamische hingegen würde nach allen 24 Stunden andere "Endziffern" haben, sprich: 127.0.5.9.
Hoffe ich konnte es dir ein wenig erklären.
MfG
Das heißt ich muss überprüfen ob die ersten 4 Ziffern der IP übereinstimmen?
Aber ich banne dann im Ernstfall keinen "Unschuldigen" mit oder ?
Edit: LeijaT:
Also wenn ich den "x" Teil vergleichen würde, könnte ich auch Unschuldige "mitbannen" ?
MFG
Hey Leute,
und zwar habe ich folgendendes Problem:
Und zwar ich will in mein Script einbauen, dass automatisch Meldungen kommen wenn sich ein Benutzer mehrere Benutzeraccounts macht.
Also wenn die IP übereinstimmt etc.
Also ich dachte mir: Man erkennt das ja bestimmt über die IP. Jedoch habe ich mal gehört, dass sich die IP nach einem Router Restart sofort immer ändert,
so würde das also nicht funktionieren.
Könnt ihr mir helfen?
Danke im Voraus .
MFG
Ich glaub, das ist irgendeine App mit der man die Bilder so komisch verändern kann.
MFG
Jap unter OnPlayerConnect geht das nicht wie bei mir.
Erst nachem Restart .... :X
MFG
Klar mach es unterschiede.
Du hast ne Funktionsvervollständigung, kannst Klammerfehler leichter herausfinden
und arbeitest damit auch viel schneller.
MFG