ahmedo01 Posted August 6, 2014 Posted August 6, 2014 i am making announcements system. announcements.xml <announcements> <ANNOUNCEMENT day="01" month="01" year="2014" announcement="Hey Guys"></ANNOUNCEMENT> </announcements> this is server file: function addannouncement(day, month, year, announcement) xml = xmlLoadFile ( ":CGlogin/announcements.xml" ) child = xmlCreateChild ( xml, "ANNOUNCEMENT" ) xmlNodeSetAttribute ( child, "day", day) xmlNodeSetAttribute ( child, "month", month) xmlNodeSetAttribute ( child, "year", year) xmlNodeSetAttribute ( child, "announcement", announcement ) xmlSaveFile ( xml ) end addEvent("addannouncement", true) addEventHandler("addannouncement", getRootElement(), addannouncement) it's working but when i add announcement it likes Hey Guys . i am maked gui for this. this is client side file : GUIEditor = { label = {} } addEventHandler("onClientResourceStart", resourceRoot, function() addannouncementwindow = guiCreateWindow(460, 207, 379, 398, "Add Announcement", false) guiWindowSetSizable(addannouncementwindow, false) guiSetProperty(addannouncementwindow, "CaptionColour", "FFFF0000") GUIEditor.label[1] = guiCreateLabel(15, 33, 59, 19, "Day:", false, addannouncementwindow) GUIEditor.label[2] = guiCreateLabel(124, 33, 59, 19, "Month:", false, addannouncementwindow) GUIEditor.label[3] = guiCreateLabel(243, 33, 59, 19, "Year:", false, addannouncementwindow) day = guiCreateEdit(43, 32, 75, 20, "", false, addannouncementwindow) month = guiCreateEdit(163, 32, 75, 20, "", false, addannouncementwindow) year = guiCreateEdit(275, 32, 75, 20, "", false, addannouncementwindow) announcement = guiCreateMemo(9, 75, 360, 261, "", false, addannouncementwindow) GUIEditor.label[4] = guiCreateLabel(134, 57, 119, 18, "Your Announcement", false, addannouncementwindow) guiLabelSetColor(GUIEditor.label[4], 255, 0, 0) button = guiCreateButton(135, 345, 108, 43, "Add Announcement", false, addannouncementwindow) guiSetVisible(addannouncementwindow, false) addEventHandler ( "onClientGUIClick", button, function() day = guiGetText ( day ) month = guiGetText ( month ) year = guiGetText ( year ) announcement = guiGetText ( announcement ) triggerServerEvent("addannouncement", getRootElement(), day, month, year, announcement) end , false ) --dana end ) function opengui(thePlayer) guiSetVisible(addannouncementwindow, true) showCursor(true) end addCommandHandler("addannouncement", opengui) i need this announcements in memo i have memo but how i can list announcements in memo? like this: in memo: 06/08/2014 Removed Hydra. 05/08/2014 Testing system. sorry for my bad english ( very bad )
Et-win Posted August 6, 2014 Posted August 6, 2014 Use this 'code' for a new line: \n And this for the date: https://wiki.multitheftauto.com/wiki/GetTimestamp
ahmedo01 Posted August 6, 2014 Author Posted August 6, 2014 i don't know pairs , for etc. how i can get text in memo. not one text. i can do one text but i want to do more text.
Et-win Posted August 6, 2014 Posted August 6, 2014 local text = guiGetText(memo) text = text.."add more stuff here" guiSetText(memo, text)
ahmedo01 Posted August 6, 2014 Author Posted August 6, 2014 i want to get announcements. i want define day, month, year, announcement.
Et-win Posted August 6, 2014 Posted August 6, 2014 --1 Announcement: xmlFindChild xmlNodeGetAttribute --Or all announcements: xmlNodeGetChildren xmlNodeGetAttribute --[[Or:]] xmlNodeGetAttributes
ahmedo01 Posted August 7, 2014 Author Posted August 7, 2014 i do this for list. command for testing. function memoannouncement() xml = xmlLoadFile ( ":CGlogin/announcements.xml" ) children = xmlNodeGetChildren (xml) --day = xmlNodeGetAttribute ( unpack(children), "day" ) --month = xmlNodeGetAttribute ( unpack(children), "month" ) --year = xmlNodeGetAttribute ( unpack(children), "year" ) --announcement = xmlNodeGetAttribute ( unpack(children), "announcement" ) attr = xmlNodeGetAttributes (unpack(children)) for day,month,year,announcement in ipairs(attr) do outputChatBox(day..month..year..announcement) end end addCommandHandler("testmemo", memoannouncement) when i say testmemo no debugscript error and warning but not working. and i have problem with this function time() local time = getRealTime() local gun = time.monthday outputChatBox(gun) end addCommandHandler("times",time) function addannouncement(announcement) local time = getRealTime() xml = xmlLoadFile ( ":CGlogin/announcements.xml" ) child = xmlCreateChild ( xml, "ANNOUNCEMENT" ) xmlNodeSetAttribute ( child, "day", time.monthday) xmlNodeSetAttribute ( child, "month", 1+time.month) xmlNodeSetAttribute ( child, "year", 1900+time.year) xmlNodeSetAttribute ( child, "announcement", announcement ) xmlSaveFile ( xml ) outputChatBox("Correct Syntax: /addannouncement day month year announcement", thePlayer) outputChatBox("Example: /addannouncement 01 01 2000 Removed Hydras", thePlayer) end addEvent("addannouncement", true) addEventHandler("addannouncement", getRootElement(), addannouncement) --addCommandHandler("addannouncement", addannouncement) this server file and this is client side file GUIEditor = { label = {} } addEventHandler("onClientResourceStart", resourceRoot, function() addannouncementwindow = guiCreateWindow(460, 207, 379, 398, "Add Announcement", false) guiWindowSetSizable(addannouncementwindow, false) guiSetProperty(addannouncementwindow, "CaptionColour", "FFFF0000") GUIEditor.label[1] = guiCreateLabel(15, 33, 59, 19, "Day:", false, addannouncementwindow) GUIEditor.label[2] = guiCreateLabel(124, 33, 59, 19, "Month:", false, addannouncementwindow) GUIEditor.label[3] = guiCreateLabel(243, 33, 59, 19, "Year:", false, addannouncementwindow) day = guiCreateEdit(43, 32, 75, 20, "", false, addannouncementwindow) month = guiCreateEdit(163, 32, 75, 20, "", false, addannouncementwindow) year = guiCreateEdit(275, 32, 75, 20, "", false, addannouncementwindow) guiSetEnabled ( day, false ) guiSetEnabled ( month, false ) guiSetEnabled ( year, false ) announcement = guiCreateMemo(9, 75, 360, 261, "", false, addannouncementwindow) GUIEditor.label[4] = guiCreateLabel(134, 57, 119, 18, "Your Announcement", false, addannouncementwindow) guiLabelSetColor(GUIEditor.label[4], 255, 0, 0) button = guiCreateButton(135, 345, 108, 43, "Add Announcement", false, addannouncementwindow) guiSetVisible(addannouncementwindow, false) addEventHandler ( "onClientGUIClick", button, function() announcement = guiGetText ( announcement ) triggerServerEvent("addannouncement", getRootElement(),announcement) end , false ) --dana end ) function opengui(thePlayer) guiSetVisible(addannouncementwindow, true) showCursor(true) end addCommandHandler("addannouncement", opengui) when i add announcement i see this in xml <ANNOUNCEMENT day="7" month="8" year="2014" announcement="Test"></ANNOUNCEMENT> what is ? how i can delete this?
Et-win Posted August 7, 2014 Posted August 7, 2014 function memoannouncement(tPlayer) xml = xmlLoadFile ( ":CGlogin/announcements.xml" ) if (xml ~= false) then --If loading the file wasn't failed, then: children = xmlNodeGetChildren(xml) for placeNumber, childrenData in ipairs(children) do --Loop through all childs in the XML file. attr = xmlNodeGetAttributes(childrenData) --Get all attributes with values for attributeData, valueData in pairs(attr) do --For every attribute, do: outputChatBox(attributeData..": "..valueData, tPlayer) end end else outputChatBox("Error loading announcements files", tPlayer) end end addCommandHandler("testmemo", memoannouncement) 'xmlNodeGetAttributes' returns a table of arrays/keys(?). Also this needs to be looped through with 'pairs' and not with 'ipairs'. 'xmlNodeGetChildren' needs to be looped though with 'ipairs', because this code returns a table with indexes. I think you are using this server-side, otherwise, remove ", tPlayer". Made this 'start' for you, now you can make your script further from here. -- XML doesn't 'support' those signs
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now