bau es dir doch ingame hab ich auch so
Beiträge von janpplayer
-
-
so wie mach ich das jetzt weiter wie lad ich die variablen dann wenn ich das mit der while abfrage hab
also meine frage ist jetzt wie lad ich das jetzt richtig weiter ? evtl ein beispiel... von einem anderen muss jetzt nicht speziefich für mich sein..
stock LoadAllFraktions()
{
new mysql[30];
format(mysql, sizeof (mysql), "SELECT * FROM fraktionen");//ORDER BY ÌD DESC
mysql_query(mysql);
mysql_store_result();
new Get[2048];
while(mysql_fetch_row(Get))
{
// hier die ganzen variablen
F_Anzahl++;
FId,
FIddb,
FName[MAX_FRACTION_LENGTH],
FArt[24],
FLowName[24],
Rang[24],
Rang2[24],
Rang3[24],
Rang4[24],
Rang6[24],
RangLeader[24],
HatInt,
Int,
Virtualworld, // bis hier 14
Float:Eingang[3],// 17
Float:Ausgang[3],// 20
Float:Eingang2[3],// 23
Float:Ausgang2[3]// 26
EingangInt,
EingangVirtualWorld,
AusgangInt,
AusgangVirtualWorld,
Eingang2Int,
Eingang2VirtualWorld,
Ausgang2Int,
Ausgang2VirtualWorld,
SaveboxEin,//35
Savebox[3]//38
}
}
MFG//edit noch paar sachen hinzugefügt
// edit frage
// edit verdäutlicht -
Weil dies ein Dynamisches Fraktionssystem werden sollte.
Jetzt hänge ich nur daran das ich das nit hinkrieg mit dem Dummen Ids das selbe problem hatte ich schonmale..
vll hat ja jemand ne idee wie man es anderes laden könnte außer eine for schleife mit MAX_FRAKTIONS?
MFG
-
Hallo wie lade ich perfekt z.b eine Fraktion aus der Mysql Datenbank weil wenn ich eine lösche besteht in der datenbank die id nicht mehr und bei laden vergisst er dann die weiteren das würde heißen
Reihenfolge vor dem löschen: 12345
Reihenfolge nach dem löschen: 1245
dann hört mein system auf zu laden weil es fraktion 3 nicht findet darüber hinaus wird irgendwann mal eine max variable von 50 überschritten die dann höher geht da ich ja autoincredment nutze wird in der datenbank z.b die nur 51 geben aber die 50,49 nicht und dann funktioniert es nicht wie umgehe ich dieses problem?
MFG
-
also es soll in mein rang system
es funktioniert so es ist eine liste der oberste ist der höchste und der niedrigste der tiefste rang
Also z.b so:
Ränge Bearbeiten
Rang Hinzufügen
Rang1
Rang2
Rang3es soll alles ingame passieren als leader wenn ich jetz dann kann ich das ja nicht statisch machen
dies währe dann mein dialog :
Ränge Bearbeiten\n\rRang Hinzufügen\n\rRang1\n\rRang2\n\rRang3\n\rhinterher würde er z.b so aussehen: Ränge Bearbeiten\n\rRang Hinzufügen\n\rRang1\n\rRan2\n\rRanggabc\n\rRang3\n\r
also muss ich irgendwie berechnen wo hin das kopiert werden soll nur wie kann den string zählen bis ich an der stelle bin?
kann ich mit strfind irgendwie verwenden um zu überprüfen an welcher stelle etwas steht?
nur wie wende ich es an ?
wenn ich einen beispiel string hab:
Ränge Bearbeiten\n\rRang Hinzufügen\n\rRang1\n\rRang2\n\rRang3\n\r
kann ich mit strfind abfragen wo "Rang2\n\r" steht? also an welcher stelle?
da strfind irgendsone funktion hat nur ich weiß nicht wie ich die anwende (const string[],const sub[],bool:ignorecase=false,pos=0)
const string[] The string you want to search in (haystack).
const sub[] The string you want to search for (needle).
ignorecase (optional) When set to true, the case doesn't matter - HeLLo is the same as Hello. When false, they're not the same.
Position (optional) The offset to start searching from.Returns The number of characters before the sub string (the sub string's start position) or -1 if it's not found.
//edit textlich verändert
//edit nochmal verändert
//edit funktion die evtl helfen kann
-
danke.. jetzt bin ich ein stück weiter... das samp wiki und sa-mp.com ist ja down -.-
jetzt muss ich nurnoch scharf nachdenken ... xD
strins(string[], const substr[], pos, maxlength=sizeof string);
quasi muss ich jetzt nurnoch die position finden wie mach ich dass nochmal?
sry ich hab grad voll den blackout...MFG
-
Hallo wie kann ich bei einem string etwas an einer bestimmten etwas einfügen hier mal ein beispiel..
Abcdefg
jetzt möchte ich vor dem c hinter dem b etwas einfügen so das z.b das j eigefügt sein soll hier mal beispiel:
Abjcdefg so solls sein
hoffe mir kann jemand helfen
MFG
janpplayer
-
danke... hat mir sehr viel geholfen... und mein system resourcenschonender gemacht...
MFG
janpplayer
für alle anderen die etwas in einem string ausschneiden wollen und etwas anderes eifügen wollen an dieser stelle ist diese funktion: str_replace mehr dazu wie Xaiunay schon gesagt hat hier: http://wiki.sa-mp.com/wiki/Strlib:str-replace
//closed
-
Hallo wie ersetze ich etwas in einem string genau an dieser stelle
ich hab z.b einen string für einen dialog "Jan\n\rJan2\n\rJan3"
jetzt möchte ich jan2 löschen und gegen einen anderen namen ersetzen wie mach ich das?
also soll es dann so aussehen z.b "Jan\n\rTim\n\rJan3"
und noch eine frage was bedeutet eigl \r nochmal habs vergessen finds auch nit im samp wiki unter showplayerdialog
MFG janpplayer
//edit erleuterung
-
kann man doch
-
okay es funktioniert perfekt ...
eine frage wie kann ich das jetzt machen das ich immer die nächste volle zahl aufrunde`?
MFG
//edit sehr komische rechtschreibung
-
bleibt das selbe ich verste das nicht habs sogar jetzt wieder mit ner normalen variable probiert.. immer nur 0 oder 0.0000000
-
da wird 85 derzeit gezählt und nach der rechnung wieder nur 0.00000
MFG
-
x,y,z sind koordinaten kennst du bestimmt von mathe x achse ,y achse und die z achse ist demnach die höhe quase wie breitengrade und soo nur halt x,y und z nur die höhe
du gehst einfach in die nähe des objektes und machst /save tor das tor steht dafür damit du später erkennst das du das gespeichert hat da könnten ja auch noch mehr koordinaten drinnstehen
so die Koordinaten sind die : wenn du das gespeicherte hast das so z.b aussieht: AddPlayerClass(277,1958.3783,1343.1572,15.3746,269.1425,0,0,0,0,0,0); // tor
dann sind das die x,y,z : 1958.3783,1343.1572,15.3746,269.1425 die suchst du einfach in OnGameModeInit und wenn du welche gefunden hast die fast übereinstimmen können ja abweichen weil du ja nicht genau da stehst wo das objekt erstellt wurde
dann guckst du einfach wenn es CreateObject(123,1234,5678,91011,.....); demnach währe 123 die Object ID und 1234,5678,91011 die x,y,z koordinaten und dann nimmst du einfach die object id und suchst sie bei google oder so und guckst ist es das tor und wenn ja löschst du einfach diese zeile ganz einfach
MFG
-
new Float:voll2;
voll2 = (6 / strlen(fertigsms)) * 100;
new volltxt[64];
format(volltxt,sizeof(volltxt),"Vollfertig prozent: %f.",voll2);
print(volltxt);leider immernoch nit es steht im print: Vollfertig prozent: 0.000000.
MFG
-
ja dann geh in die nähe des gates so nah wie möglich und dann mach ingame /save gate guck in eigene dateien in den samp ortner nach savepositons öffnest du mit textdokument dann guckst du dir die x,y,z achsen an und suchst nach einem gate was ungefär die koordinaten hat dann gehst du in pawn nach OnGameModeInit und suchst nach CreateObject und dann da die koordinaten vergleichen und prüfen ob sie ungefär übereinstimmen könnten am besten wär es wenn du die object id wüstest dann könntest du die auch prüfen dann halt diese zeile löschen und neu compilen.. hier noch mal: http://wiki.sa-mp.com/wiki/CreateObject
MFG
-
Geht trotzdem nicht wir immer 0.000000 angezeigt und ich machs ja so hab es jetzt so: new Float:voll2=6/strlen(fertigsms);
new volltxt[64];
voll2*=100;
format(volltxt,sizeof(volltxt),"Vollfertig prozent: %f%.",voll2);MFG
-
// edit so jetzt näher gekommen
ich rechne jetzt so (650/100)strlen(...)
aber ingame ist es 0 oder als Float 0.000000
hier mal mein teil: new fertigsms[650];
format(fertigsms,sizeof(fertigsms),"Zurück\nAnrufen\nSms Schreiben\nPosteingang\n%s",string);
new Float:voll2=6/strlen(fertigsms);
new volltxt[64];
voll2*=100;
format(volltxt,sizeof(volltxt),"Vollfertig prozent: %f%.",voll2);MFG
-
aber ich möchte kein festen befehl haben kann ich denn abfragen ob das /c existiert und dann da hinter die for schleife und dann halt obs /cfraktion oder /ckeineahnung oder /cclub ...
MFG
-
geht leider nicht ... hab schon alles probiert...
das problem ist das ich praktisch die for schleife nach der abfrage machen müsste oder etwas stimmt mit der abfrage nicht das die angibt das der befehl übereinstimmt obwohl es nicht so ist
// edit hab es jetzt mal so aber geht immernoch nit : public OnPlayerCommandText(playerid, cmdtext[])
{
if(!strcmp(cmdtext, "/r", true))
{
for(new i = 0; i < max_p; i++)
if(IsPlayerConnected(i))
{
if(GetPVarInt(i,"Eingeloggt")==1)
{
SavePlayer(i);
}
}
SetTimer("restart",5000,0);
return 1;
}
if(!strcmp(cmdtext, "/handy") || !strcmp(cmdtext, "/h"))
{
Handy(playerid);
return 1;
}
if(!strcmp(cmdtext,"/chatein",true))
{
format(CInfo[1][CKuerzel],24,"/fraktion");
SendClientMessage(playerid,Lila,CInfo[2][CKuerzel]);
return 1;
}
else for(new i = 1; i < MAX_CHATS; i++)
{
SendClientMessage(playerid,Rot,CInfo[i][CKuerzel]);
if(!strlen(cmdtext))
{
return 0;
}
else
{
if(!strcmp(cmdtext,CInfo[i][CKuerzel],true))
{
SendClientMessage(playerid,Rot,"Blabla");
return 1;
}
else
{
SendClientMessage(playerid,Rot,"Diesen Befehl gibt es nicht.");
}
}
return 0;
}
return 0;
}
// edit frage hinzugefügtgeht das wenn ich als erstes abfrage ob z.b if(!strcmp(cmdtext, "/c", true))
eingegeben wurde müsste ja dann mach ich das so das mit dem chat system immer erst /c(und dann da hinter der verschiedene text währe wie z.b fraktion oder f) hier ein beispiel /cf oder /cfraktion