1112rutger Geplaatst: 15 januari 2011 Rapport Geplaatst: 15 januari 2011 Hey! Ik begrijp er niks van.. Strval zorgt ervoor dat een string naar een integer gaat. Strlen gaat alleen over de LENGTE van de string maar, hoe in een dialogid wat is inputtext[playerid] voor iets? Een integer of string? Ik heb dit: PlayerInfo[playerid][mname] = inputtext[playerid]; Ergens in mijn dialog. Maar, als ik met een command deze bekijk (ook in dialogs) dan krijg ik slechts de eerste letter (Chris - C) Heb het met strval en strlen geprobeert (jeweet maar nooit als rookie-zijnde!) Enig idee? Reageren
.Timothy Geplaatst: 15 januari 2011 Rapport Geplaatst: 15 januari 2011 Gebruik niet inputtext[playerid], maar gewoon inputtext. Anders neemt hij alleen het karakter uit de string wat in cel playerid is opgeslagen (in jouw geval dus het eerste). Reageren
1112rutger Geplaatst: 15 januari 2011 Auteur Rapport Geplaatst: 15 januari 2011 Als ik die array weghaal krijg ik dit: error 047: array sizes do not match, or destination array is too small Reageren
Morph1 Geplaatst: 15 januari 2011 Rapport Geplaatst: 15 januari 2011 probeer dan dit eens: udb_hash(inputtext) udb_hash versleuteld en zorgt dat bijvoorbeeld "[" wordt "_04". anders ligt het aan je "PlayerInfo". Reageren
1112rutger Geplaatst: 15 januari 2011 Auteur Rapport Geplaatst: 15 januari 2011 Nope dan krijg ik hele rare getallen! Mijn PlayerInfo[...][mname] is bij enum: mname[MAX_PLAYER_NAME]. Reageren
Big Boss Geplaatst: 15 januari 2011 Rapport Geplaatst: 15 januari 2011 Probeer eens een keer: PlayerInfo[playerid][mname][0] = EOS; // EOS: End Of String strcat(PlayerInfo[playerid][mname], inputtext); Dit kopiëert als het ware de inputtext naar jouw variabele (bij gebrek aan een string copy functie). Reageren
1112rutger Geplaatst: 15 januari 2011 Auteur Rapport Geplaatst: 15 januari 2011 Nope werkt niet. Ik moet er wel bij zeggen dat ik dit bij een DIALOG_LIST Doe kweetniet of dat veel uitmaakt. Althans, voor mname doe ik het via een DIALOG_INPUT voor 2 andere doe ik het met een LIST. Bij die van mname dus niks en bij die van LIST krijg ik een nulletje. Reageren
Morph1 Geplaatst: 15 januari 2011 Rapport Geplaatst: 15 januari 2011 inputtext heb je natuurlijk alleen met DIALOG_STYLE_INPUT Reageren
1112rutger Geplaatst: 15 januari 2011 Auteur Rapport Geplaatst: 15 januari 2011 Aha... Mrja hij werkt niet . Kweetnu wel weer dak met listitems moet werken en niet met inputtext[playerid] (nja switch dan) met die LIST dinge. Maar nogsteeds een raadsel over dat INPUt gebeure. Reageren
Morph1 Geplaatst: 15 januari 2011 Rapport Geplaatst: 15 januari 2011 als je een dialog gebruikt met een lijn waar je zelf iets moet invullen (dus de DIALOG_STYLE_INPUT) kan je hetgeen ophalen wat de speler heeft ingetypt in dat inputlijntje met "inputtext". hopelijk is het zo duidelijk. Reageren
1112rutger Geplaatst: 15 januari 2011 Auteur Rapport Geplaatst: 15 januari 2011 Dus bij een dialog van INPUT zou: ....[mname] = inputtext; Toch goed moeten zijn? Maar dan moet ik inputtext arreye (als dat een werkwoordsvorm is). Ofeh indexen ofzo.. Igg een [..] erachter doen Reageren
Morph1 Geplaatst: 15 januari 2011 Rapport Geplaatst: 15 januari 2011 (bewerkt) nee, inputtext zit al inbegrepen bij de public : "public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])" hier een regel uit mijn accountsysteem waarbij hij het wachtwoord uit het bestand van de spelernaam vergelijkt met de inputtext, hier heb ik verder geen variables aan toegevoegd, dus geen new's etc. : if(dini_Int((playername), "password") != udb_hash(inputtext)) ik weet niet of je er wat aan heb maar dan kan je zien dat het zo gewoon werkt bij mij. Bewerkt: 15 januari 2011 door Morph1 Reageren
1112rutger Geplaatst: 15 januari 2011 Auteur Rapport Geplaatst: 15 januari 2011 nee, inputtext zit al inbegrepen bij de public : "public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])" hier een regel uit mijn accountsysteem waarbij hij het wachtwoord uit het bestand van de spelernaam vergelijkt met de inputtext, hier heb ik verder geen variables aan toegevoegd, dus geen new's etc. : if(dini_Int((playername), "password") != udb_hash(inputtext)) ik weet niet of je er wat aan heb maar dan kan je zien dat het zo gewoon werkt bij mij. Ja ik weet dat het zo kan werken. Maar volgens mij is dat alleen zo bij een aantal voor-bepaalde script-dingen zoals udb ofzo? Want simpelweg een ... = inputtext; doen werkt niet. Dus dan is mijn vraag, mocht het zo zijn dat ik een array moet plaatsen om mijn probleem op te lossen; welke array en hoeveel cellen? Reageren
Morph1 Geplaatst: 15 januari 2011 Rapport Geplaatst: 15 januari 2011 geen idee welke array maar ik weet wel dat er niet meer dan 64 cellen in zo'n inputlijntje passen. Reageren
1112rutger Geplaatst: 16 januari 2011 Auteur Rapport Geplaatst: 16 januari 2011 (bewerkt) Als ik : PlayerInfo[playerid][mname][0] = inputtext[64]; Doe dan stopt mijn dialog-ketting daar. Hiermee bedoel ik dat de dialogs die eigenlijk hierna moeten volgen niet meer plaatsvinden, zonder die [64] en met [playerid] werkt dit wel. Maarja zoals ik er nu dus dankzij jullie achter ben gekomen is playerid geen goede manier hiervoor. EDIT: Na een aantal uur de wiki van sa-mp te hebben doorgespit heb ik de strmid functie gevonden! strmid(PlayerInfo[playerid][mname], (inputtext), 0, strlen((inputtext)), 128); Dit werkt 100%! Bewerkt: 16 januari 2011 door 1112rutger Reageren
Recommended Posts
Een reactie plaatsen
Je kan nu een reactie plaatsen en pas achteraf registreren. Als je al lid bent, log eerst in om met je eigen account een reactie te plaatsen.