Bei den
stock FindNextHaltestelle(Input[])
{
new pos = strfind(Input,"\n");
strdel(Input,0,pos+1);
pos = strfind(Input,"\n");
strdel(Input,pos,strlen(Input));
return Input;
}
Bekomm ich laut debug vor den resturn den richtigen wert raus
Er soll mir das erste anzeigen was in den string nach den ersten \n steht
nur das nix anderes
Und da sendet er mir so ein Müll wie das:
[23:18:19] Funktion: Autohaus Autobahn
[23:18:19] Message: (Irgendein Sonderzeichen)
[23:18:19] Funktion: Autohaus Autobahn
bei den Code
for(new c = 0; c < sizeof(BusInfo); c ++)
{
if(IsPlayerInRangeOfPoint(i,10.0,BusInfo[code=c][bX],BusInfo[code=c][bY],BusInfo[code=c][bZ]) && BusText[i] != BusInfo[code=c][bX])
{
BusText[i] = BusInfo[code=c][bX];
printf("Message: %s",FindNextHaltestelle(BusInfo[code=c][bLable]));
format(query,128,"Nächste Haltestelle: %s",FindNextHaltestelle(BusInfo[code=c][bLable]));
SendClientMessage(i,cYellow,query);
break;
}
}
Es muss doch entweder ein Bug von Samp aus sein oder ich bin doof ![]()
Beiträge von Beavis
-
-
Ich brauch mal ein Denkanstupser
Ich habe mir die Funktion gebastelt:
stock FindNextHaltestelle(Input[])
{
new str[128];
new pos = strfind(Input,"\n");
strdel(Input,0,pos);
format(str,128,"%s",Input);
pos = strfind(Input,"\n");
strdel(str,pos,sizeof(str));
return str;
}
So mit der Funktion möchte ich den Text aufteilen bzw die erste Haltestelle anzeigen lassen
Das ist mein Input:
"{FF8400}Buslinie 1:\nBank\nVisage Hotel\nAirport\nAutohaus Autobahn\nSupermarkt\nSteakhaus\nAmmunation\nPolice Department"
Ich möchte das er mir nur Bank ausgibt, doch leider gibt er mir nichts ausHat jemand ne idee wo ich was falsch gemacht habe?
//edit
Habe das jetzt so
stock FindNextHaltestelle(Input[])
{
new pos = strfind(Input,"\n");
strdel(Input,0,pos+1);
pos = strfind(Input,"\n");
strdel(Input,pos,strlen(Input));
return Input;
}
Lass ich es in der Funktion printen, dann zeigt er alles Sauber an
Lass ich es aber als Message senden, dann sendet der mir irgendein Mist von A-Z Sonderzeichen etc -
Geht auch nur ich empfehle diese Funktion keinen, da das direkte getten deutlich schneller ist als eine extra funktion
-
GetPlayerName ??
Das sollte reichen dann einfach das erstezen durch die Namenvariable des Enums -
er gibt auch ne 72 aus, da du in den string wo du die Infos angibst inputtext nur angibst, da sollte man auch strlen nutzen nur wo du die werbung sendest, solltest du strlen nicht nutzen
-
Gette den Namen neu, da dies ein Bug ist bei maddins Tutorial
dann speichert der auch -
-
hast du doch
new payout = strlen (inputtext) * SBizzInfo[7][sbEntranceCost];
In den format solltest du das strlen weglassen -
So viele nutzen PVars, wisst aber nicht wie man PVars richtig nutzt?
GetPVarString(playerid, varname[], string_return[], len);playerid The ID of the player whose player variable you're getting.
varname The name of the player variable.
&string_return The string to store the PVarString in, passed by reference.
len Number of cells the string has been assigned. -
Rocky ganz falscher ansatz^^
if(!strcmp(AutohausName,"Wahn", true))
So währe es richtig da man intger mit == vergleicht -
Schlau postest die Fehler aber kein code dazu...
Wie soll man da helfen?
Aber ich kann dir sagen, das du die ' ' nicht vernünftig gesetzt hast das sagt auch schon der Fehler aus
-
format(string, sizeof(string), "[Werbung]: %s, Kontakt: %s, Handynr.: %d",strlen (inputtext)
Was machst da ein strlen ?
stimmt garnichts, denn inputtext ist der string -
wiso wandelst du den inputtext in einen intger um ?!
um die länge herauszufinden nutze strlen nicht strval -
Rück es mal richtig ein und was ist dein Problem?
-
Falscher Query
format(query,500,"UPDATE `accounts` SET `pBann` = '%d', SET `pAdminLevel` = '%d',SET `pTutorial` = '%d',SET `pFirstSpawn` = '%d',SET `pGeschlecht` = '%d',SET `pB_Day` = '%d',SET `pB_Month` = '%d',SET `pB_Year` = '%d',SET `pFraktion` = '%d',SET `pJob` = '%d',SET `pPerso` = '%d',SET `pMoney` = '%d',SET `pBank` = '%d', WHERE `Name` = '%s'",
Richtiger query
format(query,500,"UPDATE `accounts` SET `pBann` = '%d',`pAdminLevel` = '%d',`pTutorial` = '%d',`pFirstSpawn` = '%d',`pGeschlecht` = '%d',`pB_Day` = '%d',`pB_Month` = '%d',`pB_Year` = '%d',`pFraktion` = '%d',`pJob` = '%d',`pPerso` = '%d',`pMoney` = '%d',`pBank` = '%d' WHERE `Name` = '%s'", -
Das sind Pickups.
Falsch
das sind Race Checkpoints -
Du solltest dir mal angewöhnen bei SELECT anweisungen auch free_ressult zu nutzen, denn das hast du nicht oft gemacht.
-
Das ist eine Verdammt gute Idee
(Das ich da nicht von allein drauf gekommen bin...)
Ich werde mal schauen wie ich das einfach umsetzen kann ohne großen Aufwand zu betreiben, denn es gibt ja unterschiedlich große tore und da ist das Problem... -
So
new DBResult:query = db_query(...,"DELETE FROM `Baum` WHERE `Name` = 'Peter';");
db_free_result(query); -
Bei 2 Felden könnte es so sein
new DBResult:query,Data[2][30],Inhalt[500];
query = db_query(...,"SELECT * FROM `Baum` LIMIT 10;");//das ... auf die Connection unbenennen!
new Rows = db_num_rows(query);
for(new i = 0; i < Rows; i++)
{
db_get_field_assoc(query,"Feld 1",Data[0],sizeof(Data[0]));
db_get_field_assoc(query,"Feld 2",Data[1],sizeof(Data[1]));
format(Inhalt,sizeof(Inhalt),"%s\n%s - %s",Inhalt,Data[0],Data[1]);
db_next_row(query);
}
db_free_result(query);
ShowPlayerDialog(playerid,555,DIALOG_STYLE_MSGBOX,"Hannes",Inhalt,"Ok","");